기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
로드 밸런서에서 HTTPS 종료 구성
HTTPS를 사용하도록 AWS Elastic Beanstalk 환경을 업데이트하려면 환경의 로드 밸런서에 대해 HTTPS 리스너를 구성해야 합니다. 두 가지 유형의 로드 밸런서(Classic Load Balancer 및 Application Load Balancer)는 HTTPS 리스너를 지원합니다.
Elastic Beanstalk 콘솔이나 구성 파일을 사용하여 보안 리스너를 구성하고 인증서를 할당할 수 있습니다.
참고
단일 인스턴스 환경에는 로드 밸런서가 없으며, 따라서 로드 밸런스에서 HTTPS 종료를 지원하지 않습니다.
Elastic Beanstalk 콘솔을 사용하여 보안 리스너 구성
환경의 로드 밸런서에 인증서를 할당
Elastic Beanstalk 콘솔
을 연 다음 리전(Regions) 목록에서 해당 AWS 리전을 선택합니다. -
탐색 창에서 환경을 선택한 다음 목록에서 환경 이름을 선택합니다.
참고
여러개의 환경을 보유한 경우 검색 창을 통해 환경 목록을 필터링합니다.
탐색 창에서 구성을 선택합니다.
-
[로드 밸런서] 구성 범주에서 [편집]을 선택합니다.
참고
[로드 밸런서] 구성 범주에 [편집] 버튼이 없으면 환경에 로드 밸런서가 없는 것입니다.
-
로드 밸런서 수정 페이지의 절차는 환경과 연결된 로드 밸런서 유형에 따라 다릅니다.
-
Classic Load Balancer
-
리스너 추가를 선택합니다.
-
Classic Load Balancer 리스너 대화 상자에서 다음 설정을 구성합니다.
리스너 포트에서 수신 트래픽 포트(대체로
443
)를 입력합니다.리스너 프로토콜에서 HTTPS를 선택합니다.
인스턴스 포트에는
80
을 입력합니다.인스턴스 프로토콜에서 HTTP를 선택합니다.
SSL 인증서에서 해당 인증서를 선택합니다.
-
추가를 선택합니다.
-
-
Application Load Balancer
-
리스너 추가를 선택합니다.
-
Application Load Balancer 리스너 대화 상자에서 다음 설정을 구성합니다.
-
포트에서 수신 트래픽 포트(대체로
443
)를 입력합니다. -
프로토콜에서 HTTPS를 선택합니다.
-
SSL 인증서에서 해당 인증서를 선택합니다.
-
-
추가를 선택합니다.
참고
Classic Load Balancer 및 Application Load Balancer의 드롭다운 메뉴에 아무 인증서도 표시되지 않으면 AWS Certificate Manager(ACM)에서 사용자 지정 도메인 이름을 위한 인증서를 생성하거나 업로드해야 합니다(선호되는 방법). 또는 AWS CLI를 사용해 IAM에 인증서를 업로드합니다.
-
-
Network Load Balancer
-
리스너 추가를 선택합니다.
-
Network Load Balancer 리스너 대화 상자에서 포트에 대해 수신 트래픽 포트(대체로
443
)를 입력합니다. -
추가를 선택합니다.
-
-
-
변경 사항을 저장하려면 페이지 하단에서 적용을 선택합니다.
구성 파일을 사용하여 보안 리스너 구성
다음과 같은 구성 파일 중 하나를 사용하여 로드 밸런서에서 보안 리스너를 구성할 수 있습니다.
예 .ebextensions/securelistener-clb.config
환경에 Classic Load Balancer가 있는 경우 이 예제를 사용합니다. 이 예제에서는 aws:elb:listener
네임스페이스의 옵션을 사용하여 지정된 인증서로 포트 443에서 HTTPS 리스너를 구성한 후, 포트 80에서 암호가 해독된 트래픽을 환경의 인스턴스로 전달합니다.
option_settings:
aws:elb:listener:443:
SSLCertificateId: arn:aws:acm:us-east-2:1234567890123:certificate/####################################
ListenerProtocol: HTTPS
InstancePort: 80
강조 표시된 텍스트를 본인 인증서의 ARN으로 바꿉니다. 이 인증서는 AWS Certificate Manager(ACM)에서 만들어서 업로드한 것이거나(선호되는 방법) AWS CLI를 사용하여 IAM에 업로드한 것이 될 수 있습니다.
Classic Load Balancer 구성 옵션에 대한 자세한 내용은 Classic Load Balancer 구성 네임스페이스 단원을 참조하십시오.
예 .ebextensions/securelistener-alb.config
환경에 Application Load Balancer가 있는 경우 이 예제를 사용합니다. 이 예제에서는 aws:elbv2:listener
네임스페이스의 옵션을 사용하여 지정된 인증서로 포트 443의 HTTPS 리스너를 구성합니다. 이 리스너는 트래픽을 기본 프로세스로 라우팅합니다.
option_settings:
aws:elbv2:listener:443:
ListenerEnabled: 'true'
Protocol: HTTPS
SSLCertificateArns: arn:aws:acm:us-east-2:1234567890123:certificate/####################################
예 .ebextensions/securelistener-nlb.config
환경에 Network Load Balancer가 있는 경우 이 예제를 사용합니다. 예제에서는 aws:elbv2:listener
네임스페이스의 옵션을 사용하여 포트 443의 리스너를 구성합니다. 이 리스너는 트래픽을 기본 프로세스로 라우팅합니다.
option_settings:
aws:elbv2:listener:443:
ListenerEnabled: 'true'
보안 그룹 구성
포트 80 이외의 인스턴스 포트로 트래픽을 전달하도록 로드 밸런서를 구성하는 경우, 로드 밸런서에서 오는 인스턴스 포트를 통한 인바운드 트래픽을 허용하는 규칙을 보안 그룹에 추가해야 합니다. 사용자 지정 VPC에서 환경을 생성하는 경우 Elastic Beanstalk가 이 규칙을 추가합니다.
애플리케이션용 .ebextensions
디렉터리의 구성 파일에 Resources
키를 추가하여 이 규칙을 추가합니다.
다음의 예제 구성 파일에서는 AWSEBSecurityGroup
보안 그룹에 수신 규칙을 추가합니다. 이렇게 하면 로드 밸런서의 보안 그룹에서 포트 1000의 트래픽이 허용됩니다.
예 .ebextensions/sg-ingressfromlb.config
Resources:
sslSecurityGroupIngress:
Type: AWS::EC2::SecurityGroupIngress
Properties:
GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]}
IpProtocol: tcp
ToPort: 1000
FromPort: 1000
SourceSecurityGroupId: {"Fn::GetAtt" : ["AWSEBLoadBalancerSecurityGroup", "GroupId"]}