본문 바로가기
Cloud

[AWS]AWS ECS EXEC 설정 및 사용하기

by C곰군 2025. 2. 13.

[AWS]AWS ECS EXEC 설정 및 사용하기

안녕하세요?
곰군 입니다.

 

본 글에서는 AWS ECS Fargate에서 실행 중인 컨테이너 내부에 접속해서 실시간으로 로그를 보거나, 디버깅, 어플리케이션 관리를 수행할 수 있는 EXEC 기능에 대해서 소개하고 설정 및 사용하는 시간을 가져보겠습니다.

AWS ECS EXEC가 뭔가요?

AWS ECS Fargate에서 “EXEC” 기능은 AWS에서 컨테이너 내부로 “exec” 커맨드를 사용하여 컨테이너 내부에 접속하거나 커맨드를 실행할 수 있는 기능을 말합니다. 이는 aws ecs execute-command 명령어를 통해 사용할 수 있으며, 개발자나 관리자는 이 기능을 사용하여 실행 중인 컨테이너의 내부에 접속해서 실시간으로 디버깅하거나 애플리케이션 관리 작업을 수행할 수 있습니다.

AWS ECS EXEC 설정 및 접속하기

  1. IAM 설정
    ECS의 TASK 역할에 IAM을 설정해야 합니다.
    AmazonSSMManagedInstanceCore -> 해당 역할을 설정하면 됩니다.
  2. ECS에 접근할 EC2 설정(클라우드쉘에서 접근하면 생략해도 됩니다.)
    oECS 접근할 EC2에 IAM 역할을 설정한다.
    * AmazonSSMManagedInstanceCore 권한이 있어야 SSM 접속이 가능하다.

oEC2에 접근한 후 CLI 설치
sudo yum install -y aws-cli  //설치 명령어
aws –version   //설치확인

3. ECS 서비스 설정 변경
o upddat-service 실행

aws ecs update-service \
--cluster cluster-name \ //클러스터명abcd-ecs-clstr
--service service-name \ //서비스 네임 abcd-ecs-svc
--enable-execute-command //비활성화 시--disable-execute-command
-> 설정 업데이트 후 컨테이너 종료 후 기동 필요

o 상세 내용 확인

하기 cli를 실행하여 task의 enableExcuteCommand가 true 상태인지 확인해야 합니다.

aws ecs describe-tasks \
--cluster cluster-name \ //클러스터명 abcd-ecs-clstr \
--tasks task-name //타스크명 0924ffa6485d4963b6c91cfb1e1ef6a6

4. execute-command로 접속

o execute-command로 fargate 내부 접속

aws ecs execute-command --cluster cluster-name \ //클러스터명
--task task-name \ //타스크명
--container container-name \ //컨테이너명
--interactive \
--command "/bin/sh“
Ex)
aws ecs execute-command --cluster abcd-ecs-clstr\
--task 0924ffa6485d4963b6c91cfb1e1ef6a6\
--container abcd-ecs-cntr\
--interactive --command "/bin/bash“

정상 접속되면 하기와 같이 세션이 시작된다.

설정 시 문제 확인 방법

접속 실패 시 에러메세지가 디테일 하지 않아서 직접적인 조치를 위해서는 해당 스크립트를 활용하는 것이 좋습니다.

https://github.com/aws-containers/amazon-ecs-exec-checker

해당 소스를 다운로드 혹은 git clone하여 ec2에 설치 후, 하기 명령어를 실행하면 다양한 환경에 대한 검사를 실행하고 결과를 반환합니다.


 ./check-ecs-exec.sh 클러스터명 타스크명 Ex)
 ./check-ecs-exec.sh abcd-fs-ecs-clstr 0924ffa6485d4963b6c91cfb1e1ef6a6

해당 결과를 확인해서 미해결 상태인 문제를 해결하면 정상적으로 접근이 됩니다.

댓글