스팟 인스턴스 사용 - Amazon Elastic Container Service

스팟 인스턴스 사용

스팟 인스턴스는 온디맨드 가격보다 저렴한 비용으로 사용할 수 있는 미사용 Amazon EC2 인스턴스입니다. 스팟 인스턴스는 큰 할인율로 미사용 EC2 인스턴스를 요청할 수 있게 해주므로 사용자는 Amazon EC2 비용을 대폭 낮출 수 있습니다. 스팟 인스턴스는의 시간당 가격을 스팟 가격이라고 합니다. 각 가용 영역 내 인스턴스 유형별 스팟 가격은 Amazon EC2에서 설정하며, 스팟 인스턴스의 장기적 공급 및 수요에 따라 점진적으로 조정됩니다. 자세한 정보는 Linux 인스턴스용 Amazon EC2 사용 설명서스팟 인스턴스를 참조하세요.

스팟 인스턴스를 Amazon ECS 클러스터에 등록할 수 있습니다. 자세한 정보는 Amazon ECS Linux 컨테이너 인스턴스 시작 섹션을 참조하세요.

스팟 인스턴스 드레이닝

스팟 가격이 요청의 최고가를 초과하거나 용량이 더 이상 제공되지 않는 경우 Amazon EC2는 스팟 인스턴스를 종료, 중지 또는 최대 절전 모드로 전환합니다. Amazon EC2는 종료 및 중지 작업에 대해 스팟 인스턴스 2분 중단 알림을 제공합니다. 최대 절전 모드 작업에 대한 2분 알림을 제공하지 않습니다. Amazon ECS 스팟 인스턴스 드레이닝이 인스턴스에서 활성화되면 ECS는 스팟 인스턴스 중단 공지를 수신하고 인스턴스를 DRAINING 상태로 둡니다.

중요

Amazon ECS는 Auto Scaling 용량 재분배에 의해 인스턴스가 제거될 때 Amazon EC2로부터 알림을 받지 않습니다. 자세한 정보는 Amazon EC2 Auto Scaling 용량 재분배를 참조하세요.

컨테이너 인스턴스를 DRAINING으로 설정할 경우 Amazon ECS는 새 작업이 컨테이너 인스턴스에서 배치를 위해 예약되지 않도록 합니다. 드레이닝 컨테이너 인스턴스에서 PENDING 상태인 서비스 작업이 즉시 중지됩니다. 클러스터에 사용 가능한 컨테이너 인스턴스가 있는 경우 거기서 대체 서비스 작업이 시작됩니다.

스팟 인스턴스 드레이닝은 기본적으로 비활성화되어 있으며 수동으로 활성화해야 합니다. 새 컨테이너 인스턴스에 스팟 인스턴스 드레이닝을 활성화하려면 컨테이너 인스턴스를 시작할 때 다음 스크립트를 사용자 데이터(User data) 필드에 추가하고 MyCluster를 컨테이너 인스턴스를 등록할 클러스터의 이름으로 바꿉니다.

#!/bin/bash cat <<'EOF' >> /etc/ecs/ecs.config ECS_CLUSTER=MyCluster ECS_ENABLE_SPOT_INSTANCE_DRAINING=true EOF

자세한 정보는 Amazon ECS Linux 컨테이너 인스턴스 시작을 참조하세요.

기존 컨테이너 인스턴스에 스팟 인스턴스 드레이닝 사용 설정

  1. SSH를 통해 스팟 인스턴스에 연결합니다.

  2. /etc/ecs/ecs.config 파일을 편집하고 다음을 추가합니다.

    ECS_ENABLE_SPOT_INSTANCE_DRAINING=true
  3. ecs 서비스를 다시 시작합니다.

    • Amazon ECS 최적화 Amazon Linux 2 AMI의 경우:

      sudo systemctl restart ecs
    • Amazon ECS 최적화 Amazon Linux AMI의 경우:

      sudo stop ecs && sudo start ecs
  4. (선택 사항) 에이전트 내부 검사 API 태스크를 쿼리하여 에이전트가 실행 중인지 확인하고 새 컨테이너 인스턴스에 대한 일부 정보를 볼 수 있습니다. 자세한 정보는 Amazon ECS 컨테이너 에이전트 내부 검사 섹션을 참조하세요.

    curl http://localhost:51678/v1/metadata