애플리케이션을 Amazon ECS 태스크로 실행 - Amazon Elastic Container Service

애플리케이션을 Amazon ECS 태스크로 실행

AWS Management Console을 사용하여 일회성 프로세스에 대한 작업을 생성할 수 있습니다.

독립 실행형 작업(AWS Management Console)을 생성하는 방법
  1. https://console.aws.amazon.com/ecs/v2에서 콘솔을 엽니다.

  2. Amazon ECS 콘솔을 사용하면 클러스터 세부 정보 페이지 또는 작업 정의 개정 목록에서 독립 실행형 작업을 생성할 수 있습니다. 다음 단계를 사용하여 선택한 리소스 페이지에 따라 독립 실행형 작업을 생성합니다.

    서비스 시작 단계

    클러스터 세부 정보 페이지...

    1. 클러스터 페이지에서 서비스를 생성할 클러스터를 선택합니다.

    2. 작업 탭에서 새 작업 실행을 선택합니다.

    작업 정의 개정 페이지...
    1. 작업 정의 페이지에서 작업 정의 패밀리를 선택하여 해당 패밀리에 대한 개정을 표시합니다.

    2. 사용할 개정을 선택합니다.

    3. 배포 메뉴에서 작업 실행을 선택합니다.

  3. (선택 사항) 컴퓨팅 구성(고급) 섹션에서는 작업 분산 방법을 선택할 수 있습니다. 용량 공급자 전략 또는 시작 유형을 사용할 수 있습니다. 용량 공급자 전략을 사용하려면 용량 공급자를 클러스터 수준에서 구성해야 합니다. 용량 공급자를 사용하도록 클러스터를 구성하지 않은 경우 대신 시작 유형을 사용합니다.

    배포 방법 단계

    용량 공급자 전략

    1. 컴퓨팅 옵션(Compute options) 섹션에서 용량 공급자 전략(Capacity provider strategy)을 선택합니다.

    2. 전략을 선택합니다.

      • 클러스터의 기본 용량 공급자 전략을 사용하려면 클러스터 기본값 사용(Use cluster default)을 선택합니다.

      • 클러스터에 기본 용량 공급자 전략이 없거나 사용자 지정 전략을 사용하려면 사용자 지정 사용(Use custom), 용량 공급자 전략 추가(Add capacity provider strategy)를 선택하고 기본(Base), 용량 공급자(Capacity provider)가중치(Weight)를 지정하여 사용자 지정 용량 공급자 전략을 정의합니다.

    참고

    전략에서 용량 공급자를 사용하려면 용량 공급자가 클러스터와 연결되어야 합니다.

    시작 유형
    1. 컴퓨팅 옵션(Compute options) 섹션에서 시작 유형(Launch type)을 선택합니다.

    2. 시작 유형(Launch type)에서 시작 유형을 선택합니다.

    3. (선택 사항) Fargate 시작 유형이 지정되면 플랫폼 버전(Platform version)에서 사용할 플랫폼 버전을 지정합니다. 플랫폼 버전을 지정하지 않으면 LATEST 플랫폼 버전이 사용됩니다.

  4. 애플리케이션 유형(Application type)에서 작업(Task)을 선택합니다.

  5. 작업 정의에서 사용할 작업 정의 패밀리 및 개정을 선택합니다.

    중요

    콘솔은 선택 항목의 유효성을 검사하여 선택한 작업 정의 패밀리 및 개정이 정의된 컴퓨팅 구성과 호환되는지 확인합니다.

  6. 원하는 작업(Desired tasks)에 시작할 작업 수를 입력합니다.

  7. 태스크 정의에서 awsvpc 네트워크 모드를 사용할 경우, 네트워킹(Networking)을 펼칩니다. 다음 단계에 따라 사용자 지정 구성을 지정합니다.

    1. VPC에서 사용할 VPC 선택합니다.

    2. 서브넷(Subnets)에서 태스크를 배치할 때 작업 스케줄러가 고려할 하나 이상의 서브넷을 VPC에서 선택합니다.

      중요

      awsvpc 네트워크 모드에서는 프라이빗 서브넷만 지원됩니다. 태스크는 퍼블릭 IP 주소를 수신하지 않습니다. 그러므로 아웃바운드 인터넷 액세스에는 NAT 게이트웨이가 필요하고 인바운드 인터넷 트래픽은 로드 밸런서를 통해 라우팅됩니다.

    3. 보안 그룹의 경우 기존 보안 그룹을 선택하거나 새 보안 그룹을 생성할 수 있습니다. 기존 보안 그룹을 사용하려면 보안 그룹을 선택하고 다음 단계로 이동합니다. 새 보안 그룹을 만들려면 새 보안 그룹 생성(Create a new security group)을 선택합니다. 보안 그룹 이름 및 설명을 지정한 다음 보안 그룹에 대해 하나 이상의 인바운드 규칙을 추가해야 합니다.

    4. 퍼블릭 IP(Public IP)에서 작업의 탄력적 네트워크 인터페이스(ENI)에 퍼블릭 IP 주소를 자동 할당할지를 선택합니다.

      AWS Fargate 작업은 퍼블릭 서브넷에서 실행될 때 퍼블릭 IP 주소가 할당될 수 있으므로 인터넷에 연결되는 경로가 있습니다. 자세한 정보는 AWS Fargate에 대한 Amazon Elastic Container Service 사용 설명서Fargate 태스크 네트워킹을 참조하세요.

  8. 작업에서 배포 시 구성과 호환되는 데이터 볼륨을 사용하는 경우 볼륨을 확장하여 볼륨을 구성할 수 있습니다.

    볼륨 이름과 볼륨 유형은 작업 정의 개정을 생성할 때 구성되며 독립 실행형 작업을 실행할 때는 변경할 수 없습니다. 볼륨 이름과 유형을 업데이트하려면 새 작업 정의 개정을 생성하고 새 개정을 사용해 작업을 실행해야 합니다.

    이 볼륨 유형을 구성하는 방법 조치

    Amazon EBS

    1. EBS 볼륨 유형에서 작업에 연결할 EBS 볼륨 유형을 선택합니다.

    2. 크기(GiB)에 유효한 볼륨 크기 값을 기비바이트(GiB) 단위로 입력합니다. 최소 1GiB 및 최대 16,384GiB 볼륨 크기를 지정할 수 있습니다. 스냅샷 ID를 제공하지 않는 한, 이 값은 필수입니다.

    3. IOPS의 경우 볼륨이 제공해야 하는 최대 초당 입출력 작업(IOPS) 수를 입력합니다. 이 값은 io1, io2, gp3 볼륨 유형에서만 구성할 수 있습니다.

    4. 처리량(MiB/s)에 볼륨에서 제공해야 하는 처리량을 초당 메비바이트 단위(MiBps 또는 MiB/s)로 입력합니다. 이 값은 gp3 볼륨 유형에서만 구성 가능합니다.

    5. 스냅샷 ID에서 기존 Amazon EBS 볼륨 스냅샷을 선택하거나 스냅샷에서 볼륨을 생성하려는 경우 스냅샷의 ARN을 입력합니다. 스냅샷 ID를 선택하거나 입력하지 않고 비어 있는 새 볼륨을 생성할 수도 있습니다.

    6. 종료 정책의 경우 작업이 종료된 후에도 작업에 연결하도록 구성된 볼륨을 보존하려면 확인란의 선택을 취소합니다. 기본적으로 작업에 연결된 EBS 볼륨은 작업이 종료될 때 삭제됩니다.

    7. 파일 시스템 유형에서 볼륨의 데이터 스토리지 및 검색에 사용할 파일 시스템 유형을 선택합니다. 운영 체제 기본값 또는 특정 파일 시스템 유형을 선택할 수 있습니다. Linux의 기본값은 XFS입니다. 스냅샷에서 생성된 볼륨의 경우 스냅샷을 생성할 때 볼륨에서 사용하던 것과 동일한 파일 시스템 유형을 지정해야 합니다. 파일 시스템 유형이 일치하지 않으면 작업이 시작되지 않습니다.

    8. 인프라 역할에서 Amazon ECS가 작업에 대한 Amazon EBS 볼륨을 관리할 수 있도록 하는 데 필요한 권한이 있는 IAM 역할을 선택합니다. AmazonECSInfrastructureRolePolicyForVolumes 관리형 정책을 역할에 연결하거나 정책을 지침으로 사용하여 특정 요구 사항에 맞는 권한을 보유한 자체 정책을 생성하고 연결할 수 있습니다. 필요한 권한에 대한 자세한 내용은 Amazon ECS 인프라 IAM 역할 섹션을 참조하세요.

    9. 암호화에서 Amazon EBS 암호화를 기본 설정으로 사용하려면 기본값을 선택합니다. 계정에 암호화 기본 제공이 구성된 경우 설정에 지정된 AWS Key Management Service(AWS KMS) 키로 볼륨이 암호화됩니다. 기본값을 선택하고 Amazon EBS 기본 암호화가 켜져 있지 않으면 볼륨이 암호화되지 않습니다.

      사용자 지정을 선택하면 볼륨 암호화에 대해 원하는 AWS KMS key를 지정할 수 있습니다.

      없음을 선택한 경우 암호화가 기본적으로 구성되지 않았거나 암호화된 스냅샷에서 볼륨을 생성하지 않으면 볼륨이 암호화되지 않습니다.

    10. 암호화사용자 지정을 선택한 경우 사용하려는 AWS KMS key를 지정해야 합니다. KMS 키에서 AWS KMS key를 선택하거나 키 ARN을 입력합니다. 대칭 고객 관리형 키를 사용하여 볼륨을 암호화하려는 경우 AWS KMS key 정책에 올바른 권한이 정의되었는지 확인합니다. 자세한 내용은 Data encryption for Amazon EBS volumes를 참조하세요.

    11. (선택 사항) 태그에서 작업 정의의 태그를 전파하거나 자체 태그를 제공하여 Amazon EBS 볼륨에 태그를 추가할 수 있습니다.

      작업 정의에서 태그를 전파하려면 태그 전파 시작에서 작업 정의를 선택합니다. 전파 안 함을 선택하거나 값을 선택하지 않으면 태그가 전파되지 않습니다.

      고유한 태그를 제공하려면 태그 추가를 선택하고 추가하는 각 태그의 키와 값을 제공합니다.

      Amazon EBS 볼륨 태그 지정에 대한 자세한 내용은 Amazon EBS 볼륨 태그 지정을 참조하세요.

  9. (선택 사항) 기본 외에 다른 태스크 배치 전략을 사용하는 경우 태스크 배치(Task Placement)를 펼치고 다음의 옵션 중에서 선택하세요.

    자세한 내용은 Amazon ECS가 컨테이너 인스턴스에 작업을 배치하는 방법 단원을 참조하십시오.

    • AZ Balanced Spread - 작업을 가용 영역과 가용 영역의 컨테이너 인스턴스에 분산합니다.

    • AZ Balanced BinPack - 작업을 가용 영역과 가용 메모리가 최소인 컨테이너 인스턴스에 분산합니다.

    • BinPack - 사용 가능한 CPU 또는 메모리 최소량에 따라 작업을 분산합니다.

    • One Task Per Host - 각 컨테이너 인스턴스에 서비스의 작업을 최대 1개 배치합니다.

    • Custom - 자체 작업 배치 전략을 정의합니다.

    사용자 지정(Custom)을 선택하는 경우, 태스크를 배치할 알고리즘과 태스크 배치 중에 고려할 규칙을 정의합니다.

    • 전략(Strategy) 아래에 있는 유형(Type)필드(Field)의 경우, 알고리즘과 알고리즘에 사용할 엔터티를 선택합니다.

      최대 5개의 전략을 입력할 수 있습니다.

    • 제약 아래에 있는 유형표현식에서 해당 제약에 사용할 규칙과 속성을 선택합니다.

      예를 들어 TC 인스턴스에 태스크를 배치하기 위한 제약을 설정할 경우, 식(Expression)에는 attribute:ecs.instance-type =~ t2.*를 입력합니다.

      초대 10개의 제약을 입력할 수 있습니다.

  10. (선택 사항) 태스크 IAM 역할이나 태스크 정의에 정의된 태스크 실행 역할을 재정의할 경우, 태스크 재정의(Task overrides)를 펼친 다음, 다음 단계를 완료하세요.

    1. 작업 역할에서 이 작업에 대한 IAM 역할을 선택합니다. 자세한 내용은 Amazon ECS 작업 IAM 역할 단원을 참조하십시오.

      ecs-tasks.amazonaws.com 신뢰 관계를 가진 역할만 표시됩니다. 작업에 대한 IAM 역할을 생성하는 방법에 관한 지침은 작업 IAM 역할 생성 섹션을 참조하세요.

    2. 작업 실행 역할에서 작업 실행 역할을 선택합니다. 자세한 내용은 Amazon ECS 태스크 실행 IAM 역할 단원을 참조하십시오.

  11. (선택 사항) 컨테이너 명령과 환경 변수를 재정의하려면 컨테이너 재정의(Container Overrides)를 펼친 다음, 컨테이너를 펼칩니다.

    • 작업 정의 명령 이외의 명령을 컨테이너로 보내려면 명령 재정의에 Docker 명령을 입력합니다.

      Docker 실행 명령에 대한 자세한 내용은 Docker 참조 설명서에서 Docker 실행 참조를 참조하세요.

    • 환경 변수를 추가하려면 환경 변수 추가(Add Environment Variable)를 선택합니다. 키(Key)에 환경 변수의 이름을 입력합니다. 값(Value)에 환경 값의 문자열 값을 입력합니다(큰따옴표(" ")로 묶지 않음).

      AWS에서 문자열을 큰따옴표(" ")로 묶고 문자열을 다음 형식으로 컨테이너에 전달합니다.

      MY_ENV_VAR="This variable contains a string."
  12. (선택 사항) 태스크를 식별하려면 태그(Tags) 섹션을 펼친 다음, 태그를 구성합니다.

    Amazon ECS가 새로 시작한 모든 작업에 클러스터 이름과 작업 정의 태그를 자동으로 지정하려면 Amazon ECS 관리형 태그(Turn on Amazon ECS managed tags) 사용을 선택한 다음 작업 정의(Task definitions)를 선택합니다.

    태그를 추가하거나 제거합니다.

    • [태그 추가] 새로운 태그(Add tag)를 선택하고 다음을 수행합니다.

      • 에서 키 이름을 입력합니다.

      • 에 키 값을 입력합니다.

    • [태그 제거] 태그 옆에 있는 태그 제거를 선택합니다.

  13. 생성(Create)을 선택합니다.