독립 실행형 작업 실행 - Amazon Elastic Container Service

독립 실행형 작업 실행

일부 상황에서는 애플리케이션을 독립 실행형 작업으로 배포하는 것이 좋습니다. 예를 들어 애플리케이션을 개발 중이지만 이것을 서비스 스케줄러를 사용하여 배포할 준비가 되어 있지 않다고 가정해 봅시다. 애플리케이션이 일회성이거나 계속 실행하거나 종료 시 재시작하는 것이 의미가 없는 주기적인 배치 작업인 경우가 여기에 속할 수 있습니다.

애플리케이션을 배포하여 지속적으로 실행하거나 로드 밸런서 뒤에 배치하려면 Amazon ECS 서비스를 생성합니다. 자세한 내용은 Amazon ECS 서비스 섹션을 참조하세요.

독립 실행형 태스크를 실행하려면 다음 절차 중 하나를 사용합니다.

New console

새 콘솔을 사용하여 독립 실행형 태스크를 생성하려면

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

  2. 클러스터 페이지에서 독립 실행형 태스크를 실행하는 클러스터를 선택합니다.

  3. 작업(Tasks) 탭에서 새 작업 실행(Run new task)을 선택합니다.

  4. 컴퓨팅 구성(Compute configuration) 섹션을 확장하여 서비스에서 사용할 컴퓨팅 옵션을 변경할 수 있습니다. 기본적으로 콘솔은 자동으로 컴퓨팅 옵션을 선택합니다. 따라서 대부분의 경우 다음 단계로 이동할 수 있습니다. 다음은 콘솔에서 기본값을 선택하는 순서에 대한 설명입니다.

    • 클러스터에 기본 용량 공급자 전략이 정의되어 있는 경우 해당 용량 공급자 전략이 선택됩니다.

    • 클러스터에 기본 용량 공급자 전략이 정의되어 있지 않지만 Fargate 용량 공급자가 클러스터에 추가되어 있는 경우 FARGATE 용량 공급자를 사용하는 사용자 지정 용량 공급자 전략이 선택됩니다.

    • 클러스터에 기본 용량 공급자 전략이 정의되어 있지 않지만 하나 이상의 Auto Scaling 그룹 용량 공급자가 클러스터에 추가된 경우 사용자 지정(고급) 사용 옵션이 선택됩니다. 이를 위해서는 전략을 수동으로 정의해야 합니다.

    • 클러스터에 기본 용량 공급자 전략이 정의되어 있지 않고 클러스터에 용량 공급자가 추가되지 않은 경우 Fargate 시작 유형이 선택됩니다.

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

  6. 태스크 정의(Task definition)에서 사용할 태스크 정의 패밀리 및 개정을 선택합니다.

    중요

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

  7. 원하는 작업(Desired tasks)에 클러스터에서 실행할 작업 수를 지정합니다.

  8. 네트워킹(Networking) 섹션을 확장하여 작업에 필요한 경우 Amazon VPC, 서브넷 및 보안 그룹 구성을 정의할 수 있습니다. awsvpc 네트워크 모드를 사용하는 태스크 정의에는 네트워킹 구성이 있어야 합니다. 기본적으로 콘솔은 기본 Amazon VPC와 모든 서브넷 및 기본 Amazon VPC 내의 기본 보안 그룹을 선택합니다. 애플리케이션에 필요한 경우 새 보안 그룹을 생성합니다.

  9. (선택 사항) 태그(Tags) 섹션을 확장하여 키-값 페어의 형식으로 태그를 서비스에 추가할 수 있습니다.

  10. 배포(Deploy)를 선택합니다.

Old console

