AWS Elastic Beanstalk 애플리케이션을 위한 확장 가능한 부하 분산 환경을 만들고 로드 밸런서에 대한 자체 보안 그룹을 지정하고 싶습니다.
간략한 설명
Elastic Beanstalk는 로드 밸런서를 위한 기본 보안 그룹을 생성합니다. 기존 보안 그룹(ManagedSecurityGroup)을 로드 밸런서에 연결하려면 기본 동작을 재정의합니다. Elastic Beanstalk가 기본 보안 그룹을 생성하지 않도록 .ebextensions/ 디렉터리에 더 많은 구성 파일을 추가합니다. 디렉터리는 애플리케이션 배포 패키지에 있습니다.
중요: 다음 단계는 Application Load Balancer와 Classic Load Balancer에만 적용됩니다. Network Load Balancer에는 연결된 보안 그룹이 없습니다. Network Load Balancer에서 트래픽을 허용하도록 대상과 연결된 보안 그룹을 구성해야 합니다.
해결 방법
.ebextensions를 사용하여 Elastic Beanstalk 서비스에 기존 보안 그룹을 로드 밸런서에 연결하도록 지시하세요. 그런 다음 Elastic Beanstalk가 생성하는 기본 보안 그룹을 제거합니다.
다음 단계를 완료합니다.
- Elastic Beanstalk에서 사용할 기존 보안 그룹이 있는지 확인합니다. 또는 Elastic Beanstalk 환경에서 로드 밸런서를 위한 새 보안 그룹을 생성합니다.
- 보안 그룹의 ID를 기록해 둡니다. 예를 들면 sg-123456입니다.
- 로컬 애플리케이션 코드 디렉터리에 .ebextensions/ 디렉터리를 생성합니다.
- .ebextensions/ 디렉터리에서 elbsg.config 파일을 만듭니다. 예를 들면 다음과 같습니다.
~/workspace/my-app/
|-- .ebextensions
| |-- elbsg.config
|-- helloworld
참고: 자세한 내용을 보려면 구성 파일(.ebextensions)을 사용하여 고급 환경 사용자 지정을 참조하세요.
- Elastic Beanstalk 환경의 로드 밸런서 유형을 기반으로 elbsg.config 파일을 업데이트합니다. 자세한 내용은 로드 밸런싱을 사용하여 Amazon ECS 서비스 트래픽 분산을 참고하세요. Classic Load Balancer를 사용하여 새 환경을 생성하거나 기존 환경을 업데이트하려면 SecurityGroups 설정을 사용하여 기본 보안 그룹을 재정의합니다. 예를 들면 다음과 같습니다.
option_settings:
aws:elb:loadbalancer:
ManagedSecurityGroup: "sg-123456"
SecurityGroups: "sg-123456"
Application Load Balancer를 사용하여 새 환경을 생성하거나 기존 환경을 업데이트하려면 SecurityGroups 설정을 사용하여 기본 보안 그룹을 재정의합니다. 예를 들면 다음과 같습니다.
option_settings:
aws:elbv2:loadbalancer:
ManagedSecurityGroup: "sg-123456"
SecurityGroups: "sg-123456"
참고: 앞의 예에서 sg-123456을 보안 그룹 및 관리형 보안 그룹 ID로 바꿉니다. 앞의 .ebextensions는 YAML 형식입니다. YAML 형식의 유효성을 검사해야 합니다.
- 코드와 새 .ebextensions/ 디렉터리를 Elastic Beanstalk 환경에 새 애플리케이션 버전으로 함께 배포합니다.
관련 정보
Elastic Beanstalk 환경 구성
aws:elb:loadbalancer
aws:elbv2:loadbalancer