자동 크기 조정

Autoscaling

자동 스케일링(Auto Scaling)은 자동 스케일링 또는 자동 스케일링이라고도 하며, 일반적으로 활성 서버의 수로 측정되는 서버 팜의 계산 리소스 양을 팜의 부하에 따라 자동으로 조정하는 클라우드 컴퓨팅에 사용되는 방법이다.예를 들어, 웹 애플리케이션 뒤에서 실행되는 서버의 수는 사이트의 활성 사용자 수에 따라 자동으로 증가하거나 감소할 수 있다.이러한 지표는 하루 종일 급격하게 변화할 수 있고, 서버는 유휴 상태에서도 실행하는 데 비용이 드는 한정된 자원이기 때문에, 종종 갑작스러운 대규모 스파이크를 여전히 지원할 수 있는 동시에 현재의 부하를 지원할 수 있는 "그냥 충분한" 서버를 실행할 동기가 있다.자동스케일링은 활동이 적을 때는 활성 서버의 수를 줄이고 활동이 많을 때는 새로운 서버를 시작할 수 있어 이러한 요구에 도움이 된다.자동 크기 조정은 부하 분산 개념과 밀접하게 관련되어 있으며, 그 위에 구축된다.[1][2]null

이점

자동 크기 조정은 다음과 같은 이점을 제공한다.

  • 자체 웹 서버 인프라를 운영하는 회사들에게 자동 스케일링은 일반적으로 부하가 적은 시간 동안 일부 서버가 절전 모드로 전환될 수 있도록 하여 전기 비용을 절감하는 것을 의미한다.[3]
  • 클라우드에서 호스팅되는 인프라를 사용하는 기업에게 자동 스케일링은 청구서가 낮다는 것을 의미할 수 있다. 대부분의 클라우드 제공업체는 최대 용량이 아닌 총 사용량에 따라 요금을 청구하기 때문이다.[4]
  • 주어진 시간에 실행하거나 지불하는 총 컴퓨팅 용량을 줄일 수 없는 회사라도 자동 스케일링은 트래픽이 적은 시간 동안 자동 스케일링에 의해 해방되는 기계에서 시간에 덜 민감한 워크로드를 실행할 수 있게 함으로써 도움이 될 수 있다.[5]
  • Amazon Web Services에서 제공하는 것과 같은 자동 크기 조정 솔루션은 또한 불건전한 인스턴스를 교체하고 따라서 하드웨어, 네트워크 및 애플리케이션 장애로부터 어느 정도 보호할 수 있다.[6]
  • 자동 스케일링은 운영 워크로드가 가변적이고 예측 불가능한 경우 가동 시간을 늘리고 가용성을 높일 수 있다.

자동스케일링은 실제 사용 패턴에 대응한다는 점에서 일별, 주별 또는 연도별 서버 사용 주기가 정해져 있어 트래픽 부하에 비해 서버 수가 너무 적거나 많을 경우 발생할 수 있는 단점을 줄여준다.예를 들어, 일반적으로 트래픽이 자정에 더 낮은 경우 정적 확장 솔루션은 일부 서버를 밤에 절전 모드로 예약할 수 있지만, 이것은 사람들이 인터넷을 더 많이 사용하는 밤에 다운타임을 야기할 수 있다(예: 바이러스성 뉴스 이벤트로 인해).반면에 자동스케일링은 예상치 못한 트래픽 급증을 더 잘 처리할 수 있다.[3][7]null

용어.

아래 목록에서는 아마존웹서비스(AWS)에서 사용하는 용어를 사용한다.[8]다만 대체 명칭이 표기되고 아마존 서비스 명칭에 특정된 용어는 사용하지 않는다.null

