Amazon ECS Managed Instances 인프라 최적화

Amazon ECS Managed Instances 인프라 최적화

Amazon ECS Managed Instances는 용량 공급자 구성과 현재 워크로드 수요를 기반으로 적정 규모의 EC2 인스턴스를 자동으로 프로비저닝해서, 컨테이너화된 애플리케이션이 배포되는 순간부터 적절한 컴퓨팅 리소스를 갖도록 보장해요. 애플리케이션 트래픽 패턴이 진화하고 워크로드 요구 사항이 시간이 지남에 따라 바뀌면, Amazon ECS Managed Instances는 인스턴스 크기를 현재 요구 사항에 맞게 지능적으로 조정하고, 최적 구성에서 벗어난 인스턴스를 선제적으로 교체하며, 비용 효율성·애플리케이션 성능·시스템 신뢰성 간의 균형을 동적으로 맞추는 방식으로 인프라를 지속적으로 모니터링하고 최적화해요. 이 리소스 관리 시스템은 수동 개입 없이 운영되어 인프라 비용을 줄이면서도 애플리케이션의 고가용성을 유지해 줘요.

출처: 문서

본문

인프라 최적화에는 다음과 같은 이점이 있어요.

  • 비용 최적화 – 리소스 활용도를 최대화하고 유휴 용량을 제거해 인프라 비용을 줄여요.
  • 성능 개선 – 리소스 요구 사항과 성능 특성을 기반으로 워크로드 배치를 최적화해요.
  • 운영 단순성 – 수동 개입 없이 복잡한 리소스 관리 결정을 자동화해요.
  • 신뢰성 향상 – 지능적인 워크로드 분산과 상태 모니터링으로 고가용성을 유지해요.

Amazon ECS Managed Instances는 효율성을 극대화하고 비용을 줄이기 위해 두 가지 유형의 인프라 최적화를 수행해요.

유휴 인스턴스 감지 (Idle Instance Detection)

실행 중인 태스크가 없는 EC2 인스턴스를 식별하고 제거해, 사용하지 않는 용량에서 발생하는 불필요한 인프라 비용을 없애요. 유휴 인스턴스가 감지되면 최적화 프로세스가 컨테이너 인스턴스를 DEREGISTERING으로 표시하고, 이는 기본 EC2 인스턴스를 안전하게 종료하는 정리 시퀀스를 시작해요.

저활용 인스턴스 감지 (Underutilized Instance Detection)

인스턴스 전반의 태스크 분포를 분석해 더 나은 리소스 할당 기회를 식별해요. 여러 인스턴스에 태스크가 비효율적으로 실행되고 있을 때, Amazon ECS Managed Instances는 워크로드를 더 적고 더 효율적으로 활용되는 인스턴스로 통합해 성능을 유지하면서 전체 비용을 줄여요. 최적화 프로세스는 저활용 컨테이너 인스턴스를 DRAINING으로 표시해, 태스크를 기존 또는 새롭고 더 효율적인 인스턴스로 옮기는 태스크 교체를 촉발해요. 모든 태스크가 안전하게 마이그레이션되면 인스턴스는 DEREGISTERING 상태로 전환되어 정리돼요. 이 최적화는 서비스 태스크를 실행하는 인스턴스에 적용되며, 서비스의 최소·최대 태스크 한도를 존중하고, 시작-전-중지(start-before-stop) 배포 동작을 지키며, 드레이닝 과정 내내 태스크 보호 설정을 유지함으로써 안전한 통합을 보장해요. ECS Managed Instances는 standalone 태스크를 교체하지 않으므로, standalone 태스크를 실행하는 인스턴스는 최적화 대상에서 제외돼요.

중요: 저활용 인스턴스 감지는 현재 Spot 인스턴스에서 지원되지 않아요. Amazon ECS Managed Instances와 함께 Spot 인스턴스를 사용하면, 인프라 최적화 기능이 유휴 인스턴스(실행 중인 태스크가 없는 인스턴스)는 감지해 제거하지만, 저활용 Spot 인스턴스의 워크로드는 통합하지 않아요.

이 두 최적화는 함께 동작해 인프라가 실제 워크로드 수요에 지속적으로 적응하고, 애플리케이션 가용성에 영향을 주지 않으면서 낭비를 자동으로 제거하고 리소스 활용도를 높여 줘요. 두 메커니즘 모두 태스크와 인스턴스 수명 주기 이벤트에 반응하는 이벤트 중심 모니터링을 사용해 실시간으로 최적화 기회를 식별해요. Amazon ECS Managed Instances는 컨테이너 인스턴스에서 마지막 태스크가 중지되었을 때를 감지하는데, 이는 비용 최적화를 위한 잠재적 유휴 상태를 나타내요. 저활용 인스턴스의 경우, 태스크 중지 또는 새 인스턴스 실행이 워크로드 통합과 리소스 효율성 개선 기회를 식별하는 분석을 촉발해요.

ScaleInAfter

두 인프라 최적화 모두 실행 중인 인스턴스를 종료해 활용도를 높이고 비용을 줄일 기회를 찾아요. 이러한 작업의 시점은 Amazon ECS Managed Instances 용량 공급자 설정의 ScaleInAfter 구성을 사용해 제어할 수 있으며, 이는 유휴 인스턴스와 저활용 인스턴스 모두에 적용돼요. ScaleInAfter를 사용하면 인스턴스가 유휴 또는 저활용 상태가 된 순간부터 Amazon ECS Managed Instances가 인프라 최적화를 시작하기까지의 지연 시간(초)을 지정할 수 있어요. 지연 시간은 0에서 3600초 사이로 설정할 수 있고, -1을 지정해 인프라 최적화를 비활성화할 수도 있어요.

  • 유휴 인스턴스
    • ECS는 마지막 태스크가 중지된 후 지정된 기간 동안 기다렸다가 인스턴스를 등록 해제해요.
    • 대기 기간 동안 새 태스크가 시작되면 인스턴스는 더 이상 유휴 상태로 간주되지 않아 종료가 취소돼요.
  • 저활용 인스턴스
    • ECS는 인스턴스가 저활용 상태가 되는 태스크 중지 이벤트 후 지정된 기간 동안 기다렸다가 인스턴스를 드레이닝해요.
    • 대기 기간 동안 특정 인스턴스에 새 태스크가 실행되거나 기존 태스크가 중지되면, 타이머는 가장 최근 태스크 중지 또는 새 태스크 생성 시점부터 다시 시작되고, Amazon ECS Managed Instances는 비효율성을 재평가해 새 대기 기간이 만료된 후 필요한 경우 조치를 취해요.

이 구성은 선택 사항이에요. 지정하지 않으면 ECS Managed Instances가 기본 구성에 따라 최적의 시점을 자동으로 결정해요.