- 최신
- 최다 투표
- 가장 많은 댓글
오류 메시지를 분석해보면, ECS 서비스 생성 시 Blue/Green 배포 옵션에서 IAM Role ARN 형식이 올바르지 않아 발생한 문제입니다.
최근 Amazon ECS에서 Blue/Green 배포 방식이 변경되었습니다. 이전에는 CodeDeploy를 통해 Blue/Green 배포를 구현했지만, 이제는 ECS 자체적으로 로드 밸런서 리소스를 관리하는 방식으로 변경되었습니다. 이로 인해 CloudFormation 템플릿의 구조가 달라졌습니다.
새로운 Blue/Green 배포 방식에서는 다음 구성 요소가 필요합니다:
- targetGroupArn: 기본(블루) 서비스 리비전의 대상 그룹 ARN
- alternateTargetGroupArn: 대체(그린) 서비스 리비전의 대상 그룹 ARN
- productionListenerRule 또는 productionListenerArn: 프로덕션 트래픽을 위한 리스너 규칙 또는 리스너 ARN
- roleArn: ECS가 로드 밸런서 리소스를 관리할 수 있는 권한이 있는 역할의 ARN
오류의 원인은 roleArn 파라미터에 잘못된 형식의 IAM 역할 ARN이 지정되었기 때문입니다. 현재 사용 중인 "arn:aws:iam::-:role/aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS" 형식이 아닌, "arn:aws:iam::<account-id>:role/<role-name>" 형식의 IAM 역할이 필요합니다.
해결 방법:
- ECS가 로드 밸런서 리소스를 관리할 수 있는 적절한 권한을 가진 IAM 역할을 생성하거나 기존 역할을 사용하세요.
- 해당 역할의 ARN을 올바른 형식(arn:aws:iam::<account-id>:role/<role-name>)으로 지정하세요.
- 서비스 역할(AWSServiceRoleForECS)이 아닌 일반 IAM 역할을 사용해야 합니다.
이전 템플릿에 있던 CodeDeploy 관련 구성이 사라진 이유는 ECS가 이제 자체적으로 Blue/Green 배포를 관리하기 때문입니다. 더 이상 CodeDeploy를 통한 배포가 아닌, ECS 내장 Blue/Green 배포 기능을 사용하게 되었습니다.
Sources
Network Load Balancer resources for Amazon ECS blue/green deployments - Amazon Elastic Container Service
Application Load Balancer resources for blue/green deployments - Amazon Elastic Container Service