이름(별도가 명시되지 않은 경우 [8]AWS에서 사용됨) 의미 대체 이름(Google Cloud Platform,[9] Microsoft Azure [10]또는 기타 플랫폼에서 사용)
인스턴스 자동 크기 조정 대상 컴퓨터 그룹에 속한 단일 서버 또는 컴퓨터
자동 크기 조정 그룹 모든 관련 정책 및 상태 정보와 함께 자동 크기 조정 대상 인스턴스 모음 관리 인스턴스 그룹(Google Cloud Platform)
크기 현재 자동 크기 조정 그룹에 속한 인스턴스 수
원하는 용량(또는 원하는 크기) 지정된 시점에 자동 크기 조정 그룹에 있어야 하는 인스턴스 수입니다.크기가 원하는 크기보다 작으면 자동 확장 그룹이 새 인스턴스를 시작(프로비저닝 및 연결)하려고 시도한다.크기가 원하는 크기보다 클 경우 자동 크기 조정 그룹이 인스턴스(instance)를 제거(dettach and terminal)하려고 시도함
최소 사이즈 원하는 용량이 떨어질 수 없는 경우의 수
최대 크기 원하는 용량을 증가시킬 수 없는 여러 인스턴스
미터법 데이터 지점의 시계열이 정기적으로 생성되는 자동 스케일링 그룹과 관련된 측정(예: CPU 활용률, 메모리 사용량, 네트워크 사용량)메트릭에 대한 임계값을 사용하여 자동 크기 조정 정책을 설정할 수 있다.메트릭은 자동 스케일링 그룹의 인스턴스에 대한 메트릭 집계 또는 자동 스케일링 그룹과 관련된 로드 밸런싱을 기반으로 할 수 있음
확장 정책(또는 자동 크기 조정 정책) 특정 임계값을 넘는 메트릭에 대응하여 자동 확장 그룹의 원하는 용량(또는 때로는 최소 및 최대 크기)에 대한 변경을 지정하는 정책.스케일링 정책은 관련된 재사용 대기 기간을 가질 수 있으며, 이것은 특정 스케일링 동작 직후에 추가적인 스케일링 동작이 발생하지 않도록 방지한다.원하는 용량에 대한 변경은 증분(특정 수만큼 증가 또는 감소)이거나 원하는 용량의 새 값을 지정할 수 있다.원하는 용량을 늘리는 정책을 "스케일아웃" 또는 "스케일업" 정책이라고 하고, 원하는 용량을 줄이는 정책을 "스케일 인" 또는 "스케일다운" 정책이라고 한다.
헬스체크 자동 확장 그룹이 연결된 인스턴스가 제대로 작동하는지 확인하는 방법.상태 점검은 인스턴스가 여전히 존재하고 연결할 수 있는지 또는 인스턴스가 여전히 등록되어 있고 연결된 로드 밸런싱 장치에 서비스 중인지 여부에 기초할 수 있다.
구성 시작 새 인스턴스를 시작할 때 사용되는 매개 변수 및 스크립트에 대한 설명.여기에는 인스턴스 유형, 구매 옵션(AWS의 경우 스폿 대 주문형 등), 출시 시 가능한 가용성 영역, 머신 이미지 및 출시 시점에 실행할 스크립트 등이 포함된다. 인스턴스 템플릿(Google Cloud Platform)
수동 스케일링 수동으로 실행된 확장 작업
스케줄링된 스케일링 특정 시간에 실행되는 확장 정책(예: 일, 주, 월 또는 연도)자세한 내용은 #예약된 확장 참조

연습

AWS(Amazon Web Services)

Auto-scaling

아마존웹서비스는 2006년 8월 개발자들이 프로그래밍 방식으로 인스턴스(기계)를 만들고 종료할 수 있도록 하는 아마존 탄력 컴퓨팅 클라우드(EC2) 서비스를 시작했다.[11][12]초기 출시 당시 AWS는 자동스케일링을 제공하지 않았지만 인스턴스를 프로그래밍적으로 만들고 종료하는 기능은 개발자에게 자동스케일링을 위한 자체 코드를 작성할 수 있는 유연성을 부여했다.null

2008년 4월경부터 AWS용 타사 오토스케일 소프트웨어가 등장하기 시작했다.여기에는 Scalr과[13] RightScale에 의한 도구가 포함되었다.'라이트스케일'은 애니모토가 사용했는데, 애니모토는 오토스케일링을 채택해 페이스북 트래픽을 처리할 수 있었다.[14][15]null

