Amazon Web Services 한국 블로그

Amazon EC2 Auto Scaling 스팟 인스턴스 활용 방법 및 고객 사례

Amazon EC2 스팟 인스턴스는 오래 전인 2009년에 출시되었습니다. 이 인스턴스는 온디맨드 요금과 비교하여 최대 90% 할인된 금액으로 제공되는 예비 EC2 컴퓨팅 용량입니다. 스팟 인스턴스는 EC2로 인해 중단될 수 있다는 점(2분 사전 공지)을 제외하고 온디맨드 인스턴스와 동일합니다. Amazon EC2 Auto Scaling을 사용하면 단일 EC2 Auto Scaling 그룹 내에서 스팟 인스턴스, 온디맨드 인스턴스 및 Savings Plan에 속하는 인스턴스 크기를 원활하게 조정할 수 있습니다.

수년에 걸쳐 Simplified Price Model, 용량 최적화 조정 전략(잠시 후 자세히 설명), EC2 RunInstance API 외에도 훨씬 많은 강력한 스팟 기능을 추가했습니다.

EC2 Auto Scaling을 통해 스팟 인스턴스에서 두 가지 할당 전략을 사용할 수 있습니다.

최저가 – 처리 시 최저가의 스팟 인스턴스 풀에서 인스턴스를 할당합니다. 스팟 요금은 장기적인 수요와 공급 트렌드에 따라 시간이 지나면서 서서히 바뀌지만, 용량은 실시간으로 변동합니다. 최저가 전략은 스팟 인스턴스를 배포할 때 풀 용량 깊이를 고려하지 않으므로, 이 할당 전략은 중단 비용이 낮은 내결함성 워크로드에 적합합니다.

용량 최적화 – 실행 중인 인스턴스 수에 맞게 최적의 용량으로 스팟 인스턴스 풀의 인스턴스를 할당하고, 실시간 용량 데이터를 활용합니다. 이 용량 전략은 중단 비용이 높은 워크로드에 적합합니다. 또한 선택한 인스턴스 패밀리, 크기 및 세대를 통해 유연성을 확보할 수 있습니다.

오늘은 용량 최적화 할당 전략을 사용하는 방법을 보여드리고 두 가지 고객 사례를 설명하겠습니다.

Amazon EC2 Auto Scaling 용량 할당 사용
먼저 Go to the new console(새 콘솔로 이동)을 클릭하여 다음과 같은 새 Auto Scaling 콘솔로 전환하겠습니다.

새 콘솔에는 Auto Scaling의 작동 원리를 설명해 주는 유용한 다이어그램이 포함되어 있습니다. Create Auto Scaling group(Auto Scaling 그룹 생성)을 클릭하여 계속 진행합니다.

Auto Scaling 그룹 이름을 지정하고 평소대로 시작 템플릿을 선택하고 나서 Next(다음)를 클릭합니다.

시작 템플릿에 대해 잘 모르시는 분은 Recent EC2 Goodies – Launch Templates and Spread Placement(시작 템플릿 및 분산 배치)를 읽고 시작 템플릿에 대한 모든 사항을 알아보시기 바랍니다.

제 시작 템플릿은 인스턴스 유형을 지정하지 않았기 때문에 Combine purchase options and instance types(구매 옵션과 인스턴스 유형 결합)이 미리 선택되어 있고 변경할 수 없습니다. 용량 최적화 할당 전략도 선택되고, 온디맨드와 스팟 인스턴스 균형이 적절하게 설정되어 있습니다.

이제 기본 인스턴스 유형을 선택하면 콘솔이 다른 유형을 추천합니다. 기본 인스턴스 유형 생성 내에서 패밀리와 세대(예: m3, m4, m5) 유연성을 선택하거나 크기 유연성(예: large, xlarge, 12xlarge 등)을 선택할 수 있습니다. 앞서 언급했듯이 이 전략은 유연성을 개선하므로, 관련 인스턴스를 최대한 많이 선택하는 것이 유용합니다.

또한 사용하기로 결정한 인스턴스 유형별로 가중치를 지정할 수 있습니다(이것은 특히 크기 유연성을 활용할 때 유용함).

또한 여기서 (표시되지 않았지만) VPC와 원하는 서브넷을 선택하고, Next(다음)를 클릭하고 평소처럼 계속 진행합니다. 서브넷/가용 영역에 대한 유연성도 유용합니다. 자세한 내용은 Auto Scaling Groups with Multiple Instance Types and Purchase Options(여러 인스턴스 유형 및 구매 옵션을 사용하는 Auto Scaling 그룹)를 읽어보시기 바랍니다.

그렇다면 이제 AWS 고객 Skyscanner와 Mobileye가 이 기능을 어떻게 활용하고 있는지 살펴보겠습니다!

Skyscanner의 용량 최적화 할당
Skyscanner는 온라인 여행 예약 사이트입니다. 이 회사는 스팟 인스턴스에서 자체 사이트의 프런트엔드 처리를 실행하여 일일 최대 40,000개의 코어를 효율적으로 활용합니다. Skyscanner의 온라인 플랫폼은 스팟 인스턴스에서 전적으로 지원하는 Kubernetes 클러스터에서 실행됩니다(이 동영상을 시청하여 자세히 알아보기). 용량 최적화 할당은 다음을 비롯하여 다양한 이점을 제공했습니다.

출시 소요 시간 단축 – 더 저렴한 비용으로 더 많은 컴퓨팅 파워를 이용할 수 있어 새 서비스를 시작하는 시간이 기존 인프라 사용할 경우 6~7주에서 AWS 클라우드를 사용하면 단 50분으로 단축할 수 있었습니다.

비용 절감 – 가용 영역 및 인스턴스 유형에서 스팟 인스턴스를 다각화하여 전반적으로 코어당 70%까지 절감 효과를 누릴 수 있습니다.

중단 감소 – Skyscanner가 블랙 프라이데이를 준비하면서 실행한 테스트에 따르면 기존 구성(최저가)에서는 스팟 중단이 200~300회 발생했고 새로운 구성(용량 최적화)에서는 10~15회 발생했습니다.

Mobileye의 용량 최적화 할당
Mobileye(Intel 계열사)는 자율 주행 차량 및 첨단 운전자 지원 시스템(ADAS)용 비전 기반 기술을 개발합니다. 스팟 인스턴스는 분석, 기계 학습, 그리고 Docker 컨테이너에 패키징된 AWS Batch 워크로드를 실행하는 데 사용됩니다. 이 회사는 일반적으로 200,000~300,000개의 동시 코어를 사용하고, 일일 피크 사용량은 약 500,000개에 달하며 이 모든 것이 스팟에서 이뤄집니다. 다음은 하루 동안의 인스턴스 수 그래프입니다.

용량 최적화된 할당으로 전환하고 스팟 인스턴스 모범 사례에 따라 몇 가지 사항을 변경한 후 전체 중단 비율이 약 75% 감소했습니다. 이러한 변화를 통해 컴퓨팅 비용을 절감하는 동시에 애플리케이션 가동 시간을 늘리고 분석 정보 확보 시간을 단축할 수 있었습니다.

Mobileye가 스팟 인스턴스를 사용하는 방법에 대해 자세히 알아보려면 re:Invent 프레젠테이션 Navigating the Winding Road Toward Driverless Mobility(자율주행 모빌리티를 향해 와인딩 로드 탐색)를 시청하시기 바랍니다.

Jeff