[2] 250909~ 클라우드/[b] 12월 : Terraform + Ansible

[39] Execution Role vs Task Role

서버관리자 페페 2026. 2. 10. 19:43

A. Execution Role (지금 만든 task_exec)

- task runtime준비 / 부팅용

- 이미지 pull / 로그 전송, 시크릿/파라미터 주입 같은 태스크 시작시 필요한 것

 

B. Task Role (별도로 만드는 경우 많음)

-  컨테이너 앱 코드가 AWS API를 호출할 때 쓰는 권한

- 컨테이너가 S3 GetObjecy, DynamoDB PutItem, SQS Senmeaage등

 

컨테이너가 AWS API를 직접 호출하는 케이스면 Task Role이 따로 필요합니다

반대로 그냥 nginx 띄우고 로그만 보내요 -> Execution Role만으로 충분

-----------------------------------------------------------------------------------------------

 

----------------------------------------------------------------------

1. ECS는 Fargate로 사용 -> Execution ROle

일반 EC2 Launch Type으로 사용해도

-> 똑같이 Execution Role을 사용

 

-

 

실행 주체 레이어 분해

Fargate : Container runtime + Host OS + Agent

-> 전부 AWS소유

그래서 

- Img pull

- 로그 전송

- ENI 생성

이 모든 걸 AWS 내부 Fargate infra가 대신 수행, 그래서 Execution Role 필요

 

ECS Agent : EC2 내부 데몬

- Docker 실행

- img pull

log push

 

컨테이너를 내가 직접 실행하는 게 아니고, ECS Agent가 수행한다.

 

Role 사용 주체?

ECS Control Plane
        │
        ▼
ECS Agent (on EC2)
        │
        ▼
Docker Container

 

물론 EC2 타입은 instance profile이 필요하다