2009년 5월 18일, 아마존은 Amazon Elastic Compute Cloud의 일부로 Elastic Load Balancing과 함께 자체 오토스케일링 기능을 출시하였다.[16]오토스케일링은 이제 아마존의 EC2 제공에 필수적인 요소다.[2][17][18]아마존 웹 서비스에서 자동스케일링은 웹 브라우저나 명령줄 도구를 통해 이루어진다.[19]2016년 5월에는 AWS ECS 서비스에서도 오토스케일링이 제공되었다.[20]null

주문형 비디오 제공업체 넷플릭스는 자사의 매우 가변적인 소비자 니즈를 충족시키기 위해 Amazon Web Services와 함께 오토스케일링의 사용을 문서화했다.그들은 공격적인 스케일업과 지연되고 신중한 스케일다운이 업타임과 대응력이라는 목표를 가장 잘 충족한다는 것을 발견했다.[7]null

AWS 클라우드 인프라 최적화를 돕는 서비스인 뉴빔의 공동 창업자 겸 CEO 제브 래더먼은 테크크런치 기사에서 스타트업이 아마존 웹서비스 비용을 낮게 유지하기 위해 오토스케일링을 사용할 것을 권고했다.[4]null

AWS 사용을 위한 다양한 모범 사례 가이드는 부하가 가변적이지 않은 경우에도 자동 스케일링 기능을 사용할 것을 제안한다.그 이유는 자동스케일링은 두 가지 다른 장점, 즉 어떤 이유로든 건강하지 않게 되는 인스턴스(하드웨어 장애, 네트워크 장애, 애플리케이션 오류 등)의 자동 교체와 가격이나 용량상의 이유로 중단되는 스폿 인스턴스의 자동 교환을 제공하므로, 프로에 스폿 인스턴스를 사용하는 것이 더욱 실현 가능하다.의례상의 [6][21][22]목적넷플릭스의 내부 베스트 프랙티스는 모든 인스턴스를 자동스케일링 그룹에 포함하도록 요구하고 있으며, 적합성 원숭이는 이러한 베스트 프랙티스를 시행하기 위해 자동스케일링 그룹에 포함되지 않은 모든 인스턴스를 종료한다.[23]null

마이크로소프트의 윈도 애저

2013년 6월 27일, 마이크로소프트윈도우 Azure 클라우드 컴퓨팅 플랫폼에 자동 스케일링 지원을 추가한다고 발표했다.[24][25][26]이 기능에 대한 설명서는 Microsoft Developer Network에서 확인할 수 있다.[10][27]null

오라클 클라우드

오라클 Cloud Platform은 서버 인스턴스가 자동 확장 규칙을 정의하여 클러스터를 자동으로 확장하거나 축소할 수 있도록 한다.[28]이러한 규칙은 CPU 및/또는 메모리 사용률을 기반으로 하며 노드를 추가하거나 제거할 시기를 결정한다.null

Google 클라우드 플랫폼

2014년 11월 17일, 구글 컴퓨팅 엔진은 구글 클라우드 플랫폼 애플리케이션에서 사용하기 위한 자동 크기 조정 기능의 공개 베타 버전을 발표했다.[29][30][31][32]2015년 3월 현재 오토스케일 도구는 아직 베타 상태에 있다.[9]null

페이스북

2014년 8월 한 블로그 게시물에서 페이스북 엔지니어는 회사가 에너지 비용을 줄이기 위해 오토스케일링을 사용하기 시작했다고 밝혔다.블로그 포스트는 교통량이 적은 시간대에 대한 에너지 사용량이 27% 감소했으며(자정 무렵) 일반적인 24시간 주기에 비해 에너지 사용량이 10~15% 감소했다고 보도했다.[3][33]null

쿠베르네테스 수평 포드 오토스칼러

Kubernetes 수평 포드 오토스칼러는 관찰된 CPU 활용률(또는 베타 지원, 기타 애플리케이션 제공 메트릭)[34]을 기반으로 복제 컨트롤러, 배포 또는 복제본포드 수를 자동으로 확장

대체 자동 확장 의사 결정 접근 방식

