Amazon ECS가 작업에 사용하는 컨테이너 인스턴스 정의
작업 배치 제약 조건은 Amazon ECS가 해당 인스턴스에서 작업을 실행할 수 있는지 여부를 결정하는 데 사용하는 컨테이너 인스턴스에 대한 규칙입니다. 하나 이상의 컨테이너 인스턴스가 제약과 일치해야 합니다. 제약과 일치하는 인스턴스가 없는 경우 작업은 PENDING
상태로 유지됩니다. 새 서비스를 생성하거나 기존 서비스를 업데이트할 때 서비스 작업에 대한 작업 배치 제약을 지정할 수 있습니다.
placementConstraint
파라미터를 사용하여 서비스 정의, 작업 정의 또는 작업에서 작업 배치 제약 조건을 지정할 수 있습니다.
"placementConstraint": [ { "expression": "The expression that defines the task placement constraints", "type": "The placement constraint type to use" } ]
다음 테이블에서는 파라미터를 사용하는 방법을 설명합니다.
제약 유형 | 지정 가능한 경우 |
---|---|
distinctInstance 각 태스크를 서로 다른 컨테이너 인스턴스에 배치. 중요 엄격한 작업 격리를 원하는 고객은 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자의 문자를 포함해야 하며 이름에는 문자(대문자 및 소문자), 숫자, 하이픈, 밑줄, 마침표, @ 기호, 슬래시, 백슬래시, 콜론 또는 공백이 포함될 수 있습니다. 값은 선행 또는 후행 공백을 포함할 수 없습니다.