Amazon ECS용 Amazon EC2 컨테이너 인스턴스

Amazon ECS용 Amazon EC2 컨테이너 인스턴스

Amazon ECS 컨테이너 인스턴스는 Amazon ECS 컨테이너 에이전트를 실행하고 클러스터에 등록된 Amazon EC2 인스턴스예요. 용량 공급자, External 용량 공급자 또는 Auto Scaling 그룹 용량 공급자와 함께 Amazon ECS로 태스크를 실행하면, 태스크는 활성 컨테이너 인스턴스에 배치됩니다. 컨테이너 인스턴스의 관리와 유지 보수는 사용자 책임이에요.

출처: 문서

본문

Amazon ECS에서 컨테이너화된 워크로드를 실행하는 데 필요한 기본 사양을 충족하는 자체 Amazon EC2 인스턴스 AMI를 만들 수도 있지만, Amazon ECS 최적화 AMI는 AWS 엔지니어가 Amazon ECS에서 사전 구성하고 테스트한 것이에요. 이것은 시작하고 AWS에서 컨테이너를 빠르게 실행하는 가장 간단한 방법입니다.

콘솔로 클러스터를 만들면 Amazon ECS는 선택한 운영 체제와 연결된 최신 AMI로 인스턴스용 런치 템플릿을 만들어요. CloudFormation으로 클러스터를 만들면 SSM 파라미터가 Auto Scaling 그룹 인스턴스용 Amazon EC2 런치 템플릿의 일부가 됩니다. 템플릿을 구성해 동적 Systems Manager 파라미터를 사용해 배포할 Amazon ECS 최적화 AMI를 결정할 수 있어요. 이 파라미터는 스택을 배포할 때마다 EC2 인스턴스에 적용해야 할 사용 가능한 업데이트가 있는지 확인하도록 보장합니다. Systems Manager 파라미터 사용 예시는 AWS CloudFormation 사용자 가이드의 Amazon ECS 최적화 Amazon Linux 2023 AMI로 Amazon ECS 클러스터 만들기를 참고하세요.

다음 관련 주제도 참고할 수 있어요:

  • Amazon ECS 최적화 Linux AMI 메타데이터 가져오기
  • Amazon ECS 최적화 Bottlerocket AMI 메타데이터 가져오기
  • Amazon ECS 최적화 Windows AMI 메타데이터 가져오기

애플리케이션과 호환되는 인스턴스 유형을 선택할 수 있어요. 더 큰 인스턴스로는 같은 시간에 더 많은 태스크를 시작할 수 있고, 더 작은 인스턴스로는 비용을 절약하기 위해 더 세밀하게 규모를 조정할 수 있습니다. 클러스터의 모든 애플리케이션에 맞는 단일 Amazon EC2 인스턴스 유형을 선택할 필요는 없어요. 대신 각 그룹이 다른 인스턴스 유형을 갖는 여러 Auto Scaling 그룹을 만들 수 있습니다. 그런 다음 이 각각의 그룹에 대해 Amazon EC2 용량 공급자를 만들 수 있어요.

사용할 인스턴스 패밀리 유형과 인스턴스 유형을 결정하려면 다음 지침을 사용하세요:

  • 애플리케이션의 특정 요구 사항을 충족하지 않는 인스턴스 유형이나 인스턴스 패밀리를 제외하세요. 예를 들어 애플리케이션이 GPU를 요구하면 GPU가 없는 인스턴스 유형을 제외할 수 있어요.
  • 네트워크 처리량과 스토리지 같은 요구 사항을 고려하세요.
  • CPU와 메모리를 고려하세요. 일반적으로 CPU와 메모리는 실행할 태스크의 복제본(replica)을 하나 이상 담을 수 있을 정도로 커야 해요.

Spot 인스턴스

