기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
태스크 정의 파라미터
태스크 정의는 태스크 패밀리, IAM 태스크 역할, 네트워크 모드, 컨테이너 정의, 볼륨, 작업 배치 제약, 시작 유형 등의 부분으로 나뉩니다. 태스크 정의에는 패밀리 및 컨테이너 정의가 필요합니다. 하지만 태스크 역할, 네트워크 모드, 볼륨, 작업 배치 제약 및 시작 유형은 선택 사항입니다.
JSON 파일에서 이러한 파라미터를 사용하여 태스크 정의를 구성할 수 있습니다. 자세한 정보는 예제 로깅 옵션 작업 정의을 참조하세요.
다음은 각 태스크 정의 파라미터에 대한 자세한 설명입니다.
Family
family
-
유형: String
필수 항목 여부: 예
태스크 정의를 등록할 때 패밀리를 지정합니다. 패밀리는 개정 번호를 사용하여 지정된 태스크 정의의 여러 버전에 대한 이름과 비슷합니다. 특정 패밀리에 등록된 첫 번째 태스크 정의에는 개정 번호 1이 부여되고 그 이후 등록된 태스크 정의에는 순차적으로 개정 번호가 부여됩니다.
시작 유형
태스크 정의를 등록할 때 Amazon ECS가 태스크 정의의 유효성을 검사해야 하는 시작 유형을 지정할 수 있습니다. 태스크 정의가 유효성을 지정한 호환성에 대해 검사하지 않으면 클라이언트 예외가 반환됩니다. 자세한 정보는 Amazon ECS 시작 유형을 참조하세요.
태스크 정의에서 다음 파라미터가 허용됩니다.
requiresCompatibilities
-
유형: 문자열 배열
필수 항목 여부: 아니요
유효한 값:
EC2
|FARGATE
|EXTERNAL
태스크 정의의 유효성을 검사하기 위한 시작 유형입니다. 이를 통해 작업 정의에 사용되는 모든 파라미터가 시작 유형의 요구 사항을 충족하는지 확인할 수 있습니다.
태스크 역할
taskRoleArn
-
유형: 문자열
필수 항목 여부: 아니요
태스크 정의를 등록할 때 태스크 권한의 컨테이너가 사용자 대신 연결된 정책에 지정된 AWS API를 호출하도록 허용하는 IAM 역할에 태스크 역할을 제공할 수 있습니다. 자세한 정보는 태스크 IAM 역할을 참조하세요.
Amazon ECS 최적화 Windows Server AMI를 시작하려면 Windows에서 태스크를 위한 IAM 역할에
-EnableTaskIAMRole
옵션을 설정해야 합니다. 이 기능을 활용하려면 컨테이너가 일부 구성 코드도 실행해야 합니다. 자세한 정보는 태스크를 위한 Windows IAM 역할에 대한 추가 구성을 참조하세요.
태스크 실행 역할
executionRoleArn
-
유형: String
필수 항목 여부: 조건부
Amazon ECS 컨테이너 에이전트에 사용자를 대신하여 AWS API를 호출할 권한을 부여하는 태스크 실행 역할의 Amazon 리소스 이름(ARN)입니다.
참고
태스크의 요구 사항에 따라 태스크 실행 IAM 역할이 필요합니다. 자세한 정보는 Amazon ECS 태스크 실행 IAM 역할 섹션을 참조하세요.
네트워크 모드
networkMode
-
유형: 문자열
필수 항목 여부: 아니요
태스크의 컨테이너에 사용할 Docker 네트워킹 모드. Amazon EC2 Linux 인스턴스에서 호스팅되는 Amazon ECS의 경우, 유효한 값은
none
,bridge
,awsvpc
및host
입니다. 네트워크 모드를 지정하지 않으면 기본 네트워크 모드는bridge
입니다. Amazon EC2 Windows 인스턴스에서 호스팅되는 Amazon ECS 태스크의 경우, 유효한 값은default
및awsvpc
입니다. 네트워크 모드가 지정되지 않으면default
네트워크 모드를 사용합니다.네트워크 모드가
none
으로 설정된 경우에는 태스크의 컨테이너가 외부 네트워크와 연결되지 않고 컨테이너 정의에서 포트 매핑을 지정할 수 없습니다.네트워크 모드가
bridge
인 경우, 태스크는 태스크를 호스팅하는 각 Amazon EC2 인스턴스 내부에서 실행되는 Linux에서의 Docker 기본 가상 네트워크를 사용합니다. Linux의 기본 가상 네트워크는bridge
Docker 네트워크 드라이버를 사용합니다..네트워크 모드가
host
인 경우, 태스크는 해당 태스크를 호스팅하는 Amazon EC2 인스턴스의 ENI에 컨테이너 포트를 직접 매핑하여 Docker의 기본 가상 네트워크를 우회하는 호스트 네트워크를 사용합니다. 이 네트워크 모드에서는 동적 포트 매핑을 사용할 수 없습니다. 이 모드를 사용하는 작업 정의의 컨테이너는 특정hostPort
숫자를 지정해야 합니다. 호스트의 포트 번호는 여러 작업에서 사용할 수 없습니다. 따라서 단일 Amazon EC2 인스턴스에서 같은 태스크 정의를 가진 여러 태스크를 실행할 수 없습니다.중요
host
네트워크 모드를 사용하여 태스크를 실행할 때는 더 나은 보안을 위해 루트 사용자(UID 0)를 사용하여 컨테이너를 실행해서는 안 됩니다. 보안상 항상 루트가 아닌 사용자를 사용합니다.네트워크 모드가
awsvpc
인 경우 해당 태스크에 탄력적 네트워크 인터페이스가 할당되므로 서비스를 생성하거나 태스크 정의로 태스크를 실행하려면NetworkConfiguration
을 지정해야 합니다. 자세한 정보는 Amazon EC2 인스턴스에 호스팅되는 작업을 위한 태스크 네트워킹 섹션을 참조하세요. 현재 Amazon ECS 최적화 AMI, 기타 Amazon Linuxecs-init
패키지 버전 또는 AWS Fargate 인프라만awsvpc
네트워크 모드를 지원합니다.네트워크 모드가
default
인 경우, 태스크는 태스크를 호스팅하는 각 Amazon EC2 인스턴스 내부에서 실행되는 Windows에서의 Docker 기본 가상 네트워크를 이용합니다. Windows의 기본 가상 네트워크는nat
Docker 네트워크 드라이버를 사용합니다.host
및awsvpc
네트워크 모드는 Amazon EC2 네트워크 스택을 사용하는 컨테이너에 가장 높은 수준의 네트워킹 성능을 제공합니다.host
및awsvpc
네트워크 모드에서는 노출된 컨테이너 포트가 해당 호스트 포트(host
네트워크 모드의 경우) 또는 연결된 탄력적 네트워크 인터페이스 포트(awsvpc
네트워크 의 경우)에 직접 매핑됩니다. 이 때문에 동적 호스트 포트 매핑을 사용할 수 없습니다.Fargate 시작 유형을 사용하는 경우
awsvpc
네트워크 모드가 필수입니다. EC2 시작 유형을 사용하는 경우에는 기본 EC2 인스턴스의 운영 체제에 따라 네트워크 모드가 허용됩니다. 운영 체제가 Linux일 경우에는 모든 네트워크 모드를 사용할 수 있습니다. Windows의 경우,default
및awsvpc
모드를 사용할 수 있습니다.
런타임 플랫폼
operatingSystemFamily
-
유형: String
필수 항목 여부: 조건부
기본값: LINUX
이 파라미터는 Fargate에서 호스팅되는 Amazon ECS 태스크에 필요합니다.
태스크 정의를 등록할 때 운영 체제 제품군을 지정합니다.
Fargate에서 호스팅되는 Amazon ECS 태스크의 유효한 값은
LINUX
,WINDOWS_SERVER_2019_FULL
,WINDOWS_SERVER_2019_CORE
,WINDOWS_SERVER_2022_FULL
및WINDOWS_SERVER_2022_CORE
입니다.EC2에서 호스팅되는 Amazon ECS 태스크의 유효한 값은
LINUX
,WINDOWS_SERVER_2022_CORE
,WINDOWS_SERVER_2022_FULL
,WINDOWS_SERVER_2019_FULL
,WINDOWS_SERVER_2019_CORE
,WINDOWS_SERVER_2016_FULL
,WINDOWS_SERVER_2004_CORE
및WINDOWS_SERVER_20H2_CORE
입니다.서비스에서 사용되는 모든 태스크 정의는 이 파라미터에 대해 동일한 값을 가져야 합니다.
태스크 정의가 서비스의 일부인 경우 이 값은 서비스
platformFamily
값과 일치해야 합니다. cpuArchitecture
-
유형: String
필수 항목 여부: 조건부
기본값: X86_64
이 파라미터는 Fargate에서 호스팅되는 Amazon ECS 태스크에 필요합니다. 파라미터가 다음과 같이 남아 있는 경우
null
Fargate에서 호스팅되는 작업이 시작되면 기본값이 자동으로 할당됩니다.태스크 정의를 등록할 때 CPU 아키텍처를 지정합니다. 유효 값은
X86_64
와ARM64
입니다.서비스에서 사용되는 모든 태스크 정의는 이 파라미터에 대해 동일한 값을 가져야 합니다.
Fargate 시작 유형 또는 EC2 시작 유형에 대한 Linux 태스크가 있는 경우 값을
ARM64
로 설정할 수 있습니다. 자세한 정보는 Amazon ECS에서 64비트 ARM 워크로드 작업을 참조하세요.
태스크 크기
태스크 정의를 등록할 때 태스크에 대해 사용할 CPU 및 메모리 총량을 지정할 수 있습니다. 이것은 컨테이너 정의 수준의 cpu
및 memory
값과는 구분됩니다. Amazon EC2 인스턴스에서 호스팅되는 태스크의 경우, 이 필드는 선택 사항입니다. Fargate(Linux와 Windows 모두)에서 호스팅되는 태스크의 경우 이 필드는 필수이고 지원되는 cpu
와 memory
모두에 대한 특정 값이 있습니다.
참고
Windows 컨테이너에 대해서는 태스크 레벨 CPU와 메모리 파라미터가 무시됩니다. Windows 컨테이너에 대해서는 컨테이너 레벨 리소스를 지정할 것을 권장합니다.
태스크 정의에서 다음 파라미터가 허용됩니다.
cpu
-
유형: String
필수 항목 여부: 조건부
참고
이 파라미터는 Windows 컨테이너에서 지원되지 않습니다.
태스크에 대해 표시되는 CPU 단위의 하드 제한입니다. 태스크 정의에 CPU 단위를 사용하는 정수(예:
1024
) 또는 vCPU를 사용하는 문자열(예:1 vCPU
또는1 vcpu
)로 표현할 수 있습니다. 태스크 정의를 등록할 때는 vCPU 값이 CPU 단위를 나타내는 정수로 변환됩니다.Amazon EC2 인스턴스에서 호스팅되는 작업의 경우, 이 필드는 선택 사항입니다. 클러스터에 요청된 CPU 단위가 사용 가능한 등록된 컨테이너 인스턴스가 없는 경우 태스크가 실패합니다. EC2 또는 외부 인스턴스에서 실행되는 작업에 지원되는 값은 다음과 같습니다.
0.125
vCPU 및10
vCPU.Fargate(Linux와 Windows 모두)에서 실행되는 작업의 경우 이 필드는 필수이며 다음 값 중 하나를 사용해야 합니다. 이 필드에 따라
memory
파라미터에 지원되는 값의 범위가 결정됩니다.CPU 값
메모리 값
AWS Fargate에 지원되는 운영 체제
256(.25 vCPU)
512MiB, 1GB, 2GB
Linux
512(.5 vCPU)
1GB, 2GB, 3GB, 4GB
Linux
1024(1 vCPU)
2GB, 3GB, 4GB, 5GB, 6GB, 7GB, 8GB
Linux, Windows
2048(2 vCPU)
4~16GB(1GB 증분)
Linux, Windows
4096(4 vCPU)
8~30GB(1GB 증분)
Linux, Windows
8192 (8 vCPU)
참고
이 옵션은 Linux 플랫폼
1.4.0
이상이 필요합니다.16~60GB(4GB 증분)
Linux
16384 (16vCPU)
참고
이 옵션은 Linux 플랫폼
1.4.0
이상이 필요합니다.32~120GB(8GB 증분)
Linux
memory
-
유형: String
필수 항목 여부: 조건부
참고
이 파라미터는 Windows 컨테이너에서 지원되지 않습니다.
태스크에 표시할 메모리의 하드 제한(MiB)입니다. 태스크 정의에서 MiB를 사용하는 정수(예:
1024
) 또는 GB를 사용하는 문자열(예:1GB
또는1 GB
)로 표현할 수 있습니다. 태스크 정의를 등록할 때는 GB 값이 MiB를 나타내는 정수로 변환됩니다.Amazon EC2 인스턴스에서 호스팅되는 태스크의 경우, 이 필드는 선택 사항이고 모든 값을 사용할 수 있습니다. 태스크 수준 메모리 값이 지정된 경우 컨테이너 수준 메모리 값은 선택 사항입니다. 클러스터에 요청된 메모리에 사용 가능한 등록된 컨테이너 인스턴스가 없는 경우 태스크가 실패합니다. 특정 인스턴스 유형에 대해 태스크에 가능한 한 많은 메모리를 제공하여 리소스 사용률을 최대화할 수 있습니다. 자세한 정보는 컨테이너 인스턴스 메모리 관리을 참조하세요.
Fargate(Linux와 Windows 모두)에서 호스팅되는 태스크의 경우 이 필드는 필수이며 다음 값 중 하나를 사용해야 합니다. 이 필드에 따라
cpu
파라미터에 지원되는 값의 범위가 결정됩니다.메모리 값(MiB)
CPU 값
Fargate에 지원되는 운영 체제
512(0.5GB), 1,024(1GB), 2,048(2GB)
256(.25 vCPU)
Linux
1,024(1GB), 2,048(2GB), 3,072(3GB), 4,096(4GB)
512(.5 vCPU)
Linux
2,048(2GB), 3,072(3GB), 4,096(4GB), 5,120(5GB), 6,144(6GB), 7,168(7GB), 8,192(8GB)
1024(1 vCPU)
Linux, Windows
4,096(4GB)~16,384(16GB)(1,024(1GB) 증분)
2048(2 vCPU)
Linux, Windows
8,192(8GB)~30,720(30GB)(1,024(1GB) 증분)
4096(4 vCPU)
Linux, Windows
16~60GB(4GB 증분)
참고
이 옵션은 Linux 플랫폼
1.4.0
이상이 필요합니다.8192 (8 vCPU)
Linux
32~120GB(8GB 증분)
참고
이 옵션은 Linux 플랫폼
1.4.0
이상이 필요합니다.16384 (16vCPU)
Linux
컨테이너 정의
작업 정의를 등록할 때는 에 전달되는 컨테이너 정의 목록을 지정해야 합니다.Docker컨테이너 인스턴스의 데몬. 컨테이너 정의에서 다음 파라미터가 허용됩니다.
스탠다드 컨테이너 정의 파라미터
다음 태스크 정의 파라미터는 대부분의 컨테이너 정의에서 필요하거나 사용됩니다.
이름
name
-
유형: String
필수 항목 여부: 예
컨테이너의 이름. 최대 255개의 문자(대문자 및 소문자), 숫자, 하이픈 및 밑줄이 허용됩니다. 여러 컨테이너를 한 태스크 정의에 연결하는 경우, 한 컨테이너의
name
을 다른 컨테이너의links
에 입력할 수 있습니다. 이는 컨테이너를 연결하기 위한 것입니다.
이미지
image
-
유형: String
필수 항목 여부: 예
컨테이너를 시작하는 데 사용되는 이미지입니다. 이 문자열은 다음으로 직접 전달됩니다.Docker데몬. 기본적으로 이미지는Docker Hub레지스트리를 사용할 수 있습니다.
또는repository-url
/image
:tag
를 사용하여 다른 리포지토리를 지정할 수도 있습니다. 최대 255개의 문자(대문자 및 소문자), 숫자, 하이픈, 밑줄, 콜론, 마침표, 슬래시 및 부호가 허용됩니다. 이 파라미터는 Docker 원격 APIrepository-url
/image
@digest
의 컨테이너 생성 섹션에 있는 Image
와 docker run의 IMAGE
파라미터로 매핑됩니다.-
새 태스크가 시작될 때 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
-
유형: Integer
필수 항목 여부: 조건부
컨테이너에 표시할 메모리의 양(MiB)입니다. 컨테이너가 여기서 지정된 메모리를 초과하려 하면 해당 컨테이너가 중지됩니다. 태스크 내 모든 컨테이너에 대해 예약된 총 메모리 양은 태스크
memory
값(지정된 경우)보다 작아야 합니다. 이 파라미터는 Docker 원격 API의 컨테이너 생성 섹션에 있는 Memory
와 docker run에 대한 --memory
옵션에 매핑됩니다.Fargate 시작 유형을 사용하는 경우 이 매개변수는 선택 사항입니다.
EC2 시작 유형을 사용하는 경우 작업 수준 메모리 값 또는 컨테이너 수준 메모리 값을 지정해야 합니다. 둘 다 컨테이너 수준으로 지정하는 경우
memory
과memoryReservation
가치,memory
값은 다음 값보다 커야 합니다.memoryReservation
값.memoryReservation
을 지정하는 경우 컨테이너가 배치된 컨테이너 인스턴스의 가용 메모리 리소스에서 해당 값이 차감됩니다. 그렇지 않으면memory
값이 사용됩니다.Docker 20.10.0 이상의 대몬(daemon)은 컨테이너용으로 최소 6MiB의 메모리를 남겨둡니다. 따라서 컨테이너에 6MiB 미만의 메모리를 지정하지 마세요.
Docker 19.03.13-ce 이하의 대몬(daemon)은 컨테이너용으로 최소 4MiB의 메모리를 남겨둡니다. 따라서 컨테이너에 4MiB 미만의 메모리를 지정하지 마세요.
참고
특정 인스턴스 유형에 대해 태스크에 가능한 한 많은 메모리를 제공하여 리소스 사용률을 최대화하려는 경우 컨테이너 인스턴스 메모리 관리 섹션을 참조하세요.
memoryReservation
-
유형: Integer
필수 항목 여부: 아니요
컨테이너용으로 예약할 메모리의 소프트 제한(MiB)입니다. 시스템 메모리가 경합을 벌이고 있는 경우Docker컨테이너 메모리를 이 소프트 한계까지 유지하려고 시도합니다. 하지만 필요할 때 컨테이너가 더 많은 메모리를 사용할 수 있습니다. 컨테이너는 다음과 같이 지정된 하드 제한까지 사용할 수 있습니다.
memory
파라미터 (해당하는 경우) 또는 컨테이너 인스턴스의 사용 가능한 모든 메모리 (둘 중 먼저 오는 쪽) 이 파라미터는 Docker 원격 API의 컨테이너 생성 섹션에 있는 MemoryReservation
와 docker run에 대한 --memory-reservation
옵션에 매핑됩니다.태스크 레벨 메모리 값이 지정되지 않은 경우 컨테이너 정의의
memory
또는memoryReservation
에 대해 하나 또는 둘 다에 0이 아닌 정수를 지정해야 합니다. 둘 모두 지정하는 경우memory
가memoryReservation
보다 커야 합니다.memoryReservation
을 지정하는 경우 컨테이너가 배치된 컨테이너 인스턴스의 가용 메모리 리소스에서 해당 값이 차감됩니다. 그렇지 않으면memory
값이 사용됩니다.예를 들어 컨테이너가 보통 128MiB의 메모리를 사용하지만 가끔 짧은 시간 동안 256MiB의 메모리로 버스트한다고 가정해 보겠습니다. 다음과 같이 설정할 수 있습니다.
memoryReservation
128MiB, 그리고memory
엄격한 한도는 300MiB입니다. 이 구성은 컨테이너가 컨테이너 인스턴스의 잔여 리소스 중 128MiB의 메모리만 예약하도록 허용합니다. 동시에 이 구성을 사용하면 컨테이너가 필요할 때 더 많은 메모리 리소스를 사용할 수 있습니다.참고
이 파라미터는 Windows 컨테이너에서 지원되지 않습니다.
Docker 20.10.0 이상의 대몬(daemon)은 컨테이너용으로 최소 6MiB의 메모리를 남겨둡니다. 따라서 컨테이너에 6MiB 미만의 메모리를 지정하지 마세요.
Docker 19.03.13-ce 이하의 대몬(daemon)은 컨테이너용으로 최소 4MiB의 메모리를 남겨둡니다. 따라서 컨테이너에 4MiB 미만의 메모리를 지정하지 마세요.
참고
특정 인스턴스 유형에 대해 태스크에 가능한 한 많은 메모리를 제공하여 리소스 사용률을 최대화하려는 경우 컨테이너 인스턴스 메모리 관리 섹션을 참조하세요.
포트 매핑
portMappings
-
유형: 객체 배열
필수 항목 여부: 아니요
포트 매핑은 컨테이너가 호스트 컨테이너 인스턴스의 포트에 액세스하여 트래픽을 송수신하도록 허용합니다.
awsvpc
네트워크 모드를 사용하는 태스크 정의의 경우containerPort
만 지정합니다. 그hostPort
비워 두거나 다음과 같은 값으로 유지할 수 있습니다.containerPort
.Windows에서의 포트 매핑은
localhost
가 아니라NetNAT
게이트웨이 주소를 사용합니다. Windows에서는 포트 매핑에 대한 루프백이 없으므로 호스트 자체에서 컨테이너의 매핑된 포트에 액세스할 수 없습니다.이 매개변수의 대부분의 필드 (다음을 포함)
containerPort
,hostPort
,protocol
) 매핑 대상PortBindings
에서컨테이너 생성의 섹션도커 리모트 API 그리고 --publish
옵션:docker run. 태스크 정의의 네트워크 모드가 host
로 설정되어 있으면 호스트 포트가 정의되지 않은 상태이거나 호스트 포트가 포트 매핑의 컨테이너 포트와 일치해야 합니다.참고
태스크가
RUNNING
상태에 도달한 후에는 다음 위치에서 수동 및 자동 호스트/컨테이너 포트 할당을 확인할 수 있습니다.-
콘솔: 선택한 태스크에 대한 컨테이너 설명의 네트워크 바인딩 섹션.
-
AWS CLI: describe-tasks 명령 출력의
networkBindings
섹션. -
API:
DescribeTasks
응답. -
메타데이터: 작업 메타데이터 엔드포인트.
appProtocol
-
유형: 문자열
필수 항목 여부: 아니요
포트 매핑에 사용되는 애플리케이션 프로토콜입니다. 이 파라미터는 Service Connect에만 적용됩니다. 애플리케이션에서 사용하는 프로토콜과 일치하도록 이 파라미터를 설정하는 것이 좋습니다. 이 파라미터를 설정하면 Amazon ECS가 서비스 연결 프록시에 프로토콜별 연결 처리를 추가합니다. 이 파라미터를 설정하면 Amazon ECS는 Amazon ECS 콘솔에 프로토콜별 텔레메트리를 추가하고CloudWatch.
이 파라미터의 값을 설정하지 않으면 TCP가 사용됩니다. 그러나 Amazon ECS는 TCP에 대한 프로토콜별 원격 측정을 추가하지 않습니다.
자세한 정보는 Service Connect 을 참조하세요.
유효한 프로토콜 값:
"HTTP" | "HTTP2" | "GRPC"
containerPort
-
유형: Integer
필수 항목 여부: 예(
portMappings
사용 시)사용자 지정 또는 자동 할당된 호스트 포트에 바인딩되는 컨테이너 포트 번호입니다.
Fargate 시작 유형으로 태스크의 컨테이너를 사용하는 경우
containerPort
를 사용해 노출된 포트를 지정해야 합니다.Fargate의 Windows 컨테이너의 경우 포트 3150은
containerPort
에 사용할 수 없습니다. 이 포트는 예약되어 있기 때문입니다.EC2 시작 유형의 작업에서 컨테이너를 사용하고 호스트 포트가 아닌 컨테이너 포트를 지정한다고 가정해 보겠습니다. 그러면 컨테이너는 임시 포트 범위의 호스트 포트를 자동으로 수신합니다. 자세한 정보는
hostPort
을 참조하세요. 이러한 방식으로 자동 할당된 포트 매핑은 컨테이너 인스턴스의 예약된 포트 할당량 100개에 포함되지 않습니다. containerPortRange
-
유형: 문자열
필수 항목 여부: 아니요
동적으로 매핑된 호스트 포트 범위에 바인딩된 컨테이너의 포트 번호 범위입니다.
이 파라미터는
register-task-definition
API를 사용해서만 설정할 수 있습니다. 옵션은portMappings
파라미터에서 사용할 수 있습니다. 자세한 내용은 AWS Command Line Interface 참조의 register-task-definition 섹션을 참조하세요.containerPortRange
지정 시 다음 규칙이 적용됩니다.-
bridge
네트워크 모드 또는awsvpc
네트워크 모드를 사용해야 합니다. 이 파라미터는 EC2와 AWS Fargate 시작 유형 모두에서 사용할 수 있습니다.
이 파라미터는 Linux 및 Windows 운영 체제 모두에서 사용할 수 있습니다.
-
컨테이너 인스턴스에는 컨테이너 에이전트 버전 1.67.0과 버전 1.67.0-1이 있어야 합니다.
ecs-init
패키지. -
각 컨테이너에 최대 100개의 포트 범위를 지정할 수 있습니다.
-
a를 지정하지 마십시오.
hostPortRange
.hostPortRange
의 값은 다음과 같이 설정됩니다.-
awsvpc
네트워크 모드를 사용하는 작업에 있는 컨테이너의 경우hostPort
는containerPort
와 동일한 값으로 설정됩니다. 이는 정적 매핑 전략입니다. -
bridge
네트워크 모드를 사용하는 작업에 있는 컨테이너의 경우 Amazon ECS 에이전트는 기본 임시 범위에서 열린 호스트 포트를 찾고 이를 도커로 전달하여 컨테이너 포트에 바인딩합니다.
-
-
containerPortRange
의 유효한 값은 1~65,535입니다. -
포트는 각 컨테이너에 대해 하나의 포트 매핑에만 포함될 수 있습니다.
-
겹치는 포트 범위를 지정할 수 없습니다.
-
범위의 첫 번째 포트는 범위의 마지막 포트보다 작아야 합니다.
-
Docker에서 도커 프록시를 끌 것을 권장합니다.Docker포트 수가 많은 경우 데몬 구성 파일을 사용하십시오.
자세한 내용은 을 참조하십시오.이슈 #11185
깃허브에서 도커 프록시를 끄는 방법에 대한 자세한 내용은Docker데몬 구성 파일은 을 참조하십시오.Docker다이몬에서아마존 ECS 개발자 가이드.
전화할 수 있어요
DescribeTasks
보려면hostPortRange
컨테이너 포트에 바인딩된 호스트 포트입니다.포트 범위는 전송되는 Amazon ECS 작업 이벤트에 포함되지 않습니다. EventBridge. 자세한 정보는 아마존 ECS 이벤트 및 EventBridge 섹션을 참조하세요.
-
hostPortRange
-
유형: 문자열
필수 항목 여부: 아니요
네트워크 바인딩에 사용되는 호스트의 포트 번호 범위입니다. 이 값은 다음에 의해 할당됩니다.Docker그리고 Amazon ECS 에이전트가 제공합니다.
hostPort
-
유형: Integer
필수 항목 여부: 아니요
컨테이너용으로 예약할 컨테이너 인스턴스 포트 번호입니다.
Fargate 시작 유형으로 태스크에서 컨테이너를 사용하는 경우
hostPort
는 빈칸으로 둘 수 있습니다. 아니면containerPort
와 같은 값이어야 합니다.EC2 시작 유형의 작업에서 컨테이너를 사용한다고 가정해 보겠습니다. 컨테이너 포트 매핑에 예약되지 않은 호스트 포트를 지정할 수 있습니다. 이를 다음과 같이 부릅니다.공전호스트 포트 매핑. 또는 생략할 수도 있습니다.
hostPort
(또는 다음과 같이 설정0
) 를 지정하는 동안containerPort
. 컨테이너는 컨테이너 인스턴스 운영 체제의 임시 포트 범위 내에 있는 포트를 자동으로 수신합니다.Docker버전. 이를 다음과 같이 지칭합니다.동적호스트 포트 매핑.기본 임시 포트 범위Docker버전 1.6.0 이상은 다음 인스턴스에 나열되어 있습니다.
/proc/sys/net/ipv4/ip_local_port_range
. 이 커널 파라미터를 사용할 수 없을 경우 기본 휘발성 포트 범위49153–65535
가 사용됩니다. 휘발성 포트 범위에서 호스트 포트를 지정하지 마세요. 자동 할당을 위해 예약되어 있기 때문입니다. 일반적으로 포트는 다음과 같습니다.32768
임시 포트 범위를 벗어납니다.기본 예약 포트는 다음과 같습니다.
22
SSH의 경우Docker포트2375
과2376
, 그리고 Amazon ECS 컨테이너 에이전트 포트51678-51680
. 이전에 실행 중인 작업에 대해 사용자가 지정한 호스트 포트도 작업이 실행되는 동안 예약됩니다. 작업이 중지되면 호스트 포트가 해제됩니다. 현재 예약된 포트는 에 표시됩니다.remainingResources
의describe-container-instances출력. 컨테이너 인스턴스는 기본 예약 포트를 포함하여 한 번에 최대 100개의 예약 포트를 가질 수 있습니다. 자동 할당된 포트는 예약 포트 할당량 100개에 포함되지 않습니다. name
-
유형: String
필수: 아니요, 서비스에 서비스 연결을 구성하려면 필수
포트 매핑에 사용되는 이름입니다. 이 파라미터는 Service Connect에만 적용됩니다. 이 파라미터는 서비스의 Service Connect 구성에 사용하는 이름입니다.
자세한 정보는 Service Connect 을 참조하세요.
다음 예에서는 서비스 연결에 필요한 두 필드가 모두 사용됩니다.
"portMappings": [ { "name":
string
, "containerPort":integer
} ] protocol
-
유형: 문자열
필수 항목 여부: 아니요
포트 매핑에 사용되는 프로토콜입니다. 유효한 값은
tcp
및udp
입니다. 기본값은tcp
입니다.중요
Service Connect에는
tcp
만 지원됩니다. 이 필드가 설정되지 않은 경우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 } ... ]
-
사설 리포지토리 자격 증명
repositoryCredentials
-
유형: RepositoryCredentials 객체
필수 항목 여부: 아니요
프라이빗 레지스트리 인증을 위한 리포지토리 자격 증명.
자세한 정보는 태스크에 대한 프라이빗 레지스트리 인증 섹션을 참조하세요.
-
credentialsParameter
-
유형: String
필수 항목 여부: 예(
repositoryCredentials
사용 시)프라이빗 리포지토리 자격 증명이 포함된 암호의 Amazon 리소스 이름(ARN)입니다.
자세한 정보는 태스크에 대한 프라이빗 레지스트리 인증을 참조하세요.
참고
Amazon ECS API를 사용하는 경우AWS CLI, 또는AWSSDK, 시작하려는 작업과 동일한 지역에 암호가 있는 경우 전체 ARN 또는 암호 이름을 사용할 수 있습니다. 를 사용하는 경우AWS Management Console암호의 전체 ARN을 지정해야 합니다.
다음은 필요한 파라미터를 나타낸 태스크 정의의 예제 조각입니다.
"containerDefinitions": [ { "image": "
private-repo/private-image
", "repositoryCredentials": { "credentialsParameter": "arn:aws:secretsmanager:region:aws_account_id:secret:secret_name
" } } ]
-
고급 컨테이너 정의 파라미터
다음의 고급 컨테이너 정의 파라미터는 Amazon ECS 컨테이너 인스턴스에서 컨테이너를 시작하는 데 사용된 docker run
상태 확인
healthCheck
-
해당 컨테이너에 대한 컨테이너 상태 확인 명령 및 연결된 구성 파라미터. 이 파라미터는 Docker 원격 API
의 컨테이너 생성 섹션에 있는 HealthCheck
및 docker run의 HEALTHCHECK
파라미터에 매핑됩니다.참고
Amazon ECS 컨테이너 에이전트는 태스크 정의에 지정된 상태 확인만 모니터링하여 보고합니다. Amazon ECS는 컨테이너 이미지에 포함되었지만 컨테이너 정의에 지정되지 않은 Docker 상태 확인을 모니터링하지 않습니다. 컨테이너 정의에 지정된 상태 확인 파라미터는 컨테이너 이미지에 존재하는 Docker 상태 확인을 재정의합니다.
두 가지 방법 중 하나를 사용하여 개별 컨테이너와 작업의 상태를 모두 볼 수 있습니다. 를 호출할 수 있습니다.
DescribeTasks
API 작업을 수행하거나 콘솔에서 작업 세부 정보를 볼 수 있습니다.상태 점검은 컨테이너가 에이전트 재시작, 업그레이드 또는 일시적인 사용 불능 상태에서도 살아남는지 확인하도록 설계되었습니다.
다음은 컨테이너에 가능한
healthStatus
값에 대한 설명입니다.-
HEALTHY
—컨테이너 상태 점검을 통과했습니다. -
UNHEALTHY
—컨테이너 상태 점검에 실패했습니다. -
UNKNOWN
- 컨테이너 상태 확인이 평가 중이거나 컨테이너 상태 확인이 정의되지 않았습니다.
다음은 태스크에 가능한
healthStatus
값에 대한 설명입니다. 필수가 아닌 컨테이너의 컨테이너 상태 점검 상태는 작업 상태에 영향을 주지 않습니다.-
HEALTHY
—작업 내 모든 필수 컨테이너가 상태 검사를 통과했습니다. -
UNHEALTHY
—하나 이상의 필수 컨테이너가 상태 점검에 실패했습니다. -
UNKNOWN
—작업 내 필수 컨테이너의 상태 확인은 아직 평가 중입니다. 상태 확인이 정의된 비필수 컨테이너만 있거나 컨테이너 상태 확인이 정의되어 있지 않습니다.
태스크가 수동으로 실행되고 서비스의 일부가 아닌 경우, 태스크 상태와 상관없이 수명 주기가 지속됩니다. 서비스의 일부인 태스크의 경우, 태스크가 비정상으로 보고되면 태스크가 중지되고 서비스 스케줄러가 이를 대체합니다.
다음은 컨테이너 상태 확인 지원에 대한 참고 사항입니다.
-
Amazon ECS 에이전트가 Amazon ECS 서비스에 연결할 수 없는 경우 서비스는 컨테이너를 다음과 같이 보고합니다.
UNHEALTHY
. -
상태 점검 상태는 Amazon ECS 에이전트의 “마지막 의견 수렴” 응답입니다. 컨테이너 상태 점검 상태에 대한 가정은 없습니다.
-
컨테이너 상태 점검에는 Amazon ECS 컨테이너 에이전트 버전 1.17.0 이상이 필요합니다. 자세한 정보는 Amazon ECS 컨테이너 에이전트 업데이트을 참조하세요.
-
Linux 플랫폼 버전 1.1.0을 사용하는 경우 또는이후 컨테이너, Fargate 작업에는 컨테이너 상태 점검이 지원됩니다. 자세한 정보는 AWS Fargate 플랫폼 버전을 참조하세요.
command
-
컨테이너가 정상 상태인지 확인하기 위해 실행하는 명령을 나타내는 문자열 배열입니다. 명령 인수를 직접 실행하려면 문자열 어레이가
CMD
으로 시작하면 되고, 컨테이너의 기본 셸에서 명령을 실행하려면CMD-SHELL
로 시작하면 됩니다. 둘 다 지정하지 않으면CMD
가 사용됩니다.에 작업 정의를 등록하는 경우AWS Management Console쉼표로 구분된 명령 목록을 사용하십시오. 이러한 명령은 작업 정의가 생성된 후 문자열로 변환됩니다. 다음은 상태 확인에 대한 입력 예제입니다.
CMD-SHELL, curl -f http://localhost/ || exit 1
를 사용하여 작업 정의를 등록하는 경우AWS Management ConsoleJSON 패널,AWS CLI또는 API는 명령 목록을 괄호로 묶습니다. 다음은 상태 확인에 대한 입력 예제입니다.
[ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]
stderr
출력이 없는 종료 코드 0은 성공을 나타내고, 0이 아닌 종료 코드는 실패를 나타냅니다. 자세한 정보는 Docker 원격 API에서 컨테이너 생성 섹션의 HealthCheck
를 참조하세요. interval
-
각 상태 확인 간의 시간(초). 5초에서 300초 사이로 지정할 수 있습니다. 기본 값은 30초입니다.
timeout
-
실패로 간주되기 전에 상태 확인이 성공하기까지의 대기 시간(초)입니다. 2초에서 60초 사이로 지정할 수 있습니다. 기본 값은 5초입니다.
retries
-
컨테이너 상태가 비정상이라고 간주되기 전에 실패한 상태 확인을 재시도하는 횟수입니다. 재시도는 1~10회 사이로 지정할 수 있습니다. 기본값은 3회 재시도입니다.
startPeriod
-
실패한 상태 확인이 최대 재시도 횟수에 포함되기 전에 컨테이너에 부트스트랩 시간이 제공되는 유예 기간 옵션입니다. 0초부터 300초까지 지정할 수 있습니다. 기본적으로
startPeriod
는 비활성화되어 있습니다.
-
Environment
cpu
-
유형: Integer
필수 항목 여부: 조건부
Amazon ECS 컨테이너 에이전트가 컨테이너에 대해 예약하는
cpu
단위입니다. 이 파라미터는 Linux에서 Docker 원격 API의 컨테이너 생성 섹션에 있는 CpuShares
와 docker run에 대한 --cpu-shares
옵션에 매핑됩니다.이 필드는 Fargate 시작 유형을 사용하는 태스크의 경우 선택 사항입니다. 태스크 내 모든 컨테이너에 대해 예약된 총 CPU 양은 태스크 수준
cpu
값보다 작아야 합니다.참고
각 Amazon EC2 인스턴스 유형에 사용할 수 있는 CPU 유닛 수를 결정할 수 있습니다. 이렇게 하려면 해당 인스턴스 유형에 대해 나열된 vCPU 수를 곱하십시오.Amazon EC2 인스턴스
1,024개의 세부 정보 페이지. Linux컨테이너는 할당된 양과 동일한 비율로 컨테이너 인스턴스의 다른 컨테이너와 할당되지 않은 CPU 유닛을 공유합니다. 예를 들어 컨테이너에 512개의 CPU 유닛이 지정된 단일 코어 인스턴스 유형에서 단일 컨테이너 작업을 실행한다고 가정해 보겠습니다. 게다가 이 작업은 컨테이너 인스턴스에서 실행되는 유일한 작업입니다. 이 예에서 컨테이너는 언제라도 1,024 CPU 단위 전부를 사용할 수 있습니다. 하지만, 해당 컨테이너 인스턴스에서 동일한 태스크의 다른 사본을 시작했다고 가정합니다. 필요한 경우 각 작업에 최소 512개의 CPU 유닛이 보장됩니다. 마찬가지로 다른 컨테이너가 남은 CPU를 사용하지 않는 경우 각 컨테이너는 더 높은 CPU 사용량으로 플로팅될 수 있습니다. 하지만 두 작업이 항상 100% 활성 상태인 경우 CPU 단위는 512개로 제한됩니다.
켜기Linux컨테이너 인스턴스,Docker컨테이너 인스턴스의 데몬은 CPU 값을 사용하여 실행 중인 컨테이너의 상대적 CPU 점유율을 계산합니다. 자세한 정보는 Docker 설명서의 CPU 공유 제약
섹션을 참조하세요. Linux 커널이 허용하는 최소 유효 CPU 공유 값은 2입니다. 하지만 CPU 파라미터는 필수 항목이 아니며 컨테이너 정의에서 2 미만의 CPU 값을 사용할 수 있습니다. CPU 값이 2 미만일 경우(null 포함)의 동작은 Amazon ECS 컨테이너 에이전트 버전에 따라 달라집니다. -
에이전트 버전 <= 1.1.0:Null 및 0 CPU 값이 전달됩니다.Docker0과 같습니다.Docker그런 다음 이 값을 1,024개의 CPU 공유로 변환합니다. 1의 CPU 값이 다음으로 전달됩니다.Docker하나로,Linux커널은 두 개의 CPU 공유로 변환합니다.
-
에이전트 버전 1.2.0 이상:Null, 0 및 CPU 값이 1로 전달됩니다.Docker두 개의 CPU 공유로
켜짐Windows컨테이너 인스턴스에서는 CPU 할당량이 절대 할당량으로 적용됩니다.Windows컨테이너는 작업 정의에 정의된 지정된 양의 CPU에만 액세스할 수 있습니다. null 또는 0의 CPU 값이 전달됩니다.Docker같이
0
.Windows그러면 이 값을 CPU 한 개의 1% 로 해석합니다.더 많은 예를 보려면 을 참조하십시오.Amazon ECS가 CPU 및 메모리 리소스를 관리하는 방법
. -
gpu
-
유형: ResourceRequirement 객체
필수 항목 여부: 아니요
Amazon ECS 컨테이너 에이전트가 컨테이너에 대해 예약하는 실제
GPUs
수입니다. 태스크의 모든 컨테이너에 예약된 GPU 수가 태스크가 실행되는 컨테이너 인스턴스에서 사용할 수 있는 GPU 수를 초과하면 안 됩니다. 자세한 정보는 Amazon ECS에서 GPU 사용을 참조하세요.참고
이 매개변수는 지원되지 않습니다.WindowsFargate에서 호스팅되는 컨테이너 또는 컨테이너.
Elastic Inference accelerator
-
유형: ResourceRequirement 객체
필수 항목 여부: 아니요
InferenceAccelerator
유형의 경우value
는 태스크 정의에 지정된InferenceAccelerator
의deviceName
과 일치합니다. 자세한 정보는 Elastic Inference 액셀러레이터 이름을 참조하세요.참고
2023년 4월 15일부터는 AWS에서 신규 고객을 Amazon Elastic Inference(EI)에 온보딩하지 않으며 기존 고객이 더 나은 가격 및 성능을 제공하는 옵션으로 워크로드를 마이그레이션하도록 지원할 예정입니다. 2023년 4월 15일 이후에는 신규 고객이 아마존에서 Amazon EI 액셀러레이터를 사용하는 인스턴스를 시작할 수 없게 됩니다. SageMaker, 아마존 ECS 또는 아마존 EC2. 그러나 지난 30일 기간 동안 Amazon EI를 한 번 이상 사용한 고객은 현재 고객으로 간주되며 서비스를 계속 사용할 수 있습니다.
참고
다음에는 이 파라미터가 지원되지 않습니다.WindowsFargate에서 호스팅되는 컨테이너 또는 컨테이너.
essential
-
유형: Boolean
필수 항목 여부: 아니요
다음과 같이 가정해 보겠습니다.
essential
컨테이너의 매개변수가 다음과 같이 표시되어 있습니다.true
그리고 그 컨테이너는 어떤 이유로든 실패하거나 중지됩니다. 그러면 작업에 포함된 다른 모든 컨테이너가 중지됩니다. 컨테이너의essential
파라미터가false
로 표시된 경우에는 해당 컨테이너의 실패가 태스크의 나머지 컨테이너에 영향을 주지 않습니다. 이 파라미터가 생략된 경우 컨테이너가 필수로 간주됩니다.모든 태스크에는 하나 이상의 필수 컨테이너가 있어야 합니다. 여러 컨테이너로 구성된 애플리케이션이 있다고 가정해 보겠습니다. 그런 다음 공통 용도로 사용되는 컨테이너를 구성 요소로 그룹화하고 여러 구성 요소를 여러 작업 정의로 분리합니다. 자세한 정보는 Amazon ECS용 애플리케이션 설계을 참조하세요.
"essential": true|false
entryPoint
-
중요
초기 버전의 Amazon ECS 컨테이너 에이전트는
entryPoint
파라미터를 적절히 처리하지 못합니다.entryPoint
를 사용하는 데 문제가 있을 경우 컨테이너 에이전트를 업데이트하거나 명령 및 인수를command
배열 항목으로 입력하세요.유형: 문자열 배열
필수 항목 여부: 아니요
컨테이너로 전달되는 진입점입니다. 이 파라미터는 Docker 원격 API
의 컨테이너 생성 섹션에 있는 Entrypoint
와 docker run에 대한 --entrypoint
옵션에 매핑됩니다. 에 대한 자세한 내용은DockerENTRYPOINT
파라미터는 을 참조하십시오.https://docs.docker.com/engine/reference/builder/#entrypoint. "entryPoint": ["string", ...]
command
-
유형: 문자열 배열
필수 항목 여부: 아니요
컨테이너로 전달되는 명령입니다. 이 파라미터는 Docker 원격 API
의 컨테이너 생성 섹션에 있는 Cmd
와 docker run의 COMMAND
파라미터로 매핑됩니다. 에 대한 자세한 내용은DockerCMD
파라미터는 을 참조하십시오.https://docs.docker.com/engine/reference/builder/#cmd. 인수가 여러 개 있는 경우 각 인수가 배열에서 분리된 문자열인지 확인하십시오. "command": ["string", ...]
workingDirectory
-
유형: 문자열
필수 항목 여부: 아니요
컨테이너에서 명령을 실행할 태스크 디렉터리입니다. 이 파라미터는 Docker 원격 API
의 컨테이너 생성 섹션에 있는 WorkingDir
와 docker run에 대한 --workdir
옵션에 매핑됩니다."workingDirectory": "string"
environmentFiles
-
유형: 객체 배열
필수 항목 여부: 아니요
컨테이너로 전달할 환경 변수를 포함하는 파일 목록입니다. 이 파라미터는 docker run
에 대한 --env-file
옵션에 매핑됩니다.다음에는 사용할 수 없습니다.Windows컨테이너.
최대 10개의 환경 파일을 지정할 수 있습니다. 파일의 확장명은
.env
여야 합니다. 환경 파일의 각 줄에는VARIABLE=VALUE
형식의 환경 변수를 포함합니다. 로 시작하는 줄#
주석으로 처리되며 무시됩니다. 적절한 환경 변수 파일 구문에 대한 자세한 정보는 파일에서 기본 환경 변수 선언을 참조하세요. 컨테이너 정의에 지정된 개별 환경 변수가 있는 경우 환경 파일 내에 포함된 변수보다 우선합니다. 동일한 변수를 포함하는 여러 환경 파일이 지정된 경우 위에서 아래로 처리됩니다. 고유한 변수 이름을 사용하는 것이 좋습니다. 자세한 정보는 컨테이너로 환경 변수 전달을 참조하세요.
value
-
유형: String
필수 항목 여부: 예
환경 변수 파일을 포함하는 Amazon S3 객체의 Amazon 리소스 이름(ARN)입니다.
type
-
유형: String
필수 항목 여부: 예
사용할 파일 유형입니다. 지원되는 유일한 값은
s3
입니다.
environment
-
유형: 객체 배열
필수 항목 여부: 아니요
컨테이너로 전달할 환경 변수입니다. 이 파라미터는 Docker 원격 API
의 컨테이너 생성 섹션에 있는 Env
와 docker run에 대한 --env
옵션에 매핑됩니다.중요
자격 증명 데이터와 같은 민감한 정보에 대해서는 일반 텍스트 환경 변수를 사용하지 않는 것이 좋습니다.
name
-
유형: String
필수 항목 여부:
environment
사용 시, 예환경 변수의 이름입니다.
value
-
유형: String
필수 항목 여부:
environment
사용 시, 예환경 변수의 값입니다.
"environment" : [ { "name" : "string", "value" : "string" }, { "name" : "string", "value" : "string" } ]
secrets
-
유형: 객체 배열
필수 항목 여부: 아니요
컨테이너에 공개할 보안 암호를 나타내는 객체입니다. 자세한 정보는 민감한 데이터를 컨테이너에 전달 섹션을 참조하세요.
name
-
유형: String
필수 항목 여부: 예
컨테이너에서 환경 변수로 설정할 값입니다.
valueFrom
-
유형: String
필수 항목 여부: 예
컨테이너에 노출될 암호입니다. 지원되는 값은 AWS Secrets Manager 암호의 전체 ARN이거나 혹은 AWS Systems Manager 파라미터 스토어 내 파라미터의 전체 Amazon 리소스 이름(ARN)입니다.
참고
Systems Manager 파라미터 스토어 파라미터가 현재 실행 중인 태스크와 동일한 AWS 리전에 있을 경우, 해당 암호의 전체 ARN 또는 이름을 사용할 수 있습니다. 파라미터가 다른 리전에 있다면 전체 ARN을 지정해야 합니다.
"secrets": [ { "name": "environment_variable_name", "valueFrom": "arn:aws:ssm:
region
:aws_account_id
:parameter/parameter_name
" } ]
네트워크 설정
disableNetworking
-
유형: Boolean
필수 항목 여부: 아니요
이 파라미터가 true일 경우 컨테이너 내에서 네트워킹이 해제됩니다. 이 파라미터는 Docker 원격 API
의 컨테이너 생성 섹션에 있는 NetworkDisabled
에 매핑됩니다.참고
다음에는 이 매개 변수가 지원되지 않습니다.Windows를 사용하는 컨테이너 또는 작업
awsvpc
네트워크 모드.기본값은
false
입니다."disableNetworking": true|false
links
-
유형: 문자열 배열
필수 항목 여부: 아니요
link
파라미터는 포트 매핑 필요 없이 컨테이너가 서로 통신하도록 허용합니다. 이 매개변수는 작업 정의의 네트워크 모드가 다음과 같이 설정된 경우에만 지원됩니다.bridge
. 그name:internalName
구조는 다음과 유사합니다.name:alias
에서Docker링크. 최대 255개의 문자(대문자 및 소문자), 숫자, 하이픈 및 밑줄이 허용됩니다. 링크에 대한 자세한 내용은Docker컨테이너는 다음을 참조하십시오.https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/. 이 파라미터는 Docker 원격 API 의 컨테이너 생성 섹션에 있는 Links
와 docker run에 대한 --link
옵션에 매핑됩니다.참고
이 매개변수는 지원되지 않습니다.Windows를 사용하는 컨테이너 또는 작업
awsvpc
네트워크 모드.중요
동일한 컨테이너 인스턴스에 배치된 컨테이너는 링크나 호스트 포트 매핑 없이 서로 통신할 수 있습니다. 컨테이너 인스턴스에서 네트워크 격리는 보안 그룹 및 VPC 설정에 의해 제어됩니다.
"links": ["name:internalName", ...]
hostname
-
유형: 문자열
필수 항목 여부: 아니요
컨테이너에 사용할 호스트 이름입니다. 이 파라미터는 Docker 원격 API
의 컨테이너 생성 섹션에 있는 Hostname
와 docker run에 대한 --hostname
옵션에 매핑됩니다.참고
awsvpc
네트워크 모드를 사용 중인 경우에는hostname
파라미터가 지원되지 않습니다."hostname": "string"
dnsServers
-
유형: 문자열 배열
필수 항목 여부: 아니요
컨테이너에 제공되는 DNS 서버의 목록입니다. 이 파라미터는 Docker 원격 API
의 컨테이너 생성 섹션에 있는 Dns
와 docker run에 대한 --dns
옵션에 매핑됩니다.참고
이 매개변수는 지원되지 않습니다.Windows를 사용하는 컨테이너 또는 작업
awsvpc
네트워크 모드."dnsServers": ["string", ...]
dnsSearchDomains
-
유형: 문자열 배열
필수 항목 여부: 아니요
패턴: ^[a-zA-Z0-9-.]{0,253}[a-zA-Z0-9]$
컨테이너에 제공되는 DNS 검색 도메인의 목록입니다. 이 파라미터는 Docker 원격 API
의 컨테이너 생성 섹션에 있는 DnsSearch
와 docker run에 대한 --dns-search
옵션에 매핑됩니다.참고
이 파라미터는 Windows 컨테이너 또는
awsvpc
네트워크 모드를 사용하는 태스크에 대해서는 지원되지 않습니다."dnsSearchDomains": ["string", ...]
extraHosts
-
유형: 객체 배열
필수 항목 여부: 아니요
컨테이너의
/etc/hosts
파일에 추가할 호스트 이름 및 IP 주소 매핑의 목록입니다.이 파라미터는 Docker 원격 API
의 컨테이너 생성 섹션에 있는 ExtraHosts
와 docker run에 대한 --add-host
옵션에 매핑됩니다.참고
이 파라미터는 Windows 컨테이너 또는
awsvpc
네트워크 모드를 사용하는 태스크에 대해서는 지원되지 않습니다."extraHosts": [ { "hostname": "string", "ipAddress": "string" } ... ]
hostname
-
유형: String
필수 항목 여부: 예(
extraHosts
사용 시)/etc/hosts
항목에 사용할 호스트 이름입니다. ipAddress
-
유형: String
필수 항목 여부: 예(
extraHosts
사용 시)/etc/hosts
항목에 사용할 IP 주소입니다.
스토리지 및 로깅
readonlyRootFilesystem
-
유형: Boolean
필수 항목 여부: 아니요
이 파라미터가 true일 경우 컨테이너에는 루트 파일 시스템에 대한 읽기 전용 액세스가 부여됩니다. 이 파라미터는 Docker 원격 API
의 컨테이너 생성 섹션에 있는 ReadonlyRootfs
와 docker run에 대한 --read-only
옵션에 매핑됩니다.참고
이 파라미터는 Windows 컨테이너에서 지원되지 않습니다.
기본값은
false
입니다."readonlyRootFilesystem": true|false
mountPoints
-
유형: 객체 배열
필수 항목 여부: 아니요
컨테이너에서 데이터 볼륨의 탑재 지점입니다.
이 파라미터는 Docker 원격 API
의 컨테이너 생성 섹션에 있는 Volumes
와 docker run에 대한 --volume
옵션에 매핑됩니다.Windows 컨테이너는 전체 디렉터리를 동일한 드라이브에
$env:ProgramData
로 마운트할 수 있습니다. Windows 컨테이너는 디렉터리를 다른 드라이브에 마운트할 수 없으며, 마운트 지점이 여러 드라이브에 있을 수 없습니다.sourceVolume
-
유형: String
필수 항목 여부: 예(
mountPoints
사용 시)탑재할 볼륨의 이름입니다.
containerPath
-
유형: String
필수 항목 여부: 예(
mountPoints
사용 시)볼륨을 탑재할 컨테이너의 경로입니다.
readOnly
-
유형: Boolean
필수 항목 여부: 아니요
이 값이
true
일 경우 컨테이너에는 볼륨에 대한 읽기 전용 액세스가 부여됩니다. 이 값이false
일 경우 컨테이너는 볼륨에 쓸 수 있습니다. 기본값은false
입니다.
volumesFrom
-
유형: 객체 배열
필수 항목 여부: 아니요
다른 컨테이너로부터 탑재할 데이터 볼륨입니다. 이 파라미터는 Docker 원격 API
의 컨테이너 생성 섹션에 있는 VolumesFrom
와 docker run에 대한 --volumes-from
옵션에 매핑됩니다.sourceContainer
-
유형: String
필수 항목 여부:
volumesFrom
사용 시, 예탑재할 볼륨이 위치한 컨테이너의 이름입니다.
readOnly
-
유형: Boolean
필수 항목 여부: 아니요
이 값이
true
일 경우 컨테이너에는 볼륨에 대한 읽기 전용 액세스가 부여됩니다. 이 값이false
일 경우 컨테이너는 볼륨에 쓸 수 있습니다. 기본값은false
입니다.
"volumesFrom": [ { "sourceContainer": "string", "readOnly": true|false } ]
logConfiguration
-
유형:LogConfiguration오브젝트
필수 항목 여부: 아니요
컨테이너의 로그 구성 사양입니다.
로그 구성을 사용하는 태스크 정의에 대한 자세한 정보는 태스크 정의 예제 섹션을 참조하세요.
이 파라미터는 Docker 원격 API
의 컨테이너 생성 섹션에 있는 LogConfig
와docker run
에 대한 --log-driver
옵션에 매핑됩니다. 기본적으로 컨테이너는 다음과 같은 로깅 드라이버를 사용합니다.Docker데몬이 사용하는. 그러나 컨테이너는 다른 로깅 드라이버를 사용할 수 있습니다.Docker컨테이너 정의에서 이 매개변수와 함께 로그 드라이버를 지정하여 데몬을 생성합니다. 컨테이너에 다른 로깅 드라이버를 사용하려면 컨테이너 인스턴스에서(또는 원격 로깅 옵션의 다른 로그 서버에서) 로그 시스템이 올바르게 구성되어야 합니다. 지원되는 여러 로그 드라이버의 옵션에 대한 자세한 내용은 을 참조하십시오.로깅 드라이버 구성에서Docker설명서에서. 컨테이너에 대한 로그 구성을 지정할 때 다음 사항에 유의해야 합니다.
-
Amazon ECS는 에서 사용할 수 있는 로깅 드라이버의 하위 세트를 지원합니다.Docker데몬. 향후의 Amazon ECS 컨테이너 에이전트 릴리스에서 로그 드라이버가 추가될 예정입니다.
-
이 매개 변수에는 버전 1.18 이상이 필요합니다.Docker컨테이너 인스턴스의 원격 API.
-
EC2 시작 유형을 사용하는 작업의 경우 컨테이너 인스턴스에서 실행되는 Amazon ECS 컨테이너 에이전트는 해당 인스턴스에서 사용할 수 있는 로깅 드라이버를 컨테이너 에이전트에 등록해야 합니다.
ECS_AVAILABLE_LOGGING_DRIVERS
해당 인스턴스에 배치된 컨테이너가 이러한 로그 구성 옵션을 사용할 수 있기 이전의 환경 변수입니다. 자세한 정보는 Amazon ECS 컨테이너 에이전트 구성을 참조하세요. -
Fargate 시작 유형을 사용하는 태스크의 경우, 태스크가 호스팅되는 기본 인프라에 대한 액세스 권한이 없으므로 필요한 추가 소프트웨어가 태스크 외부에 설치되어야 합니다. 예를 들어,FluentdLogstash를 실행하는 출력 애그리게이터 또는 원격 호스트가 전송합니다.Gelf에 로그인합니다.
"logConfiguration": { "logDriver": "awslogs","fluentd","gelf","json-file","journald","logentries","splunk","syslog","awsfirelens", "options": {"
string
": "string
" ...}, "secretOptions": [{ "name": "string
", "valueFrom": "string
" }] }logDriver
-
유형: String
유효한 값:
"awslogs","fluentd","gelf","json-file","journald","logentries","splunk","syslog","awsfirelens"
필수 항목 여부:
logConfiguration
사용 시, 예컨테이너에 사용할 로드 드라이버입니다. 앞에 나열된 유효한 값은 Amazon ECS 컨테이너 에이전트가 기본적으로 통신할 수 있는 로그 드라이버입니다.
Fargate 시작 유형을 사용하는 태스크의 경우, 지원되는 로그 드라이버는
awslogs
,splunk
및awsfirelens
입니다.EC2 시작 유형을 사용하는 태스크의 경우 지원되는 로그 드라이버는
awslogs
,fluentd
,gelf
,json-file
,journald
,logentries
,syslog
,splunk
및awsfirelens
입니다.사용 방법에 대한 자세한 내용은
awslogs
컨테이너 로그를 전송할 작업 정의의 로그 드라이버CloudWatch 로그, 참조awslogs 로그 드라이버 사용.awsfirelens
로그 드라이버 사용에 대한 자세한 정보는 사용자 지정 로그 라우팅을 참조하세요.참고
목록에 없는 사용자 지정 드라이버가 있는 경우 다음과 같은 Amazon ECS 컨테이너 에이전트 프로젝트를 포크할 수 있습니다.에서 사용할 수 있습니다. GitHub
해당 드라이버와 함께 작동하도록 사용자 정의하십시오. 포함하고 싶은 변경에 대해서는 풀 요청을 제출할 것을 권장합니다. 하지만 현재 이 소프트웨어의 수정된 사본 실행은 지원하지 않습니다. 이 파라미터를 사용하려면 컨테이너 인스턴스에서 Docker 원격 API 버전 1.18 이상을 사용해야 합니다.
options
-
유형: String 간 맵
필수 항목 여부: 아니요
로그 드라이버로 전송할 구성 옵션의 키/값 맵입니다.
를 사용하는 경우 FireLens 로그를 다음으로 라우팅하려면AWS 서비스또는AWS Partner Network로그 저장 및 분석 대상을 설정할 수 있습니다.
log-driver-buffer-limit
로그 라우터 컨테이너로 전송되기 전에 메모리에 버퍼링되는 이벤트 수를 제한하는 옵션입니다. 처리량이 높으면 내부 버퍼의 메모리가 부족해질 수 있으므로 잠재적인 로그 손실 문제를 해결하는 데 도움이 될 수 있습니다.Docker. 자세한 정보는 Fluentd 버퍼 제한을 참조하세요.이 파라미터를 사용하려면 컨테이너 인스턴스에서 Docker 원격 API 버전 1.19 이상을 사용해야 합니다.
secretOptions
-
유형: 객체 배열
필수 항목 여부: 아니요
로그 구성에 전달할 암호를 나타내는 객체입니다. 로그 구성에 사용되는 비밀에는 인증 토큰, 인증서 또는 암호화 키가 포함될 수 있습니다. 자세한 정보는 민감한 데이터를 컨테이너에 전달 섹션을 참조하세요.
name
-
유형: String
필수 항목 여부: 예
컨테이너에서 환경 변수로 설정할 값입니다.
valueFrom
-
유형: String
필수 항목 여부: 예
컨테이너의 로그 구성에 노출할 암호.
"logConfiguration": { "logDriver": "splunk", "options": { "splunk-url": "https://cloud.splunk.com:8080", "splunk-token": "...", "tag": "...", ... }, "secretOptions": [{ "name": "
splunk-token
", "valueFrom": "/ecs/logconfig/splunkcred
" }] }
-
firelensConfiguration
-
유형:FirelensConfiguration오브젝트
필수 항목 여부: 아니요
더 FireLens 컨테이너의 구성. 컨테이너 로그에 대한 로그 라우터를 지정하고 구성하는 데 사용됩니다. 자세한 정보는 사용자 지정 로그 라우팅 섹션을 참조하세요.
{ "firelensConfiguration": { "type": "fluentd", "options": { "KeyName": "" } } }
options
-
유형: String 간 맵
필수 항목 여부: 아니요
로그 라우터를 구성할 때 사용할 옵션의 키/값 맵입니다. 이 필드는 선택 사항이며, 사용자 지정 구성 파일을 지정하거나 태스크, 태스크 정의, 클러스터 및 컨테이너 인스턴스 세부 정보와 같은 추가 메타데이터를 로그 이벤트에 추가하는 데 사용할 수 있습니다. 이 필드를 지정할 경우 사용할 구문은
"options":{"enable-ecs-log-metadata":"true|false","config-file-type:"s3|file","config-file-value":"arn:aws:s3:::mybucket/fluent.conf|filepath"}
입니다. 자세한 정보는 FireLens 구성을 사용하는 태스크 정의 생성 섹션을 참조하세요. type
-
유형: String
필수 항목 여부: 예
사용할 로그 라우터입니다. 유효한 값은
fluentd
또는fluentbit
입니다.
보안
컨테이너 보안에 대한 자세한 내용은 Amazon ECS 모범 사례 가이드의 태스크 및 컨테이너 보안을 참조하세요.
credentialSpecs
-
유형: 문자열 배열
필수 항목 여부: 아니요
자격 증명 사양에 따른 SSM 또는 Amazon S3의 ARN 목록 (
CredSpec
) Active Directory 인증을 위한 컨테이너를 구성하는 파일입니다. 이 매개 변수 대신 이 매개 변수를 사용하는 것이 좋습니다.dockerSecurityOptions
. 최대 ARN 수는 1개입니다.각 ARN에는 두 가지 형식이 있습니다.
- 자격 증명 스펙 도메인 없음: Myarn
-
당신은 다음을 사용합니다.
credentialspecdomainless:MyARN
제공하려면CredSpec
시크릿 매니저에 시크릿에 대한 추가 섹션이 있습니다. 시크릿의 도메인에 로그인 자격 증명을 제공합니다.모든 컨테이너 인스턴스에서 실행되는 각 작업은 서로 다른 도메인에 조인할 수 있습니다.
컨테이너 인스턴스를 도메인에 조인하지 않고도 이 형식을 사용할 수 있습니다.
- 자격 증명 사양: myARN
-
당신은 다음을 사용합니다.
credentialspec:MyARN
제공하려면CredSpec
단일 도메인용.이 작업 정의를 사용하는 작업을 시작하기 전에 컨테이너 인스턴스를 도메인에 조인해야 합니다.
두 형식 모두 다음을 대체하십시오.
MyARN
SSM 또는 아마존 S3의 ARN을 사용하십시오.The
credspec
Secrets Manager에 연결할 사용자 이름, 암호 및 도메인이 포함된 암호에 대한 ARN을 제공해야 합니다. 보안을 강화하기 위해 도메인이 없는 인증을 위해 인스턴스는 도메인에 조인되지 않습니다. 인스턴스의 다른 애플리케이션은 도메인이 없는 자격 증명을 사용할 수 없습니다. 이 파라미터를 사용하여 동일한 인스턴스에서 작업을 실행할 수 있습니다. 작업이 서로 다른 도메인에 가입해야 하는 경우에도 마찬가지입니다. 자세한 내용은 을 참조하십시오.윈도우 컨테이너용 GMSA 사용과리눅스 컨테이너용 GMSA 사용. privileged
-
유형: Boolean
필수 항목 여부: 아니요
이 파라미터가 true일 경우 컨테이너에는 호스트 컨테이너 인스턴스에 대한 승격된 권한을 부여받습니다(
root
사용자와 비슷함).privileged
로 컨테이너를 실행하는 것이 좋습니다. 대부분의 경우,privileged
를 사용하는 대신 특정 파라미터를 사용하여 정확히 필요한 권한을 지정할 수 있습니다.이 파라미터는 Docker 원격 API
의 컨테이너 생성 섹션에 있는 Privileged
와 docker run에 대한 --privileged
옵션에 매핑됩니다.참고
이 파라미터는 Windows 컨테이너 또는 Fargate 시작 유형을 사용하는 태스크에 대해서는 지원되지 않습니다.
기본값은
false
입니다."privileged": true|false
user
-
유형: 문자열
필수 항목 여부: 아니요
컨테이너 내부에서 사용할 사용자입니다. 이 파라미터는 Docker 원격 API
의 컨테이너 생성 섹션에 있는 User
와 docker run에 대한 --user
옵션에 매핑됩니다.중요
를 사용하는 작업을 실행하는 경우
host
네트워크 모드에서 루트 사용자 (UID 0) 를 사용하여 컨테이너를 실행하지 마세요. 보안상 항상 루트가 아닌 사용자를 사용합니다.다음 형식을 사용하여
user
를 지정할 수 있습니다. UID 또는 GID를 지정하는 경우 이를 양의 정수로 지정해야 합니다.-
user
-
user:group
-
uid
-
uid:gid
-
user:gid
-
uid:group
참고
이 파라미터는 Windows 컨테이너에서 지원되지 않습니다.
"user": "string"
-
dockerSecurityOptions
-
유형: 문자열 배열
유효한 값:”no-new-privileges“| “어패머:프로필” | “라벨:
값
“| “자격 증명 사양:CredentialSpecFilePath
"필수 항목 여부: 아니요
여러 보안 시스템에 대한 사용자 지정 구성을 제공하는 문자열 목록입니다. 유효한 값에 대한 자세한 정보는 Docker 실행 보안 구성
을 참조하세요. 이 필드는 Fargate 시작 유형을 사용하는 태스크의 컨테이너에는 사용할 수 없습니다. 에 대한LinuxEC2의 작업에서 이 파라미터는 다음과 같은 사용자 지정 레이블을 참조하는 데 사용할 수 있습니다.SELinux과AppArmor 다단계 보안 시스템.
EC2의 모든 작업에서 이 파라미터를 사용하여 Active Directory 인증을 위한 컨테이너를 구성하는 자격 증명 사양 파일을 참조할 수 있습니다. 자세한 내용은 Windows 컨테이너에 gMSA 사용하기 및 사용gMSAs...에 대한Linux컨테이너 단원을 참조하세요.
이 파라미터는 Docker 원격 API
의 컨테이너 생성 섹션에 있는 SecurityOpt
와 docker에 대한 --security-opt
옵션에 매핑됩니다."dockerSecurityOptions": ["string", ...]
참고
컨테이너 인스턴스에서 실행되는 Amazon ECS 컨테이너 에이전트는
ECS_SELINUX_CAPABLE=true
또는ECS_APPARMOR_CAPABLE=true
환경 변수를 사용하여 해당 인스턴스에서 사용 가능한 로깅 드라이버를 등록해야 해당 인스턴스에 배치된 컨테이너가 이들 보안 옵션을 사용할 수 있습니다. 자세한 정보는 Amazon ECS 컨테이너 에이전트 구성을 참조하세요.
리소스 제한
ulimits
-
유형: 객체 배열
필수 항목 여부: 아니요
컨테이너에 정의할
ulimit
값 목록. 이 값은 운영 체제에 설정된 기본 리소스 할당량 설정을 다시 정의합니다. 이 파라미터는 Docker 원격 API의 컨테이너 생성 섹션에 있는 Ulimits
와 docker run에 대한 --ulimit
옵션에 매핑됩니다.Fargate에서 호스팅되는 Amazon ECS 작업은 운영 체제에서 설정한 기본 리소스 제한 값을 사용합니다. 단,
nofile
리소스 제한 파라미터.nofile
리소스 제한은 컨테이너가 사용할 수 있는 열린 파일 수에 대한 제한을 설정합니다. Fargate에서는 기본값입니다.nofile
소프트 리미트는1024
그리고 하드 리미트는4096
. 두 제한의 값을 최대 값까지 설정할 수 있습니다.1048576
. 자세한 내용은 태스크 리소스 제한 단원을 참조하세요.이 파라미터를 사용하려면 컨테이너 인스턴스에서 Docker 원격 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
-
유형: String
유효한 값:
"core" | "cpu" | "data" | "fsize" | "locks" | "memlock" | "msgqueue" | "nice" | "nofile" | "nproc" | "rss" | "rtprio" | "rttime" | "sigpending" | "stack"
필수 항목 여부: 예(
ulimits
사용 시)ulimit
의type
입니다. hardLimit
-
유형: Integer
필수 항목 여부: 예(
ulimits
사용 시)ulimit
유형의 하드 제한입니다. softLimit
-
유형: Integer
필수 항목 여부: 예(
ulimits
사용 시)ulimit
유형의 소프트 제한입니다.
Docker 레이블
dockerLabels
-
유형: String 간 맵
필수 항목 여부: 아니요
컨테이너에 추가할 레이블의 키/값 맵입니다. 이 파라미터는 Docker 원격 API
의 컨테이너 생성 섹션에 있는 Labels
와 docker run에 대한 --label
옵션에 매핑됩니다.이 파라미터를 사용하려면 컨테이너 인스턴스에서 Docker 원격 API 버전 1.18 이상을 사용해야 합니다.
"dockerLabels": {"string": "string" ...}
기타 컨테이너 정의 파라미터
다음 컨테이너 정의 파라미터는 JSON을 통해 구성(Configure via JSON) 옵션을 사용하여 Amazon ECS 콘솔에서 태스크 정의를 등록할 때 사용할 수 있습니다. 자세한 정보는 콘솔을 사용하여 작업 정의 생성을 참조하세요.
Linux 파라미터
linuxParameters
-
유형: LinuxParameters 객체
필수 항목 여부: 아니요
Linux-컨테이너에 적용되는 특정 옵션 (예:KernelCapabilities.
참고
이 매개변수는 지원되지 않습니다.Windows컨테이너.
"linuxParameters": { "capabilities": { "add": ["string", ...], "drop": ["string", ...] } }
capabilities
-
유형: KernelCapabilities 객체
필수 항목 여부: 아니요
그Linux컨테이너의 기능은 다음과 같습니다.또는 에 추가됨에서 제공한 기본 구성에서 삭제되었습니다.Docker. 기본 기능 및 기타 사용 가능한 기능에 대한 자세한 내용은 을 참조하십시오.런타임 권한 및 Linux 기능
에서Docker실행 레퍼런스. 이에 대한 자세한 내용은Linux기능은 다음을 참조하십시오.기능 (7) 리눅스 매뉴얼 페이지. 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"
필수 항목 여부: 아니요
The Linux에서 제공하는 기본 구성에 컨테이너를 추가할 수 있는 기능Docker. 이 파라미터는 도커 원격 APIhttps://docs.docker.com/engine/api/v1.38/
의 Create a container (컨테이너 생성) 섹션에 있는 CapAdd
및 docker run에 대한 --cap-add
옵션에 매핑됩니다.참고
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에서 제공하는 기본 구성에서 컨테이너를 제거할 수 있는 기능Docker. 이 파라미터는 도커 원격 APIhttps://docs.docker.com/engine/api/v1.38/
의 Create a container (컨테이너 생성) 섹션에 있는 CapDrop
및 docker run에 대한 --cap-drop
옵션에 매핑됩니다.
devices
-
컨테이너에 노출될 모든 호스트 디바이스. 이 파라미터는 도커 원격 APIhttps://docs.docker.com/engine/api/v1.38/
의 Create a container (컨테이너 생성) 섹션에 있는 Devices
및 docker run에 대한 --device
옵션에 매핑됩니다.참고
그
devices
Fargate 시작 유형 또는 Windows 컨테이너를 사용할 때는 파라미터가 지원되지 않습니다.유형: Device 객체 배열
필수 항목 여부: 아니요
hostPath
-
호스트 컨테이너 인스턴스의 디바이스 경로.
유형: String
필수 항목 여부: 예
containerPath
-
호스트 디바이스를 노출할 컨테이너 내 경로.
유형: 문자열
필수 항목 여부: 아니요
permissions
-
디바이스를 위해 컨테이너에 제공할 명시적 권한. 컨테이너는 기본적으로 디바이스에서
read
,write
및mknod
에 대한 권한이 있습니다.유형: 문자열 배열
유효한 값:
read
|write
|mknod
initProcessEnabled
-
신호를 전달하고 프로세스의 결과를 받아들이는 컨테이너 내에서
init
프로세스를 실행합니다. 이 파라미터는 docker run에 대한 --init
옵션에 매핑됩니다.이 파라미터를 사용하려면 컨테이너 인스턴스에서 Docker 원격 API 버전 1.25 이상을 사용해야 합니다.
maxSwap
-
컨테이너가 사용할 수 있는 총 스왑 메모리 양(MiB) 이 파라미터는 docker run
에 대한 --memory-swap
옵션으로 변환되며 컨테이너 메모리의 합계에maxSwap
값을 더한 값이 됩니다.0
의maxSwap
값이 지정되면 컨테이너는 스왑을 사용하지 않습니다. 허용되는 값은0
또는 양수입니다.maxSwap
파라미터를 생략하면 컨테이너는 실행 중인 컨테이너 인스턴스에 대한 스왑 구성을 사용합니다.swappiness
매개 변수를 사용하려면maxSwap
값을 설정해야 합니다.참고
Fargate 시작 유형을 사용하는 태스크를 사용하는 경우에는
maxSwap
파라미터가 지원되지 않습니다. sharedMemorySize
-
/dev/shm
볼륨의 크기 값(MiB)입니다. 이 파라미터는 docker run에 대한 --shm-size
옵션에 매핑됩니다.참고
Fargate 시작 유형을 사용하는 태스크를 사용하는 경우에는
sharedMemorySize
파라미터가 지원되지 않습니다.유형: Integer
swappiness
-
이 파라미터를 통해 컨테이너의 메모리 스왑 동작을 조정할 수 있습니다.
swappiness
값이0
이면 필요하지 않은 경우 스와핑이 발생하지 않도록 합니다.swappiness
값이100
이면 페이지가 자주 스와핑되도록 합니다. 허용되는 값은0
과100
사이의 숫자입니다. 값을 지정하지 않으면 기본값60
이 사용됩니다. 또한,maxSwap
값이 지정되지 않은 경우 이 파라미터는 무시됩니다. 이 파라미터는 docker run에 대한 --memory-swappiness
옵션에 매핑됩니다.참고
Fargate 시작 유형을 사용하는 태스크를 사용하는 경우에는
swappiness
파라미터가 지원되지 않습니다.아마존 리눅스 2023에서 작업을 사용하는 경우
swappiness
파라미터는 지원되지 않습니다. tmpfs
-
컨테이너 경로, 마운트 옵션 및 최대 크기 (MiB)tmpfs마운트. 이 파라미터는 docker run
에 대한 --tmpfs
옵션에 매핑됩니다.참고
Fargate 시작 유형을 사용하는 태스크를 사용하는 경우에는
tmpfs
파라미터가 지원되지 않습니다.유형: Tmpfs 객체 배열
필수 항목 여부: 아니요
containerPath
-
절대 파일 경로입니다.tmpfs볼륨을 마운트할 예정입니다.
유형: String
필수 항목 여부: 예
mountOptions
-
tmpfs 볼륨 마운트 옵션의 목록입니다.
유형: 문자열 배열
필수 항목 여부: 아니요
유효한 값:
"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
-
의 최대 크기 (MiB 단위)tmpfs음량.
유형: Integer
필수 항목 여부: 예
컨테이너 종속성
dependsOn
-
유형: ContainerDependency 객체 배열
필수 항목 여부: 아니요
컨테이너 시작 및 종료에 대해 정의된 종속성입니다. 컨테이너는 여러 종속성을 포함할 수 있습니다. 컨테이너가 시작될 때 종속성이 정의되면 컨테이너를 종료할 때 종속성이 취소됩니다. 문제 해결 예는 예: 컨테이너 종속성 섹션을 참조하세요.
참고
컨테이너가 종속성 제약을 충족하지 못하거나 제약을 충족하기 전에 시간이 초과되면 Amazon ECS는 종속된 컨테이너를 다음 상태로 진행시키지 못합니다.
Amazon EC2 인스턴스에서 호스팅되는 Amazon ECS 태스크의 경우, 컨테이너 에이전트 버전이
1.26.0
이상이어야 컨테이너 종속성을 사용 설정할 수 있습니다. 그러나 최신 버전의 컨테이너 에이전트를 사용하는 것이 좋습니다. 에이전트 버전을 확인하고 최신 버전으로 업데이트하는 방법에 대한 자세한 정보는 Amazon ECS 컨테이너 에이전트 업데이트 섹션을 참조하세요. Amazon ECS 최적화 Amazon Linux AMI를 사용하는 경우 해당 인스턴스에는1.26.0-1
이상 버전의ecs-init
패키지가 필요합니다. 컨테이너 인스턴스가 버전20190301
이상에서 시작된 경우 필요한 버전의 컨테이너 에이전트 및ecs-init
이 포함되어 있습니다. 자세한 정보는 Amazon ECS 최적화 AMI을 참조하세요.Fargate에서 호스팅되는 Amazon ECS 작업의 경우 이 매개 변수를 사용하려면 작업 또는 서비스가 플랫폼 버전을 사용해야 합니다.
1.3.0
또는 그 이상 (Linux) 또는1.0.0
(Windows)."dependsOn": [ { "containerName": "
string
", "condition": "string
" } ]containerName
-
유형: String
필수 항목 여부: 예
지정된 조건을 충족해야 하는 컨테이너 이름입니다.
condition
-
유형: String
필수 항목 여부: 예
컨테이너의 종속성 조건입니다. 다음은 사용 가능한 조건과 그 동작입니다.
-
START
- 이 조건은 오늘의 링크와 볼륨의 동작을 에뮬레이션합니다. 조건은 다른 컨테이너의 시작을 허용하기 전에 종속 컨테이너가 시작되었는지 검증합니다. -
COMPLETE
- 이 조건은 다른 컨테이너를 시작하기 전에 종속 컨테이너 실행이 완료(종료)되었는지 확인합니다. 이는 스크립트를 실행한 후 종료하는 필수적이지 않은 컨테이너에 유용할 수 있습니다. 필수 컨테이너에는 이 조건을 설정할 수 없습니다. -
SUCCESS
- 이 조건은COMPLETE
와 동일하지만 컨테이너가zero
상태로 종료되어야 합니다. 필수 컨테이너에는 이 조건을 설정할 수 없습니다. -
HEALTHY
- 이 조건은 다른 컨테이너를 시작하기 전에 종속 컨테이너가 컨테이너 상태 확인을 통과하는지 확인합니다. 이렇게 하려면 태스크 정의에서 종속 컨테이너에 상태 확인이 구성되어 있어야 합니다. 이 조건은 태스크 시작 시에만 확인됩니다.
-
컨테이너 제한 시간
startTimeout
-
유형: Integer
필수 항목 여부: 아니요
예제 값:
120
컨테이너에 대한 종속성 해결을 포기하기 전에 대기할 시간(초)입니다.
예를 들어
containerA
에 대한 태스크 정의에서containerB
에 대한 종속성이COMPLETE
,SUCCESS
또는HEALTHY
상태인 두 개의 컨테이너를 지정합니다.containerB
에 대해startTimeout
값이 지정되고 그 시간 내에 원하는 상태에 도달하지 않으면containerA
는 시작하지 않습니다.참고
컨테이너가 종속성 제약을 충족하지 못하거나 제약을 충족하기 전에 시간이 초과되면 Amazon ECS는 종속된 컨테이너를 다음 상태로 진행시키지 못합니다.
Fargate에서 호스팅되는 Amazon ECS 작업의 경우 이 매개 변수를 사용하려면 작업 또는 서비스가 플랫폼 버전을 사용해야 합니다.
1.3.0
또는 그 이상 (Linux). stopTimeout
-
유형: Integer
필수 항목 여부: 아니요
예제 값:
120
자체적으로 정상적으로 종료하지 않을 경우 컨테이너를 강제 종료하기까지 대기할 시간(초)입니다.
Fargate 시작 유형을 사용하는 작업의 경우 작업 또는 서비스에 플랫폼 버전 1.3.0 이상이 필요합니다 (Linux) 또는 1.0.0 이상 (Windows). 최대 중지 제한 시간 값은 120초입니다. 하지만, 파라미터를 지정하지 않으면 30초의 기본값이 사용됩니다.
EC2 시작 유형을 사용하는 태스크의 경우
stopTimeout
파라미터를 지정하지 않으면 Amazon ECS 컨테이너 에이전트 구성 변수ECS_CONTAINER_STOP_TIMEOUT
에 대해 설정된 값이 사용됩니다. 둘 다 아니라면stopTimeout
매개변수 또는ECS_CONTAINER_STOP_TIMEOUT
에이전트 구성 변수가 설정되었습니다. 기본값은 30초입니다.Linux컨테이너 및 30초 지속Windows컨테이너가 사용됩니다. 컨테이너 중지 제한 시간 값을 활성화하려면 컨테이너 인스턴스에 버전 1.26.0 이상의 컨테이너 에이전트가 필요합니다. 그러나 최신 버전의 컨테이너 에이전트를 사용하는 것이 좋습니다. 에이전트 버전을 확인하고 최신 버전으로 업데이트하는 방법에 대한 자세한 정보는 Amazon ECS 컨테이너 에이전트 업데이트 섹션을 참조하세요. Amazon ECS 최적화 Amazon Linux AMI를 사용하는 경우 해당 인스턴스에는 1.26.0-1 이상 버전의ecs-init
패키지가 필요합니다. 컨테이너 인스턴스가 버전20190301
이상에서 시작된 경우 필요한 버전의 컨테이너 에이전트 및ecs-init
이 포함되어 있습니다. 자세한 정보는 Amazon ECS 최적화 AMI을 참조하세요.
System Controls
systemControls
-
유형: SystemControl 객체
필수 항목 여부: 아니요
컨테이너에서 설정할 네임스페이스 커널 파라미터의 목록입니다. 이 파라미터는 Docker 원격 API
의 컨테이너 생성 섹션에 있는 Sysctls
와 docker run에 대한 --sysctl
옵션에 매핑됩니다. 예를 들어 다음과 같이 구성할 수 있습니다.net.ipv4.tcp_keepalive_time
연결을 더 오래 유지하도록 설정하세요.네트워크 관련은 지정하지 않는 것이 좋습니다.
systemControls
다음 중 하나를 사용하는 단일 작업의 여러 컨테이너에 대한 매개 변수awsvpc
또는host
네트워크 모드. 이렇게 하면 다음과 같은 단점이 있습니다.-
를 사용하는 작업의 경우
awsvpc
Fargate를 포함한 네트워크 모드 (설정한 경우)systemControls
모든 컨테이너에 대해 작업의 모든 컨테이너에 적용됩니다. 단일 작업의 여러 컨테이너에 서로 다른systemControls
를 설정할 경우 마지막으로 시작되는 컨테이너에 따라 적용될systemControls
가 결정됩니다. -
host
네트워크 모드를 사용하는 태스크의 경우, 네트워크 네임스페이스systemControls
는 지원되지 않습니다.
태스크 내 컨테이너에 사용할 IPC 리소스 네임스페이스를 설정하는 경우, 시스템 제어에 다음 사항이 적용됩니다. 자세한 정보는 IPC 모드을 참조하세요.
-
host
IPC 모드를 사용하는 태스크의 경우, IPC 네임스페이스systemControls
는 지원되지 않습니다. -
를 사용하는 작업의 경우
task
IPC 모드, IPC 네임스페이스systemControls
값은 작업 내의 모든 컨테이너에 적용됩니다.
참고
이 파라미터는 Windows 컨테이너에서 지원되지 않습니다.
참고
이 매개변수는 호스팅되는 작업에만 지원됩니다.AWS Fargate작업이 플랫폼 버전을 사용하는 경우
1.4.0
또는 이후 버전 (Linux). Fargate의 Windows 컨테이너에서는 지원되지 않습니다."systemControls": [ { "namespace":"
string
", "value":"string
" } ]namespace
-
유형: 문자열
필수 항목 여부: 아니요
value
을 설정할 네임스페이스 커널 파라미터입니다.유효한 IPC 네임스페이스 값:
"kernel.msgmax" | "kernel.msgmnb" | "kernel.msgmni" | "kernel.sem" | "kernel.shmall" | "kernel.shmmax" | "kernel.shmmni" | "kernel.shm_rmid_forced"
, 및Sysctls
그 시작은"fs.mqueue.*"
유효한 네트워크 네임스페이스 값:
Sysctls
다음으로 시작하는"net.*"
Fargate는 이러한 모든 값을 지원합니다.
value
-
유형: 문자열
필수 항목 여부: 아니요
namespace
에서 지정되는 네임스페이스 커널 파라미터의 값입니다.
-
대화형
interactive
-
유형: Boolean
필수 항목 여부: 아니요
이 파라미터가
true
일 경우 이것을 사용하여stdin
또는tty
를 할당해야 하는 컨테이너화된 애플리케이션을 배포할 수 있습니다. 이 파라미터는 Docker 원격 API의 컨테이너 생성 섹션에 있는 OpenStdin
와 docker run에 대한 --interactive
옵션에 매핑됩니다.기본값은
false
입니다.
의사 터미널
pseudoTerminal
-
유형: Boolean
필수 항목 여부: 아니요
이 파라미터가
true
일 경우 TTY가 할당됩니다. 이 파라미터는 Docker 원격 API의 컨테이너 생성 섹션에 있는 Tty
와 docker run에 대한 --tty
옵션에 매핑됩니다.기본값은
false
입니다.
Elastic Inference 액셀러레이터 이름
참고
2023년 4월 15일부터는 AWS에서 신규 고객을 Amazon Elastic Inference(EI)에 온보딩하지 않으며 기존 고객이 더 나은 가격 및 성능을 제공하는 옵션으로 워크로드를 마이그레이션하도록 지원할 예정입니다. 2023년 4월 15일 이후에는 신규 고객이 아마존에서 Amazon EI 가속기를 사용하는 인스턴스를 시작할 수 없게 됩니다. SageMaker, 아마존 ECS 또는 아마존 EC2. 그러나 지난 30일 기간 동안 Amazon EI를 한 번 이상 사용한 고객은 현재 고객으로 간주되며 서비스를 계속 사용할 수 있습니다.
태스크 정의에 대한 Elastic Inference 액셀러레이터 리소스 요구 사항. 자세한 내용은 Amazon Elastic Inference 개발자 안내서의 Elastic Inference가 무엇인가요? 부문을 참조하세요.
태스크 정의에는 다음 파라미터가 허용됩니다.
deviceName
-
유형: String
필수 항목 여부: 예
Amazon Elastic Inference 액셀러레이터 디바이스 이름입니다.
deviceName
은 컨테이너 정의에서도 참조해야 합니다. Elastic Inference accelerator를 참조하세요. deviceType
-
유형: String
필수 항목 여부: 예
사용할 Elastic Inference 액셀러레이터입니다.
작업 배치 제약
태스크 정의를 등록할 때 Amazon ECS가 태스크를 배치하는 방식을 사용자 지정하는 작업 배치 제약을 제공할 수 있습니다.
Fargate 시작 유형을 사용하는 경우 작업 배치 제약은 지원되지 않습니다. 기본적으로 Fargate 태스크는 가용 영역에 분산되어 있습니다.
EC2 시작 유형을 사용하는 작업의 경우 제약을 사용하여 가용 영역, 인스턴스 유형 또는 사용자 지정 속성에 따라 태스크를 배치할 수 있습니다. 자세한 정보는 Amazon ECS 작업 배치 제약 섹션을 참조하세요.
컨테이너 정의에서 다음 파라미터가 허용됩니다.
expression
-
유형: 문자열
필수 항목 여부: 아니요
제약에 적용할 클러스터 쿼리 언어 표현식입니다. 자세한 정보는 클러스터 쿼리 언어 섹션을 참조하세요.
type
-
유형: String
필수 항목 여부: 예
제약의 유형입니다.
memberOf
를 사용하여 선택을 유효한 후보 그룹으로 제한합니다.
프록시 구성
proxyConfiguration
-
유형: ProxyConfiguration 객체
필수 항목 여부: 아니요
App Mesh 프록시에 대한 구성 세부 정보입니다.
EC2 시작 유형을 사용하는 태스크의 경우 프록시 구성을 사용하려면 컨테이너 인스턴스에 컨테이너 에이전트 버전 1.26.0 이상과
ecs-init
패키지의 버전 1.26.0-1 이상이 필요합니다. 컨테이너 인스턴스가 Amazon ECS 최적화 AMI 버전20190301
이상에서 시작된 경우 필요한 버전의 컨테이너 에이전트 및ecs-init
가 포함되어 있습니다. 자세한 정보는 Amazon ECS 최적화 AMI을 참조하세요.Fargate 시작 유형을 사용하는 태스크의 경우 이 기능을 사용하려면 플랫폼 버전 1.3.0 이상을 사용하는 태스크 또는 서비스가 필요합니다.
참고
이 파라미터는 Windows 컨테이너에서 지원되지 않습니다.
"proxyConfiguration": { "type": "APPMESH", "containerName": "
string
", "properties": [ { "name": "string
", "value": "string
" } ] }type
-
유형: String
유효한 값:
APPMESH
필수 항목 여부: 아니요
프록시 유형입니다. 지원되는 유일한 값은
APPMESH
입니다. containerName
-
유형: String
필수 항목 여부: 예
App Mesh 프록시로 사용할 컨테이너의 이름입니다.
properties
-
유형: KeyValuePair 객체 배열
필수 항목 여부: 아니요
키-값 쌍으로 지정된 CNI(Container Network Interface) 플러그인을 제공하는 네트워크 구성 파라미터 세트입니다.
-
IgnoredUID
- (필수) 컨테이너 정의의user
파라미터에 정의된 프록시 컨테이너의 사용자 ID(UID)입니다. 프록시가 트래픽을 무시하는 데 사용됩니다.IgnoredGID
를 지정한 경우 이 필드를 비워둘 수 있습니다. -
IgnoredGID
- (필수) 컨테이너 정의의user
파라미터에 정의된 프록시 컨테이너의 그룹 ID(GID)입니다. 프록시가 트래픽을 무시하는 데 사용됩니다.IgnoredUID
를 지정한 경우 이 필드를 비워둘 수 있습니다. -
AppPorts
- (필수) 애플리케이션이 사용하는 포트 목록입니다. 이러한 포트에 대한 네트워크 트래픽은ProxyIngressPort
및ProxyEgressPort
로 전달됩니다. -
ProxyIngressPort
- (필수)AppPorts
로 들어오는 트래픽을 보낼 포트를 지정합니다. -
ProxyEgressPort
- (필수)AppPorts
에서 나가는 트래픽을 보낼 포트를 지정합니다. -
EgressIgnoredPorts
- (필수) 지정된 포트로 가는 아웃바운드 트래픽은 무시되고ProxyEgressPort
로 리디렉션되지 않습니다. 값은 빈 목록일 수 있습니다. -
EgressIgnoredIPs
- (필수) 지정된 IP 주소로 가는 아웃바운드 트래픽은 무시되고ProxyEgressPort
로 리디렉션되지 않습니다. 값은 빈 목록일 수 있습니다.
name
-
유형: 문자열
필수 항목 여부: 아니요
키-값 쌍의 이름입니다.
value
-
유형: 문자열
필수 항목 여부: 아니요
키-값 쌍의 값입니다.
-
볼륨
태스크 정의를 등록할 때 선택적으로 볼륨 목록이 컨테이너 인스턴스의 Docker 대몬에게 전달되도록 지정할 수 있습니다. 그러면 동일한 컨테이너 인스턴스에 속하는 다른 컨테이너가 액세스하는 데 전달된 볼륨 목록을 사용할 수 있습니다.
사용할 수 있는 데이터 볼륨의 유형은 다음과 같습니다.
-
Docker 볼륨 – 호스트 Amazon EC2 인스턴스의
/var/lib/docker/volumes
아래에 생성되는 Docker 관리형 볼륨입니다. Docker 볼륨 드라이버(플러그인이라고도 함)는 볼륨을 Amazon EBS와 같은 외부 스토리지 시스템과 통합하는 데 사용됩니다. 내장형local
볼륨 드라이버 또는 타사 볼륨 드라이버를 사용할 수 있습니다. Docker 볼륨은 Amazon EC2 인스턴스에서 태스크를 실행할 때만 지원됩니다. Windows 컨테이너는local
드라이버의 사용만 지원합니다. Docker 볼륨을 사용하려면 태스크 정의에서dockerVolumeConfiguration
을 지정합니다. 자세한 정보는 볼륨 사용섹션을 참조하세요. -
바인드 탑재 – 호스트 컴퓨터의 파일 또는 디렉터리가 컨테이너에 탑재됩니다. 바인드 탑재 호스트 볼륨은 AWS Fargate 또는 Amazon EC2 인스턴스에서 태스크를 실행할 때 지원됩니다. 바인드 탑재 호스트 볼륨을 사용하려면 태스크 정의에서
host
와sourcePath
(옵션) 값을 지정합니다. 자세한 정보는 바인드 탑재 사용섹션을 참조하세요.
자세한 정보는 태스크에서 데이터 볼륨 사용을 참조하세요.
컨테이너 정의에서 다음 파라미터가 허용됩니다.
name
-
유형: 문자열
필수 항목 여부: 아니요
볼륨의 이름입니다. 최대 255개의 문자(대문자 및 소문자), 숫자, 하이픈 및 밑줄이 허용됩니다. 이 이름은 컨테이너 정의
mountPoints
개체의sourceVolume
파라미터에서 참조됩니다. host
-
필수 항목 여부: 아니요
참고
host
파라미터는 Amazon EC2 인스턴스에서 호스팅되는 태스크를 사용했을 때만 지원됩니다.host
파라미터는 바인드 탑재의 수명 주기를 태스크가 아니라 호스트 Amazon EC2 인스턴스와 연결하는 데 사용합니다.host
파라미터가 비어 있으면 Docker 대몬이 데이터 볼륨의 호스트 경로를 할당하지만 해당 볼륨과 연결된 컨테이너가 실행을 중지한 후 데이터 유지가 보장되지 않습니다.Windows 컨테이너는 전체 디렉터리를 동일한 드라이브에
$env:ProgramData
로 마운트할 수 있습니다.sourcePath
-
유형: 문자열
필수 항목 여부: 아니요
host
파라미터가 사용되는 경우sourcePath
를 지정하여 컨테이너에 제시되는 호스트 Amazon EC2 인스턴스 상의 경로를 선언합니다. 이 파라미터가 비어 있으면 Docker 대몬이 사용자 대신 호스트 경로를 할당합니다.host
파라미터에sourcePath
파일 위치가 들어 있으면, 사용자가 수동으로 삭제하지 않는 한 데이터 볼륨이 호스트 Amazon EC2 인스턴스 상에 지정된 위치를 유지합니다.sourcePath
값이 호스트 Amazon EC2 인스턴스에 없을 경우 Docker 대몬이 해당 경로를 생성합니다. 해당 위치가 있을 경우 소스 경로 폴더의 콘텐츠를 내보냅니다.
dockerVolumeConfiguration
-
유형:DockerVolumeConfiguration오브젝트
필수 항목 여부: 아니요
이 파라미터는 Docker 볼륨을 사용할 때 지정됩니다. Docker 볼륨은 EC2 인스턴스에서 태스크를 실행할 때만 지원됩니다. Windows 컨테이너는
local
드라이버의 사용만 지원합니다. 바인드 탑재를 사용하려면 대신에host
를 지정하세요.scope
-
유형: String
유효한 값:
task
|shared
필수 항목 여부: 아니요
수명 주기를 결정하는 Docker 볼륨의 범위입니다. 범위가
task
로 지정된 Docker 볼륨은 태스크가 시작될 때 자동으로 프로비저닝되고, 태스크가 중단되면 삭제됩니다. 범위가shared
로 지정된 Docker 볼륨은 태스크 중단 후에도 유지됩니다. autoprovision
-
유형: Boolean
기본값:
false
필수 항목 여부: 아니요
이 값이
true
인 경우 Docker 볼륨이 아직 없으면 Docker 볼륨이 생성됩니다. 이 필드는scope
가shared
인 경우에만 사용됩니다.scope
가task
인 경우 이 파라미터를 생략하거나false
로 설정해야 합니다. driver
-
유형: 문자열
필수 항목 여부: 아니요
사용할 Docker 볼륨 드라이버입니다. 드라이버 값은 작업 배치에 사용되므로 Docker에서 제공하는 드라이버 이름과 일치해야 합니다. Docker 플러그인 CLI를 사용하여 드라이버를 설치했다면
docker plugin ls
를 사용하여 컨테이너 인스턴스에서 드라이버 이름을 가져옵니다. 다른 방법을 사용하여 드라이버를 설치했다면 Docker 플러그인 검색을 사용하여 드라이버 이름을 가져옵니다. 자세한 정보는 Docker 플러그인 검색을 참조하세요. 이 파라미터는 Docker 원격 API 의 볼륨 생성 섹션에 있는 Driver
와docker volume create
에 대한 --driver
옵션에 매핑됩니다. driverOpts
-
유형: 문자열
필수 항목 여부: 아니요
전달할 옵션에 고유한 Docker 드라이버의 맵입니다. 이 파라미터는 Docker 원격 API
의 볼륨 생성 섹션에 있는 DriverOpts
와docker volume create
에 대한 --opt
옵션에 매핑됩니다. labels
-
유형: 문자열
필수 항목 여부: 아니요
Docker 볼륨에 추가할 사용자 지정 메타데이터입니다. 이 파라미터는 Docker 원격 API
의 볼륨 생성 섹션에 있는 Labels
와docker volume create
에 대한 --label
옵션에 매핑됩니다.
efsVolumeConfiguration
-
유형:에프스VolumeConfiguration오브젝트
필수 항목 여부: 아니요
이 파라미터는 Amazon EFS 볼륨을 사용할 때 지정됩니다.
fileSystemId
-
유형: String
필수 항목 여부: 예
사용할 Amazon EFS 파일 시스템 ID입니다.
rootDirectory
-
유형: 문자열
필수 항목 여부: 아니요
호스트 내의 루트 디렉터리로 탑재할 Amazon EFS 파일 시스템 내 디렉터리입니다. 이 파라미터가 생략되면 Amazon EFS 볼륨의 루트가 사용됩니다.
/
를 지정하면 이 파라미터를 생략하는 것과 동일한 효과가 있습니다.중요
authorizationConfig
에서 EFS 액세스 포인트를 지정하는 경우 루트 디렉터리 파라미터를 생략하거나/
로 설정하여 EFS 액세스 포인트에 설정된 경로를 적용해야 합니다. transitEncryption
-
유형: String
유효한 값:
ENABLED
|DISABLED
필수 항목 여부: 아니요
Amazon ECS 호스트와 Amazon EFS 서버 간에 전송 중인 Amazon EFS 데이터에 대해 암호화를 활성화할지 여부입니다. Amazon EFS IAM 권한 부여를 사용하는 경우 전송 중 데이터 암호화를 활성화해야 합니다. 이 파라미터가 누락되면
DISABLED
의 기본값이 사용됩니다. 자세한 정보는 Amazon Elastic File System 사용 설명서의 전송 중 데이터 암호화(Encrypting Data in Transit)를 참조하세요. transitEncryptionPort
-
유형: Integer
필수 항목 여부: 아니요
Amazon ECS 호스트와 Amazon EFS 서버 간에 암호화된 데이터를 전송할 때 사용할 포트입니다. 전송 중 데이터 암호화 포트를 지정하지 않으면 Amazon EFS 탑재 헬퍼가 사용하는 포트 선택 전략이 사용됩니다. 자세한 정보는 Amazon Elastic File System 사용 설명서의 EFS 탑재 헬퍼를 참조하세요.
authorizationConfig
-
유형:에프스AuthorizationConfiguration오브젝트
필수 항목 여부: 아니요
Amazon EFS 파일 시스템에 대한 권한 부여 구성 세부 정보입니다.
accessPointId
-
유형: 문자열
필수 항목 여부: 아니요
사용할 액세스 포인트 ID입니다. 액세스 포인트를 지정하는 경우
efsVolumeConfiguration
의 루트 디렉터리 값을 생략하거나/
로 설정하여 EFS 액세스 포인트에 설정된 경로를 적용해야 합니다. 액세스 포인트를 사용하는 경우EFSVolumeConfiguration
에서 전송 중 데이터 암호화를 활성화해야 합니다. 자세한 정보는 Amazon Elastic File System 사용 설명서의 Amazon EFS 액세스 포인트 태스크를 참조세요. iam
-
유형: String
유효한 값:
ENABLED
|DISABLED
필수 항목 여부: 아니요
Amazon EFS 파일 시스템을 탑재할 때 태스크 정의에 정의된 Amazon ECS 태스크 IAM 역할을 사용할지 여부입니다. 활성화된 경우
EFSVolumeConfiguration
에서 전송 중 데이터 암호화를 활성화해야 합니다. 이 파라미터가 누락되면DISABLED
의 기본값이 사용됩니다. 자세한 정보는 태스크의 IAM 역할을 참조하세요.
FSxWindowsFileServerVolumeConfiguration
-
유형:FSxWindowsFileServerVolumeConfiguration오브젝트
필수 항목 여부: 예
이 파라미터는 태스크 스토리지에 FSx for Windows File Server 파일 시스템을 사용할 때 지정됩니다.
fileSystemId
-
유형: String
필수 항목 여부: 예
사용할 FSx for Windows File Server 파일 시스템 ID입니다.
rootDirectory
-
유형: String
필수 항목 여부: 예
호스트 내의 루트 디렉터리로 탑재할 FSx for Windows File Server 파일 시스템 내 디렉터리입니다.
authorizationConfig
-
credentialsParameter
-
유형: String
필수 항목 여부: 예
권한 부여 자격 증명 옵션입니다.
옵션:
AWS Secrets Manager 암호의 Amazon 리소스 이름(ARN)입니다.
AWS Systems Manager 파라미터의 ARN입니다.
domain
-
유형: String
필수 항목 여부: 예
AWS Directory Service Managed Microsoft AD(Active Directory) 또는 셀프 호스팅되는 EC2 AD에서 호스팅되는 정규화된 도메인 이름입니다.
태그
태스크 정의를 등록할 때 태스크 정의에 적용되는 메타데이터 태그를 선택적으로 지정할 수 있습니다. 태그는 태스크 정의를 분류하고 정리하는 데 도움을 줍니다. 각 태그는 키와 값(선택 사항)으로 구성됩니다. 두 가지를 모두 정의합니다. 자세한 정보는 Amazon ECS 리소스 태깅을 참조하세요.
중요
개인 식별 정보나 기타 기밀 정보 또는 민감한 정보를 태그에 추가하지 않습니다. 청구를 비롯한 여러 AWS 서비스에서 태그에 액세스할 수 있습니다. 태그는 개인 데이터나 민감한 데이터에 사용하기 위한 것이 아닙니다.
태그 개체에서 허용되는 파라미터는 다음과 같습니다.
key
-
유형: 문자열
필수 항목 여부: 아니요
하나의 태그를 구성하는 키-값 쌍의 일부분입니다. 키는 더 구체적인 태그 값에 대해 카테고리와 같은 역할을 하는 일반적인 레이블입니다.
value
-
유형: 문자열
필수 항목 여부: 아니요
하나의 태그를 구성하는 키-값 쌍의 선택적 부분입니다. 하나의 값은 태그 카테고리(키) 내에서 서술자 역할을 수행합니다.
기타 태스크 정의 파라미터
다음의 태스크 정의 파라미터는 JSON을 통한 구성(Configure via JSON) 옵션을 사용하여 Amazon ECS 콘솔에 태스크 정의를 등록할 때 사용할 수 있습니다. 자세한 정보는 콘솔을 사용하여 작업 정의 생성을 참조하세요.
임시 스토리지
ephemeralStorage
-
유형: EphemeralStorage 객체
필수 항목 여부: 아니요
태스크에 할당되는 임시 스토리지 용량(GB)입니다. 이 파라미터는 AWS Fargate에서 호스팅되는 태스크에 대해 제공되는 임시 스토리지 총량을 기본 용량 이상으로 확장할 때 사용합니다. 자세한 정보는 바인드 탑재을 참조하세요.
참고
이 매개변수는 호스팅되는 작업에만 지원됩니다.AWS Fargate플랫폼 버전 사용
1.4.0
또는 이후 버전 (리눅스) 또는1.0.0
또는 그 이후 버전 (윈도우)
IPC 모드
ipcMode
-
유형: 문자열
필수 항목 여부: 아니요
해당 태스크의 컨테이너에 사용할 IPC 리소스 네임스페이스입니다. 유효한 값은
host
,task
또는none
입니다.host
를 지정하면 동일한 컨테이너 인스턴스에서host
IPC 모드를 지정한 태스크 내 모든 컨테이너가 동일한 IPC 리소스를 호스트 Amazon EC2 인스턴스와 공유합니다.task
를 지정하면 지정된 태스크 내 모든 컨테이너가 동일한 IPC 리소스를 공유합니다.none
이 지정된 경우, 태스크 컨테이너 내에 있는 IPC 리소스는 프라이빗이며, 태스크 또는 컨테이너 인스턴스의 다른 컨테이너와 공유되지 않습니다. 값을 지정하지 않으면 IPCMode의 값이shareable
로 설정됩니다. 자세한 정보는 Docker 실행 참조의 IPC 설정을 확인하세요. host
IPC 모드를 사용하는 경우, 원치 않는 IPC 네임스페이스 노출이 발생할 위험이 커집니다. 자세한 정보는 Docker 보안을 참조하세요. 해당 태스크 내 컨테이너에 대해
systemControls
를 사용하여 네임스페이스가 있는 커널 파라미터를 설정하는 경우, IPC 리소스 네임스페이스에 다음 사항이 적용됩니다. 자세한 정보는 System Controls을 참조하세요.-
host
IPC 모드를 사용하는 태스크의 경우, IPC 네임스페이스 관련systemControls
는 지원되지 않습니다. -
task
IPC 모드를 사용하는 태스크의 경우, IPC 네임스페이스 관련systemControls
가 태스크 내 모든 컨테이너에 적용됩니다.
-
참고
이 파라미터는 Windows 컨테이너 또는 Fargate 시작 유형을 사용하는 태스크에 대해서는 지원되지 않습니다.
PID 모드
pidMode
-
유형: String
유효한 값:
host
|task
필수 항목 여부: 아니요
해당 태스크의 컨테이너에 사용할 프로세스 네임스페이스입니다. 유효한 값은
host
또는task
입니다. Linux용 Fargate 컨테이너에서 유일하게 유효한 값은 다음과 같습니다.task
. 예를 들어 사이드카를 모니터링하려면 다음이 필요할 수 있습니다.pidMode
동일한 작업에서 실행 중인 다른 컨테이너에 대한 정보에 액세스할 수 있습니다.host
를 지정하면 동일한 컨테이너 인스턴스에서host
PID 모드를 지정한 태스크 내 모든 컨테이너가 동일한 프로세스 네임스페이스를 호스트 Amazon EC2 인스턴스와 공유합니다.task
을 지정하면 지정된 태스크 내 모든 컨테이너가 동일한 프로세스 네임스페이스를 공유합니다.값이 지정되지 않은 경우 기본값은 각 컨테이너의 프라이빗 네임스페이스입니다. 자세한 정보는 Docker 실행 참조의 PID 설정
을 확인하세요. host
PID 모드를 사용하는 경우, 원치 않는 프로세스 네임스페이스 노출이 발생할 위험이 커집니다. 자세한 정보는 Docker 보안을 참조하세요.
참고
이 파라미터는 Windows 컨테이너에서 지원되지 않습니다.
참고
이 매개변수는 호스팅되는 작업에만 지원됩니다.AWS Fargate작업이 플랫폼 버전을 사용하는 경우1.4.0
또는 이후 버전 (Linux). Fargate의 Windows 컨테이너에서는 지원되지 않습니다.