[ 고지 사항 (Disclaimer) ]
본 컨텐츠는 고객의 편의를 위하여 AWS 서비스 설명을 위해 제작, 제공된 것입니다. 만약 AWS 사이트와 컨텐츠 상에서 차이나 불일치가 있을 경우 AWS 사이트 (AWS.amazon.com)가 우선합니다. 또한 AWS 사이트 상에서 한글 번역문과 영어 원문에 차이나 불일치가 있을 경우(번역의 지체로 인한 경우 등 포함), 영어 원문이 우선합니다.
본 문서는 Leveraging Amazon EC2 Spot Instances at Scale 내용에 기반하여 작성 되었습니다.
이 문서는 정보 제공의 목적으로만 제공됩니다. 본 문서의 발행일 당시 AWS의 현재 제품 오퍼링 및 실행방법 등을 설명하며, 예고 없이 변경될 수 있습니다. 고객은 본 문서에 포함된 정보나 AWS 제품 또는 서비스의 사용을 독립적으로 평가할 책임이 있으며, 각 정보 및 제품은 명시적이든 묵시적이든 어떠한 종류의 보증 없이 “있는 그대로” 제공됩니다. 본 문서는 AWS, 그 자회사, 공급업체 또는 라이선스 제공자로부터 어떠한 보증, 표현, 계약 약속, 조건 또는 보장을 구성하지 않습니다. 고객에 대한 AWS의 책임 및 의무는 AWS 계약에 의해 관리되며 본 문서는 AWS와 고객 사이의 어떠한 계약에도 속하지 않으며 계약을 변경하지도 않습니다.
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
개요
클라우드 전환을 지원하기 위해 설계된 일련의 백서 중 네 번째 백서입니다. 이 백서는 투자 가치를 극대화하고, 예측 정확성과 비용 예측 가능성을 향상시키며, 소유권과 비용 투명성을 향상시키고, 최적화 상태를 지속적으로 측정할 수 있는 역량을 갖추기 위해 노력하고 있습니다.
이 백서에서는 Amazon EC2 Spot 인스턴스에 대한 개요와 이러한 인스턴스를 효과적으로 사용하기 위한 모범 사례를 제공합니다.
스팟 인스턴스 소개
온 디맨드 및 예약 인스턴스 외에 세 번째 주요 Amazon Elastic Compute Cloud (Amazon EC2) 요금 모델은 스팟 인스턴스입니다. 스팟 인스턴스를 사용하면 온 디맨드 요금에 비해 최대 90 % 할인 된 여분의 Amazon EC2 컴퓨팅 용량을 사용할 수 있습니다. 즉, 응용 프로그램 실행 비용을 크게 줄이거나 동일한 예산으로 응용 프로그램의 컴퓨팅 용량과 처리량을 늘릴 수 있습니다. 온 디맨드 인스턴스와 스팟 인스턴스의 유일한 차이점은 EC2에 용량이 다시 필요할 때 2 분의 알림으로 EC2에서 스팟 인스턴스를 중단 할 수 있다는 것입니다.
예약 인스턴스와 달리 스팟 인스턴스에는 사전 약정이 필요하지 않습니다. 그러나 스팟 가격이 최대 가격을 초과하거나 지정한 인스턴스 유형에 사용할 수 있는 용량이 없으면 스팟 인스턴스가 종료 될 수 있으므로 유연한 워크로드에 가장 적합합니다.
스팟 인스턴스를 사용하는 경우
다양한 내결함성 및 유연한 애플리케이션에 스팟 인스턴스를 사용할 수 있습니다. 예로는 웹 서버, API 백엔드, 지속적인 통합 / 연속 개발 및 Hadoop 데이터 처리가 있습니다.
Amazon Simple Storage Service (Amazon S3), Amazon Elastic Block Store (Amazon EBS), Amazon Elastic File System (Amazon EFS), Amazon DynamoDB 또는 Amazon Relational Database Service (Amazon RDS)를 포함하여 지속적으로 데이터를 지속적으로 저장하는 워크로드 — 스팟 인스턴스와 효과적으로 작동 할 수 있습니다.
또한 스팟 인스턴스를 활용하여 상태 비 저장 웹 서비스, 이미지 렌더링, 빅 데이터 분석 및 대규모 병렬 계산과 같은 애플리케이션을 실행하고 확장 할 수 있습니다. 스팟 인스턴스는 일반적으로 필요할 때 온 디맨드 인스턴스를 보완하는데 사용되며 워크로드의 100 %를 처리하지는 않습니다. 그러나 가끔 다운 타임이 허용되는 개발 및 테스트 서버와 같은 비 상태 비 프로덕션 애플리케이션에 대해 모든 스팟 인스턴스를 사용할 수 있습니다. 민감한 워크로드 또는 데이터베이스에는 적합하지 않습니다.
스팟 인스턴스를 요청하는 방법
스팟 인스턴스를 사용하려면 인스턴스 수, 인스턴스 유형, 가용 영역 및 인스턴스 시간당 지불 할 최대 가격이 포함 된 스팟 인스턴스 요청을 생성합니다. Amazon EC2 콘솔 또는 Amazon EC2 API에서 인스턴스 시작 마법사를 사용하여 스팟 인스턴스 요청을 생성 할 수 있습니다.
콘솔을 사용하여 스팟 인스턴스 요청을 생성하는 방법에 대한 자세한 내용은 스팟 인스턴스 요청 생성을 참조하십시오. Amazon EC2 API를 통해 스팟 인스턴스를 요청하는 방법에 대한 자세한 내용은 Amazon EC2 API Reference의 RequestSpotInstances를 참조하십시오.
Amazon EMR, AWS Data Pipeline, AWS CloudFormation 및 Amazon ECS (Amazon Elastic Container Service)와 같은 다른 AWS 서비스와 타사 도구를 통해 스팟 인스턴스를 시작할 수도 있습니다.
스팟 인스턴스 요청에 대한 자세한 내용은 스팟 인스턴스 요청을 참조하십시오.
스팟 인스턴스 작동 방식
스팟 가격은 EC2 예비 용량에 대한 수요와 공급의 장기 추세에 의해 결정됩니다. 실행중인 인스턴스의 각 인스턴스 시간 시작 시 적용되는 스팟 가격을 가장 가까운 초 단위로 청구합니다.
스팟 인스턴스를 사용하면 지정한 최대 가격 이상을 지불하지 않습니다. 스팟 가격이 지정된 인스턴스의 최대 가격을 초과하거나 용량을 더 이상 사용할 수 없는 경우 인스턴스가 자동으로 종료됩니다 (지속적인 요청에서 이 동작을 선택하면 중지 / 최대 절전 모드가 됩니다).
스팟 가격은 언제든지 변경 될 수 있지만 일반적으로 시간당 한 번 변경되며 대부분의 경우 덜 자주 변경됩니다. AWS는 describe-spot-price-history 명령과 AWS Management Console을 통해 스팟 인스턴스의 현재 스팟 가격 및 과거 가격을 게시합니다. 이를 통해 시간이 지남에 따라 스팟 가격의 변동 수준과 시기를 평가할 수 있습니다.
스팟 인스턴스는 실행 중 다른 EC2 인스턴스와 똑같이 작동하며 더 이상 필요하지 않으면 종료 될 수 있습니다. 인스턴스를 종료하면 온 디맨드 또는 예약 인스턴스와 마찬가지로 사용 된 부분 시간에 대해 요금을 지불합니다. 그러나 스팟 가격이 최대 가격을 초과하고 Amazon EC2가 스팟 인스턴스를 중단 한 경우 부분 시간 사용에 대해서는 요금이 청구되지 않습니다.
인스턴스 종료 관리
스팟은 스팟 인스턴스가 실행 및 종료 (또는 중지 / 최대 절전 모드)되는 시기를 더 잘 추적하고 제어하는 데 도움이 되는 세 가지 기능을 제공합니다.
· 종료 통지 — 중단 전에 상태를 저장하거나 최종 로그 파일을 업로드하거나 Elastic Load Balancing에서 스팟 인스턴스를 제거해야하는 경우 중단 2 분 전에 발행 된 종료 알림을 사용할 수 있습니다. 중단 관리에 대한 자세한 내용은 스팟 인스턴스 중단을 참조하십시오.
· 지속적인 요청 — 인스턴스가 중단 될 때 새 인스턴스가 대신 시작되도록 요청을 열어 두도록 선택할 수 있습니다. 중단시 Amazon EBS 지원 인스턴스를 중지하고 스팟에 원하는 가격으로 용량이 있으면 다시 시작할 수도 있습니다. 지속적 및 일회성 요청에 대한 자세한 내용은 스팟 인스턴스 요청 상태를 참조하십시오.
· 차단 시간 — 1–6 시간 동안 지속적으로 워크로드를 실행해야하는 경우 스팟 인스턴스를 요청할 때 기간 요구 사항을 지정할 수도 있습니다. 스팟 인스턴스의 차단 시간에 대한 자세한 내용은 스팟 인스턴스의 지속 시간 지정 단원을 참조하십시오.
런칭 그룹
런칭 그룹 또는 가용 영역 그룹에서 한 번에 스팟 인스턴스 세트를 런칭할 수 있습니다. 런칭 그룹을 사용하면 스팟 서비스가 런칭 그룹의 인스턴스 중 하나를 종료해야 하는 경우 모두 인스턴스를 종료해야 합니다. 가용 영역 그룹을 사용하면 스팟 서비스는 동일한 가용 영역에서 일련의 스팟 인스턴스를 런칭합니다.
런칭 그룹이 필요한 경우 그룹 크기를 최소화하십시오. 그룹이 클수록 이행 가능성이 낮아집니다. 또한 특정 가용 영역을 지정하면 성공적으로 런칭할 가능성이 높아질 수 있습니다. 런칭 그룹 및 가용 영역 그룹에 대한 자세한 내용은 스팟 인스턴스 작동 방식을 참조하십시오.
스팟 집합
스팟 집합을 사용하면 용량 단위당 최저 가격으로 스팟 인스턴스를 자동으로 요청할 수 있습니다. 스팟 집합을 사용하려면 애플리케이션 요구 사항 (인스턴스, vCPU, 메모리, 스토리지 또는 네트워크 처리량을 포함한 모든 단위), 인스턴스에 대한 하나 이상의 시작 사양을 기반으로 하는 대상 용량을 포함하는 스팟 집합을 요청합니다. 지불하고자 하는 최대 가격. 스팟 집합에 대한 자세한 내용은 스팟 집합의 작동 방식을 참조하십시오.
스팟 요청 제한
기본적으로 AWS 리 전당 20 개의 스팟 인스턴스로 계정 제한이 있습니다. 스팟 인스턴스를 종료했지만 요청을 취소하지 않으면 Amazon EC2가 종료를 감지하고 요청을 닫을 때까지 요청이 이 제한에 대해 계산됩니다.
스팟 인스턴스 한계는 동적입니다. 계정이 새 계정인 경우 시작하기 위해 한도는 20보다 낮을 수 있지만 시간이 지남에 따라 증가합니다. 또한 계정에 특정 스팟 인스턴스 유형에 대한 제한이 있을 수 있습니다. 스팟 인스턴스 요청을 제출하고 최대 스팟 인스턴스 수 초과 오류가 표시되면 AWS 지원 센터로 이동하여 한도 증가를 요청할 수 있습니다. 기본 제한 및 제한 증가 요청 방법에 대한 자세한 내용은 AWS 서비스 제한을 참조하십시오.
스팟 인스턴스의 상태 확인
스팟 상태를 검토하면 스팟 요청 상태가 변경되었거나 변경되지 않은 이유를 확인할 수 있으며 스팟 요청을 최적화하여 스팟 요청을 이행하는 방법을 배울 수 있습니다. 스팟 상태를 찾으려면 AWS 명령 줄 인터페이스 (CLI)를 사용하여 DescribeSpotInstanceRequests API 작업 또는 ec2-describe-spot-instance-requests를 사용할 수 있습니다.
AWS Management Console은 자세한 결제 보고서를 제공하며 모든 인스턴스에 대한 스팟 인스턴스 시작 및 종료 시간을 보여줍니다. API를 통해 과거 스팟 가격과 비교하여 결제 보고서를 확인하여 청구 된 스팟 가격이 올바른지 확인할 수 있습니다.
스팟 인스턴스 중단
중단 될 때 Amazon EBS 지원 스팟 인스턴스를 종료하는 대신 스팟 서비스를 중지하도록 선택할 수 있습니다. 그러면 스팟은 가격 및 시간 요구 사항 내에서 용량을 다시 사용할 수 있게 되면 중지 된 상태에서 인스턴스를 다시 시작하여 요청을 이행 할 수 있습니다.
이 새로운 기능을 사용하려면 영구 스팟 요청을 제출할 때 중단 동작으로 종료 대신 종료를 선택하십시오. 중지를 선택하면 중단 시 스팟이 인스턴스를 종료합니다. EBS 루트 장치 및 연결된 EBS 볼륨이 저장되고 데이터가 유지됩니다. 가격 및 시간 요구 사항 내에서 용량을 다시 사용할 수 있게 되면 스팟이 인스턴스를 다시 시작합니다. 다시 시작하면 EBS 루트 장치가 이전 상태에서 복원되고 이전에 연결된 데이터 볼륨이 다시 연결되고 인스턴스의 인스턴스 ID가 유지됩니다.
이 기능은 집합 유지 옵션이 활성화 된 영구 스팟 요청 및 스팟 집합에 사용할 수 있습니다. 인스턴스가 중지 된 동안에는 인스턴스 사용량에 대한 요금이 청구되지 않습니다. EBS 볼륨 스토리지는 표준 요금으로 청구됩니다.
스팟 모범 사례
인스턴스 유형 요구 사항, 예산 요구 사항 및 응용 프로그램 디자인에 따라 응용 프로그램에 다음과 같은 모범 사례를 적용하는 방법이 결정됩니다.
· 인스턴스 유형에 대해 유연해야 합니다. 가능한 경우 다른 인스턴스 유형에서 애플리케이션을 테스트 하십시오. 가용 영역의 각 인스턴스 유형마다 가격이 독립적으로 변동하기 때문에 인스턴스 유형 유연성이 있는 경우 동일한 가격으로 더 많은 컴퓨팅 용량을 얻을 수 있습니다. 요구 사항을 충족하는 모든 인스턴스 유형을 요청하여 비용을 추가로 줄이고 애플리케이션 성능을 향상 시키십시오. 스팟 집합을 사용하면 여러 인스턴스 유형을 동시에 요청할 수 있습니다.
· 가격이 많이 변하지 않은 풀을 선택하세요. 가격은 장기 수요에 따라 조정되므로 인기있는 인스턴스 유형 (예 : 최근에 출시 된 인스턴스 제품군)은 더 많은 가격 조정을 하는 경향이 있습니다. 따라서 덜 인기있는 이전 세대 인스턴스 유형을 선택하면 비용이 절감되고 중단이 줄어 듭니다. 마찬가지로, 동일한 인스턴스 유형이 서로 다른 가용 영역에서 다른 가격을 가질 수 있습니다.
· 중단의 영향을 최소화 하십시오. Amazon EC2 Spot의 최대 절전 기능을 사용하면 용량을 사용할 수 있을 때 Amazon EBS 지원 인스턴스를 일시 중지했다가 다시 시작할 수 있습니다. 최대 절전 모드는 랩톱 덮개를 닫고 여는 것과 같습니다. 응용 프로그램이 중단 된 곳에서 바로 시작됩니다. 자세한 내용은 인스턴스 최대 절전을 참조하십시오.
다른 AWS 서비스와의 스팟 통합
Amazon EC2 스팟 인스턴스는 여러 AWS 서비스와 통합됩니다.
Amazon EMR 통합
스팟 인스턴스에서 Amazon EMR 클러스터를 실행하고 관리 형 Hadoop 클러스터에서 대량의 데이터 처리 비용을 크게 줄일 수 있습니다. 인스턴스 집합 기능을 사용하여 스팟 인스턴스와 온 디맨드 인스턴스 및 예약 인스턴스를 쉽게 혼합하여 EMR 클러스터를 실행할 수 있습니다. Spot을 사용한 EMR 클러스터 설정에 대한 자세한 내용은 EMR 개발자 안내서를 참조하십시오.
AWS CloudFormation 통합
AWS CloudFormation을 사용하면 EC2 스팟을 포함한 AWS 리소스 모음을 쉽게 구성하고 배포 할 수 있으며 런타임에 전달할 종속성 또는 특수 매개 변수를 설명 할 수 있습니다. 스팟 인스턴스를 사용할 수 있는 AWS CloudFormation을 사용하는 샘플 고성능 컴퓨팅 프레임 워크는 cfncluster 데모를 참조하십시오. Spot을 사용한 AWS CloudFormation 설정에 대한 자세한 내용은 Amazon EC2 사용 설명서를 참조하십시오.
Auto Scaling 통합
Amazon EC2 Auto Scaling 그룹을 사용하여 스팟 인스턴스를 시작 및 관리하고, 애플리케이션 가용성을 유지하며, 정의한 조건 및 최대 가격에 따라 Amazon EC2 스팟 용량을 자동으로 늘리거나 줄일 수 있습니다. 스팟 인스턴스와 함께 Amazon EC2 Auto Scaling 사용에 대한 자세한 내용은 Amazon EC2 Auto Scaling 사용 설명서를 참조하십시오.
Amazon ECS 통합
스팟 인스턴스에서 Amazon ECS 클러스터를 실행하여 Amazon ECS에서 컨테이너화 된 애플리케이션을 실행하는 운영 비용을 줄일 수 있습니다. Amazon ECS 콘솔은 Amazon EC2 스팟과 긴밀하게 통합되어 있으며 클러스터 생성 마법사를 사용하여 스팟 인스턴스로 ECS 클러스터를 쉽게 설정할 수 있습니다.
Amazon Batch 통합
AWS Batch는 AWS에서 배치 컴퓨팅 워크로드를 계획, 예약 및 실행합니다. AWS Batch는 사용자 대신 스팟 인스턴스를 동적으로 요청하여 배치 작업 실행 비용을 줄입니다.
결론
유연한 컴퓨팅 요구가 있거나 예산을 늘리지 않고 용량을 늘리려는 경우 스팟 인스턴스는 AWS 비용을 최적화하는 좋은 방법이 될 수 있습니다. 워크로드를 올바르게 설계함으로써 광범위한 요구에 대한 스팟 가격 책정을 활용할 수 있습니다. 스팟 인스턴스에 대한 자세한 내용은 스팟 인스턴스 개요를 참조하십시오.
AWS는 IT 인프라 비용을 절감하고 기업의 핵심가치에 더욱 집중할 수 있도록 합니다.
AWS에 대한 자세한 문의사항은 여기를 눌러 주세요.
빌드업웍스는 AWS 컨설팅 파트너로 고객 비즈니스를 최우선으로 하며 고객의 클라우드의 성공적인 시작과 운영을 지원합니다.