작업 정의 파라미터 - Amazon Elastic Container Service

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

작업 정의 파라미터

작업 정의는 작업 패밀리, IAM 작업 역할, 네트워크 모드, 컨테이너 정의, 볼륨, 작업 배치 제약, 시작 유형 등의 부분으로 나뉩니다. 패밀리 및 컨테이너 정의는 작업 정의에서 필수 항목이지만 작업 역할, 네트워크 모드, 볼륨, 작업 배치 제약 및 시작 유형은 선택 항목입니다.

다음은 각 작업 정의 파라미터에 대한 자세한 설명입니다.

Family

family

유형: 문자열

필수 항목 여부: 예

작업 정의를 등록할 때 패밀리를 지정합니다. 패밀리는 개정 번호를 사용하여 지정된 작업 정의의 여러 버전에 대한 이름과 비슷합니다. 특정 패밀리에 등록된 첫 번째 작업 정의에는 개정 번호 1이 부여되고 그 이후 등록된 작업 정의에는 순차적으로 개정 번호가 부여됩니다.

시작 유형

작업 정의를 등록할 때 시작 유형을 지정할 수 있습니다.Amazon ECS는 작업 정의의 유효성을 검사해야합니다. 작업 정의가 지정된 호환성에 대해 유효성을 검사하지 않으면 클라이언트 예외가 반환됩니다. 자세한 정보는 Amazon ECS시작 유형을 참조하십시오.

작업 정의에서 다음 파라미터가 허용됩니다.

requiresCompatibilities

유형: 문자열 배열

필수 항목 여부: 아니요

유효한 값: EC2 | FARGATE | EXTERNAL

작업 정의의 유효성을 검사할 시작 유형입니다. 이를 통해 작업 정의에 사용되는 모든 파라미터가 시작 유형의 요구 사항을 충족하는지 확인할 수 있습니다.

작업 역할

taskRoleArn

유형: 문자열

필수 항목 여부: 아니요

작업 정의를 등록할 때 작업 권한의 컨테이너가AWS사용자를 대신하여 연결된 정책에 지정된 API입니다. 자세한 정보는 작업에 대한 IAM 역할을 참조하십시오.

Windows에서 작업을 위한 IAM 역할을 사용하려면 Amazon ECS-optimized Windows Server AMI를 시작할 때 -EnableTaskIAMRole 옵션을 설정해야 합니다. 이 기능을 활용하려면 컨테이너가 일부 구성 코드도 실행해야 합니다. 자세한 정보는 작업을 위한 Windows IAM 역할을 참조하십시오.

작업 실행 역할

executionRoleArn

유형: 문자열

필수 항목 여부: 아니요

Amazon ECS 컨테이너 에이전트에 사용자를 대신하여 AWS API 호출을 수행할 권한을 부여하는 작업 실행 역할의 Amazon Resource Name (ARN)입니다. 작업의 요구 사항에 따라 작업 실행 IAM 역할이 필요합니다. 자세한 정보는 Amazon ECS작업 실행IAM역할을 참조하십시오.

네트워크 모드

networkMode

유형: 문자열

필수 항목 여부: 아니요

작업의 컨테이너에 사용할 도커 네트워킹 모드. 용Amazon ECS호스팅된 작업Amazon EC2Linux 인스턴스의 경우 유효한 값은none,bridge,awsvpc, 및host. 네트워크 모드를 지정하지 않으면 기본 네트워크 모드는bridge. 용Amazon ECS호스팅된 작업Amazon EC2Windows 인스턴스의 경우 유효한 값은default, 및awsvpc. 네트워크 모드를 지정하지 않으면default네트워크 모드가 사용됩니다.

네트워크 모드가 none으로 설정된 경우에는 작업의 컨테이너가 외부 네트워크와 연결되지 않고 컨테이너 정의에서 포트 매핑을 지정할 수 없습니다.

네트워크 모드가 bridge인 경우에는 작업이 각 컨테이너 인스턴스에서 실행되는 도커의 기본 가상 네트워크를 이용합니다.

네트워크 모드가host을 (를) 사용하는 경우에는 작업이 도커의 기본 가상 네트워크를 우회하여 컨테이너 포트를Amazon EC2인스턴스의 네트워크 인터페이스입니다. 이 모드에서는 포트 매핑을 사용할 때 단일 컨테이너 인스턴스에서 동일 작업에 대해 다중 인스턴스화를 실행할 수 없습니다.

중요

사용 시host네트워크 모드를 사용하는 경우에는 루트 사용자 (UID 0) 를 사용하여 컨테이너를 실행해서는 안 됩니다. 루트 사용자가 아닌 사용자를 사용하는 것이 가장 좋습니다.

네트워크 모드가 awsvpc인 경우 해당 작업에 탄력적 네트워크 인터페이스가 할당되므로 서비스를 생성하거나 작업 정의로 작업을 실행하려면 NetworkConfiguration을 지정해야 합니다. 자세한 정보는 Amazon ECS작업 네트워킹을 참조하십시오. 현재 Amazon ECS-optimized AMI, 기타 Amazon Linux ecs-init 패키지 버전 또는 AWS Fargate 인프라만 awsvpc 네트워크 모드를 지원합니다.

hostawsvpc 네트워크 모드는 컨테이너에 최상의 네트워킹 성능을 제공하는데, 이는 bridge 모드가 제공하는 가상화 네트워크 스택 대신에 Amazon EC2 네트워크 스택을 사용하기 때문입니다. hostawsvpc 네트워크 모드에서는 노출된 컨테이너 포트가 해당 호스트 포트(host 네트워크 모드의 경우) 또는 연결된 탄력적 네트워크 인터페이스 포트(awsvpc 네트워크 모드의 경우)에 직접 매핑되므로 동적 호스트 포트 매핑을 활용할 수 없습니다.

Fargate 시작 유형을 사용하는 경우 awsvpc 네트워크 모드가 필요합니다. EC2 시작 유형을 사용하는 경우에는 기본 EC2 인스턴스의 운영 체제에 따라 네트워크 모드가 허용됩니다. 운영 체제가 Linux일 경우에는 모든 네트워크 모드를 사용할 수 있습니다. 윈도우의 경우default, 및awsvpc모드를 사용할 수 있습니다.

작업 크기

작업 정의를 등록할 때 작업에 대해 사용할 CPU 및 메모리 총량을 지정할 수 있습니다. 이것은 컨테이너 정의 수준의 cpumemory 값과는 구분됩니다. 호스팅된 작업의 경우Amazon EC2인스턴스를 사용하는 경우 이러한 필드는 선택 사항입니다. 호스팅된 작업의 경우Fargate을 (를) 사용하는 경우 이러한 필드는 필수 사항이며cpumemory을 (를) 지원합니다.

참고

Windows 컨테이너에 대해서는 작업 레벨 CPU와 메모리 파라미터가 무시됩니다. Windows 컨테이너에 대해서는 컨테이너 레벨 리소스를 지정할 것을 권장합니다.

작업 정의에서 다음 파라미터가 허용됩니다.

cpu

유형: 문자열

필수 사항: 조건부

참고

이 파라미터는 Windows 컨테이너에서 지원되지 않습니다.

작업에 대해 표시되는 CPU 단위의 하드 제한입니다. 작업 정의에 CPU 단위를 사용하는 정수(예: 1024) 또는 vCPU를 사용하는 문자열(예: 1 vCPU 또는 1 vcpu)로 표현할 수 있습니다. 작업 정의를 등록할 때는 vCPU 값이 CPU 단위를 나타내는 정수로 변환됩니다.

호스팅된 작업의 경우Amazon EC2인스턴스를 사용하는 경우 이 필드는 선택 사항입니다. 클러스터에 요청된 CPU 단위가 사용 가능한 등록된 컨테이너 인스턴스가 없는 경우 작업이 실패합니다. 지원되는 값은 128개의 CPU 단위(0.125 vCPU)~10240개의 CPU 단위(10 vCPU) 사이입니다.

호스팅된 작업의 경우Fargate을 (를) 선택하는 경우 이 필드는 필수 사항이며 다음 값 중 하나를 사용해야 합니다. 이를 통해memory파라미터:

CPU 값

메모리 값(MiB)

256(.25 vCPU)

512(0.5 GB), 1,024(1 GB), 2,048(2 GB)

512(.5 vCPU)

1,024(1 GB), 2,048(2 GB), 3,072(3 GB), 4,096(4 GB)

1024(1 vCPU)

2,048(2 GB), 3,072(3 GB), 4,096(4 GB), 5,120(5 GB), 6,144(6 GB), 7,168(7 GB), 8,192(8 GB)

2048(2 vCPU)

4,096(4 GB)~16,384(16 GB)(1,024(1 GB) 증분)

4096(4 vCPU)

8,192(8 GB)~30,720(30 GB)(1,024(1 GB) 증분)

memory

유형: 문자열

필수 사항: 조건부

참고

이 파라미터는 Windows 컨테이너에서 지원되지 않습니다.

작업에 표시할 메모리의 하드 제한(MiB)입니다. 작업 정의에서 MiB를 사용하는 정수(예: 1024) 또는 GB를 사용하는 문자열(예: 1GB 또는 1 GB)로 표현할 수 있습니다. 작업 정의를 등록할 때는 GB 값이 MiB를 나타내는 정수로 변환됩니다.

호스팅된 작업의 경우Amazon EC2인스턴스를 사용하는 경우 이 필드는 선택 사항이며 아무 값이나 사용할 수 있습니다. 작업 수준 메모리 값이 지정된 경우 컨테이너 수준 메모리 값은 선택 사항입니다. 클러스터에 요청된 메모리가 사용 가능한 등록된 컨테이너 인스턴스가 없는 경우 작업이 실패합니다. 특정 인스턴스 유형에 대해 작업에 가능한 한 많은 메모리를 제공하여 리소스 사용률을 최대화하려는 경우 컨테이너 인스턴스 메모리 관리 단원을 참조하십시오.

호스팅된 작업의 경우Fargate을 (를) 선택하는 경우 이 필드는 필수 사항이며 다음 값 중 하나를 사용해야 합니다. 이를 통해cpu파라미터:

메모리 값(MiB)

CPU 값

512(0.5 GB), 1,024(1 GB), 2,048(2 GB)

256(.25 vCPU)

1,024(1 GB), 2,048(2 GB), 3,072(3 GB), 4,096(4 GB)

512(.5 vCPU)

2,048(2 GB), 3,072(3 GB), 4,096(4GB), 5,120(5 GB), 6,144(6 GB), 7,168(7 GB), 8,192(8 GB)

1024(1 vCPU)

4,096(4 GB)~16,384(16 GB)(1,024(1 GB) 증분)

2048(2 vCPU)

8,192(8 GB)~30,720(30 GB)(1,024(1 GB) 증분)

4096(4 vCPU)

컨테이너 정의

작업 정의를 등록할 때 컨테이너 인스턴스의 도커 데몬으로 전달되는 컨테이너 정의의 목록을 지정해야 합니다. 컨테이너 정의에서 다음 파라미터가 허용됩니다.

스탠다드 컨테이너 정의 파라미터

다음 작업 정의 파라미터는 대부분의 컨테이너 정의에서 필요하거나 사용됩니다.

Name

name

유형: 문자열

필수 항목 여부: 예

