ECS Exec을 사용하여 명령 실행 - Amazon Elastic Container Service

ECS Exec을 사용하여 명령 실행

Amazon ECS Exec을 사용하여 컨테이너와 관련된 진단 정보를 수집하고 컨테이너의 수명 주기 동안 발생하는 오류를 해결할 수 있습니다.

사전 조건

ECS Exec를 사용하기 전에 다음 작업을 완료했는지 확인합니다.

  • 고려 사항을 검토하세요. 자세한 내용은 고려 사항 섹션을 참조하세요.

  • 태스크 및 서비스에 대해 ECS Exec을 구성합니다. 자세한 내용은 ECS Exec 구성 섹션을 참조하세요.

  • AWS CLI를 설치하고 구성합니다. 자세한 내용은 AWS CLI 시작하기를 참조하세요.

  • AWS CLI에 대한 Session Manager 플러그인을 설치합니다. 자세한 내용은 AWS CLI에 대한 Session Manager 플러그인 설치를 참조하세요.

  • 적합한 권한으로 태스크 역할을 구성합니다. ECS Exec에 대한 적절한 권한이 있는 태스크 역할을 사용해야 합니다. 자세한 내용은 Task IAM role을 참조하세요.

  • 버전 요구 사항을 확인합니다. ECS Exec은 작업이 Amazon EC2 또는 AWS Fargate에 호스팅되는지 여부에 따라 버전 요구 사항이 있습니다.

    • Amazon EC2를 사용하는 경우 2021년 1월 20일 이후에 출시된 Amazon ECS 최적화 AMI를 에이전트 버전 1.50.2 이상으로 사용해야 합니다. 자세한 내용은 Amazon ECS 최적화 AMI를 참조하세요.

    • AWS Fargate을(를) 사용하는 경우 플랫폼 버전 1.4.0 이상(Linux) 또는 1.0.0(Windows)을(를) 사용해야 합니다. 자세한 내용은 AWS Fargate 플랫폼 버전을 참조하세요.

서비스 태스크에 콘솔 사용

콘솔을 사용하여 ECS Exec을 통해 명령을 실행할 수 있습니다.

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

  2. 클러스터(Clusters) 페이지에서 클러스터를 선택합니다.

  3. 클러스터 세부 정보 페이지의 서비스 단원에서 서비스를 선택합니다.

    서비스 세부 정보 페이지가 표시됩니다.

  4. 서비스 세부 정보 페이지에서 태스크를 선택합니다. 그런 다음 태스크를 선택합니다.

  5. 컨테이너에서 ECS Exec을 사용할 컨테이너를 선택합니다.

  6. 명령을 실행하려면 다음 중 하나를 수행합니다.

    • 연결을 선택합니다.

      명령을 실행할 수 있는 CloudShell 세션이 표시됩니다.

    • 화살표를 선택한 다음 AWS CLI 명령 복사를 선택합니다.

      그러면 명령을 로컬로 실행할 수 있습니다.

예상 결과

연결되면 컨테이너에서 대화형 셸 프롬프트가 표시됩니다. 이제 컨테이너 환경에서 직접 명령을 실행할 수 있습니다. 세션을 종료하려면 세션 종료를 선택합니다.

독립 실행형 태스크에 콘솔 사용

콘솔을 사용하여 ECS Exec을 통해 명령을 실행할 수 있습니다.

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

  2. 클러스터(Clusters) 페이지에서 클러스터를 선택합니다.

  3. 클러스터 세부 정보 페이지의 태스크 섹션에서 작업을 선택합니다.

    태스크 세부 정보 페이지가 표시됩니다.

  4. 컨테이너에서 ECS Exec을 사용할 컨테이너를 선택합니다.

  5. 명령을 실행하려면 다음 중 하나를 수행합니다.

    • 연결을 선택합니다.

      명령을 실행할 수 있는 CloudShell 세션이 표시됩니다.

    • 화살표를 선택한 다음 AWS CLI 명령 복사를 선택합니다.

      그러면 명령을 로컬로 실행할 수 있습니다.

예상 결과

연결되면 컨테이너에서 대화형 셸 프롬프트가 표시됩니다. 이제 컨테이너 환경에서 직접 명령을 실행할 수 있습니다. 세션을 종료하려면 세션 종료를 선택합니다.

명령 셸 사용

명령 셸을 사용하여 ECS Exec을 통해 명령을 실행할 수 있습니다.

ExecuteCommandAgent가 실행 중임을 확인한 후 다음 명령을 사용하여 컨테이너에서 대화형 셸을 열 수 있습니다. 작업에 컨테이너가 여러 개 포함되어 있는 경우 --container 플래그를 사용하여 컨테이너 이름을 지정해야 합니다. Amazon ECS는 대화형 세션 시작만 지원하므로 --interactive 플래그를 사용해야 합니다.

다음 명령은 ID가 task-id인 작업에 대해 container-name이라는 컨테이너에서 대화형 /bin/sh 명령을 실행합니다.

task-id는 작업의 Amazon 리소스 이름(ARN)입니다.

aws ecs execute-command --cluster cluster-name \ --task task-id \ --container container-name \ --interactive \ --command "/bin/sh"

예상 결과

명령이 성공하면 컨테이너에서 대화형 셸 프롬프트가 표시됩니다. 이제 컨테이너 환경에서 직접 명령을 실행할 수 있습니다. 세션을 종료하려면 exit를 입력하거나 Ctrl+D를 누릅니다.