Spot 용량은 온디맨드 인스턴스보다 상당한 비용 절감을 제공할 수 있어요. Spot 용량은 온디맨드 또는 예약 용량보다 훨씬 저렴하게 책정된 여분의 용량입니다. Spot 용량은 배치 처리와 머신러닝 워크로드, 개발·스테이징 환경에 적합해요. 더 일반적으로는 일시적인 다운타임을 견딜 수 있는 모든 워크로드에 적합합니다.

Spot 용량이 항상 사용 가능한 것은 아니므로 다음 결과를 이해하세요:

  • 극도로 높은 수요 기간에는 Spot 용량을 사용하지 못할 수 있어요. 이로 인해 Amazon EC2 Spot 인스턴스 시작이 지연될 수 있습니다. 이런 경우 Amazon ECS 서비스는 태스크 시작을 재시도하고 Amazon EC2 Auto Scaling 그룹도 인스턴스 시작을 재시도하며, 필요한 용량을 사용할 수 있게 될 때까지 계속합니다. Amazon EC2는 Spot 용량을 온디맨드 용량으로 대체하지 않아요.
  • 용량에 대한 전체 수요가 증가하면 Spot 인스턴스와 태스크가 2분 전에만 경고를 받고 종료될 수 있어요. 경고가 전송된 후 태스크는 인스턴스가 완전히 종료되기 전에 필요한 경우 질서 있게 종료(graceful shutdown)를 시작해야 합니다. 이는 오류 가능성을 최소화하는 데 도움이 돼요. 정상 종료에 대한 자세한 내용은 ECS로 정상 종료(Graceful shutdowns with ECS)를 참고하세요.

Spot 용량 부족을 최소화하려면 다음 권장 사항을 고려하세요:

  • 여러 리전과 가용 영역 사용 – Spot 용량은 리전과 가용 영역에 따라 다릅니다. 여러 리전과 가용 영역에서 워크로드를 실행하면 Spot 가용성을 개선할 수 있어요. 가능하다면 태스크와 인스턴스를 실행하는 리전의 모든 가용 영역에서 서브넷을 지정하세요.
  • 여러 Amazon EC2 인스턴스 유형 사용 – Amazon EC2 Auto Scaling에서 혼합 인스턴스 정책(Mixed Instance Policies)을 사용하면 여러 인스턴스 유형이 Auto Scaling 그룹에 시작됩니다. 이는 필요할 때 Spot 용량 요청이 충족될 수 있도록 보장해요. 안정성을 극대화하고 복잡성을 최소화하려면 혼합 인스턴스 정책에서 CPU와 메모리가 대략 같은 인스턴스 유형을 사용하세요. 이 인스턴스들은 다른 세대이거나 같은 기본 인스턴스 유형의 변형일 수 있어요. 필요하지 않을 수 있는 추가 기능이 함께 올 수도 있다는 점에 유의하세요. 이러한 목록의 예로는 m4.large, m5.large, m5a.large, m5d.large, m5n.large, m5dn.large, m5ad.large 등이 있습니다. 자세한 내용은 Amazon EC2 Auto Scaling 사용자 가이드의 여러 인스턴스 유형 및 구매 옵션이 있는 Auto Scaling 그룹을 참고하세요.
  • 용량 최적화 Spot 할당 전략 사용 – Amazon EC2 Spot에서는 용량 최적화와 비용 최적화 할당 전략을 선택할 수 있어요. 새 인스턴스를 시작할 때 용량 최적화 전략을 선택하면 Amazon EC2 Spot이 선택된 가용 영역에서 가용성이 가장 큰 인스턴스 유형을 선택합니다. 이는 인스턴스가 시작된 직후 종료될 가능성을 줄이는 데 도움이 돼요.

컨테이너 인스턴스에서 Spot 종료 알림(spot termination notice)을 구성하는 방법은 다음을 참고하세요:

  • Spot Instance 알림을 받도록 Amazon ECS Linux 컨테이너 인스턴스 구성
  • Spot Instance 알림을 받도록 Amazon ECS Windows 컨테이너 인스턴스 구성