AWS Elastic Beanstalk 애플리케이션을 배포할 때 로드 밸런서에 대한 자체 보안 그룹을 사용하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2020년 3월 16일

AWS Elastic Beanstalk 애플리케이션에 대한 로드 밸런싱, Auto Scaling 환경 유형을 생성하고 로드 밸런스에 대한 자체 보안 그룹을 지정하려고 합니다.

간략한 설명

Elastic Beanstalk에서는 로드 밸런서에 대한 기본 보안 그룹을 생성합니다. 로드 밸런서에 연결하려는 기존 보안 그룹(ManagedSecurityGroup이라고도 함)이 있는 경우 이 기본 동작을 재정의할 수 있습니다. Elastic Beanstalk이 기본 보안 그룹을 생성하지 못하도록 하려면 하나 이상의 구성 파일을 애플리케이션 배포 패키지의 .ebextensions 디렉터리에 추가해야 합니다.

중요: 다음 단계는 Application Load Balancer 및 Classic Load Balancer에만 적용됩니다. Network Load Balancer에는 연결된 보안 그룹이 없습니다.

​해결 방법

.ebextensions를 사용하여 Elastic Beanstalk 서비스에게 기존 보안 그룹을 로드 밸런서에 연결하도록 지시합니다. 그런 다음, Elastic Beanstalk이 생성한 기본 보안 그룹을 제거합니다.

1.    Elastic Beanstalk에 사용할 기존 보안 그룹이 있는지 확인합니다. 또는 Elastic Beanstalk 환경에서 로드 밸런서에 대한 새 보안 그룹을 생성할 수 있습니다.

2.    보안 그룹의 ID(예: sg-123456)를 기록합니다.

3.    로컬 애플리케이션 코드 디렉터리에 .ebextensions/ 디렉터리를 생성합니다.

참고: 자세한 내용은 구성 파일(.ebextensions)로 고급 환경 사용자 지정을 참조하십시오.

4.    .ebextensions/ 디렉터리에서 elbsg.config라는 파일을 생성합니다.

5.    Elastic Beanstalk 환경에서 사용하려는 로드 밸런서 유형에 따라 elbsg.config 파일을 업데이트합니다.

Classic Load Balancer 유형의 경우 다음을 업데이트합니다.

option_settings:
    aws:elb:loadbalancer:
        ManagedSecurityGroup: "sg-123456"

Classic Load Balancer로 기존 환경을 업데이트하는 경우 SecurityGroups 설정을 사용하여 기본 보안 그룹을 제거합니다. 다음 예제를 참조하십시오.

option_settings:
    aws:elb:loadbalancer:
    	ManagedSecurityGroup: "sg-123456"
        SecurityGroups: "sg-123456"

Application Load Balancer 유형의 경우 다음을 업데이트합니다.

option_settings:
    aws:elbv2:loadbalancer:
        ManagedSecurityGroup: "sg-123456"

Application Load Balancer로 기존 환경을 업데이트하는 경우 SecurityGroups 설정을 사용하여 기본 보안 그룹을 제거합니다. 다음 예제를 참조하십시오.

option_settings:
    aws:elbv2:loadbalancer:
    	ManagedSecurityGroup: "sg-123456"
        SecurityGroups: "sg-123456"

참고: SecurityGroups 설정을 사용하여 보안 그룹을 로드 밸런서에 더 추가할 수 있습니다.

6.    코드와 새로운 .ebextensions/ 디렉터리를 함께 Elastic Beanstalk 환경에 새 애플리케이션 버전으로 배포합니다.

배포하면 보안 그룹이 로드 밸런서에 연결됩니다. 이제 환경 및 로드 밸런서가 기본 로드 밸런서 보안 그룹 대신 기존 보안 그룹을 사용합니다.


이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?