Amazon ECS Managed Daemons
Amazon ECS Managed Daemons
Amazon ECS Managed Daemons로 Amazon ECS Managed Instances의 컨테이너 인프라 전반에 걸쳐 보안, 관측성, 네트워킹 에이전트 같은 소프트웨어 에이전트를 배포하고 관리할 수 있어요. 데몬 수명 주기 관리를 애플리케이션 운영에서 분리해요.
출처: 문서
본문
Amazon ECS Managed Daemons를 사용하면 Amazon ECS Managed Instances의 컨테이너 인프라 전반에 걸쳐 보안, 관측성(observability), 네트워킹 에이전트 같은 소프트웨어 에이전트를 배포하고 관리할 수 있습니다. Managed Daemons는 데몬 수명 주기 관리를 애플리케이션 운영에서 분리합니다. 워크로드를 재배포하거나 서비스 간 변경을 조정하지 않고도 에이전트를 독립적으로 배포, 업데이트, 모니터링할 수 있습니다.
데몬 중요도(Daemon criticality)
데몬 실패가 Amazon ECS가 컨테이너 인스턴스를 드레인해야 하는 원인이 될지 여부에 따라 각 관리 데몬을 critical(중요) 또는 non-critical(비중요)로 구성할 수 있습니다.
- Critical – 기본값입니다. Amazon ECS는 애플리케이션 작업을 인스턴스에 배치하기 전에 데몬 작업을 시작하고, 데몬 작업이 중지되거나 비정상이 되면 컨테이너 인스턴스를 드레인하고 교체합니다.
- Non-critical –
critical매개변수를false로 설정하세요. 데몬 작업은 컨테이너 인스턴스 상태와 독립적으로 동작합니다. 비중요 데몬 작업이 실패하거나, 중지되거나, 비정상이 되면 Amazon ECS는 컨테이너 인스턴스를 활성 상태로 유지합니다. 기존 애플리케이션 작업은 계속 실행되고, Amazon ECS는 새 애플리케이션 작업을 계속 배치합니다. 비중요 데몬은 인스턴스 등록을 절대 차단하지 않으므로, 데몬이 시작에 실패해도 애플리케이션 작업을 즉시 배치할 수 있습니다.
Managed Daemons 동작 방식
Managed Daemons를 사용하려면 먼저 데몬 작업 정의(daemon task definition)를 등록하세요. 데몬 작업 정의는 데몬을 구성하는 컨테이너를 설명하는 템플릿입니다. 데몬 작업 정의를 등록한 후 데몬을 만들고 클러스터와 하나 이상의 Amazon ECS Managed Instances 용량 공급자에 연결합니다. 그러면 Amazon ECS는 해당 용량 공급자를 통해 프로비저닝된 모든 Amazon EC2 인스턴스에서 정확히 하나의 데몬 작업이 실행되도록 보장합니다.
데몬은 인스턴스를 독립적으로 시작하지 않습니다. Amazon ECS Managed Instances 용량 공급자에서 애플리케이션 작업을 실행하면 Amazon ECS가 Amazon EC2 인스턴스를 프로비저닝하고, 데몬 작업을 시작한 다음에야 애플리케이션 작업을 RUNNING 상태로 전환합니다. Amazon ECS는 중요도와 관계없이 모든 데몬에 대해 이 순서를 사용하므로, 로깅, 추적, 메트릭 수집 같은 횡단적 기능이 애플리케이션이 요청을 처리하기 전에 작동합니다.
중요도는 데몬 작업이 시작되지 않거나 나중에 중지될 때 Amazon ECS가 하는 일을 제어합니다. 중요 데몬의 경우 시작에 실패한 작업은 인스턴스가 활성 상태가 되는 것을 막습니다. 인스턴스가 활성화된 후 중지되거나 비정상이 된 작업은 Amazon ECS가 인스턴스를 드레인하고 교체하게 합니다. 이 자동 복구 동작은 수동 개입 없이 안정적인 데몬 커버리지를 유지합니다.
비중요 데몬은 인스턴스를 결코 차단하지 않고 드레인을 절대 촉발하지 않습니다. 데몬 작업이 시작에 실패해도 인스턴스는 활성화되고, 데몬 작업이 나중에 중지되거나 비정상이 되어도 활성 상태를 유지합니다. 애플리케이션 작업은 계속 실행되고, Amazon ECS는 인스턴스에 새 애플리케이션 작업을 계속 배치합니다.
데몬을 새 작업 정의 개정판으로 업데이트하면 Amazon ECS는 연결된 용량 공급자의 모든 인스턴스에서 롤링 배포를 수행합니다. 배포 중에 Amazon ECS는 구성 가능한 백분율의 인스턴스를 동시에 드레인하고, 업데이트된 데몬으로 교체 인스턴스를 프로비저닝하며, Amazon ECS 서비스 작업을 자동으로 교체합니다. Amazon ECS는 내장된 회로 차단기 보호를 제공합니다. 베이크 시간(bake time)과 CloudWatch 알람을 구성하여 Amazon ECS가 모든 인스턴스를 업데이트한 후 배포를 모니터링하고 문제가 발생하면 자동으로 롤백하도록 할 수 있습니다. Amazon ECS는 중요 및 비중요 데몬 모두에 대해 데몬 작업이 시작에 실패할 때 EventBridge 이벤트를 내보내고 서비스 작업 로그를 기록합니다.
주요 이점
- 분리된 수명 주기 관리 – 애플리케이션 배포와 독립적으로 데몬을 업데이트합니다.
- 보장된 커버리지 – Amazon ECS는 모든 인스턴스에서 애플리케이션 작업보다 먼저 데몬 작업을 시작하므로, 횡단적 기능이 애플리케이션이 요청을 처리하기 전에 작동합니다. 중요 데몬의 경우 시작에 실패한 데몬 작업은 인스턴스 등록도 막으므로, 인스턴스는 데몬 없이 애플리케이션 작업을 제공하지 않습니다.
- 안정적인 버전 업데이트 – 데몬 버전을 업데이트하면 Amazon ECS는 연결된 용량 공급자의 모든 인스턴스에 걸쳐 롤아웃하며, 내장된 회로 차단기 보호와 자동 롤백을 통해 모든 인스턴스가 대상 개정판을 실행하도록 보장합니다.
- 향상된 리소스 활용 – 인스턴스당 단일 데몬 작업을 실행하면 사이드카-작업(sidecar-per-task) 모델을 제거하여 클러스터 전체의 리소스 오버헤드를 줄입니다.
- 자동 인스턴스 복구 – 중요 데몬의 경우 데몬 작업이 중지되거나 비정상이 되면 Amazon ECS는 해당 컨테이너 인스턴스를 자동으로 드레인하고 교체합니다. 이는 수동 개입 없이 안정적인 데몬 커버리지를 유지합니다.
- 워크로드 연속성 – 비중요 데몬은 데몬 작업이 실패하거나, 중지되거나, 비정상이 되어도 애플리케이션 워크로드가 중단 없이 계속 실행되도록 합니다.
참고: Amazon ECS는 Amazon EC2 시작 유형의 Amazon ECS 서비스에
DAEMON스케줄링 전략을 제공합니다. Managed Daemons는 Amazon ECS Managed Instances용으로 구축된 새 기능으로, 데몬 배포를 간소화하고 더 강력한 데몬 커버리지 보장을 제공합니다.
시작하기
시작하려면 컨테이너 이미지를 지정하는 데몬 작업 정의를 등록한 다음, 클러스터에서 연결된 용량 공급자로 데몬을 만드세요. AWS Management Console, AWS CLI, CloudFormation, AWS SDK를 사용할 수 있습니다. 단계별 지침은 Creating and managing daemons를 참고하세요.