컨테이너의 이름.최대 255개의 문자(대문자 및 소문자), 숫자, 하이픈 및 밑줄이 허용됩니다. 여러 컨테이너를 한 작업 정의에 연결하는 경우 한 컨테이너의 name을 다른 컨테이너의 links에 입력하여 컨테이너를 연결할 수 있습니다.

Image

image

유형: 문자열

필수 항목 여부: 예

컨테이너를 시작하는 데 사용되는 이미지입니다. 이 문자열은 도커 데몬으로 직접 전달됩니다. Docker Hub 레지스트리 내 이미지는 기본적으로 사용 가능합니다. 또한 다음 중 하나를 사용하여 다른 리포지토리를 지정할 수도 있습니다.repository-url/image:tag또는repository-url/image@digest.최대 255개의 문자(대문자 및 소문자), 숫자, 하이픈, 밑줄, 콜론, 마침표, 슬래시 및 부호가 허용됩니다. 이 매개 변수는Image컨테이너 만들기의 단원Docker Remote APIIMAGE의 파라미터docker run.

  • 새 작업이 시작될 때 Amazon ECS 컨테이너 에이전트가 컨테이너에서 사용할 지정 이미지와 태그의 최신 버전을 끌어옵니다. 그러나 이미 실행 중인 작업에는 추후 리포지토리 이미지 업데이트가 전파되지 않습니다.

  • 프라이빗 리포지토리의 이미지는 지원되지 않습니다. 자세한 정보는 작업에 대한 프라이빗 레지스트리 인증을 참조하십시오.

  • Amazon ECR 리포지토리의 이미지는 전체 registry/repository:tag 또는 registry/repository@digest 명명 규칙을 사용하여 지정할 수 있습니다. 예: aws_account_id.dkr.ecr.region.amazonaws.com/my-web-app:latest 또는 aws_account_id.dkr.ecr.region.amazonaws.com/my-web-app@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE

  • Docker Hub 공식 리포지토리 안의 이미지는 단일 이름을 사용합니다(예: ubuntu 또는 mongo).

  • Docker Hub의 다른 리포지토리에 저장된 이미지는 조직 이름으로 한정됩니다(예: amazon/amazon-ecs-agent).

  • Docker Hub 상의 다른 리포지토리 안의 이미지는 도메인 이름을 사용하여 추가로 한정됩니다(예: quay.io/assemblyline/ubuntu).

Memory

memory

유형: 정수

필수 항목 여부: 아니요

컨테이너에 표시할 메모리의 양(MiB)입니다. 컨테이너가 여기서 지정된 메모리를 초과하려 하면 해당 컨테이너가 중지됩니다. 작업 내 모든 컨테이너에 대해 예약된 총 메모리 양은 작업 memory 값(지정된 경우)보다 작아야 합니다. 이 매개 변수는Memory컨테이너 만들기의 단원Docker Remote API--memory옵션을docker run.

Fargate 시작 유형을 사용하는 경우에는 이 매개 변수는 선택사항입니다.

EC2 시작 유형을 사용하는 경우 작업 레벨 메모리 값 또는 컨테이너 레벨 메모리 값을 지정해야 합니다. 컨테이너 레벨 memorymemoryReservation 값을 모두 지정하면 memorymemoryReservation보다 커야 합니다. memoryReservation을 지정하는 경우 컨테이너가 배치된 컨테이너 인스턴스의 가용 메모리 리소스에서 해당 값이 차감됩니다. 그렇지 않으면 memory 값이 사용됩니다.

도커 데몬은 컨테이너용으로 최소 4MiB의 메모리를 예약합니다. 그러므로 컨테이너에 대해 4MiB 미만의 메모리를 지정하면 안 됩니다.

참고

특정 인스턴스 유형에 대해 작업에 가능한 한 많은 메모리를 제공하여 리소스 사용률을 최대화하려는 경우 컨테이너 인스턴스 메모리 관리 단원을 참조하십시오.

memoryReservation

유형: 정수

필수 항목 여부: 아니요

컨테이너용으로 예약할 메모리의 소프트 제한(MiB)입니다. 시스템 메모리가 경합하는 경우 도커가 컨테이너 메모리를 이 소프트 제한 이내로 유지하려고 노력합니다. 하지만 컨테이너는 필요하다면 memory 파라미터에 지정된 하드 제한(해당하는 경우) 또는 컨테이너 인스턴스의 모든 가용 메모리 중 먼저 도달하는 양까지 더 많은 메모리를 사용할 수 있습니다. 이 매개 변수는MemoryReservation컨테이너 만들기의 단원Docker Remote API--memory-reservation옵션을docker run.

작업 레벨 메모리 값이 지정되지 않은 경우 컨테이너 정의의 memory 또는 memoryReservation에 대해 하나 또는 둘 다에 0이 아닌 정수를 지정해야 합니다. 둘 모두 지정하는 경우 memorymemoryReservation보다 커야 합니다. memoryReservation을 지정하는 경우 컨테이너가 배치된 컨테이너 인스턴스의 가용 메모리 리소스에서 해당 값이 차감됩니다. 그렇지 않으면 memory 값이 사용됩니다.

예를 들어 컨테이너가 통상적으로 128MiB의 메모리를 사용하지만 경우에 따라 잠깐 동안 사용량이 256MiB까지 급증하는 경우 memoryReservation을 128MiB로 설정하고 memory 하드 제한을 300MiB로 설정할 수 있습니다. 이 구성은 컨테이너가 컨테이너 인스턴스의 잔여 리소스 중 128MiB의 메모리만 예약하되, 필요할 경우 더 많은 메모리 리소스를 사용하도록 허용합니다.

도커 데몬은 컨테이너용으로 최소 4MiB의 메모리를 예약합니다. 그러므로 컨테이너에 대해 4MiB 미만의 메모리를 지정하면 안 됩니다.

포트 매핑

portMappings

유형: 객체 배열

필수 항목 여부: 아니요

포트 매핑은 컨테이너가 호스트 컨테이너 인스턴스의 포트에 액세스하여 트래픽을 송수신하도록 허용합니다.

awsvpc 네트워크 모드를 사용하는 작업 정의의 경우 containerPort만 지정해야 합니다. hostPort는 빈 칸으로 둘 수 있습니다. 아니면 containerPort와 같은 값이어야 합니다.

Windows에서의 포트 매핑은 localhost가 아니라 NetNAT 게이트웨이 주소를 사용합니다. Windows에서의 포트 매핑에는 루프백이 없으므로 호스트 자체에서 매핑된 컨테이너 포트에는 액세스할 수 없습니다.

이 매개 변수는PortBindings컨테이너 만들기의 단원Docker Remote API--publish옵션을docker run. 작업 정의의 네트워크 모드가 host로 설정되어 있으면 호스트 포트가 정의되지 않은 상태이거나 호스트 포트가 포트 매핑의 컨테이너 포트와 일치해야 합니다.

참고

작업이 RUNNING 상태에 도달한 후에는 다음 위치에서 수동 및 자동 호스트/컨테이너 포트 할당을 확인할 수 있습니다.

  • 콘솔: 이네트워크 바인딩선택한 작업에 대한 컨테이너 설명의 섹션.

  • AWS CLI: describe-tasks 명령 출력의 networkBindings 섹션.

  • API: 이DescribeTasks응답.

containerPort

유형: 정수

필수 항목 여부: portMappings 사용 시, 예

사용자 지정 또는 자동 할당된 호스트 포트에 바인딩되는 컨테이너 포트 번호입니다.

Fargate 시작 유형으로 작업의 컨테이너를 사용하는 경우 containerPort를 사용해 노출된 포트를 지정해야 합니다.

EC2 시작 유형으로 작업의 컨테이너를 사용하고 컨테이너 포트는 지정하고 호스트 포트는 지정하지 않는 경우 컨테이너가 자동으로 임시 포트 범위에서 호스트 포트를 할당받습니다. 자세한 정보는 hostPort을 참조하십시오. 이렇게 자동 할당된 포트 매핑은 컨테이너 인스턴스의 예약 포트 제한 100개에 포함되지 않습니다.

hostPort

유형: 정수

필수 항목 여부: 아니요

컨테이너용으로 예약할 컨테이너 인스턴스 포트 번호입니다.

Fargate 시작 유형으로 작업에서 컨테이너를 사용하는 경우 hostPort는 빈 칸으로 둘 수 있습니다. 아니면 containerPort와 같은 값이어야 합니다.

EC2 시작 유형으로 작업에서 컨테이너를 사용하는 경우 컨테이너 포트 매핑에 예약되지 않은 호스트 포트를 지정할 수 있습니다(이를 정적 호스트 포트 매핑이라고 함). 또는 containerPort를 지정하고 hostPort는 생략(또는 0으로 설정)할 수도 있습니다. 그러면 컨테이너가 자동으로 컨테이너 인스턴스 운영 체제 및 도커 버전의 임시 포트 범위에서 포트를 할당받습니다(이를 동적 호스트 포트 매핑이라고 함).

Docker 1.6.0 버전 이상의 기본 휘발성 포트 범위는 인스턴스의 /proc/sys/net/ipv4/ip_local_port_range에 나열됩니다. 이 커널 파라미터를 사용할 수 없을 경우 기본 휘발성 포트 범위49153–65535가 사용됩니다. 임시 포트 범위는 자동 할당을 위해 예약된 것이므로 여기에서 호스트 포트를 지정하지 마십시오. 일반적으로 32768 미만의 포트는 임시 포트 범위에 해당하지 않습니다.

기본 예약 포트는 SSH용 22, Docker 포트 23752376, Amazon ECS 컨테이너 포트 51678-51680입니다. 이미 실행 작업에 대해 사용자 지정된 호스트 포트도 해당 작업이 실행되는 동안 예약됩니다(작업이 중지하면 호스트 포트가 해제됨). 현재 예약된 포트는 describe-container-instances 출력의 remainingResources에 표시되며, 각 컨테이너 인스턴스는 기본 예약 포트를 포함하여 한 번에 최대 100개의 예약 포트를 가질 수 있습니다. 자동 할당된 포트는 예약 포트 제한 100개에 포함되지 않습니다.

protocol

유형: 문자열

필수 항목 여부: 아니요

포트 매핑에 사용되는 프로토콜입니다. 유효 값은 tcpudp입니다. 기본값은 tcp입니다.

중요

UDP 지원은 버전 1.2.0 이상의 Amazon ECS 컨테이너 에이전트(예: amzn-ami-2015.03.c-amazon-ecs-optimized AMI) 또는 버전 1.3.0 이상으로 업데이트된 컨테이너 에이전트를 사용하여 시작된 컨테이너 인스턴스에서만 가능합니다. 컨테이너 에이전트를 최신 버전으로 업데이트하려면 업데이트Amazon ECS컨테이너 에이전트 섹션을 참조하십시오.

호스트 포트를 지정하는 경우 다음 구문을 사용합니다.

"portMappings": [ { "containerPort": integer, "hostPort": integer } ... ]

호스트 포트가 자동 할당되도록 하려면 다음 구문을 사용합니다.

"portMappings": [ { "containerPort": integer } ... ]

고급 컨테이너 정의 파라미터

다음 고급 컨테이너 정의 매개 변수는docker run에서 컨테이너를 시작하는 데 사용되는Amazon ECS컨테이너 인스턴스를 생성합니다.

상태 확인

healthCheck

