새 콘솔을 사용하여 태스크 정의 생성 - Amazon Elastic Container Service

새 콘솔을 사용하여 태스크 정의 생성

새 Amazon ECS 콘솔 환경을 사용하여 태스크 정의 생성 태스크 정의 생성 프로세스를 가능한 한 쉽게 만들기 위해 콘솔에는 아래에서 설명하는 여러 선택 항목에 대한 기본 선택 항목이 있습니다. 추가 컨텍스트를 제공하는 콘솔의 대부분의 섹션에서 사용할 수 있는 도움말 패널도 있습니다.

새 태스크 정의 생성(새 Amazon ECS 콘솔)

  1. https://console.aws.amazon.com/ecs/v2에서 새 콘솔을 엽니다.

  2. 탐색 창에서 태스크 정의(Task definitions), 새 태스크 정의 생성(Create new task definition)을 차례로 선택합니다.

  3. 태스크 정의 패밀리(Task definition family)에서 태스크 정의에 대해 고유한 이름을 지정합니다.

  4. 태스크 정의에서 정의할 각 컨테이너에 대해 다음 단계를 수행합니다.

    1. 이름(Name)에 컨테이너의 이름을 지정합니다.

    2. 이미지 URI(Image URI)에서 컨테이너를 시작하는 데 사용할 이미지를 지정합니다. Amazon ECR Public Gallery 레지스트리의 이미지는 Amazon ECR Public 레지스트리 이름만 사용하여 지정할 수 있습니다. 예를 들어 public.ecr.aws/ecs/amazon-ecs-agent:latest가 지정되면 Amazon ECR Public Gallery에서 호스팅되는 Amazon Linux 컨테이너가 사용됩니다. 다른 모든 리포지토리의 경우 repository-url/image:tag 또는 repository-url/image@digest 형식을 사용하여 리포지토리를 지정합니다.

    3. 필수 컨테이너(Essential container)에서 태스크 정의에 두 개 이상의 컨테이너가 정의되어 있으면 해당 컨테이너를 필수로 간주할지를 지정할 수 있습니다. 컨테이너가 필수(essential)로 표시된 경우 해당 컨테이너가 중지되면 태스크도 중지됩니다. 각 태스크 정의에는 하나 이상의 필수 컨테이너가 포함되어야 합니다.

    4. 포트 매핑을 통해 컨테이너는 호스트의 포트에 액세스하여 트래픽을 송수신할 수 있습니다. 포트 매핑(Port mappings)에서 다음 중 하나를 수행합니다.

      • awsvpc 네트워크 모드를 사용하는 경우 컨테이너 포트(Container port)프로토콜(Protocol)에서 컨테이너에 사용할 포트 매핑을 지정합니다.

      • bridge 네트워크 모드를 사용하는 경우 컨테이너 포트(Container port)프로토콜(Protocol)에서 컨테이너에 사용할 포트 매핑을 지정합니다. 다음 페이지에서 bridge 네트워크 모드를 선택합니다. 선택한 후 이전(Previous)을 선택한 다음 호스트 포트(Host port)에서 컨테이너용으로 예약할 컨테이너 인스턴스의 포트 번호를 지정합니다.

      포트 매핑 추가(Add more port mappings)를 선택하여 추가 컨테이너 포트 매핑을 더 지정합니다.

    5. 환경 변수(Environment variables) 섹션을 확장하여 컨테이너에 삽입할 환경 변수를 지정합니다. 키-값 페어를 사용하여 개별적으로 환경 변수를 지정하거나 Amazon S3 버킷에서 호스팅되는 환경 변수 파일을 지정하여 일괄적으로 환경 변수를 지정할 수 있습니다. 환경 변수 파일의 형식을 지정하는 방법에 대한 자세한 내용은 컨테이너로 환경 변수 전달 단원을 참조하세요.

    6. (선택 사항) 컨테이너 추가(Add more containers)를 선택하여 컨테이너를 태스크 정의에 더 추가합니다. 모든 컨테이너가 정의되면 다음(Next)을 선택합니다.

  5. 앱 환경(App environment)에서 AWS Fargate(서버리스), Amazon EC2 인스턴스(Amazon EC2 instances) 또는 둘 다 선택합니다. Amazon ECS는 이 값으로 검증을 수행하여 인프라 유형에 유효한 태스크 정의 파라미터인지 확인합니다.

  6. 운영 체제/아키텍처(Operating system/Architecture)에서 태스크에 사용할 운영 체제와 CPU 아키텍처를 선택합니다.

    64비트 ARM 아키텍처에서 태스크를 실행하려면 Linux/ARM64를 선택합니다. 자세한 정보는 런타임 플랫폼을 참조하십시오.

    Windows 컨테이너에서 AWS Fargate(서버리스) 작업을 실행하려면 지원되는 Windows 운영 체제를 선택합니다. 자세한 정보는 태스크 운영 체제을 참조하십시오.

  7. 태스크 크기(Task size)에서 태스크용으로 예약할 CPU 및 메모리 값을 지정합니다. CPU 값은 vCPU로 지정되고 메모리는 GB로 지정됩니다.

    다음 표에서는 Fargate에서 호스팅되는 태스크에 대해 유효한 CPU와 메모리 조합을 보여줍니다.

    CPU 값 메모리 값

    256(.25 vCPU)

    512MIB, 1GB, 2GB

    512(.5 vCPU)

    1GB, 2GB, 3GB, 4GB

    1024(1 vCPU)

    2GB, 3GB, 4GB, 5GB, 6GB, 7GB, 8GB

    2048(2 vCPU)

    4~16GB(1GB 증분)

    4096(4 vCPU)

    8~30GB(1GB 증분)

    Amazon EC2에서 호스팅되는 태스크의 경우 지원되는 태스크 CPU 값은 128 CPU 단위(0.125 vCPU)에서 10240 CPU 단위(10 vCPU) 사이입니다.

    참고

    Windows 컨테이너에 대해서는 태스크 레벨 CPU와 메모리 파라미터가 무시됩니다.

  8. 컨테이너 크기(Container size) 섹션을 확장하여 컨테이너에 표시할 메모리 양(GB)과 Amazon ECS 컨테이너 에이전트가 컨테이너용으로 예약할 CPU 단위 수를 지정합니다.

    컨테이너가 지정된 메모리를 초과하려고 하면 해당 컨테이너가 중지됩니다. 태스크 내 모든 컨테이너에 대해 예약된 총 메모리 양은 태스크 메모리(Memory) 값(지정된 경우)보다 작아야 합니다.

    태스크 내 모든 컨테이너에 대해 예약된 총 CPU 양은 태스크 수준 CPU 값보다 작아야 합니다.

    지정된 값에 1024를 곱하여 Amazon EC2 인스턴스 유형별로 사용 가능한 CPU 단위 수를 결정할 수 있습니다. 예를 들어 t3 nano 인스턴스의 값은 2048입니다. 자세한 내용은 Amazon EC2 인스턴스를 참조하세요.

  9. (선택 사항) 태스크 역할, 네트워크 모드(Task roles, network mode) 섹션을 확장하여 다음을 지정합니다.

    1. 태스크 역할(Task role)에서 태스크에 할당할 IAM 역할을 선택합니다. 태스크 IAM 역할은 태스크의 컨테이너가 AWS API를 호출할 수 있는 권한을 제공합니다.

    2. 네트워크 모드(Network mode)에서 사용할 네트워크 모드를 선택합니다. 기본값은 awsvpc 모드입니다. 자세한 내용은 Amazon ECS 작업 배치를 참조하십시오.

      네트워크 모드로 bridge를 선택하는 경우 이전(Previous)을 선택한 다음 포트 매핑(Port mappings) 아래의 호스트 포트(Host port)에서 컨테이너용으로 예약할 컨테이너 인스턴스의 포트 번호를 지정합니다.

  10. (선택 사항) 스토리지(Storage) 섹션은 Fargate에서 호스팅되는 태스크에 대한 임시 스토리지의 양을 확장하고 태스크에 대한 데이터 볼륨 구성을 추가하는 데 사용됩니다.

    1. 양(Amount)에서 Fargate 태스크의 기본값인 20 GiB 이상으로 사용 가능한 임시 스토리지를 확장하려면 값을 최대 200 GiB로 지정합니다.

  11. (선택 사항) 볼륨 추가(Add volume)를 선택하여 태스크에 대한 데이터 볼륨 구성을 추가합니다. 각 데이터 볼륨에 대해 다음 단계를 수행합니다.

    1. 볼륨 유형(Volume type)에서 바인드 탑재(Bind mount)를 선택합니다.

    2. 볼륨 이름(Volume name)에서 데이터 볼륨의 이름을 지정합니다. 데이터 볼륨 이름은 이후 단계에서 컨테이너 탑재 지점을 만들 때 사용됩니다.

    3. 컨테이너 탑재 지점(Container mount points) 섹션을 확장하고 추가(Add)를 선택합니다.

    4. 컨테이너(Container)에서 탑재 지점의 컨테이너를 선택합니다.

    5. 소스 볼륨(Source volume)에서 컨테이너에 탑재할 데이터 볼륨을 선택합니다.

    6. 컨테이너 경로(Container path)에 볼륨을 탑재할 컨테이너 경로를 지정합니다.

    7. 읽기 전용(Read only)에서 볼륨을 읽기 전용으로 설정할지를 지정합니다.

    8. 추가(Add)를 선택하여 태스크 정의에 정의된 각 데이터 볼륨에 탑재 지점이 정의될 때까지 탑재 지점을 더 추가합니다.

  12. (선택 사항) 로그 수집 사용(Use log collection) 옵션을 선택하여 로그 구성을 지정합니다. 사용 가능한 로그 드라이버마다 지정할 로그 드라이버 옵션이 있습니다. 기본 옵션은 CloudWatch Logs로 컨테이너 로그를 전송합니다. 다른 로그 드라이버 옵션은 AWS FireLens를 사용하여 구성됩니다. 자세한 정보는 사용자 지정 로그 라우팅을 참조하십시오.

    다음은 각 컨테이너 로그 대상에 대한 자세한 설명입니다.

    • Amazon CloudWatch - CloudWatch Logs로 컨테이너 로그를 전송하도록 태스크를 구성합니다. 사용자를 대신하여 CloudWatch 로그 그룹을 생성하는 기본 로그 드라이버 옵션이 제공됩니다. 다른 로그 그룹 이름을 지정하려면 드라이버 옵션 값을 변경합니다.

    • Amazon Kinesis Data Firehose - Kinesis Data Firehose로 컨테이너 로그를 전송하도록 태스크를 구성합니다. Kinesis Data Firehose 전송 스트림으로 로그를 전송하는 기본 로그 드라이버 옵션이 제공됩니다. 다른 전송 스트림 이름을 지정하려면 드라이버 옵션 값을 변경합니다.

    • Amazon Kinesis Data Streams - Kinesis Data Streams로 컨테이너 로그를 전송하도록 태스크를 구성합니다. Kinesis Data Streams 스트림으로 로그를 전송하는 기본 로그 드라이버 옵션이 제공됩니다. 다른 스트림 이름을 지정하려면 드라이버 옵션 값을 변경합니다.

    • Amazon OpenSearch Service - OpenSearch Service 도메인으로 컨테이너 로그를 전송하도록 태스크를 구성합니다. 로그 드라이버 옵션이 제공되어야 합니다. 자세한 정보는 Amazon OpenSearch Service 도메인으로 로그 전달을 참조하십시오.

    • Amazon S3 - Amazon S3 버킷으로 컨테이너 로그를 전송하도록 태스크를 구성합니다. 기본 로그 드라이버 옵션이 제공되지만 유효한 Amazon S3 버킷 이름을 지정해야 합니다.

  13. (선택 사항) 추적 수집 사용(Use trace collection) 옵션을 선택하여 애플리케이션에서 AWS X-Ray로 추적 데이터를 라우팅하도록 태스크를 구성합니다. 이 옵션을 선택하면 Amazon ECS는 추적 데이터를 전송하도록 미리 구성된 AWS Distro for OpenTelemetry 컨테이너 사이드카를 생성합니다. 자세한 정보는 애플리케이션 추적 데이터 수집을 참조하십시오.

    중요

    추적 수집을 활성화하면 필요한 권한이 있는 태스크 IAM 역할이 태스크 정의에 필요합니다. 자세한 정보는 AWS Distro for OpenTelemetry와 AWS X-Ray 통합에 필요한 IAM 권한을 참조하십시오.

  14. (선택 사항) 지표 수집 사용(Use metric collection) 옵션을 선택하여 태스크에 대한 지표를 수집하고 Amazon CloudWatch 또는 Amazon Managed Service for Prometheus로 전송합니다. 이 옵션을 선택하면 Amazon ECS는 애플리케이션 지표를 전송하도록 미리 구성된 AWS Distro for OpenTelemetry 컨테이너 사이드카를 생성합니다. 자세한 정보는 애플리케이션 지표 수집을 참조하십시오.

    1. Amazon CloudWatch를 선택하면 사용자 정의 애플리케이션 지표가 CloudWatch에 사용자 정의 지표로 라우팅됩니다. 자세한 정보는 Amazon CloudWatch로 애플리케이션 지표 내보내기을 참조하십시오.

      중요

      Amazon CloudWatch로 애플리케이션 지표를 내보낼 때 필요한 권한이 있는 태스크 IAM 역할이 태스크 정의에 필요합니다. 자세한 정보는 AWS Distro for OpenTelemetry와 Amazon CloudWatch 통합에 필요한 IAM 권한을 참조하십시오.

    2. Amazon Managed Service for Prometheus(Prometheus 라이브러리 계측)(Amazon Managed Service for Prometheus (Prometheus libraries instrumentation))를 선택하면 태스크 수준 CPU, 메모리, 네트워크 및 스토리지 지표와 사용자 정의 애플리케이션 지표가 Amazon Managed Service for Prometheus로 라우팅됩니다. 작업 공간 원격 쓰기 엔드포인트(Workspace remote write endpoint)에서 Prometheus 작업 공간에 대한 원격 쓰기 엔드포인트 URL을 지정합니다. 스크레이핑 대상(Scraping target)에서 AWS Distro for OpenTelemetry 수집기가 지표 데이터를 스크레이핑하는 데 사용할 수 있는 호스트와 포트를 지정합니다. 자세한 정보는 Amazon Managed Service for Prometheus로 애플리케이션 지표 내보내기을 참조하십시오.

      중요

      Amazon Managed Service for Prometheus로 애플리케이션 지표를 내보낼 때 필요한 권한이 있는 태스크 IAM 역할이 태스크 정의에 필요합니다. 자세한 정보는 AWS Distro for OpenTelemetry와 Amazon Managed Service for Prometheus 통합에 필요한 IAM 권한을 참조하십시오.

    3. Amazon Managed Service for Prometheus(OpenTelemetry 계측)(Amazon Managed Service for Prometheus (OpenTelemetry instrumentation))를 선택하면 태스크 수준 CPU, 메모리, 네트워크 및 스토리지 지표와 사용자 정의 애플리케이션 지표가 Amazon Managed Service for Prometheus로 라우팅됩니다. 작업 공간 원격 쓰기 엔드포인트(Workspace remote write endpoint)에서 Prometheus 작업 공간에 대한 원격 쓰기 엔드포인트 URL을 지정합니다. 자세한 정보는 Amazon Managed Service for Prometheus로 애플리케이션 지표 내보내기을 참조하십시오.

      중요

      Amazon Managed Service for Prometheus로 애플리케이션 지표를 내보낼 때 필요한 권한이 있는 태스크 IAM 역할이 태스크 정의에 필요합니다. 자세한 정보는 AWS Distro for OpenTelemetry와 Amazon Managed Service for Prometheus 통합에 필요한 IAM 권한을 참조하십시오.

  15. (선택 사항) 태그(Tags) 섹션을 확장하여 태그를 키-값 페어로 태스크 정의에 추가합니다.

  16. 다음(Next)을 선택하여 태스크 정의를 검토합니다.

  17. 검토 및 생성(Review and create) 페이지에서 각 태스크 정의 섹션을 검토합니다. 편집을 선택하여 변경합니다. 태스크 정의가 완료되면 생성(Create)을 선택하여 태스크 정의를 등록합니다.