Zettelkasten

ECS Exec SSM Agent는 readonlyRootFilesystem에서 동작하지 않는다

·수정 2026.04.26·수정 1

요약

  • ECS Exec은 컨테이너 안에서 SSM Agent를 사이드카로 실행하는데, 이 agent가 /var/lib/amazon/ssm/에 파일을 써야 한다.
  • readonlyRootFilesystem: true이면 agent가 쓰기 불가능해서 즉시 죽는다.
  • terraform-aws-modules/ecs/aws 모듈의 기본값이 true라서, 명시적으로 false를 안 넣으면 의도치 않게 걸린다.

본문

증상

  • aws ecs execute-command 실행 시 InvalidParameterException 에러
  • 태스크 describe하면 enableExecuteCommand: true인데 ExecuteCommandAgent: STOPPED

원인

  • SSM Agent가 소켓/상태 파일을 쓸 디렉토리가 필요한데, readOnly 파일시스템이라 실패
  • AWS ECS 자체 기본값은 false지만, Terraform ECS 모듈(terraform-aws-modules/ecs/aws ~> 5.7.3)의 container-definition 기본값이 true

해결

  • container_definitions에 readonly_root_filesystem = false 명시

ECS Exec 안 될 때 체크리스트

  1. 서비스에 enable_execute_command = true 설정 여부
  2. 설정 이후 태스크가 새로 시작되었는지 (기존 태스크는 적용 안 됨, force-new-deployment 필요)
  3. Task Role에 ssmmessages:* 4개 권한 존재 여부
  4. readonlyRootFilesystemtrue인지 ← 가장 놓치기 쉬움
  5. Private subnet이면 NAT Gateway 또는 ssmmessages VPC Endpoint 존재 여부

참고