Amazon ECS 태스크 배치 제약 조건 예시
Amazon ECS 태스크 배치 제약 조건 예시
다음은 태스크 배치 제약 조건 예시예요. 이 예시는 memberOf 제약 조건을 사용해 태스크를 t2 인스턴스에 배치합니다. 이는 CreateService, UpdateService, RegisterTaskDefinition, RunTask 작업과 함께 지정할 수 있어요.
출처: 문서
본문
"placementConstraints": [
{
"expression": "attribute:ecs.instance-type =~ t2.*",
"type": "memberOf"
}
]
이 예시는 memberOf 제약 조건을 사용해, 지정된 태스크 배치 전략을 존중하면서 daemon 서비스의 daemon-service 태스크 그룹에 태스크가 있는 인스턴스에 replica 태스크를 배치해요. 이 제약 조건은 daemon 서비스 태스크가 replica 서비스 태스크보다 먼저 EC2 인스턴스에 배치되도록 보장합니다. daemon-service를 daemon 서비스의 이름으로 바꾸세요.
"placementConstraints": [
{
"expression": "task:group == service:daemon-service",
"type": "memberOf"
}
]
이 예시는 memberOf 제약 조건을 사용해, 지정된 태스크 배치 전략을 존중하면서 databases 태스크 그룹의 다른 태스크가 있는 인스턴스에 태스크를 배치해요. 태스크 그룹에 대한 자세한 내용은 관련 Amazon ECS 태스크 그룹화(Group related Amazon ECS tasks)를 참고하세요. 이는 CreateService, UpdateService, RegisterTaskDefinition, RunTask 작업과 함께 지정할 수 있어요.
"placementConstraints": [
{
"expression": "task:group == databases",
"type": "memberOf"
}
]
distinctInstance 제약 조건은 그룹의 각 태스크를 다른 인스턴스에 배치해요. 이는 CreateService, UpdateService, RunTask 작업과 함께 지정할 수 있습니다. Amazon ECS는 태스크 배치 시 태스크의 desired status를 살펴봐요. 예를 들어 기존 태스크의 desired status가 STOPPED인데 last status가 아니라면(즉 실제로 아직 꺼지지 않았다면), distinctInstance 배치 제약 조건이 있어도 새로 들어오는 태스크가 같은 인스턴스에 배치될 수 있어요. 따라서 같은 인스턴스에서 last status가 RUNNING인 태스크 2개를 볼 수도 있습니다.
"placementConstraints": [
{
"type": "distinctInstance"
}
]