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을 통해 명령을 실행할 수 있습니다.
https://console.aws.amazon.com/ecs/v2
에서 콘솔을 엽니다. -
클러스터(Clusters) 페이지에서 클러스터를 선택합니다.
-
클러스터 세부 정보 페이지의 서비스 단원에서 서비스를 선택합니다.
서비스 세부 정보 페이지가 표시됩니다.
-
서비스 세부 정보 페이지에서 태스크를 선택합니다. 그런 다음 태스크를 선택합니다.
-
컨테이너에서 ECS Exec을 사용할 컨테이너를 선택합니다.
-
명령을 실행하려면 다음 중 하나를 수행합니다.
-
연결을 선택합니다.
명령을 실행할 수 있는 CloudShell 세션이 표시됩니다.
-
화살표를 선택한 다음 AWS CLI 명령 복사를 선택합니다.
그러면 명령을 로컬로 실행할 수 있습니다.
-
예상 결과
연결되면 컨테이너에서 대화형 셸 프롬프트가 표시됩니다. 이제 컨테이너 환경에서 직접 명령을 실행할 수 있습니다. 세션을 종료하려면 세션 종료를 선택합니다.
독립 실행형 태스크에 콘솔 사용
콘솔을 사용하여 ECS Exec을 통해 명령을 실행할 수 있습니다.
https://console.aws.amazon.com/ecs/v2
에서 콘솔을 엽니다. -
클러스터(Clusters) 페이지에서 클러스터를 선택합니다.
-
클러스터 세부 정보 페이지의 태스크 섹션에서 작업을 선택합니다.
태스크 세부 정보 페이지가 표시됩니다.
-
컨테이너에서 ECS Exec을 사용할 컨테이너를 선택합니다.
-
명령을 실행하려면 다음 중 하나를 수행합니다.
-
연결을 선택합니다.
명령을 실행할 수 있는 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
\ --tasktask-id
\ --containercontainer-name
\ --interactive \ --command"/bin/sh"
예상 결과
명령이 성공하면 컨테이너에서 대화형 셸 프롬프트가 표시됩니다. 이제 컨테이너 환경에서 직접 명령을 실행할 수 있습니다. 세션을 종료하려면 exit
를 입력하거나 Ctrl+D
를 누릅니다.