해당 컨테이너에 대한 컨테이너 상태 확인 명령 및 연결된 구성 파라미터. 이 매개 변수는HealthCheck컨테이너 만들기의 단원Docker Remote APIHEALTHCHECK의 파라미터도커 실행.

참고

Amazon ECS 컨테이너 에이전트는 작업 정의에 지정된 상태 확인에 대해서만 모니터링 및 보고합니다. Amazon ECS는 컨테이너 이미지에 포함되어 있고 컨테이너 정의에 지정되지 않은 도커 상태 확인은 모니터링하지 않습니다. 컨테이너 정의에 지정된 상태 확인 파라미터는 컨테이너 이미지에 존재하는 도커 상태 확인을 재정의합니다.

개별 컨테이너의 상태와 DescribeTasks API 작업이 있는 작업의 상태를 확인할 수 있으며 콘솔에서 작업 세부 정보를 볼 때도 상태를 확인할 수 있습니다.

다음은 컨테이너에 가능한 healthStatus 값에 대한 설명입니다.

  • HEALTHY — 컨테이너 상태 확인을 성공적으로 통과했습니다.

  • UNHEALTHY — 컨테이너 상태 확인에 실패했습니다.

  • UNKNOWN — 컨테이너 상태 확인이 평가 중이거나 컨테이너 상태 확인이 정의되지 않았습니다.

다음은 작업에 가능한 healthStatus 값에 대한 설명입니다. 필수적이지 않은 컨테이너의 컨테이너 상태 확인 상황은 작업의 상태에 영향을 미치지 않습니다.

  • HEALTHY — 작업 내 모든 필수 컨테이너가 상태 확인을 통과했습니다.

  • UNHEALTHY — 하나 이상의 필수 컨테이너가 상태 확인에 실패했습니다.

  • UNKNOWN — 작업 내 필수 컨테이너가 아직도 상태 확인을 평가 중이거나 컨테이너 상태 확인이 정의되지 않았습니다.

작업이 수동으로 실행되고 서비스의 일부가 아닌 경우, 작업은 상태에 상관없이 수명 주기가 지속됩니다. 서비스의 일부인 작업의 경우, 작업이 비정상으로 보고되면 작업이 중지되고 서비스 스케줄러가 이를 대체합니다.

다음은 컨테이너 상태 확인 지원에 대한 참고 사항입니다.

  • 컨테이너 상태 확인을 위해서는 버전이 1.17.0 이상인 Amazon ECS 컨테이너 에이전트가 필요합니다. 자세한 정보는 업데이트Amazon ECS컨테이너 에이전트을 참조하십시오.

  • 버전이 1.1.0 이상인 플랫폼을 사용 중인 경우에는 Fargate 작업에서 컨테이너 상태 확인이 지원됩니다. 자세한 정보는 AWS Fargate 플랫폼 버전을 참조하십시오.

  • Classic Load Balancer를 사용하도록 구성된 서비스에 포함되는 작업일 때는 컨테이너 상태 확인이 지원되지 않습니다.

command

상태가 정상인지 여부를 판단하기 위해 컨테이너가 실행하는 명령을 나타내는 문자열 배열입니다. 명령 인수를 직접 실행하려면 문자열 어레이가 CMD으로 시작하면 되고, 컨테이너의 기본 셸에서 명령을 실행하려면 CMD-SHELL로 시작하면 됩니다. 둘 다 지정하지 않으면 기본적으로 CMD가 사용됩니다.

AWS Management Console에서 작업 정의를 등록할 때는 작업 정의가 생성된 후에 문자열로 자동 변환되는 쉼표로 구분된 명령 목록을 사용합니다. 상태 확인을 위한 입력 예는 다음과 같을 수 있습니다.

CMD-SHELL, curl -f http://localhost/ || exit 1

AWS Management Console JSON 패널, AWS CLI 또는 API를 사용하여 작업 정의를 등록할 때는 명령 목록을 괄호로 묶어야 합니다. 상태 확인을 위한 입력 예는 다음과 같을 수 있습니다.

[ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]

종료 코드 0은 성공을 나타내고, 0이 아닌 종료 코드는 실패를 나타냅니다. 자세한 내용은 Docker Remote API컨테이너 만들기 섹션에서 HealthCheck를 참조하십시오.

interval

각 상태 확인 실행 간의 시간(초)입니다. 5초부터 300초까지 지정할 수 있습니다. 기본 값은 30초입니다.

timeout

실패로 간주되기 전에 상태 확인이 성공하기까지의 대기 시간(초)입니다. 2초부터 60초까지 지정할 수 있습니다. 기본 값은 5초입니다.

retries

컨테이너 상태가 비정상이라고 간주되기 전에 실패한 상태 확인을 재시도하는 횟수입니다. 1부터 10까지 재시도 횟수를 지정할 수 있습니다. 기본값은 3회 재시도입니다.

startPeriod

실패한 상태 확인이 최대 재시도 횟수에 포함되기 전에 컨테이너에 부트스트랩 시간이 제공되는 유예 기간 옵션입니다. 0초부터 300초까지 지정할 수 있습니다. 기본적으로 startPeriod는 비활성화되어 있습니다.

Environment

cpu

유형: 정수

필수 항목 여부: 아니요

Amazon ECS 컨테이너 에이전트가 컨테이너에 대해 예약할 cpu 단위의 수입니다. 이 매개 변수는CpuShares컨테이너 만들기의 단원Docker Remote API--cpu-shares옵션을docker run.

Fargate 시작 유형을 사용하는 작업의 경우 이 필드는 선택 사항이며, 한 가지 요구 사항은 작업 내 모든 컨테이너에 예약된 CPU 총량이 작업 레벨의 cpu 값보다 작아야 합니다.

참고

당신은 당 사용할 수있는 CPU 단위의 수를 결정할 수 있습니다Amazon EC2인스턴스 유형에 대해 나열된 vCPUs 수를 곱하여Amazon EC2 인스턴스상세 페이지를 1,024로 설정할 수 있습니다.

Linux 컨테이너는 할당된 양과 동일한 비율로, 컨테이너 인스턴스의 다른 컨테이너와 할당되지 않은 CPU 단위를 공유합니다. 예를 들어 컨테이너에 512개 CPU 단위가 지정된 상태로 싱글 코어 인스턴스 유형에서 단일 컨테이너 작업을 실행하고 이 작업이 컨테이너 인스턴스에서 실행되는 유일한 작업일 경우 해당 컨테이너는 언제라도 1,024개 CPU 단위 전부를 사용할 수 있습니다. 하지만 해당 컨테이너 인스턴스에서 동일한 작업의 다른 사본을 시작한 경우 각 작업에는 필요 시 최소 512개 CPU 단위가 보장되고 각 컨테이너는 다른 컨테이너가 사용하지 않을 경우 더 많은 CPU 단위를 사용할 수 있지만 두 작업 모두 항상 100% 활성 상태일 경우 각각 512개 CPU 단위로 제한됩니다.

Linux 컨테이너 인스턴스에서, 컨테이너 인스턴스의 도커 데몬은 CPU 값을 사용하여 실행 컨테이너의 CPU 공유 비율을 계산합니다. 자세한 내용은 Docker 설명서의 CPU 공유 제약 단원을 참조하십시오. Linux 커널이 허용하는 최소 유효 CPU 공유 값은 2입니다. 하지만 CPU 파라미터는 필수 항목이 아니며 컨테이너 정의에서 2 미만의 CPU 값을 사용할 수 있습니다. CPU 값이 2 미만일 경우(null 포함)의 동작은 Amazon ECS 컨테이너 에이전트 버전에 따라 달라집니다.

  • 에이전트 버전 1.1.0: Null 및 0 CPU 값이 Docker에 0으로 전달되고, Docker는 이를 1,024개 CPU 공유로 변환합니다. 1의 CPU 값이 도커에 1로 전달되고, Linux 커널이 이를 2개 CPU 공유로 변환합니다.

  • 에이전트 버전 1.2.0 이상: 1의 null, 0 및 CPU 값이 Docker에 2개 CPU 공유로 전달됩니다.

Windows 컨테이너 인스턴스에서 CPU 한도는 절대 한도(할당량)로 적용됩니다. Windows 컨테이너는 작업 정의에 정의된 해당 CPU 용량만 액세스할 수 있습니다. Null 또는 0 CPU 값은 Docker에 0으로 전달되며, Windows는 이를 한 CPU의 1%로 해석합니다.

gpu

Type: ResourceRequirement객체

필수 항목 여부: 아니요

Amazon ECS 컨테이너 에이전트가 컨테이너에 대해 예약하는 실제 GPUs 수입니다. 작업의 모든 컨테이너에 예약된 GPU 수가 작업이 실행되는 컨테이너 인스턴스에서 사용할 수 있는 GPU 수를 초과하면 안 됩니다. 자세한 정보는 Amazon ECS의 GPU 작업을 참조하십시오.

참고

이 파라미터는 Windows 컨테이너 또는 Fargate 시작 유형을 사용하는 작업에 대해서는 지원되지 않습니다.

essential

Type: 불

필수 항목 여부: 아니요

컨테이너의 essential 파라미터가 true로 표시된 경우 해당 컨테이너가 어떤 이유로든 실패 또는 중지하는 경우 작업의 일부인 다른 모든 컨테이너도 중지합니다. 컨테이너의 essential 파라미터가 false로 표시된 경우에는 해당 컨테이너의 실패가 작업의 나머지 컨테이너에 영향을 주지 않습니다. 이 파라미터가 생략된 경우 컨테이너가 필수로 간주됩니다.

모든 작업에는 하나 이상의 필수 컨테이너가 있어야 합니다. 애플리케이션이 여러 컨테이너로 구성되는 경우 동일한 용도로 사용되는 컨테이너를 구성 요소로 그룹화하고 각 구성 요소를 서로 다른 작업 정의로 분리해야 합니다. 자세한 정보는 애플리케이션 아키텍처을 참조하십시오.

"essential": true|false
entryPoint
중요

초기 버전의 Amazon ECS 컨테이너 에이전트는 entryPoint 파라미터를 적절히 처리하지 못합니다. entryPoint를 사용하는 데 문제가 있을 경우 컨테이너 에이전트를 업데이트하거나 명령 및 인수를 command 배열 항목으로 입력하십시오.

유형: 문자열 배열

필수 항목 여부: 아니요

컨테이너로 전달되는 진입점입니다. 이 매개 변수는Entrypoint컨테이너 만들기의 단원Docker Remote API--entrypoint옵션을docker run. 도커 ENTRYPOINT 파라미터에 대한 자세한 내용은 https://docs.docker.com/engine/reference/builder/#entrypoint를 참조하십시오.

"entryPoint": ["string", ...]
command

유형: 문자열 배열

필수 항목 여부: 아니요

컨테이너로 전달되는 명령입니다. 이 매개 변수는Cmd컨테이너 만들기의 단원Docker Remote APICOMMAND파라미터를docker run. Docker CMD 파라미터에 대한 자세한 내용은 https://docs.docker.com/engine/reference/builder/#cmd를 참조하십시오. 여러 인수가 있는 경우 각 인수는 배열에서 각각 분리된 문자열이어야 합니다.

"command": ["string", ...]
workingDirectory

유형: 문자열

필수 항목 여부: 아니요

컨테이너에서 명령을 실행할 작업 디렉터리입니다. 이 매개 변수는WorkingDir컨테이너 만들기의 단원Docker Remote API--workdir옵션을docker run.

"workingDirectory": "string"
environmentFiles

