데몬(daemon) 만들기 및 관리

데몬(daemon) 만들기 및 관리

데몬 태스크 정의를 등록한 뒤에는 데몬을 만들어 Amazon ECS Managed Instances 용량 공급자 전반에 배포할 수 있어요. Amazon ECS는 연결된 용량 공급자의 모든 Amazon EC2 인스턴스에 데몬 태스크 하나를 자동으로 배치하고 데몬 수명 주기를 관리합니다.

출처: 문서

본문

사전 요구 사항

데몬을 만들기 전에 다음이 있는지 확인하세요:

  • Amazon ECS 클러스터.
  • 클러스터에 연결된 하나 이상의 Amazon ECS Managed Instances 용량 공급자.
  • 등록된 데몬 태스크 정의.

데몬 만들기

AWS Management Console

  1. Amazon ECS 콘솔을 엽니다. 내비게이션 창에서 Clusters 를 선택한 다음 클러스터를 선택합니다.
  2. Daemons 탭을 선택한 다음 Create 을 선택합니다.
  3. Daemon task definition family 에서 드롭다운으로 데몬 태스크 정의를 선택합니다.
  4. Daemon task definition revision 에서 사용할 리비전을 선택합니다. 비워 두면 최신 리비전을 사용해요.
  5. Daemon name 에 고유한 이름을 입력합니다. 이름은 영숫자, 하이픈, 밑줄 최대 255자까지 포함할 수 있어요.
  6. Capacity providers 에서 하나 이상의 Amazon ECS Managed Instances 용량 공급자를 선택합니다. 이 용량 공급자가 데몬 태스크를 실행할 인스턴스를 결정해요.
  7. (선택 사항) 배포 설정을 구성합니다:
    • Drain percentage – 업데이트 중 동시에 드레인할 인스턴스의 백분율. 기본값: 25.
    • Use CloudWatch alarm(s) – 켜면 배포 상태를 모니터링하고 알람이 발동하면 자동으로 롤백해요.
    • Bake time – Amazon ECS가 모든 인스턴스를 새 데몬 리비전으로 업데이트한 뒤 배포를 완료하기까지 기다리는 시간(분). 이 기간 동안 Amazon ECS는 CloudWatch 알람을 모니터링하고 알람이 발동하면 배포를 자동으로 롤백합니다. 기본값: 0.
  8. (선택 사항) Critical 에서 데몬이 인스턴스 상태에 중요한지 여부를 선택합니다.
  9. (선택 사항) 태그를 추가합니다.
  10. (선택 사항) 트러블슈팅을 위해 데몬 컨테이너에서 대화형 명령을 실행하려면 Enable ECS Exec 을 켭니다.
  11. 구성을 검토하고 Create 을 선택합니다.

AWS CLI

데몬 구성이 담긴 JSON 파일을 만들고 create-daemon 명령을 실행합니다.

다음은 JSON 파일 예시입니다:

{
    "clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/my-daemon-cluster",
    "daemonName": "my-monitoring-daemon",
    "daemonTaskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:daemon-task-definition/my-daemon-task:1",
    "capacityProviderArns": [
        "arn:aws:ecs:us-east-1:123456789012:capacity-provider/my-daemon-capacity-provider"
    ],
    "critical": true
}

다음 명령으로 데몬을 만듭니다:

aws ecs create-daemon --cli-input-json file://create-daemon.json

필수 필드:

  • daemonName – 데몬의 고유한 이름.
  • clusterArn – 클러스터의 ARN.
  • daemonTaskDefinitionArn – 데몬 태스크 정의의 ARN.
  • capacityProviderArns – Amazon ECS Managed Instances 용량 공급자 ARN 배열.

선택 필드:

  • deploymentConfiguration – 배포 동작을 사용자 지정하는 DaemonDeploymentConfiguration 객체.
  • critical – 데몬이 인스턴스 상태에 중요한지 여부.
  • tags – 태깅을 위한 키-값 쌍.
  • propagateTags – 태그 전파 설정.
  • clientToken – 멱등성 토큰(idempotency token).

