ECS 권한 제어 — Execution Role, Task Role, Container Instance Role, ECS Exec
·
cloud
ECS 권한 제어 — Execution Role, Task Role, Container Instance Role, ECS ExecECS에서 IAM 권한은 목적에 따라 네 가지로 분리됩니다.이미지 pull, 로그 전송, 시크릿 주입 → Task Execution Role (ECS 에이전트 사용)앱 코드에서 S3, SQS, DynamoDB 호출 → Task Role (컨테이너 내 앱 사용)EC2가 클러스터에 등록 / 상태 보고 → Container Instance Role (EC2 기반 ECS 전용)ECS Exec으로 컨테이너 직접 접속 → Task Role에 SSM 권한 추가참고: Amazon ECS IA..
ECS Task 생명주기 — 상태 전이, 교체, Graceful Shutdown
·
cloud
ECS Task 생명주기 — 상태 전이, 교체, Graceful ShutdownECS에서 Task는 단순히 "실행 중 / 중지"가 아닙니다. 상태 전이 흐름을 이해하면 장애 원인 파악과 Graceful Shutdown 설계가 쉬워집니다.Task 상태 전이 흐름PROVISIONING → PENDING → ACTIVATING → RUNNING → DEACTIVATING → STOPPING → STOPPED │ │ │ │ 용량 확보 이미지 Pull 정상 실행 SIGTERM 수신 (Fargate) 네트워크 구성 ..
EKS IAM 핸즈온 — IRSA, Pod Identity, Access Entry
·
cloud
EKS IAM 핸즈온 — IRSA, Pod Identity, Access EntryEKS에서 IAM은 두 가지 맥락에서 씁니다.Pod → AWS 서비스 접근 : IRSA 또는 Pod Identity사람/CI → 클러스터 접근 : Access Entry이번 실습에서는 IRSA와 Pod Identity를 직접 비교하고, Access Entry로 클러스터 접근을 제어했습니다.이번 실습에서 사용한 Kubernetes 리소스ServiceAccountPod가 K8s API에 접근하거나 외부 서비스에 인증할 때 사용하는 신원(identity) 리소스입니다. 모든 Pod는 명시하지 않으면 네임스페이스의 default ServiceAccount를 사용합니다.apiVersion: v1kind: ServiceAcco..
EKS 운영 트러블슈팅 핸즈온 — Pending, CrashLoop, NetworkPolicy
·
cloud
EKS 운영 트러블슈팅 핸즈온 — Pending, CrashLoop, NetworkPolicy실제 운영에서 가장 자주 마주치는 3가지 장애를 직접 재현하고 진단했습니다.명령어 순서와 함께 실습 중 예상치 못했던 동작까지 기록했습니다.이번 실습에서 사용한 Kubernetes 리소스PodKubernetes에서 배포 가능한 가장 작은 단위입니다. 하나 이상의 컨테이너를 묶어서 같은 네트워크와 스토리지를 공유합니다.apiVersion: v1kind: Podspec: containers: - name: app image: nginx resources: requests: # 스케줄러가 노드 선택 시 기준 memory: "128Mi" cpu: "100m" ..
EKS 노드 Drain 핸즈온 — PDB가 없으면 운영 사고난다
·
cloud
EKS 노드 Drain 핸즈온 — PDB가 없으면 운영 사고난다노드를 교체할 때 kubectl drain만 실행하면 된다고 생각하기 쉽습니다. 직접 실습하면서 PDB가 없을 때와 있을 때 drain이 어떻게 다르게 동작하는지, 그리고 drain 후 새 노드가 떠도 Pod가 안 옮겨지는 이유까지 정리했습니다.왜 노드 교체가 필요한가실제 운영에서 노드를 교체해야 하는 상황은 생각보다 자주 옵니다.커널 패치 / OS 보안 업데이트 적용특정 노드의 디스크 / 메모리 이상 감지인스턴스 타입 변경 (e.g. t3.medium → m5.large)EKS 노드 그룹 수동 교체공통점은 노드 위에 떠 있는 Pod를 먼저 안전하게 다른 노드로 옮긴 다음 노드를 종료해야 한다는 것입니다.핵심 개념: cordon vs drai..
EKS 클러스터 무중단 버전 업그레이드 핸즈온 (1.32 → 1.33)
·
cloud
EKS 클러스터 무중단 버전 업그레이드 핸즈온 (1.32 → 1.33)EKS 버전 업그레이드는 순서를 잘못 지키면 버전 불일치로 장애가 발생합니다.직접 실습하면서 각 단계에서 무슨 일이 일어나는지, 어떤 문제를 마주쳤는지 정리했습니다.업그레이드 순서가 중요한 이유Control Plane 업그레이드 (10~15분) ↓애드온 업그레이드 (각 2~5분) ↓노드 그룹 업그레이드 (노드 수 × 약 5분)순서를 어기면 생기는 문제:노드를 먼저 올리면 Control Plane이 구버전이라 새 kubelet API를 이해 못함애드온을 먼저 올리면 Control Plane 버전과 호환되지 않는 기능 호출 가능EKS는 1 마이너 버전씩만 업그레이드 가능합니다 (1.3..
Terraform으로 EKS + ECS 운영 환경 한 번에 구축하기
·
cloud
Terraform으로 EKS + ECS 운영 환경 한 번에 구축하기실제 운영과 유사한 환경을 Terraform으로 구성하면서 마주친 문제들을 정리했습니다. VPC부터 EKS 클러스터, ECS Fargate 클러스터까지 한 번에 올리는 과정입니다.구성 목표VPC (3 AZ)├── EKS 클러스터 filedrop-prod (v1.32)│ ├── 관리형 노드 그룹 (m5.large × 2)│ ├── 애드온: coredns, kube-proxy, vpc-cni, aws-ebs-csi-driver│ └── Access Entry: IAM 사용자 → 클러스터 admin└── ECS 클러스터 filedrop-prod ├── Fargate (base=2, 안정성 보장) └── Fargate Spo..