유형: 객체 배열

필수 항목 여부: 아니요

컨테이너로 전달할 환경 변수를 포함하는 파일 목록입니다. 이 파라미터는--env-file옵션을docker run.

최대 10개의 환경 파일을 지정할 수 있습니다. 파일의 확장명은 .env여야 합니다. 환경 파일의 각 줄에는 VARIABLE=VALUE 형식의 환경 변수가 포함되어야 합니다. #으로 시작하는 줄은 주석으로 처리되며 무시됩니다. 환경 변수 파일 구문에 대한 자세한 내용은 파일에서 기본 환경 변수 선언을 참조하십시오.

컨테이너 정의에 지정된 개별 환경 변수가 있는 경우 환경 파일 내에 포함된 변수보다 우선합니다. 동일한 변수를 포함하는 여러 환경 파일이 지정된 경우 위에서 아래로 처리됩니다. 고유 변수 이름을 사용하는 것이 좋습니다. 자세한 정보는 환경 변수 지정을 참조하십시오.

value

Type: 문자열

: 필수 예

환경 변수 파일을 포함하는 Amazon S3 객체의 Amazon 리소스 이름(ARN)입니다.

type

Type: 문자열

: 필수 예

사용할 파일 유형입니다. 지원되는 유일한 값은 s3입니다.

environment

유형: 객체 배열

필수 항목 여부: 아니요

컨테이너로 전달할 환경 변수입니다. 이 매개 변수는Env컨테이너 만들기의 단원Docker Remote API--env옵션을docker run.

중요

자격 증명 데이터와 같은 민감한 정보에 대해서는 일반 텍스트 환경 변수를 사용하지 않는 것이 좋습니다.

name

Type: 문자열

: 필수 예,environment를 사용합니다

환경 변수의 이름입니다.

value

Type: 문자열

: 필수 예,environment를 사용합니다

환경 변수의 값입니다.

"environment" : [ { "name" : "string", "value" : "string" }, { "name" : "string", "value" : "string" } ]
secrets

Type: 배열

: 필수 아니요

컨테이너에 공개할 암호를 나타내는 객체입니다. 자세한 정보는 중요 데이터 지정을 참조하십시오.

name

Type: 문자열

: 필수 예

컨테이너에서 환경 변수로 설정할 값입니다.

valueFrom

Type: 문자열

: 필수 예

컨테이너에 노출될 암호입니다. 지원되는 값은 AWS Secrets Manager 암호의 전체 ARN이거나 혹은 AWS Systems Manager 파라미터 스토어 내 파라미터의 전체 ARN입니다.

참고

Systems Manager 파라미터 스토어 파라미터가 현재 실행 중인 작업과 동일한 리전에 있을 경우, 해당 암호의 전체 ARN 또는 이름을 사용할 수 있습니다. 파라미터가 다른 리전에 있다면 전체 ARN을 지정해야 합니다.

"secrets": [ { "name": "environment_variable_name", "valueFrom": "arn:aws:ssm:region:aws_account_id:parameter/parameter_name" } ]

네트워크 설정

disableNetworking

Type: 불

필수 항목 여부: 아니요

이 파라미터가 true일 경우 컨테이너 내에서 네트워킹이 비활성화됩니다. 이 파라미터는 Docker Remote API컨테이너 만들기 섹션에 나오는 NetworkDisabled에 매핑됩니다.

참고

이 파라미터는 Windows 컨테이너 또는 awsvpc 네트워크 모드를 사용하는 작업에 대해서는 지원되지 않습니다.

"disableNetworking": true|false
links

유형: 문자열 배열

필수 항목 여부: 아니요

link 파라미터는 포트 매핑 필요 없이 컨테이너가 서로 통신하도록 허용합니다. 작업 정의의 네트워크 모드가 bridge로 설정된 경우에만 지원됩니다. 이name:internalName구문은 다음과 유사합니다.name:alias도커 링크에서.최대 255개의 문자(대문자 및 소문자), 숫자, 하이픈 및 밑줄이 허용됩니다. Docker 컨테이너 연결에 대한 자세한 내용은https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/. 이 매개 변수는Links컨테이너 만들기의 단원Docker Remote API--link옵션을docker run.

참고

이 파라미터는 Windows 컨테이너 또는 awsvpc 네트워크 모드를 사용하는 작업에 대해서는 지원되지 않습니다.

중요

동일한 컨테이너 인스턴스에 배치된 컨테이너는 링크 또는 호스트 포트 매핑 없이도 서로 통신할 수 있습니다. 컨테이너 인스턴스에서 네트워크 격리는 보안 그룹 및 VPC 설정에 의해 제어됩니다.

"links": ["name:internalName", ...]
hostname

유형: 문자열

필수 항목 여부: 아니요

컨테이너에 사용할 호스트 이름입니다. 이 매개 변수는Hostname컨테이너 만들기의 단원Docker Remote API--hostname옵션을docker run.

참고

awsvpc 네트워크 모드를 사용 중인 경우에는 hostname 파라미터가 지원되지 않습니다.

"hostname": "string"
dnsServers

유형: 문자열 배열

필수 항목 여부: 아니요

컨테이너에 제공되는 DNS 서버의 목록입니다. 이 매개 변수는Dns컨테이너 만들기의 단원Docker Remote API--dns옵션을docker run.

참고

이 파라미터는 Windows 컨테이너 또는 awsvpc 네트워크 모드를 사용하는 작업에 대해서는 지원되지 않습니다.

"dnsServers": ["string", ...]
dnsSearchDomains

유형: 문자열 배열

필수 항목 여부: 아니요

패턴: ^[a-zA-Z0-9-.]{0,253}[a-zA-Z0-9]$

컨테이너에 제공되는 DNS 검색 도메인의 목록입니다. 이 매개 변수는DnsSearch컨테이너 만들기의 단원Docker Remote API--dns-search옵션을docker run.

참고

이 파라미터는 Windows 컨테이너 또는 awsvpc 네트워크 모드를 사용하는 작업에 대해서는 지원되지 않습니다.

"dnsSearchDomains": ["string", ...]
extraHosts

유형: 객체 배열

필수 항목 여부: 아니요

컨테이너의 /etc/hosts 파일에 추가할 호스트 이름 및 IP 주소 매핑의 목록입니다.

이 매개 변수는ExtraHosts컨테이너 만들기의 단원Docker Remote API--add-host옵션을docker run.

참고

이 파라미터는 Windows 컨테이너 또는 awsvpc 네트워크 모드를 사용하는 작업에 대해서는 지원되지 않습니다.

"extraHosts": [ { "hostname": "string", "ipAddress": "string" } ... ]
hostname

유형: 문자열

필수 항목 여부: extraHosts 사용 시, 예

/etc/hosts 항목에 사용할 호스트 이름입니다.

ipAddress

유형: 문자열

필수 항목 여부: extraHosts 사용 시, 예

/etc/hosts 항목에 사용할 IP 주소입니다.

스토리지 및 로깅

readonlyRootFilesystem

Type: 불

필수 항목 여부: 아니요

이 파라미터가 true일 경우 컨테이너에는 루트 파일 시스템에 대한 읽기 전용 액세스가 부여됩니다. 이 매개 변수는ReadonlyRootfs컨테이너 만들기의 단원Docker Remote API--read-only옵션을docker run.

참고

이 파라미터는 Windows 컨테이너에서 지원되지 않습니다.

"readonlyRootFilesystem": true|false
mountPoints

Type: Object Array

Required: No

The mount points for data volumes in your container.

This parameter maps to Volumes in the 컨테이너 만들기 section of the Docker Remote API and the --volume option to docker run.

Windows containers can mount whole directories on the same drive as $env:ProgramData. Windows containers cannot mount directories on a different drive, and mount point cannot be across drives.

sourceVolume

Type: String

Required: Yes, when mountPoints are used

The name of the volume to mount.

containerPath

Type: String

Required: Yes, when mountPoints are used

The path on the container to mount the volume at.

readOnly

Type: Boolean

Required: No

If this value is true, the container has read-only access to the volume. If this value is false, then the container can write to the volume. The default value is false.

volumesFrom

Type: 배열 객체

: 필수 아니요

다른 컨테이너로부터 탑재할 데이터 볼륨입니다. 이 매개 변수는VolumesFrom컨테이너 만들기의 단원Docker Remote API--volumes-from옵션을docker run.

sourceContainer

유형: 문자열

필수 항목 여부: volumesFrom 사용 시, 예

탑재할 볼륨이 위치한 컨테이너의 이름입니다.

readOnly

Type: 불

필수 항목 여부: 아니요

이 값이 true일 경우 컨테이너에는 볼륨에 대한 읽기 전용 액세스가 부여됩니다. 이 값이 false일 경우 컨테이너는 볼륨에 쓸 수 있습니다. 기본 값은 false입니다.

"volumesFrom": [ { "sourceContainer": "string", "readOnly": true|false } ]
logConfiguration

Type: LogConfiguration객체

필수 항목 여부: 아니요

컨테이너의 로그 구성 사양입니다.

로그 구성을 사용하는 작업 정의에 대한 자세한 정보는 작업 정의 예제 단원을 참조하십시오.

이 매개 변수는LogConfig컨테이너 만들기의 단원Docker Remote API--log-driver옵션을docker run. 기본적으로 컨테이너는 도커 데몬이 사용하는 것과 동일한 로깅 드라이버를 사용합니다. 하지만 컨테이너 정의에서 이 파라미터를 사용하여 로그 드라이버를 지정하면 컨테이너가 도커 데몬과 다른 로깅 드라이버를 사용할 수 있습니다. 컨테이너에 다른 로깅 드라이버를 사용하려면 컨테이너 인스턴스에서(또는 원격 로깅 옵션의 다른 로그 서버에서) 로그 시스템이 올바르게 구성되어야 합니다. 지원되는 다양한 로그 드라이버 옵션에 대한 자세한 내용은 도커 설명서의 로깅 드라이버 구성 단원을 참조하십시오.

컨테이너에 대한 로그 구성을 지정할 때 다음 사항에 유의해야 합니다.

  • 현재 Amazon ECS는 Docker 데몬에서 사용 가능한 로깅 드라이버의 하위 집합을 지원합니다(아래 유효한 값에 표시됨). 향후의 Amazon ECS 컨테이너 에이전트 릴리스에서 로그 드라이버가 추가될 예정입니다.

  • 이 파라미터를 사용하려면 컨테이너 인스턴스에서 도커 원격 API 버전 1.18 이상을 사용해야 합니다.

  • EC2 시작 유형을 사용하는 작업의 경우, 컨테이너 인스턴스에서 실행되는 Amazon ECS 컨테이너 에이전트는 ECS_AVAILABLE_LOGGING_DRIVERS 환경 변수를 사용하여 해당 인스턴스에서 사용 가능한 로깅 드라이버를 등록해야 해당 인스턴스에 배치된 컨테이너가 이들 로그 구성 옵션을 사용할 수 있습니다. 자세한 정보는 Amazon ECS컨테이너 에이전트 구성을 참조하십시오.

  • Fargate 시작 유형을 사용하는 작업의 경우, 작업이 호스팅되는 기본 인프라에 대한 액세스 권한이 없으므로 필요한 추가 소프트웨어가 작업 외부에 설치되어야 합니다. 예: Fluentd 출력 집계자 또는 Gelf 로그를 보내기 위해 Logstash를 실행 중인 원격 호스트.