기본적으로 자동 크기 조정은 트래픽 확장을 처리하기 위해 사후 대응적 의사결정 접근 방식을 사용한다. 즉, 확장 작업은 메트릭의 실시간 변화에 대응하여만 이루어진다.어떤 경우에는, 특히 변화가 매우 빠르게 발생할 때, 확장성에 대한 이러한 사후 대응적 접근방식은 불충분하다.두 가지 다른 종류의 자동 크기 조정 의사결정 접근방식이 아래에 설명되어 있다.null

스케줄링된 자동 크기 조정 접근 방식

이것은 하루 중 특정 시간에 자동스케일링 그룹의 최소 크기, 최대 크기 또는 원하는 용량을 변경하는 자동스케일링 접근법이다.예를 들어 하루 중 특정 시간에 트래픽 부하가 증가하거나 감소하는 것으로 알려진 경우, 스케줄링된 확장이 유용하지만, 이러한 변화는 반응적 접근 기반 자동 확장에 기반하여 충분히 빠르게 대응하기에는 너무 갑작스러운 것이다.AWS 자동 스케일링 그룹에서는 예약된 스케일링을 지원한다.[35]null

예측 자동 크기 조정

자동 확장에 대한 이 접근방식은 예측 분석을 사용한다.최근 사용 트렌드를 과거 사용 데이터뿐 아니라 다른 종류의 데이터까지 결합해 향후 사용량을 예측하고, 이러한 예측을 바탕으로 자동스케일하자는 취지다.null

넷플릭스는 인프라 부분과 특정 워크로드에 대해 예측 분석 엔진인 Scryer가 Amazon의 반응형 자동 스케일링 접근법보다 더 나은 결과를 제공한다는 것을 발견했다.특히 다음과 같은 경우에 더 좋았다.[36][33]

  • 가까운 장래에 수요가 급증하는 것을 확인하고 용량을 미리 준비
  • 전체 가용성 영역 및 지역의 장애와 같은 대규모 운영 중단 처리
  • 다양한 트래픽 패턴 처리, 다양한 시간에 일반적인 수요 변화 수준 및 비율에 기반하여 스케일아웃 또는 스케일아웃 속도에 대한 유연성 제공

2018년 11월 20일, AWS는 자동 스케일링 서비스의 일부로 예측 확장이 가능할 것이라고 발표했다.[37]null

참고 항목

