설명
요청을 처리하는 Auto Scaling 그룹에 로드 밸런서나 다른 적절한 라우팅 구성이 없으면 인스턴스 증감에 맞춰 트래픽을 분산하기 어렵습니다. 작업 큐를 처리하는 그룹처럼 로드 밸런서가 필요 없는 경우도 있습니다.
잠재적 영향
새 인스턴스에 요청이 전달되지 않거나 장애가 난 인스턴스로 요청이 계속 전달될 수 있습니다.
해결 방법
Classic Load Balancer는 LoadBalancerNames로, Application·Network Load Balancer는 대상 그룹의 TargetGroupARNs로 연결하세요. 리스너와 상태 확인도 워크로드에 맞게 구성하세요.
예시
발췌 예시는 기존 Classic Load Balancer를 연결합니다. 시작 템플릿과 서브넷 정의는 생략했습니다.
변경 전
yaml
Resources:
WebAsg:
Type: AWS::AutoScaling::AutoScalingGroup
Properties:
MinSize: "1"
MaxSize: "4"
DesiredCapacity: "2"
VPCZoneIdentifier:
- !Ref PublicSubnetA
- !Ref PublicSubnetB
변경 후
yaml
Resources:
WebAsg:
Type: AWS::AutoScaling::AutoScalingGroup
Properties:
MinSize: "1"
MaxSize: "4"
DesiredCapacity: "2"
LoadBalancerNames:
- web-elb
VPCZoneIdentifier:
- !Ref PublicSubnetA
- !Ref PublicSubnetB