데몬 배포 확인

데몬을 만든 뒤에는 AWS Management Console이나 AWS CLI로 상태를 확인하세요.

AWS Management Console

  1. Amazon ECS 콘솔을 엽니다. 내비게이션 창에서 Clusters 를 선택한 다음 클러스터를 선택합니다.
  2. Daemons 탭을 선택합니다.
  3. 데몬이 Active 상태인지 확인합니다.
  4. Tasks 탭을 선택해 각 컨테이너 인스턴스에서 데몬 태스크 하나가 실행되는지 확인합니다.

AWS CLI

다음 명령으로 데몬 상태를 확인합니다:

aws ecs list-daemons \
    --cluster-arn arn:aws:ecs:us-east-1:123456789012:cluster/my-daemon-cluster
aws ecs describe-daemons \
    --daemon-arn arn:aws:ecs:us-east-1:123456789012:daemon/my-daemon-cluster/my-monitoring-daemon

데몬 업데이트

데몬을 새 태스크 정의 리비전으로 업데이트하거나 용량 공급자를 추가하려면 AWS Management Console 또는 AWS CLI를 사용하세요. 이렇게 하면 모든 인스턴스에서 롤링 배포가 트리거됩니다.

AWS Management Console

  1. Amazon ECS 콘솔을 엽니다. 내비게이션 창에서 Clusters 를 선택한 다음 클러스터를 선택합니다.
  2. Daemons 탭을 선택한 다음 업데이트할 데몬을 선택합니다.
  3. Update 을 선택합니다.
  4. Daemon task definition revision 에서 새 리비전을 선택합니다.
  5. (선택 사항) 용량 공급자나 배포 설정을 업데이트합니다.
  6. 롤링 배포를 시작하려면 Update 을 선택합니다.

AWS CLI

update-daemon 명령을 실행합니다:

aws ecs update-daemon \
    --daemon-arn arn:aws:ecs:us-east-1:123456789012:daemon/my-daemon-cluster/my-monitoring-daemon \
    --daemon-task-definition-arn arn:aws:ecs:us-east-1:123456789012:daemon-task-definition/my-daemon-task:2 \
    --capacity-provider-arns arn:aws:ecs:us-east-1:123456789012:capacity-provider/my-daemon-capacity-provider \
    --no-critical

중요: UpdateDaemon 요청에 데몬 구성 설정을 제공하면 Amazon ECS는 기본값 대신 지정한 설정을 사용해요. 태그와 enable execute command 플래그를 포함한 데몬 구성 설정은 업데이트 간에 유지되지 않습니다. UpdateDaemon 호출마다 적용하려는 전체 구성 설정 집합을 포함해야 해요. 요청에서 생략된 설정은 기본값으로 되돌아갑니다. critical 파라미터는 기본값이 true이므로 UpdateDaemon 요청에서 생략하면 데몬이 critical 상태가 됩니다.

데몬 삭제

데몬을 삭제하려면 AWS Management Console 또는 AWS CLI를 사용하세요. 용량 공급자나 클러스터를 삭제하기 전에 모든 데몬 태스크가 중지될 때까지 기다리세요.

AWS Management Console

  1. Amazon ECS 콘솔을 엽니다. 내비게이션 창에서 Clusters 를 선택한 다음 클러스터를 선택합니다.
  2. Daemons 탭을 선택한 다음 삭제할 데몬을 선택합니다.
  3. Delete 을 선택합니다.
  4. 확인 대화 상자에서 Delete 을 선택해 확인합니다.

AWS CLI

delete-daemon 명령을 실행합니다:

aws ecs delete-daemon \
    --daemon-arn arn:aws:ecs:us-east-1:123456789012:daemon/my-daemon-cluster/my-monitoring-daemon