기존 콘솔을 사용하여 독립 실행형 태스크를 실행하려면

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

  2. 탐색 창에서 태스크 정의(Task Definitions)를 선택한 후 실행할 태스크 정의를 선택합니다.

    • 여기 나온 태스크 정의의 최신 개정을 실행하려면 실행할 태스크 정의 왼쪽의 상자를 선택합니다.

    • 여기 나온 태스크 정의의 이전 개정을 실행하려면 모든 활성 개정을 보려는 태스크 정의를 선택한 다음 실행할 개정을 선택합니다.

  3. 작업(Actions)작업 실행(Run Task)을 차례로 선택합니다.

  4. 작업 실행 페이지에서 다음 단계를 완료합니다.

    1. 용량 공급자 전략 또는 시작 유형을 선택합니다.

      • 용량 공급자 전략(Capacity provider strategy)을 사용하려면 용량 공급자 전략으로 전환(Switch to capacity provider strategy)을 선택합니다. 그런 다음, 작업에서 클러스터에 대해 정의된 기본 용량 공급자 전략을 사용할지 사용자 지정 용량 공급자 전략을 사용할지 선택합니다. 용량 공급자는 사용자 지정 용량 공급자 전략에 사용할 클러스터와 연결되어야 합니다. 자세한 내용은 Amazon ECS 용량 공급자 생성 섹션을 참조하세요.

      • 시작 유형(Launch type)을 사용하려면 시작 유형으로 전환(Switch to launch type)을 선택하고 EC2 또는 외부(EXTERNAL)를 선택합니다. 시작 유형에 대한 자세한 내용은 Amazon ECS 시작 유형 섹션을 참조하세요.

    2. 클러스터(Cluster)에서 사용할 클러스터를 선택합니다.

    3. 작업 수(Number of tasks)에 이 태스크 정의를 사용하여 시작할 작업 수를 입력합니다.

    4. 작업 그룹(Task group)에 작업 그룹 이름을 입력합니다.

  5. 해당 태스크 정의에서 awsvpc 네트워크 모드를 사용하는 경우 다음 하위 단계를 완료합니다. 아니면 다음 단계로 이동합니다.

    1. 클러스터 VPC(Cluster VPC)에서 컨테이너 인스턴스가 상주하는 VPC를 선택합니다.

    2. 서브넷(Subnets)에서 작업에 사용할 수 있는 서브넷을 선택합니다.

      중요

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

    3. 보안 그룹(Security groups)에 대해서는 인터넷(0.0.0.0/0)에서 발생하는 HTTP 트래픽을 허용하는 태스크를 위해 보안 그룹이 생성되었습니다. 이 보안 그룹의 이름 또는 규칙을 편집하거나 기존 보안 그룹을 선택하려면 편집(Edit)을 선택한 후 보안 그룹 설정을 수정합니다.

  6. (선택 사항) 작업 배치(Task Placement)에서 작업 배치 전략과 제약을 사용하여 작업 배치 방식을 지정할 수 있습니다. 다음 옵션 중 하나를 선택합니다.

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

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

    • BinPack - 사용 가능한 CPU 또는 메모리 최소량에 따라 태스크를 분산합니다.

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

    • Custom - 자체 작업 배치 전략을 정의합니다. 예제는 Amazon ECS 작업 배치 섹션을 참조하세요.

    자세한 내용은 Amazon ECS 작업 배치 섹션을 참조하세요.

  7. (선택 사항) 명령, 환경 변수, 작업 IAM 역할 또는 작업 실행 역할 재정의를 태스크 정의에 있는 하나 이상의 컨테이너에 보내려면 고급 옵션(Advanced Options)을 선택하고 다음 단계를 완료합니다.

    참고

    태스크 정의의 파라미터 값을 사용할 경우 재정의를 지정할 필요가 없습니다. 이러한 필드는 태스크 정의에 지정된 값을 재정의하는 데에만 사용됩니다.

    1. 작업 역할 재정의(Task Role Override)에서 태스크 정의에 지정된 작업 IAM 역할을 재정의하기 위한 이 작업의 IAM 역할을 선택합니다. 자세한 내용은 태스크에 대한 IAM 역할 섹션을 참조하세요.

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

    2. 작업 실행 역할 재정의(Task Execution Role Override)에서 태스크 정의에 지정된 작업 실행 역할을 재정의하는 작업 실행 역할을 선택합니다. 자세한 내용은 Amazon ECS 태스크 실행 IAM 역할 섹션을 참조하세요.

    3. 컨테이너 재정의(Container Overrides)에서 명령 또는 환경 변수 재정의를 전송할 컨테이너를 선택합니다.

      • 명령 재정의의 경우: 명령 재정의(Command override)에 전송할 명령 재정의를 입력합니다. 컨테이너 정의에서 ENTRYPOINT가 지정되지 않은 경우, 형식은 쉼표로 구분된 따옴표 없는 문자열 목록입니다.

        /bin/sh,-c,echo,$DATE

        컨테이너 정의에서 ENTRYPOINT(예: sh,-c)가 지정되어 있는 경우, 형식은 큰따옴표(" ")로 묶여서 ENTRYPOINT 명령에 대한 인수로 전달되는 따옴표 없는 문자열입니다.

        while true; do echo $DATE > /var/www/html/index.html; sleep 1; done
      • 환경 변수 재정의의 경우: 환경 변수 추가(Add Environment Variable)를 선택합니다. 키(Key)에 환경 변수의 이름을 입력합니다. 값(Value)에 환경 값의 문자열 값을 입력합니다(큰따옴표(" ")로 묶지 않음).

        
                                                  환경 변수 재정의

        이 환경 변수 재정의는 컨테이너에 다음 형식으로 전송됩니다.

        MY_ENV_VAR="This variable contains a string."
  8. 작업 태깅 구성(Task tagging configuration) 섹션에서 다음 단계를 완료합니다.

    1. Amazon ECS가 각 작업에 Amazon ECS 관리형 태그를 자동 지정하도록 하려면 ECS 관리형 태그 활성화(Enable ECS managed tags)를 선택합니다. 자세한 내용은 Amazon ECS 리소스에 태그 지정 섹션을 참조하세요.

    2. 태그 전파 시작(Propagate tags from)에서 다음 중 하나를 선택합니다.

      • 전파 안 함(Do not propagate) – 이 옵션은 태그를 전파하지 않습니다.

      • 태스크 정의(ask Definitions) – 이 옵션은 태스크 정의에 지정된 태그를 작업에 전파합니다.

        참고

        태그(Tags) 섹션에서 같은 key로 태그를 지정하는 경우 태스크 정의에서 전파된 태그를 재정의합니다.

  9. 태그(Tags) 섹션에 각 태그에 대한 키와 값을 지정하여 태스크와 연결합니다. 자세한 내용은 Amazon ECS 리소스에 태그 지정 섹션을 참조하세요.

  10. 작업 정보를 검토하고 작업 실행(Run Task)을 선택합니다.

    참고

    작업이 PENDING에서 STOPPED 상태로 이동하거나 PENDING 상태를 표시한 다음 나열된 작업에서 사라지면 작업이 오류로 인해 중지된 것일 수 있습니다. 자세한 내용은 문제 해결 섹션의 오류로 인해 중지된 작업 확인를 참조하세요.