설명
외부에서 들어오는 요청을 여러 태스크로 분산해야 하는 ECS 서비스는 적절한 트래픽 진입점이 필요합니다. 로드 밸런서 없이 태스크 주소를 직접 사용하면 태스크 교체나 장애에 대응하기 어려울 수 있습니다.
잠재적 영향
요청이 특정 태스크에 몰리거나 종료된 태스크로 전달되어 서비스 가용성이 떨어질 수 있습니다.
해결 방법
필요한 경우 서비스의 LoadBalancers에 대상 그룹과 컨테이너 이름·포트를 지정하고 리스너와 상태 확인을 구성하세요. 요청을 받지 않는 작업용 서비스에는 로드 밸런서가 필요하지 않을 수 있습니다.
예시
발췌 예시는 sample-app의 80번 포트를 대상 그룹에 연결합니다. 태스크 정의의 컨테이너 이름과 포트를 일치시키세요.
변경 전
yaml
Resources:
ECSService:
Type: AWS::ECS::Service
Properties:
Cluster: !Ref ECSCluster
TaskDefinition: !Ref ECSTaskDefinition
DesiredCount: 2
변경 후
yaml
Resources:
ECSService:
Type: AWS::ECS::Service
Properties:
Cluster: !Ref ECSCluster
TaskDefinition: !Ref ECSTaskDefinition
DesiredCount: 2
LoadBalancers:
- TargetGroupArn: !Ref TargetGroup
ContainerName: sample-app
ContainerPort: 80