참조

  1. ^ "Above the Clouds: A Berkeley View of Cloud Computing" (PDF). Berkeley EECS. February 10, 2009. Retrieved March 21, 2015.
  2. ^ a b "Auto Scaling". Amazon Web Services. Retrieved March 21, 2015.
  3. ^ a b c Wu, Qiang (August 8, 2014). "Making Facebook's software infrastructure more energy efficient with Autoscale". Facebook Code Blog. Retrieved March 21, 2015.
  4. ^ a b Laderman, Zev (April 22, 2012). "The 10 Biggest Mistakes Made With Amazon Web Services". TechCrunch. Retrieved March 21, 2015.
  5. ^ Park, Andrew; Denlinger, Darrell; Watson, Coburn (September 18, 2015). "Creating Your Own EC2 Spot Market". Netflix. Retrieved December 16, 2016.
  6. ^ a b Wittig, Michael (December 26, 2015). "5 AWS mistakes you should avoid". cloudonaut. Retrieved December 16, 2016.
  7. ^ a b Orzell, Greg; Becker, Justin (January 18, 2012). "Auto Scaling in the Amazon Cloud". Netflix Tech Blog. Retrieved March 21, 2012.
  8. ^ a b "What Is Auto Scaling?". Amazon Web Services. Retrieved December 16, 2016.
  9. ^ a b "Autoscaler". Google Cloud Platform. Retrieved March 21, 2015.
  10. ^ a b "Autoscaling Guidance". Microsoft Developer Network.
  11. ^ Cubrilovic, Nik (August 24, 2006). "Almost Exclusive: Amazon Readies Utility Computing Service". TechCrunch. Retrieved December 4, 2016.
  12. ^ Barr, Jeff (August 25, 2006). "Amazon EC2 Beta". Amazon Web Services Blog. Retrieved May 31, 2013.
  13. ^ Work, Henry (April 3, 2008). "Scalr: The Auto-Scaling Open-Source Amazon EC2 Effort". TechCrunch. Retrieved March 21, 2015.
  14. ^ Howlett, Dennis (June 25, 2008). "RightScale cloud management extends to MySQL. RightScale, which specializes in cloud computing management for the Amazon Web Services platform today announced support for MySQL Enterprise. The service, which goes live July 1, provides automated deployment, management and scaling, coupled with MySQL Enterprise premium-level support for large database applications". ZDNet. Retrieved December 16, 2016.
  15. ^ von Eicken, Thorsten (April 23, 2008). "Animoto's Facebook Scale-Up". Archived from the original on December 20, 2016. Retrieved December 16, 2016.
  16. ^ Barr, Jeff (May 18, 2009). "New Features for Amazon EC2: Elastic Load Balancing, Auto Scaling, and Amazon CloudWatch". Amazon Web Services. Retrieved June 15, 2016.
  17. ^ "What is autoscaling?". TechTarget. Retrieved March 21, 2015.
  18. ^ Barr, Jeff (July 30, 2014). "Auto Scaling Update – Lifecycle Management, Standby State, and DetachInstances". Amazon Web Services (official blog). Retrieved March 21, 2015.
  19. ^ "Auto Scaling Command Line Tool". Amazon Web Services (community-edited page). Retrieved March 21, 2015.
  20. ^ "Automatic Scaling with Amazon ECS". 18 May 2016.
  21. ^ Adams, Rich (February 3, 2014). "AWS Tips I Wish I'd Known Before I Started. A collection of random tips for Amazon Web Services (AWS) that I wish I'd been told a few years ago, based on what I've learned by building and deploying various applications on AWS". Retrieved December 16, 2016.
  22. ^ "How to Use Amazon EC2 Spot Instances". wikiHow. Retrieved December 16, 2016.
  23. ^ "The Netflix Simian Army". Netflix. July 19, 2011. Retrieved December 5, 2016.
  24. ^ Lardinois, Frederic (June 27, 2013). "Microsoft Adds Auto Scaling To Windows Azure". TechCrunch. Retrieved March 21, 2015.
  25. ^ "Microsoft to add autoscaling, alerts to Windows Azure". ZDNet. June 27, 2013. Retrieved March 21, 2015.
  26. ^ Butler, Brandon (August 7, 2013). "Google, Microsoft play catch up to Amazon, add load balancing, auto-scaling to their clouds". Network World. Retrieved March 21, 2015.
  27. ^ "The Autoscaling Application Block". Microsoft Developer Network. Retrieved March 21, 2015.
  28. ^ "Administering PaaS Services". Oracle Help Center. Retrieved 2018-05-16.
  29. ^ Balejko, Filip (November 17, 2014). "Autoscaling, welcome to Google Compute Engine". Google Cloud Platform blog. Retrieved March 21, 2015.
  30. ^ Protalinski, Emil (November 17, 2014). "Google Compute Engine gets Autoscaler to adjust app resources based on varying traffic and workloads". VentureBeat. Retrieved March 21, 2015.
  31. ^ Lardinois, Frederic (November 17, 2014). "Google Brings Autoscaling To Compute Engine". TechCrunch. Retrieved March 21, 2015.
  32. ^ Verge, Jason (November 17, 2014). "Google Launches Autoscaling Beta on Compute Engine". Data Center Knowledge. Retrieved March 21, 2015.
  33. ^ a b "Autoscaling: How the Cloud Provides a Tremendous Boost". Morpheus. November 2, 2016. Retrieved December 16, 2016.
  34. ^ "Horizontal Pod Autoscaler Walkthrough". Retrieved June 21, 2018.
  35. ^ "Scheduled Scaling". Amazon Web Services. Retrieved December 16, 2016.
  36. ^ Jacobson, Daniel; Yuan, Danny; Joshi, Neeraj. "Scryer: Netflix's Predictive Auto Scaling Engine". The Netflix Tech Blog. Netflix. Retrieved 28 May 2015.
  37. ^ Barr, Jeff (November 20, 2018). "New – Predictive Scaling for EC2, Powered by Machine Learning". Amazon Web Services. Retrieved November 23, 2018.