반응형
250x250
Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Archives
Today
Total
관리 메뉴

DevOps Tasks

AWS ECS Fargate 컨테이너에 노크하고 들어가기 본문

AWS

AWS ECS Fargate 컨테이너에 노크하고 들어가기

데밥스 2023. 12. 24. 00:46
728x90
반응형

 


 

AWS ECS Fargate로 배포 시 컨테이너에 접속하기 위한 방법을 설명한다.
그냥은 못 들어가고 Session Manager를 통해 Fargate 컨테이너에 접속할 수 있다.


 

AWS CLI용 Session Manager 플러그인 설치

그냥 접속할 순 없고 AWS CLI 용 Session Manager를 설치한 후 접속할 수 있다.

Ubuntu

$ curl "<https://s3.amazonaws.com/session-manager-downloads/plugin/latest/ubuntu_64bit/session-manager-plugin.deb>" -o "session-manager-plugin.deb"

$ sudo dpkg -i session-manager-plugin.deb

$ session-manager-plugin --version

 

 

AWS CLI의 Session Manager 플러그인 설치 - AWS Systems Manager

이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.

docs.aws.amazon.com

 

ECS Exec에 필요한 IAM 권한

 

ECS Task Role에 인라인 정책으로 추가한다.

이전 Role를 가지고 있기에 권한 추가 후 서비스를 재배포해야 한다.

 

{
   "Version": "2012-10-17",
   "Statement": [
       {
       "Effect": "Allow",
       "Action": [
            "ssmmessages:CreateControlChannel",
            "ssmmessages:CreateDataChannel",
            "ssmmessages:OpenControlChannel",
            "ssmmessages:OpenDataChannel"
       ],
      "Resource": "*"
      }
   ]
}

 

 

 

디버깅에 Amazon ECS Exec 사용 - Amazon Elastic Container Service

디버깅에 Amazon ECS Exec 사용 Amazon ECS Exec을 사용하면 먼저 호스트 컨테이너 운영 체제와 상호 작용하거나 인바운드 포트를 열거나 SSH 키를 관리할 필요 없이 컨테이너와 직접 상호 작용할 수 있습

docs.aws.amazon.com


728x90

enableExcuteCommand 확인

 

CLI로 Fargate에 접속 전 실행 명령이 켜져 있는지 확인해 본다.

False로 되어있다면 접속할 수 없다.

Task의 정보가 너무 많아 jq로 해당 명령만 간단히 볼 수 있다.

$ aws ecs describe-tasks \\
    --cluster <CLUSTER_NAME> \\
    --tasks <TASK_ID>

$ aws ecs describe-tasks \\
  --cluster <CLUSTER_NAME> \\
  --tasks <TASK_ID> \\
  --query 'tasks[0].enableExecuteCommand' \\
  --output json | jq -r 'if . == true or . == false then "enableExecuteCommand: \\(. | tostring)" else empty end'

 


반응형

ecs excute-command로 접속

 

aws ecs execute-command --cluster <CLUSTER_NAME> \\
    --task <TASK_ID>\\
    --container <CONTAINER_NAME> \\
    --interactive \\
    --command "/bin/sh"

 

 

 

execute-command — AWS CLI 1.32.7 Command Reference

Note: You are viewing the documentation for an older major version of the AWS CLI (version 1). AWS CLI version 2, the latest major version of AWS CLI, is now stable and recommended for general use. To view this page for the AWS CLI version 2, click here. F

docs.aws.amazon.com

 

Fargate 이기에 직접 접속해서 운영하는 것은 지양(?)하는 것 같지만 어쩔 수없이 트러블 슈팅 시 꼭 필요한 기능이다.

728x90
반응형