ECS Exec을 사용해 명령 실행하기

ECS Exec을 사용해 명령 실행하기

Amazon ECS Exec을 사용해 컨테이너와 관련된 진단 정보를 수집하고 컨테이너 수명 주기 전반에서 발생하는 오류를 해결할 수 있어요.

출처: 문서

본문

Amazon ECS Exec을 사용해 컨테이너와 관련된 진단 정보를 수집하고 컨테이너 수명 주기 전반에서 발생하는 오류를 해결할 수 있어요.

전제 조건 ECS Exec 사용을 시작하기 전에 다음 작업을 완료했는지 확인해 주세요.

  • 고려 사항을 검토해 주세요. 자세한 내용은 Considerations 를 참고해 주세요.
  • 태스크와 서비스에 ECS Exec을 구성해 주세요. 자세한 내용은 Configuring ECS Exec 을 참고해 주세요.
  • AWS CLI 를 설치하고 구성해 주세요. 자세한 내용은 Get started with the AWS CLI 를 참고해 주세요.
  • AWS CLI용 Session Manager 플러그인을 설치해 주세요. 자세한 내용은 Install the Session Manager plugin for the AWS CLI 를 참고해 주세요.
  • 적절한 권한이 있는 태스크 역할을 구성해 주세요. ECS Exec에는 적절한 권한이 있는 태스크 역할을 사용해야 해요. 자세한 내용은 Task IAM role 을 참고해 주세요.
  • 버전 요구 사항을 확인해 주세요. ECS Exec은 태스크가 Amazon EC2에 호스팅되는지 AWS Fargate에 호스팅되는지에 따라 버전 요구 사항이 있어요.
    • Amazon EC2를 사용한다면 2021년 1월 20일 이후에 릴리스된 Amazon ECS optimized AMI를 에이전트 버전 1.50.2 이상으로 사용해야 해요. 자세한 내용은 Amazon ECS optimized AMIs 를 참고해 주세요.
    • AWS Fargate를 사용한다면 플랫폼 버전 1.4.0 이상(Linux) 또는 1.0.0 (Windows)을 사용해야 해요. 자세한 내용은 AWS Fargate platform versions 를 참고해 주세요.

서비스 태스크에 콘솔 사용하기 콘솔을 사용해 ECS Exec으로 명령을 실행할 수 있어요.

  1. https://console.aws.amazon.com/ecs/v2 에서 콘솔을 엽니다.
  2. Clusters 페이지에서 클러스터를 선택합니다.
  3. 클러스터 세부 정보 페이지의 Services 섹션에서 서비스를 선택합니다. 서비스 세부 정보 페이지가 표시됩니다.
  4. 서비스 세부 정보 페이지에서 Tasks 를 선택합니다. 그런 다음 태스크를 선택합니다.
  5. Containers 에서 ECS Exec을 사용할 컨테이너를 선택합니다.
  6. 명령을 실행하려면 다음 중 하나를 수행합니다.
    • Connect 를 선택합니다. 명령을 실행할 수 있는 CloudShell 세션이 표시됩니다.
    • 화살표를 선택한 다음 Copy AWS CLI command 를 선택합니다. 그러면 명령을 로컬에서 실행할 수 있습니다.

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

독립 실행형 태스크에 콘솔 사용하기 콘솔을 사용해 ECS Exec으로 명령을 실행할 수 있어요.

  1. https://console.aws.amazon.com/ecs/v2 에서 콘솔을 엽니다.
  2. Clusters 페이지에서 클러스터를 선택합니다.
  3. 클러스터 세부 정보 페이지의 Tasks 섹션에서 태스크를 선택합니다. 태스크 세부 정보 페이지가 표시됩니다.
  4. Containers 에서 ECS Exec을 사용할 컨테이너를 선택합니다.
  5. 명령을 실행하려면 다음 중 하나를 수행합니다.
    • Connect 를 선택합니다. 명령을 실행할 수 있는 CloudShell 세션이 표시됩니다.
    • 화살표를 선택한 다음 Copy AWS CLI command 를 선택합니다. 그러면 명령을 로컬에서 실행할 수 있습니다.

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

명령 셸 사용하기 명령 셸을 사용해 ECS Exec으로 명령을 실행할 수 있어요. ExecuteCommandAgent 가 실행 중인지 확인한 후 다음 명령으로 컨테이너에서 대화형 셸을 열 수 있어요. 태스크에 여러 컨테이너가 있다면 --container 플래그로 컨테이너 이름을 지정해야 해요. Amazon ECS는 대화형 세션 시작만 지원하므로 --interactive 플래그를 사용해야 해요.

다음 명령은 ID가 task-id 인 태스크의 container-name 이라는 컨테이너에서 대화형 /bin/sh 명령을 실행해요. task-id 는 태스크의 Amazon Resource Name(ARN)이에요.

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

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

더 알아보기 (Learn more)