Amazon ECS가 작업에 사용하는 컨테이너 인스턴스 정의
작업 배치 제약 조건은 Amazon ECS가 해당 인스턴스에서 작업을 실행할 수 있는지 여부를 결정하는 데 사용하는 컨테이너 인스턴스에 대한 규칙입니다. 하나 이상의 컨테이너 인스턴스가 제약과 일치해야 합니다. 제약과 일치하는 인스턴스가 없는 경우 작업은 PENDING
상태로 유지됩니다. 새 서비스를 생성하거나 기존 서비스를 업데이트할 때 서비스 작업에 대한 작업 배치 제약을 지정할 수 있습니다.
placementConstraint
파라미터를 사용하여 서비스 정의, 작업 정의 또는 작업에서 작업 배치 제약 조건을 지정할 수 있습니다.
"placementConstraints": [ { "expression": "The expression that defines the task placement constraints", "type": "The placement constraint type to use" } ]
다음 테이블에서는 파라미터를 사용하는 방법을 설명합니다.
제약 유형 | 지정 가능한 경우 |
---|---|
distinctInstance 각 활성 태스크를 서로 다른 컨테이너 인스턴스에 배치합니다. Amazon ECS는 작업 배치를 위해 원하는 작업 상태를 확인합니다. 예를 들어 기존 작업의 원하는 상태가 중요 엄격한 작업 격리를 원하는 고객은 Fargate를 사용하는 것이 좋습니다. Fargate는 하드웨어 가상화 환경에서 각 작업을 실행합니다. 이러한 컨테이너화된 워크로드는 네트워크 인터페이스, Fargate 임시 스토리지, CPU 또는 메모리를 다른 작업과 공유하지 않습니다. 자세한 내용은 Security Overview of AWS Fargate |
|
memberOf 표현식을 충족하는 컨테이너 인스턴스에 태스크를 배치. |
|
memberOf
제약 조건 유형을 사용하는 경우 Amazon ECS가 작업을 배치할 수 있는 컨테이너 인스턴스를 정의하는 클러스터 쿼리 언어를 사용하여 표현식을 생성할 수 있습니다. 표현식은 속성별로 컨테이너 인스턴스를 그룹화하는 방법입니다. 표현식은 placementConstraint
의 expression
파라미터에 포함됩니다.
Amazon ECS 컨테이너 인스턴스 속성
속성이라고 하는 사용자 지정 메타데이터를 컨테이너 인스턴스에 추가할 수 있습니다. 각 속성에는 이름과 선택 사항인 문자열 값이 있습니다. Amazon ECS가 제공하는 기본 속성을 사용하거나 사용자 지정 속성을 정의할 수 있습니다.
다음 섹션에는 샘플 기본 제공, 선택적 및 사용자 정의 속성이 있습니다.
기본 속성
Amazon ECS는 자동으로 다음 속성을 컨테이너 인스턴스에 적용합니다.
ecs.ami-id
-
인스턴스를 시작하는 데 사용된 AMI의 ID. 이 속성의 예시 값은
ami-1234abcd
입니다. ecs.availability-zone
-
인스턴스의 가용 영역. 이 속성의 예시 값은
us-east-1a
입니다. ecs.instance-type
-
인스턴스의 인스턴스 유형. 이 속성의 예시 값은
g2.2xlarge
입니다. ecs.os-type
-
인스턴스의 운영 체제. 이 속성에 사용 가능한 값은
linux
및windows
입니다. ecs.os-family
-
인스턴스의 운영 체제 버전입니다.
Linux 인스턴스의 경우 유효한 값은
LINUX
입니다. Windows 인스턴스의 경우 ECS는 값을WINDOWS_SERVER_<
형식으로 설정합니다. 유효한 값은OS_Release
>_<FULL or CORE
>WINDOWS_SERVER_2022_FULL
,WINDOWS_SERVER_2022_CORE
,WINDOWS_SERVER_20H2_CORE
,WINDOWS_SERVER_2019_FULL
,WINDOWS_SERVER_2019_CORE
및WINDOWS_SERVER_2016_FULL
입니다.이는 Windows 컨테이너 및 Windows containers on AWS Fargate에서 중요한데, 모든 Windows 컨테이너의 OS 버전이 호스트의 OS 버전과 일치해야 하기 때문입니다. 컨테이너 이미지의 Windows 버전이 호스트와 다르면 컨테이너가 시작되지 않습니다. 자세한 내용은 Microsoft 설명서 웹 사이트의 Windows 컨테이너 버전 호환성
을 참조하세요. 클러스터에서 여러 Windows 버전을 실행하는 경우 배치 제약 조건
memberOf(attribute:ecs.os-family == WINDOWS_SERVER_<OS_Release>_<FULL or CORE>)
를 사용하여 동일한 버전에서 실행되는 EC2 인스턴스에 작업이 배치되도록 할 수 있습니다. 자세한 내용은 Amazon ECS 최적화 Windows AMI 메타데이터 검색 단원을 참조하십시오. ecs.cpu-architecture
-
인스턴스의 CPU 아키텍처입니다. 이 속성의 예시 값은
x86_64
와ARM64
입니다. ecs.vpc-id
-
인스턴스가 시작된 VPC입니다. 이 속성의 예시 값은
vpc-1234abcd
입니다. ecs.subnet-id
-
인스턴스가 사용 중인 서브넷입니다. 이 속성의 예시 값은
subnet-1234abcd
입니다.
선택적 속성
Amazon ECS는 컨테이너 인스턴스에 다음 속성을 추가할 수 있습니다.
ecs.awsvpc-trunk-id
-
이 속성이 있으면 인스턴스에 트렁크 네트워크 인터페이스가 있습니다. 자세한 내용은 Amazon ECS Linux 컨테이너 인스턴스 네트워크 인터페이스 증가 섹션을 참조하세요.
ecs.outpost-arn
-
이 속성이 있으면 Outpost의 Amazon 리소스 이름(ARN)이 포함됩니다. 자세한 내용은 AWS Outposts의 Amazon Elastic Container Service 단원을 참조하십시오.
ecs.capability.external
-
이 속성이 있으면 인스턴스가 외부 인스턴스로 식별됩니다. 자세한 내용은 외부 시작 유형을 위한 Amazon ECS 클러스터 섹션을 참조하세요.
사용자 지정 속성
컨테이너 인스턴스에 사용자 지정 속성을 적용할 수 있습니다. 예를 들어 이름이 "stack"이고 값이 "prod"인 속성을 정의할 수 있습니다.
사용자 정의 속성을 지정할 때 다음 사항을 고려해야 합니다.
-
name
은 1~128자의 문자를 포함해야 하며 이름에는 문자(대문자 및 소문자), 숫자, 하이픈, 밑줄, 슬래시, 백슬래시 또는 마침표가 포함될 수 있습니다. -
value
은 1~128자의 문자를 포함해야 하며 이름에는 문자(대문자 및 소문자), 숫자, 하이픈, 밑줄, 마침표, @ 기호, 슬래시, 백슬래시, 콜론 또는 공백이 포함될 수 있습니다. 값은 선행 또는 후행 공백을 포함할 수 없습니다.