AWS Spot Fleet 이란 - AWS Spot Fleet ilan

Spot Instance

스팟 인스턴스를 사용하려면 먼저 최대 스팟 가격을 결정해야한다. 스팟 가격이 최대 스팟 가격 보다 낮은 경우 인스턴스가 프로비저닝 된다.

  • 시간당 스팟 가격은 용량 및 지역에 따라 다르다
  • 스팟 가격이 최대 값을 초과하는 경우 2분 안에 인스턴스를 중지할지 또는 종료할지 선택할 수 있다.

스팟 블록을 사용하여 스팟 가격이 최대 스팟 가격을 초과하더라도 스팟 인스턴스가 종료되지 않도록 할 수 있다. 1시간~6시간 동안 스팟 블록을 설정할 수 있다.

Spot Instances 유용한 점

  • Big data and analytics - 빅데이터와 분석
  • containerized workloads - 컨테이너화 된 워크로드
  • ci/cd and testing - ci / cd 및 테스트
  • web services - 웹서비스
  • image and media rendering - 이미지 및 미디어 렌더링
  • high-performance computing - 고성능 컴퓨팅

Spot Instances 단점

  • Persistent workloads - 지속적인 워크로드
  • critical jobs - 중요한 작업
  • databases - 데이터베이스

Spot Fleets?

Spot Fleets스팟 인스턴스선택적으로 온 디맨드 인스턴스의 모음이다.

Spot Fleet는 Spot Fleet 요청에서 지정한 목표 용량을 충족하기 위해 스팟 인스턴스 및 온디맨드 인스턴스 수를 시작하려고한다. 사용 가능한 용량이 있고 요청에서 지정한 최대 가격이 현재 스팟 가격을 초과하면 스팟 인스턴스에 대한 요청이 이행된다. Spot Fleet은 또한 스팟 인스턴스가 중단된 경우 대상 용량 집합을 유지하려고 시도한다.

스팟 플릿을 사용하면 단위당 가장 낮은 요금을 제공하는 여러 스팟 인스턴스를 자동으로 요청하고 관리할 수 있다. 스팟 플릿을 사용하면 목표 용량을 시작 및 유지하고, 중단되거나 직접 종료한 인스턴스를 대체하는 리소스를 자동으로 요청할 수 있다.

Spot Fleet는 목표 용량을 가격 제한과 일치시키려고 시도한다

  1. 다른 시작풀을 설정한다. EC2 인스턴스 유형, 운영체제, 가용영역 등을 정의한다
  2. 풀을 여러개 가질 수 있으며 fleet은 정의한 전략에 따라 구현할 가장 좋은 방법을 선택
  3. 가격 임계 값 또는 원하는 용량에 도달하면 스팟 집합이 인스턴스 시작을 중지한다.

Spot Fleets으로 다음 전략을 가질 수 있다

  • 용량 최적화
  • 낮은 가격
  • 다양화
  • 사용할 인스턴스 풀 수

Fleet은 함대 라는 뜻을 가지고 있는데 EC2 Spot Fleet도 그 뜻 대로 다양한 EC2 instance를 조건에 맞게 생성 및 관리 할 수 있게 해주는 기능을 제공한다.

EC2 Spot Fleet을 사용하는 가장 큰 동기는 아마 비용일 것이다. 예산이 무한대로 충분하다면 그냥 필요한 만큼 + 필요할 것 같은 만큼 자원을 할당하고 여유롭게 사용하면 되겠지만 현실은 예산이 정해져 있고 이 정해진 예산내에서 최대한 효율적으로 운영을 해야 하기 때문이다.

EC2 Spot Fleet은 원하는 instance의 개수와 type을 설정 하면 조건 내에서 가장 저렴한 조합의 instance로 생성한다.  설정할 수 있는 조건으로는

  • instance type
  • on demand vs spot instance
  • weight for instance type
  • etc…

와 같이 다양하게 설정할 수 있다.

자세한 설정 방법은 아래 참고를 확인하기 바란다.

참고

  • //blog.wisen.co.kr/pages/blog/blog-detail.html?idx=6116
  • //docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet.html
  • //docs.aws.amazon.com/emr/latest/ManagementGuide/emr-instance-fleet.html

글 네비게이션

스팟 플릿 요청 유형

스팟 플릿 요청에는 다음 두 가지 유형이 있습니다.

request

요청 유형을 request로 구성하면 스팟 플릿이 원하는 용량을 얻기 위한 비동기식 일회성 요청을 합니다. 그 뒤에 스팟 중단으로 인해 용량이 감소할 경우 플릿은 스팟 인스턴스를 보충하려고 하지 않으며 용량을 사용할 수 없는 경우 대체 스팟 용량에서 요청을 제출하지 않습니다.

maintain

요청 유형을 maintain으로 구성하면 스팟 플릿은 원하는 용량을 얻기 위한 비동기식 요청을 하고 중단된 모든 스팟 인스턴스를 자동으로 보충해 용량을 유지합니다.

