- EKS
- go
- cloudnative
- Fargate
- K8S
- gochannel
- 메일 인증 프로토콜
- nodeaffinity
- dMarc
- SAA-CO3
- kubernetes 클러스터 보안
- kubernetesstudyguide
- Kubernetes
- Lambda
- aws
- SPF
- kubernetes admission controller
- kubernetesadmin
- JVM
- containerorchestration
- aws ses
- Certified Solutions Architect
- CKA
- DKIM
- SMTP
- SAA-CO2
- DevOps
- Java
- kubernetesscheduling
- Today
- Total
DevOps Tasks
AWS ECS Fargate 컨테이너에 노크하고 들어가기 본문
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
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 이기에 직접 접속해서 운영하는 것은 지양(?)하는 것 같지만 어쩔 수없이 트러블 슈팅 시 꼭 필요한 기능이다.
'AWS' 카테고리의 다른 글
DynamoDB 데이터를 AWS 데이터 파이프라인으로 QuickSight에서 시각화하기 (0) | 2024.08.04 |
---|---|
Event Driven Architecture with AWS Infra Monitoring (0) | 2024.08.04 |
AWS RDS Proxy 와 Serverless (1) | 2024.03.02 |
AWS Lambda 마스터리북 구매하기 (1) | 2024.01.05 |
AWS ECS Service Connect 적용기 (2) | 2023.12.23 |