"logConfiguration": { "logDriver": "awslogs","fluentd","gelf","json-file","journald","logentries","splunk","syslog","awsfirelens", "options": {"string": "string" ...}, "secretOptions": [{ "name": "string", "valueFrom": "string" }] }
logDriver

유형: 문자열

유효한 값: "awslogs","fluentd","gelf","json-file","journald","logentries","splunk","syslog","awsfirelens"

필수 항목 여부: logConfiguration 사용 시, 예

컨테이너에 사용할 로드 드라이버입니다. 앞에 나열된 유효한 값은 Amazon ECS 컨테이너 에이전트가 기본적으로 통신할 수 있는 로그 드라이버입니다.

Fargate 시작 유형을 사용하는 작업의 경우, 지원되는 로그 드라이버는 awslogs, splunkawsfirelens입니다.

EC2 시작 유형을 사용하는 작업의 경우, 지원되는 로그 드라이버는 awslogs, fluentd, gelf, json-file, journald, logentries, syslog, splunkawsfirelens입니다.

작업 정의에서 awslogs 로그 드라이버를 사용하여 CloudWatch Logs로 컨테이너 로그를 보내는 방법에 대한 자세한 내용은 awslogs 로그 드라이버 사용 단원을 참조하십시오.

awsfirelens 로그 드라이버 사용에 대한 자세한 내용은 사용자 지정 로그 라우팅.을 참조하십시오.

참고

목록에 포함되지 않은 사용자 지정 드라이버가 있는 경우Amazon ECS컨테이너 에이전트 프로젝트GitHub 에서 사용할 수 있음하고 해당 드라이버와 함께 작동하도록 사용자 정의합니다. 포함하고 싶은 변경에 대해서는 풀 요청을 제출할 것을 권장합니다. 단, 현재 이 소프트웨어의 수정된 사본 실행은 지원되지 않습니다.

이 파라미터를 사용하려면 컨테이너 인스턴스에서 도커 원격 API 버전 1.18 이상을 사용해야 합니다.

options

유형: 문자열 간 맵

필수 항목 여부: 아니요

로그 드라이버로 보낼 구성 옵션입니다.

이 파라미터를 사용하려면 컨테이너 인스턴스에서 도커 원격 API 버전 1.19 이상을 사용해야 합니다.

secretOptions

유형: 객체 배열

필수 항목 여부: 아니요

로그 구성에 전달할 암호를 나타내는 객체입니다. 자세한 정보는 중요 데이터 지정을 참조하십시오.

name

Type: 문자열

: 필수 예

컨테이너에서 환경 변수로 설정할 값입니다.

valueFrom

Type: 문자열

: 필수 예

컨테이너의 로그 구성에 노출할 암호.

"logConfiguration": { "logDriver": "splunk", "options": { "splunk-url": "https://cloud.splunk.com:8080", "splunk-token": "...", "tag": "...", ... }, "secretOptions": [{ "name": "splunk-token", "valueFrom": "/ecs/logconfig/splunkcred" }] }
firelensConfiguration

Type: FirelensConfiguration객체

: 필수 아니요

컨테이너의 FireLens 구성입니다. 컨테이너 로그에 대한 로그 라우터를 지정하고 구성하는 데 사용됩니다. 자세한 정보는 사용자 지정 로그 라우팅을 참조하십시오.

{ "firelensConfiguration": { "type": "fluentd", "options": { "KeyName": "" } } }
options

Type: 문자열 간 맵

: 필수 아니요