Amazon EC2 콘솔에서 요청 유형을 지정하려면 스팟 플릿 요청을 생성할 때 다음을 수행합니다.

  • request 유형의 스팟 플릿을 생성하려면 목표 용량 유지(Maintain target capacity) 확인란을 선택 취소합니다.

  • maintain 유형의 스팟 플릿을 생성하려면 목표 용량 유지(Maintain target capacity) 확인란을 선택합니다.

자세한 내용은 정의된 파라미터를 사용하여 스팟 플릿 요청 생성(콘솔) 섹션을 참조하세요.

두 가지 유형의 요청 모두 할당 전략에 따른 이점을 얻을 수 있습니다. 자세한 내용은 스팟 인스턴스를 위한 할당 전략 섹션을 참조하세요.

EC2 Spot Fleet API – 한번에 수천개의 스팟 인스턴스 관리하기 글을 통해 한번의 요청에서 EC2 스팟 인스턴스 집합을 만들 수 있습니다. 스팟 집합 대상 용량을 지정하고 시간 당 입찰 가격을 입력하고, 인스턴스 유형을 선택하면됩니다.

백그라운드 작업을 통해 AWS는 최저가 스팟 인스턴스를 시작하여 필요한 대상 용량 (인스턴스 또는 가상 vCPU의 숫자로 표기)을 유지합니다. 인스턴스 집합 가격 상승으로 종료되면, 그 시점에서 최저가 인스턴스 교체가 시작됩니다.

신규 자동 확장 기능
오늘 스팟 집합 모델에 Auto Scaling을 추가함으로서 기능을 더욱 강화하였습니다. Amazon CloudWatch 메트릭을 기반으로 스팟 집합을 스케일-업 혹은 다운 할 수 있게되었습니다. 본 통계치를 통해 EC2, Amazon EC2 Container Service, 또는 Amazon Simple Queue Service (SQS) 등의 AWS 서비스 역시 사용할 수 있습니다. 또한, 응용 프로그램에서 만든 맞춤 통계수치를 사용하여 자동 스케일링이 시작되도록 할 수도 있습니다. 따라서, 이러한 통계 수치를 사용하여 스팟 집합의 크기 제어, 조건이나 부하가 바뀌더라도 응용 프로그램 가용성 및 성능과 비용을 세부적으로 제어 할 수 있습니다.

아래는 스팟 집합 자동 스케일링에 사용할 수 있는 애플리케이션의 예제들입니다.

  • 콘테이너 동작 – Amazon ECS에서 CPU 및 메모리 사용량을 기반한 콘테이너 기반 애플리케이션의 확장
  • 일괄 작업 – SQS 큐의 메시지 수를 기반한 일괄 작업의 확장
  • 스팟 집합 – MaxPercentCapacityAllocation와 같은 스팟 집합 통계를 기반한 집합 확장
  • 웹 서비스 – 초당 평균 요청 및 반응 시간에 따른 웹 서비스 확장

스팟 인스턴스 콘솔이나 AWS Command Line Interface (CLI), AWS CloudFormation, 및 AWS SDKs API 호출을 자동 스케일링을 설정할 수 있습니다.

잠깐 실제 콘솔에서 설정 방법을 살펴 보고자 합니다. 스팟 집합을 시작하고 이를 스케일업/다운을 하기 위해 Request and maintain 요청 형식을 선택합니다.

스팟 집합이 1분내로 올라옵니다.

예제로 SQS 큐를 만들고 일부 메시지를 큐에 넣은 다음 CloudWatch 알람​​(AppQueueBackingUp)을 정의했습니다. 메시지 큐에 10 건 이상의 메시지가 들어가면 알람이 시작됩니다.

또한, 알람 (AppQueueNearlyEmpty)도 정의했습니다. 이는 메시지 큐에 메시지가 2 건 이하가 될 때, 취소되는 것입니다.

마지막으로, 알람을 스팟 집합의 ScaleUpScaleDown 정책에 연결했습니다.

이 글을 쓰기 전에 SQS 대기열에 5개의 메시지를 넣었습니다. 스팟 집합을 시작하고 스케일링 정책을 설정한 후, 추가로 5개의 메시지를 보내 알람이 시작되는 것을 기다렸습니다.

스팟 함대 용량이 예상대로 증가한 것으로 나타났습니다. 이 결과는 History 탭에 표시되었습니다 ( “New targetCapacity : 5”).

마무리로 큐에서 모든 메시지를 삭제하고, 돌아 가면 스팟 집합이 예상대로 축소 된것을 알 수 있습니다 ( “New targetCapacity : 2”).

정식 출시
스팟 집합 자동 스케일링 기능은 스팟 인스턴스가 지원되는 모든 리전에서 지금 부터 바로 이용할 수 있습니다.

— Jeff;

본 글은 New – Auto Scaling for EC2 Spot Fleets의 한국어 번역입니다.

Toplist

최신 우편물

태그