로그 라우터를 구성할 때 사용할 옵션입니다. 이 필드는 선택 사항이며, 사용자 지정 구성 파일을 지정하거나 작업, 작업 정의, 클러스터 및 컨테이너 인스턴스 세부 정보와 같은 추가 메타데이터를 로그 이벤트에 추가하는 데 사용할 수 있습니다. 지정된 경우 사용할 구문은"options":{"enable-ecs-log-metadata":"true|false","config-file-type:"s3|file","config-file-value":"arn:aws:s3:::mybucket/fluent.conf|filepath"}. 자세한 정보는 FireLens 구성을 사용하는 작업 정의 생성을 참조하십시오.

type

Type: 문자열

: 필수 예

사용할 로그 라우터입니다. 유효한 값은 fluentd 또는 fluentbit입니다.

Security

privileged

Type: 불

필수 항목 여부: 아니요

이 파라미터가 true일 경우 컨테이너에는 호스트 컨테이너 인스턴스에 대한 승격된 권한을 부여받습니다(root 사용자와 비슷함).

이 매개 변수는Privileged컨테이너 만들기의 단원Docker Remote API--privileged옵션을docker run.

참고

이 파라미터는 Windows 컨테이너 또는 Fargate 시작 유형을 사용하는 작업에 대해서는 지원되지 않습니다.

"privileged": true|false
user

유형: 문자열

필수 항목 여부: 아니요

컨테이너 내부에서 사용할 사용자입니다. 이 매개 변수는User컨테이너 만들기의 단원Docker Remote API--user옵션을docker run.

중요

host 네트워크 모드를 사용하여 작업을 실행할 때는 루트 사용자(UID 0)를 사용하여 컨테이너를 실행해서는 안 됩니다. 루트 사용자가 아닌 사용자를 사용하는 것이 가장 좋습니다.

다음 형식을 사용하여 user를 지정할 수 있습니다. UID 또는 GID를 지정하는 경우 이를 양의 정수로 지정해야 합니다.

  • user

  • user:group

  • uid

  • uid:gid

  • user:gid

  • uid:group

참고

이 파라미터는 Windows 컨테이너에서 지원되지 않습니다.

"user": "string"
dockerSecurityOptions

유형: 문자열 배열

유효한 값: "no-new-privileges" | "apparmor:PROFILE" | "label:value" | "credentialspec:CredentialSpecFilePath"

필수 항목 여부: 아니요

SELinux 및 AppArmor 다중 수준 보안 시스템에 사용자 지정 레이블을 제공할 문자열 목록입니다. 유효한 값에 대한 자세한 내용은 Docker 실행 보안 구성을 참조하십시오. 이 필드는 Fargate 시작 유형을 사용하는 작업의 컨테이너에는 사용할 수 없습니다.

Windows 컨테이너를 사용하는 경우, 이 파라미터를 사용하여 Active Directory 인증을 위한 컨테이너를 구성할 때 자격 증명 사양 파일을 참조할 수 있습니다. 자세한 정보는 Windows 컨테이너에 gMSA 사용하기을 참조하십시오.

이 매개 변수는SecurityOpt컨테이너 만들기의 단원Docker Remote API--security-opt옵션을docker.

"dockerSecurityOptions": ["string", ...]
참고

컨테이너 인스턴스에서 실행되는 Amazon ECS 컨테이너 에이전트는 ECS_SELINUX_CAPABLE=true 또는 ECS_APPARMOR_CAPABLE=true 환경 변수를 사용하여 해당 인스턴스에서 사용 가능한 로깅 드라이버를 등록해야 해당 인스턴스에 배치된 컨테이너가 이들 보안 옵션을 사용할 수 있습니다. 자세한 정보는 Amazon ECS컨테이너 에이전트 구성을 참조하십시오.

리소스 제한

ulimits

유형: 객체 배열

필수 항목 여부: 아니요

목록ulimit값을 사용하여 컨테이너에 대해 정의할 수 있습니다. 이 값은 운영 체제의 기본 리소스 제한 설정을 덮어씁니다. 이 매개 변수는Ulimits컨테이너 만들기의 단원Docker Remote API--ulimit옵션을docker run.

Fargate에서 호스팅되는 Amazon ECS 작업은 Fargate가 재정의하는 nofile 리소스 제한 파라미터를 제외하고 운영 체제에서 설정되는 기본 리소스 제한 값을 사용합니다. nofile 리소스 제한은 컨테이너가 사용할 수 있는 열린 파일 수에 대한 제한을 설정합니다. 기본 nofile 소프트 제한은 1024고 하드 제한은 4096입니다. 자세한 내용은 단원을 참조하십시오.작업 리소스.

이 파라미터를 사용하려면 컨테이너 인스턴스에서 도커 원격 API 버전 1.18 이상을 사용해야 합니다.

참고

이 파라미터는 Windows 컨테이너에서 지원되지 않습니다.

"ulimits": [ { "name": "core"|"cpu"|"data"|"fsize"|"locks"|"memlock"|"msgqueue"|"nice"|"nofile"|"nproc"|"rss"|"rtprio"|"rttime"|"sigpending"|"stack", "softLimit": integer, "hardLimit": integer } ... ]
name

유형: 문자열

유효한 값: "core" | "cpu" | "data" | "fsize" | "locks" | "memlock" | "msgqueue" | "nice" | "nofile" | "nproc" | "rss" | "rtprio" | "rttime" | "sigpending" | "stack"

필수 항목 여부: ulimits 사용 시, 예

ulimittype입니다.

hardLimit

유형: 정수

필수 항목 여부: ulimits 사용 시, 예

ulimit 유형의 하드 제한입니다.

softLimit

유형: 정수

필수 항목 여부: ulimits 사용 시, 예

ulimit 유형의 소프트 제한입니다.

도커 레이블

dockerLabels

유형: 문자열 간 맵

필수 항목 여부: 아니요

컨테이너에 추가할 레이블의 키/값 맵입니다. 이 매개 변수는Labels컨테이너 만들기의 단원Docker Remote API--label옵션을docker run.

이 파라미터를 사용하려면 컨테이너 인스턴스에서 도커 원격 API 버전 1.18 이상을 사용해야 합니다.

"dockerLabels": {"string": "string" ...}

기타 컨테이너 정의 파라미터

다음 컨테이너 정의 매개 변수는 작업 정의를 등록 할 때 사용할 수 있습니다.Amazon ECS콘솔을 사용하여JSON을 통한 구성옵션을 사용합니다. 자세한 정보는 작업 정의 생성하기을 참조하십시오.

Linux 파라미터

linuxParameters

Type: LinuxParameters객체

필수 항목 여부: 아니요

컨테이너에 적용되는 Linux용 옵션(예: KernelCapabilities)

참고

이 파라미터는 Windows 컨테이너에서 지원되지 않습니다.

"linuxParameters": { "capabilities": { "add": ["string", ...], "drop": ["string", ...] } }
capabilities

Type: KernelCapabilities객체

필수 항목 여부: 아니요

컨테이너에 대해 도커에서 제공하는 기본 구성에 추가되거나 삭제되는 Linux 기능. 기본 기능 및 그 외 사용 가능한 기능에 대한 자세한 내용은런타임 권한 및 Linux 기능도커 실행. 이러한 Linux 기능에 대한 자세한 내용은 capabilities(7) Linux 매뉴얼 페이지를 참조하십시오.

add

유형: 문자열 배열

유효한 값: "ALL" | "AUDIT_CONTROL" | "AUDIT_READ" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM"

필수 항목 여부: 아니요

컨테이너에 대해 도커에서 제공하는 기본 구성에 추가할 Linux 기능. 이 파라미터는 CapAdd컨테이너 만들기 섹션의 Docker Remote API--cap-adddocker run 명령의 옵션에 매핑됩니다.

참고

다음에 실행된 작업Fargate는 추가 기능만 지원합니다.SYS_PTRACE커널 기능을 사용합니다.

drop

유형: 문자열 배열

유효한 값: "ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM"

필수 항목 여부: 아니요

컨테이너에 대해 도커에서 제공하는 기본 구성에서 제거할 Linux 기능. 이 파라미터는 CapDrop컨테이너 만들기 섹션의 Docker Remote API--cap-dropdocker run 명령의 옵션에 매핑됩니다.

devices

컨테이너에 노출될 모든 호스트 디바이스. 이 파라미터는 Devices컨테이너 만들기 섹션의 Docker Remote API--devicedocker run 명령의 옵션에 매핑됩니다.

참고

Fargate 시작 유형을 사용하는 작업을 사용하는 경우에는 devices 파라미터가 지원되지 않습니다.

Type: 어레이Device객체

: 필수 아니요

hostPath

호스트 컨테이너 인스턴스의 디바이스 경로.

Type: 문자열

: 필수 예

containerPath

호스트 디바이스를 노출할 컨테이너 내 경로.

Type: 문자열

: 필수 아니요

permissions

디바이스를 위해 컨테이너에 제공할 명시적 권한. 컨테이너는 기본적으로 디바이스에서 read, writemknod에 대한 권한이 있습니다.

Type: 문자열 배열

유효한 값: read | write | mknod

initProcessEnabled

신호를 전달하고 프로세스의 결과를 받아들이는 컨테이너 내에서 init 프로세스를 실행합니다. 이 파라미터는 docker run에 대한 --init 옵션에 매핑됩니다.

이 파라미터를 사용하려면 컨테이너 인스턴스에서 도커 원격 API 버전 1.25 이상을 사용해야 합니다.

maxSwap

컨테이너가 사용할 수있는 총 스왑 메모리 양(MiB) 이 파라미터는 docker run에 대한 --memory-swap 옵션으로 변환되고, 컨테이너 메모리의 합계에 maxSwap 값을 더한 값이 됩니다.

0maxSwap 값이 지정되면 컨테이너는 스왑을 사용하지 않습니다. 허용되는 값은 0 또는 양수입니다. maxSwap 매개 변수를 생략하면 컨테이너는 실행 중인 컨테이너 인스턴스에 대한 스왑 구성을 사용합니다. swappiness 매개 변수를 사용하려면 maxSwap 값을 설정해야 합니다.

참고

Fargate 시작 유형을 사용하는 작업을 사용하는 경우에는 maxSwap 파라미터가 지원되지 않습니다.

sharedMemorySize

/dev/shm 볼륨의 크기 값(MiB)입니다. 이 파라미터는 docker run에 대한 --shm-size 옵션에 매핑됩니다.

참고

Fargate 시작 유형을 사용하는 작업을 사용하는 경우에는 sharedMemorySize 파라미터가 지원되지 않습니다.

Type: Integer

swappiness

이를 통해 컨테이너의 메모리 스왑 동작을 조정할 수 있습니다. 0swappiness 값은 절대적으로 필요한 경우가 아니면 스와핑이 발생하지 않도록 합니다. 100swappiness 값은 페이지가 매우 적극적으로 스와핑되도록 합니다. 허용되는 값은 0100 사이의 숫자입니다. swappiness 매개 변수를 지정하지 않으면 60의 기본값이 사용됩니다. maxSwap 값이 지정되지 않은 경우 이 매개 변수는 무시됩니다. 이 파라미터는 docker run에 대한 --memory-swappiness 옵션에 매핑됩니다.

참고

Fargate 시작 유형을 사용하는 작업을 사용하는 경우에는 swappiness 파라미터가 지원되지 않습니다.

tmpfs

컨테이너 경로, 마운트 옵션 및 tmpfs 마운트의 최대 크기(MiB)입니다. 이 파라미터는 docker run에 대한 --tmpfs 옵션에 매핑됩니다.

참고

Fargate 시작 유형을 사용하는 작업을 사용하는 경우에는 tmpfs 파라미터가 지원되지 않습니다.

Type: 어레이Tmpfs객체

: 필수 아니요

containerPath

tmpfs 볼륨을 마운트할 절대 파일 경로입니다.

Type: 문자열

: 필수 예

mountOptions

tmpfs 볼륨 마운트 옵션의 목록.

Type: 문자열 배열

: 필수 아니요

유효한 값: "defaults" | "ro" | "rw" | "suid" | "nosuid" | "dev" | "nodev" | "exec" | "noexec" | "sync" | "async" | "dirsync" | "remount" | "mand" | "nomand" | "atime" | "noatime" | "diratime" | "nodiratime" | "bind" | "rbind" | "unbindable" | "runbindable" | "private" | "rprivate" | "shared" | "rshared" | "slave" | "rslave" | "relatime" | "norelatime" | "strictatime" | "nostrictatime" | "mode" | "uid" | "gid" | "nr_inodes" | "nr_blocks" | "mpol"

size

tmpfs 볼륨의 최대 크기(MiB) 입니다.

Type: Integer

: 필수 예

컨테이너 종속성

dependsOn

Type: 어레이ContainerDependency객체

필수 항목 여부: 아니요

컨테이너 시작 및 종료에 대해 정의된 종속성입니다. 컨테이너는 여러 종속성을 포함할 수 있습니다. 컨테이너가 시작될 때 종속성이 정의되면 컨테이너를 종료할 때 종속성이 취소됩니다. 관련 예제는 예: 컨테이너 종속성 섹션을 참조하세요

참고

컨테이너가 종속성 제약 조건을 충족시키지 못하거나 제약 조건을 충족하기 전에 시간 초과되면Amazon ECS는 종속 컨테이너를 다음 상태로 진행하지 않습니다.

용Amazon ECS호스팅된 작업Amazon EC2인스턴스를 사용하는 경우 인스턴스에 최소 버전1.26.0를 사용하여 컨테이너 종속성을 사용하도록 설정할 수 있습니다. 그러나 최신 버전의 컨테이너 에이전트를 사용하는 것이 좋습니다. 에이전트 버전을 확인하고 최신 버전으로 업데이트하는 방법에 대한 자세한 내용은 업데이트Amazon ECS컨테이너 에이전트 단원을 참조하십시오. 를 사용하는 경우Amazon ECS-optimized Amazon Linux AMI를 사용하는 경우 인스턴스에 적어도 버전이 필요합니다.1.26.0-1ecs-init패키지. 컨테이너 인스턴스가 버전 20190301 이상에서 시작된 경우 필요한 버전의 컨테이너 에이전트 및 ecs-init가 포함되어 있습니다. 자세한 정보는 Amazon ECS-optimized AMI을 참조하십시오.

용Amazon ECS호스팅된 작업Fargate이 파라미터에 작업 또는 서비스 플랫폼 버전1.3.0이상.

"dependsOn": [ { "containerName": "string", "condition": "string" } ]
containerName

Type: 문자열

: 필수 예

지정된 조건을 충족해야 하는 컨테이너 이름입니다.

condition

Type: 문자열

: 필수 예

컨테이너의 종속성 조건입니다. 다음은 사용 가능한 조건과 그 동작입니다.

  • START – 이 조건은 오늘의 링크와 볼륨의 동작을 에뮬레이션합니다. 다른 컨테이너를 시작하기 전에 종속 컨테이너가 시작되었는지 확인합니다.

  • COMPLETE – 이 조건은 다른 컨테이너를 시작하기 전에 종속 컨테이너 실행이 완료(종료)되었는지 확인합니다. 이는 스크립트를 실행한 후 종료하는 필수적이지 않은 컨테이너에 유용할 수 있습니다. 필수 컨테이너에는 이 조건을 설정할 수 없습니다.

  • SUCCESS – 이 조건은 COMPLETE와 동일하지만 컨테이너가 zero 상태로 종료되어야 합니다. 필수 컨테이너에는 이 조건을 설정할 수 없습니다.

  • HEALTHY – 이 조건은 다른 컨테이너를 시작하기 전에 종속 컨테이너가 도커 상태 확인을 통과하는지 확인합니다. 이렇게 하려면 종속 컨테이너에 상태 확인이 구성되어 있어야 합니다. 이 조건은 작업 시작 시에만 확인됩니다.

컨테이너 제한 시간

startTimeout

Type: Integer

필수 항목 여부: 아니요

예제 값: 120

컨테이너에 대한 종속성 해결을 포기하기 전에 대기할 시간(초)입니다.

예를 들어, 작업 정의에서containerA에 대한 종속성을 갖는containerB에 도달COMPLETE,SUCCESS또는HEALTHY상태가. 경우startTimeout값이 지정되었습니다.containerB그 시간 내에 원하는 상태에 도달하지 못하면containerA포기하고 시작하지 않을 것입니다.

참고

컨테이너가 종속성 제약 조건을 충족시키지 못하거나 제약 조건을 충족하기 전에 시간 초과되면Amazon ECS는 종속 컨테이너를 다음 상태로 진행하지 않습니다.

용Amazon ECS호스팅된 작업Fargate이 파라미터에 작업 또는 서비스 플랫폼 버전1.3.0이상. 플랫폼 버전을 사용하는 경우1.4.0이 파라미터를 지정하지 않으면60초가 사용됩니다.

stopTimeout

Type: Integer

필수 항목 여부: 아니요

예제 값: 120

자체적으로 정상적으로 종료하지 않을 경우 컨테이너를 강제 종료하기까지 대기할 시간(초)입니다.

Fargate 시작 유형을 사용하는 작업의 경우 작업 또는 서비스에 플랫폼 버전 1.3.0 이상이 필요합니다. 최대 중지 제한 시간 값은 120초이며 파라미터를 지정하지 않으면 30초(기본값)가 사용됩니다.

EC2 시작 유형을 사용하는 작업의 경우 stopTimeout 파라미터를 지정하지 않으면 Amazon ECS 컨테이너 에이전트 구성 변수 ECS_CONTAINER_STOP_TIMEOUT에 대해 설정된 값이 기본적으로 사용됩니다. stopTimeout 파라미터 또는 ECS_CONTAINER_STOP_TIMEOUT 에이전트 구성 변수가 모두 설정되지 않은 경우 Linux 컨테이너의 경우 30초(기본값)가 사용되고 Windows 컨테이너의 경우 30초(기본값)가 사용됩니다. 컨테이너 중지 제한 시간 값을 활성화하려면 컨테이너 인스턴스에 버전 1.26.0 이상의 컨테이너 에이전트가 필요합니다. 그러나 최신 버전의 컨테이너 에이전트를 사용하는 것이 좋습니다. 에이전트 버전을 확인하고 최신 버전으로 업데이트하는 방법에 대한 자세한 내용은 업데이트Amazon ECS컨테이너 에이전트 단원을 참조하십시오. Amazon ECS-optimized Amazon Linux AMI를 사용하는 경우, 인스턴스는 버전 1.26.0-1 이상의 ecs-init 패키지가 필요합니다. 컨테이너 인스턴스가 버전 20190301 이상에서 시작된 경우 필요한 버전의 컨테이너 에이전트 및 ecs-init가 포함되어 있습니다. 자세한 정보는 Amazon ECS-optimized AMI을 참조하십시오.

System Controls

systemControls

Type: SystemControl객체

필수 항목 여부: 아니요

컨테이너에서 설정할 네임스페이스 커널 파라미터의 목록입니다. 이 매개 변수는Sysctls컨테이너 만들기의 단원Docker Remote API--sysctl옵션을docker run.

다음과 같은 이유로 awsvpc 또는 host 네트워크 모드도 사용하는 단일 작업에서 여러 컨테이너에 네트워크 관련 systemControls 파라미터를 지정하는 것은 좋지 않습니다.

  • awsvpc 네트워크 모드를 사용하는 작업의 경우 컨테이너에 systemControls을 설정할 경우 작업의 모든 컨테이너에 적용됩니다. 단일 작업의 여러 컨테이너에 서로 다른 systemControls을 설정할 경우 마지막으로 시작되는 컨테이너에 따라 적용될 systemControls이 결정됩니다.

  • host 네트워크 모드를 사용하는 작업의 경우, 네트워크 네임스페이스 systemControls는 지원되지 않습니다.

작업 내 컨테이너에 사용할 IPC 리소스 네임스페이스를 설정하는 경우, 시스템 제어에 다음 사항이 적용됩니다. 자세한 정보는 IPC 모드을 참조하십시오.

  • host IPC 모드를 사용하는 작업의 경우, IPC 네임스페이스 systemControls는 지원되지 않습니다.

  • task IPC 모드를 사용하는 작업의 경우, IPC 네임스페이스 systemControls 값은 작업 내 모든 컨테이너에 적용됩니다.

참고

이 파라미터는 Windows 컨테이너 또는 Fargate 시작 유형을 사용하는 작업에 대해서는 지원되지 않습니다.

"systemControls": [ { "namespace":"string", "value":"string" } ]
namespace

Type: 문자열

필수 항목 여부: 아니요

value을 설정할 네임스페이스 커널 파라미터입니다.

유효한 IPC 네임스페이스 값: "kernel.msgmax" | "kernel.msgmnb" | "kernel.msgmni" | "kernel.sem" | "kernel.shmall" | "kernel.shmmax" | "kernel.shmmni" | "kernel.shm_rmid_forced", "fs.mqueue.*"로 시작하는 Sysctls

유효한 네트워크 네임스페이스 값: 로 시작하는 Sysctls"net.*"

value

Type: 문자열

필수 항목 여부: 아니요

namespace에서 지정되는 네임스페이스 커널 파라미터의 값입니다.

Interactive

interactive

Type: 불

필수 항목 여부: 아니요

이 파라미터가 true일 경우 이것을 사용하여 stdin 또는 tty를 할당해야 하는 컨테이너화된 애플리케이션을 배포할 수 있습니다. 이 매개 변수는OpenStdin컨테이너 만들기의 단원Docker Remote API--interactive옵션을docker run.

의사 터미널

pseudoTerminal

Type: 불

필수 항목 여부: 아니요

이 파라미터가 true일 경우 TTY가 할당됩니다. 이 매개 변수는Tty컨테이너 만들기의 단원Docker Remote API--tty옵션을docker run.

작업 배치 제약

작업 정의를 등록할 때 Amazon ECS가 작업을 배치하는 방식을 사용자 지정하는 작업 배치 제약을 제공할 수 있습니다.

Fargate 시작 유형을 사용하는 경우 작업 배치 제약은 지원되지 않습니다. 기본적으로 Fargate 작업은 가용 영역에 분산되어 있습니다.

EC2 시작 유형을 사용하는 작업의 경우 제약을 사용하여 가용 영역, 인스턴스 유형 또는 사용자 지정 속성에 따라 작업을 배치할 수 있습니다. 자세한 정보는 Amazon ECS작업 배치 제약을 참조하십시오.

컨테이너 정의에서 다음 파라미터가 허용됩니다.

expression

유형: 문자열

필수 항목 여부: 아니요

제약에 적용할 클러스터 쿼리 언어 표현식입니다. 자세한 정보는 클러스터 쿼리 언어을 참조하십시오.

type

유형: 문자열

필수 항목 여부: 예

제약의 유형입니다. memberOf를 사용하여 선택을 유효한 후보 그룹으로 제한합니다.

프록시 구성

proxyConfiguration

Type: ProxyConfiguration객체

필수 항목 여부: 아니요

App Mesh 프록시에 대한 구성 세부 정보입니다.

EC2 시작 유형을 사용하는 작업의 경우 프록시 구성을 사용하려면 컨테이너 인스턴스에 컨테이너 에이전트 버전 1.26.0 이상과 ecs-init 패키지의 버전 1.26.0-1 이상이 필요합니다. 컨테이너 인스턴스가 Amazon ECS 최적화 AMI 버전 20190301 이상에서 시작된 경우 필요한 버전의 컨테이너 에이전트 및 ecs-init가 포함되어 있습니다. 자세한 정보는 Amazon ECS-optimized AMI을 참조하십시오.

Fargate 시작 유형을 사용하는 작업의 경우 이 기능을 사용하려면 플랫폼 버전 1.3.0 이상을 사용하는 작업 또는 서비스가 필요합니다.

참고

이 파라미터는 Windows 컨테이너에서 지원되지 않습니다.

"proxyConfiguration": { "type": "APPMESH", "containerName": "string", "properties": [ { "name": "string", "value": "string" } ] }
type

Type: 문자열

유효한 값: APPMESH

필수 사항: 아니요

프록시 유형입니다. 지원되는 유일한 값은 APPMESH입니다.

containerName

Type: 문자열

필수 사항: 예

App Mesh 프록시로 사용할 컨테이너의 이름입니다.

properties

Type: 어레이KeyValuePair객체

필수 사항: 아니요

키-값 페어로 지정된 CNI(Container Network Interface) 플러그인을 제공하는 네트워크 구성 파라미터 세트입니다.

  • IgnoredUID – (필수) 컨테이너 정의의 user 파라미터에 정의된 프록시 컨테이너의 사용자 ID(UID)입니다. 프록시가 트래픽을 무시하는 데 사용됩니다. IgnoredGID를 지정한 경우 이 필드를 비워둘 수 있습니다.

  • IgnoredGID – (필수) 컨테이너 정의의 user 파라미터에 정의된 프록시 컨테이너의 그룹 ID(GID)입니다. 프록시가 트래픽을 무시하는 데 사용됩니다. IgnoredUID를 지정한 경우 이 필드를 비워둘 수 있습니다.

  • AppPorts – (필수) 애플리케이션이 사용하는 포트 목록입니다. 이러한 포트에 대한 네트워크 트래픽은 ProxyIngressPortProxyEgressPort로 전달됩니다.

  • ProxyIngressPort – (필수) AppPorts로 들어오는 트래픽을 보낼 포트를 지정합니다.

  • ProxyEgressPort – (필수) AppPorts에서 나가는 트래픽을 보낼 포트를 지정합니다.

  • EgressIgnoredPorts – (필수) 지정된 포트로 가는 송신 트래픽은 무시되고 ProxyEgressPort로 리디렉션되지 않습니다. 값은 빈 목록일 수 있습니다.

  • EgressIgnoredIPs – (필수) 지정된 IP 주소로 가는 송신 트래픽은 무시되고 ProxyEgressPort로 리디렉션되지 않습니다. 값은 빈 목록일 수 있습니다.

name

Type: 문자열

필수 사항: 아니요

키-값 페어의 이름입니다.

value

Type: 문자열

필수 사항: 아니요

키-값 페어의 값입니다.

Volumes

작업 정의를 등록할 때 선택적으로 볼륨 목록이 컨테이너 인스턴스의 도커 데몬에게 전달되도록 지정할 수 있습니다. 그러면 동일한 컨테이너 인스턴스에 속하는 다른 컨테이너가 액세스하는 데 전달된 볼륨 목록을 사용할 수 있습니다.

사용할 수 있는 데이터 볼륨의 유형은 다음과 같습니다.

  • 도커 볼륨 — 호스트 Amazon EC2 인스턴스의 /var/lib/docker/volumes 아래에 생성되는 도커 관리형 볼륨입니다. 도커 볼륨 드라이버(플러그인이라고도 함)는 볼륨을 Amazon EBS 같은 외부 스토리지 시스템과 통합하는 데 사용됩니다. 내장형 local 볼륨 드라이버 또는 타사 볼륨 드라이버를 사용할 수 있습니다. 도커 볼륨은 Amazon EC2 인스턴스에서 작업을 실행할 때만 지원됩니다. Windows 컨테이너는 local 드라이버의 사용만 지원합니다. 도커 볼륨을 사용하려면 작업 정의에서 dockerVolumeConfiguration을 지정합니다. 자세한 정보는 볼륨 사용 단원을 참조하십시오.

  • 바인드 탑재 - 호스트 컴퓨터의 파일 또는 디렉터리가 컨테이너에 탑재됩니다. 바인드 마운트 호스트 볼륨은 AWS Fargate 또는 Amazon EC2 인스턴스에서 작업을 실행할 때 지원됩니다. 바인드 탑재 호스트 볼륨을 사용하려면 작업 정의에서 hostsourcePath(옵션) 값을 지정합니다. 자세한 정보는 바인드 탑재 사용 단원을 참조하십시오.

자세한 정보는 작업에서 데이터 볼륨 사용을 참조하십시오.

컨테이너 정의에서 다음 파라미터가 허용됩니다.

name

유형: 문자열

필수 항목 여부: 아니요

볼륨의 이름입니다. 최대 255개의 문자(대문자 및 소문자), 숫자, 하이픈 및 밑줄이 허용됩니다. 이 이름은 컨테이너 정의 sourceVolume 객체의 mountPoints 파라미터에서 참조됩니다.

host

필수 항목 여부: 아니요

참고

host 파라미터는 Amazon EC2 인스턴스에서 호스팅되는 작업을 사용할 때만 지원됩니다.

host 파라미터는 바인드 탑재의 수명 주기를 작업이 아닌 호스트 Amazon EC2 인스턴스 및 저장 위치에 연결하는 데 사용됩니다. host 파라미터가 비어 있으면 도커 데몬이 데이터 볼륨의 호스트 경로를 할당하지만 해당 볼륨과 연결된 컨테이너가 실행을 중지한 후 데이터 유지가 보장되지 않습니다.

Windows 컨테이너는 전체 디렉터리를 동일한 드라이브에 $env:ProgramData로 마운트할 수 있습니다.

sourcePath

유형: 문자열

필수 항목 여부: 아니요

host 파라미터가 사용되는 경우 sourcePath를 지정하여 컨테이너에 제시되는 호스트 Amazon EC2 인스턴스 상의 경로를 선언합니다. 이 파라미터가 비어 있으면 도커 데몬이 사용자 대신 호스트 경로를 할당합니다. host 파라미터에 sourcePath 파일 위치가 들어 있으며 데이터 볼륨은 수동으로 삭제하기 전에는 호스트 Amazon EC2 인스턴스의 지정된 위치에 유지됩니다. sourcePath 값이 호스트 Amazon EC2 인스턴스에 없을 경우 도커 데몬이 해당 경로를 생성합니다. 해당 위치가 있을 경우 소스 경로 폴더의 콘텐츠를 내보냅니다.

dockerVolumeConfiguration

유형: 객체

필수 항목 여부: 아니요

이 파라미터는 도커 볼륨을 사용할 때 지정됩니다. 도커 볼륨은 EC2 인스턴스에서 작업을 실행할 때만 지원됩니다. Windows 컨테이너는 local 드라이버의 사용만 지원합니다. 바인드 탑재를 사용하려면 대신에 host를 지정하십시오.

scope

유형: 문자열

유효한 값: task | shared

필수 항목 여부: 아니요

수명 주기를 결정하는 도커 볼륨의 범위입니다. 범위가 task로 지정된 도커 볼륨은 작업이 시작될 때 자동으로 프로비저닝되고 작업이 삭제되면 폐기됩니다. 범위가 shared로 지정된 도커 볼륨은 작업 중단 후에도 유지됩니다.

autoprovision

유형: 부울

기본값: false

필수 항목 여부: 아니요

이 값이 true인 경우 도커 볼륨이 아직 없으면 도커 볼륨이 생성됩니다. 이 필드는 scopeshared인 경우에만 사용됩니다. scopetask인 경우 이 파라미터를 생략하거나 false로 설정해야 합니다.

driver

유형: 문자열

필수 항목 여부: 아니요

사용할 도커 볼륨 드라이버입니다. 드라이버 값은 작업 배치에 사용되므로 도커에서 제공하는 드라이버 이름과 일치해야 합니다. 도커 플러그인 CLI를 사용하여 드라이버를 설치했다면 docker plugin ls를 사용하여 컨테이너 인스턴스에서 드라이버 이름을 가져옵니다. 다른 방법을 사용하여 드라이버를 설치했다면 도커 플러그인 검색을 사용하여 드라이버 이름을 가져옵니다. 자세한 정보는 도커 플러그인 검색을 참조하십시오. 이 파라미터는 Docker Remote API볼륨 생성 섹션에 있는 Driver에 매핑되고, --driver 옵션은 docker volume create에 매핑됩니다.

driverOpts

유형: 문자열

필수 항목 여부: 아니요

전달할 옵션에 고유한 도커 드라이버의 맵입니다. 이 파라미터는 Docker Remote API볼륨 생성 섹션에 있는 DriverOpts에 매핑되고, --opt 옵션은 docker volume create에 매핑됩니다.

labels

유형: 문자열

필수 항목 여부: 아니요

도커 볼륨에 추가할 사용자 지정 메타데이터입니다. 이 파라미터는 Docker Remote API볼륨 생성 섹션에 있는 Labels에 매핑되고, --label 옵션은 docker volume create에 매핑됩니다.

efsVolumeConfiguration

유형: 객체

필수 항목 여부: 아니요

이 파라미터는 Amazon EFS 볼륨을 사용할 때 지정됩니다.

fileSystemId

유형: 문자열

필수 항목 여부: 예

사용할 Amazon EFS 파일 시스템 ID입니다.

rootDirectory

유형: 문자열

필수 항목 여부: 아니요

호스트 내의 루트 디렉터리로 탑재할 Amazon EFS 파일 시스템 내 디렉터리입니다. 이 파라미터가 생략되면 Amazon EFS 볼륨의 루트가 사용됩니다. /을 지정하면 이 파라미터를 생략하는 것과 동일한 효과가 있습니다.

중요

authorizationConfig에서 EFS 액세스 포인트를 지정하는 경우 루트 디렉터리 파라미터를 생략하거나 /로 설정하여 EFS 액세스 포인트에 설정된 경로를 적용해야 합니다.

transitEncryption

유형: 문자열

유효한 값: ENABLED | DISABLED

필수 항목 여부: 아니요

Amazon ECS 호스트와 Amazon EFS 서버 간에 전송 중인 Amazon EFS 데이터에 대해 암호화를 사용할지 여부입니다. Amazon EFS IAM 권한 부여를 사용하는 경우 전송 중 데이터 암호화를 활성화해야 합니다. 이 파라미터가 누락되면 DISABLED의 기본값이 사용됩니다. 자세한 내용은 Amazon Elastic File System 사용 설명서전송 중 데이터 암호화를 참조하십시오.

transitEncryptionPort

유형: 정수

필수 항목 여부: 아니요

Amazon ECS 호스트와 Amazon EFS 서버 간에 암호화된 데이터를 보낼 때 사용할 포트입니다. 전송 중 데이터 암호화 포트를 지정하지 않으면 Amazon EFS 탑재 헬퍼가 사용하는 포트 선택 전략을 사용합니다. 자세한 내용은 Amazon Elastic File System 사용 설명서EFS 탑재 헬퍼를 참조하십시오.

authorizationConfig

유형: 객체

필수 항목 여부: 아니요

Amazon EFS 파일 시스템에 대한 권한 부여 구성 세부 정보입니다.

accessPointId

유형: 문자열

필수 항목 여부: 아니요

사용할 액세스 포인트 ID입니다. 액세스 포인트를 지정하는 경우 efsVolumeConfiguration의 루트 디렉터리 값을 생략하거나 /로 설정하여 EFS 액세스 포인트에 설정된 경로를 적용해야 합니다. 액세스 포인트를 사용하는 경우 EFSVolumeConfiguration에서 전송 중 데이터 암호화를 활성화해야 합니다. 자세한 내용은 Amazon Elastic File System 사용 설명서Amazon EFS 액세스 포인트 작업을 참조하십시오.

iam

유형: 문자열

유효한 값: ENABLED | DISABLED

필수 항목 여부: 아니요

Amazon EFS 파일 시스템을 탑재할 때 작업 정의에 정의된 Amazon ECS 작업 IAM 역할을 사용할지 여부입니다. 활성화된 경우 EFSVolumeConfiguration에서 전송 중 데이터 암호화를 활성화해야 합니다. 이 파라미터가 누락되면 DISABLED의 기본값이 사용됩니다. 자세한 내용은 작업의 IAM 역할을 참조하십시오.

FSxWindowsFileServerVolumeConfiguration

유형: 객체

필수 항목 여부: 예

이 파라미터는 작업 저장을 위해 FSx for Windows File Server 파일 시스템을 사용할 때 지정됩니다.

fileSystemId

유형: 문자열

필수 항목 여부: 예

사용할 FSx for Windows File Server 파일 시스템 ID입니다.

rootDirectory

유형: 문자열

필수 항목 여부: 예

호스트 내의 루트 디렉터리로 탑재할 FSx for Windows File Server 파일 시스템의 디렉터리입니다.

authorizationConfig
credentialsParameter

유형: 문자열

필수 항목 여부: 예

권한 부여 자격 증명 옵션입니다.

옵션:

domain

유형: 문자열

필수 항목 여부: 예

AWS Directory Service 관리형 Microsoft AD(Active Directory) 또는 자체 호스팅형 EC2 AD에서 호스팅하는 정규화된 도메인 이름입니다.

Tags

작업 정의를 등록할 때 작업 정의에 적용되는 메타데이터 태그를 선택적으로 지정할 수 있습니다. 태그를 사용하여 작업 정의를 분류하고 구성할 수 있습니다. 각 태그는 사용자가 정의하는 키와 선택적 값으로 구성됩니다. 자세한 정보는 Amazon ECS 리소스에 태그 지정을 참조하십시오.

중요

개인 식별 정보(PII)나 기타 기밀 정보 또는 민감한 정보를 태그에 추가하지 마십시오. 청구를 비롯한 여러 AWS 서비스에서 태그에 액세스할 수 있습니다. 태그는 개인 데이터나 민감한 데이터에 사용하기 위한 것이 아닙니다.

태그 객체에는 다음 파라미터가 허용됩니다.

key

유형: 문자열

필수 항목 여부: 아니요

하나의 태그를 구성하는 키-값 페어의 일부분입니다. 키는 더 구체적인 태그 값에 대해 카테고리와 같은 역할을 하는 일반적인 레이블입니다.

value

유형: 문자열

필수 항목 여부: 아니요

하나의 태그를 구성하는 키-값 페어의 선택적 부분입니다. 하나의 값은 태그 카테고리(키) 내에서 서술자 역할을 수행합니다.

기타 작업 정의 파라미터

작업 정의를 등록할 때 다음 작업 정의 파라미터는Amazon ECS콘솔을 사용하여JSON을 통한 구성옵션을 선택합니다. 자세한 정보는 작업 정의 생성하기을 참조하십시오.

휘발성 스토리지

ephemeralStorage

Type: 객체

필수 사항: 아니요

작업에 할당할 임시 저장 공간의 양 (GB) 입니다. 이 매개 변수는 사용 가능한 임시 저장 공간의 총 양을 기본 용량 이상으로 확장하는 데 사용됩니다.AWS Fargate. 자세한 정보는 Fargate작업 스토리지을 참조하십시오.

참고

이 파라미터는 호스팅된 작업에 대해서만 지원됩니다.AWS Fargate플랫폼 버전 사용1.4.0이상.

IPC 모드

ipcMode

Type: 문자열

필수 사항: 아니요

해당 작업의 컨테이너에 사용할 IPC 리소스 네임스페이스입니다. 유효한 값은 host, task 또는 none입니다. host를 지정하면 동일한 컨테이너 인스턴스에서 host IPC 모드를 지정한 작업 내 모든 컨테이너가 동일한 IPC 리소스를 호스트 Amazon EC2 인스턴스와 공유합니다. task을 지정하면 지정된 작업 내 모든 컨테이너가 동일한 IPC 리소스를 공유합니다. none이 지정된 경우, 작업 컨테이너 내에 있는 IPC 리소스는 프라이빗이며, 작업 또는 컨테이너 인스턴스의 다른 컨테이너와 공유되지 않습니다. 값을 지정하지 않을 경우, IPC 리소스 네임스페이스 공유는 컨테이너 인스턴스의 도커 데몬 설정에 따라 달라집니다. 자세한 내용은 단원을 참조하십시오.IPC 설정도커를 실행하는 참조.

host IPC 모드를 사용하는 경우, 원치 않는 IPC 네임스페이스 노출이 발생할 위험이 커진다는 점에 유의하십시오. 자세한 내용은 도커 보안을 참조하십시오.

해당 작업 내 컨테이너에 대해 systemControls을 사용하여 네임스페이스가 있는 커널 파라미터를 설정하는 경우, IPC 리소스 네임스페이스에 다음 사항이 적용됩니다. 자세한 정보는 System Controls을 참조하십시오.

  • host IPC 모드를 사용하는 작업의 경우, IPC 네임스페이스 관련 systemControls는 지원되지 않습니다.

  • task IPC 모드를 사용하는 작업의 경우, IPC 네임스페이스 관련 systemControls가 작업 내 모든 컨테이너에 적용됩니다.

참고

이 파라미터는 Windows 컨테이너 또는 Fargate 시작 유형을 사용하는 작업에 대해서는 지원되지 않습니다.

PID 모드

pidMode

Type: 문자열

필수 사항: 아니요

해당 작업의 컨테이너에 사용할 프로세스 네임스페이스입니다. 유효한 값은 host 또는 task입니다. host을 지정하면 동일한 컨테이너 인스턴스에서 host PID 모드를 지정한 작업 내 모든 컨테이너가 동일한 프로세스 네임스페이스를 호스트 Amazon EC2 인스턴스와 공유합니다. task을 지정하면 지정된 작업 내 모든 컨테이너가 동일한 프로세스 네임스페이스를 공유합니다. 값을 지정하지 않을 경우, 기본값은 프라이빗 네임스페이스입니다. 자세한 내용은 단원을 참조하십시오.PID 설정도커를 실행하는 참조.

host PID 모드를 사용하는 경우, 원치 않는 프로세스 네임스페이스 노출이 발생할 위험이 커진다는 점에 유의하십시오. 자세한 내용은 도커 보안을 참조하십시오.

참고

이 파라미터는 Windows 컨테이너 또는 Fargate 시작 유형을 사용하는 작업에 대해서는 지원되지 않습니다.