쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

AWS 로드 밸런서가 보안 리스너 프로토콜(HTTPS, SSL/TLS)을 사용하는지 확인 - 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS 로드 밸런서가 보안 리스너 프로토콜(HTTPS, SSL/TLS)을 사용하는지 확인

작성자: Chandini Penmetsa(AWS) 및 Purushotham G K(AWS)

요약

Amazon 웹 서비스(AWS) 클라우드에서 Elastic Load Balancing은 들어오는 애플리케이션 트래픽을 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스, 컨테이너, IP 주소, AWS Lambda 함수 등 여러 타겟에 자동으로 분산합니다. 로드 밸런서는 리스너를 사용하여 로드 밸런서가 사용자의 트래픽을 수락하는 데 사용하는 포트와 프로토콜을 정의합니다. Application Load Balancer는 애플리케이션 계층에서 라우팅을 결정하고 HTTP/HTTPS 프로토콜을 사용합니다. Network Load Balancer는 전송 계층에서 라우팅을 결정하며 TCP(전송 제어 프로토콜), 전송 계층 보안(TLS), UDP(사용자 데이터그램 프로토콜) 또는 TCP_UDP 프로토콜을 사용합니다. Classic Load Balancer는 TCP 또는 SSL(보안 소켓 계층) 프로토콜을 사용하여 전송 계층에서 또는 HTTP/HTTPS를 사용하여 애플리케이션 계층에서 라우팅 결정을 내립니다.

조직에는 로드 밸런서가 HTTPS 또는 SSL/TLS와 같은 보안 프로토콜에서만 사용자의 트래픽을 수락해야 한다는 보안 또는 규정 준수 요구 사항이 있을 수 있습니다.

이 패턴은 Amazon EventBridge 규칙을 사용하여 Application Load Balancer와 Network Load Balancer에 대한 CreateListenerModifyListener API 직접 호출과 Classic Load Balancer에 대한 CreateLoadBalancerListenersCreateLoadBalancer API 직접 호출을 모니터링하는 보안 제어를 제공합니다. HTTP, TCP/UDP 또는 TCP_UDP가 로드 밸런서의 리스너 프로토콜에 사용되는 경우 제어는 Lambda 함수를 호출합니다. Lambda 함수는 Amazon Simple Notification Service(SNS) 주제에 메시지를 게시하여 로드 밸런서 세부 정보가 포함된 알림을 전송합니다.

사전 조건 및 제한 사항

사전 조건 

  • 활성 상태의 AWS 계정

  • 위반 알림을 수신할 이메일 주소

  • Lambda 코드 .zip 파일을 저장하기 위한 Amazon Simple Storage Service(S3) 버킷

제한 사항

  • 이 보안 제어는 로드 밸런서 리스너를 업데이트하지 않는 한 기존 로드 밸런서를 확인하지 않습니다.

  • 이 보안 제어는 리전과 관련이 있으므로 모니터링하고자 하는 AWS 리전에 배포해야 합니다.

아키텍처

대상 기술 스택  

  • Lambda 함수

  • Amazon SNS 주제

  • EventBridge 규칙

대상 아키텍처 

로드 밸런서 API 호출을 모니터링하고 Amazon SNS 알림을 시작하는 EventBridge 규칙입니다.

자동화 및 규모 조정

  • AWS Organizations를 사용하고 있는 경우 AWS Cloudformation StackSets를 사용하여 이 템플릿을 모니터링하고자 하는 여러 계정에 배포할 수 있습니다.

도구

  • AWS CloudFormation - AWS CloudFormation은 인프라를 코드로 사용하여 AWS 리소스를 모델링하고 설정하는 데 도움이 되는 서비스입니다.

  • Amazon EventBridge - Amazon EventBridge는 자체 애플리케이션, 서비스형 소프트웨어(SaaS) 애플리케이션, AWS 서비스의 실시간 데이터 스트림을 제공하고, 해당 데이터를 Lambda 함수와 같은 대상으로 라우팅합니다.

  • AWS Lambda - Lambda는 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있습니다.

  • Amazon S3-Amazon Simple Storage Service(S3)는 웹 사이트, 모바일 애플리케이션, 백업, 데이터 레이크 등 다양한 스토리지 솔루션에 사용할 수 있는 확장성이 뛰어난 객체 스토리지 서비스입니다.

  • Amazon SNS – Amazon Simple Notification Service(SNS)는 웹 서버와 이메일 주소를 포함하여 게시자와 클라이언트 간에 메시지를 전달 또는 전송하는 것을 조정하고 관리합니다. 구독자는 구독하는 주제에 게시된 모든 메시지를 수신하며 주제에 대한 모든 구독자는 동일한 메시지를 수신합니다.

모범 사례

사용된 SNS 주제에 공개적으로 액세스할 수 없도록 하세요. 자세한 내용은 AWS 설명서를 참조하세요.

에픽

작업설명필요한 기술

S3 버킷을 정의합니다.

Amazon S3 콘솔에서 선행 슬래시를 포함하지 않는 고유한 이름을 가진 S3 버킷을 선택하거나 생성합니다. S3 버킷 이름은 전역 수준에서 고유하며, 네임스페이스는 모든 AWS 계정이 공유합니다. S3 버킷은 평가 중인 로드 밸런서와 같은 리전에 있어야 합니다.

클라우드 아키텍트

Lambda 코드를 S3 버킷에 업로드합니다.

"첨부 파일" 섹션에 나와 있는 Lambda 코드 .zip 파일을 정의된 S3 버킷에 업로드합니다.

클라우드 아키텍트

AWS CloudFormation 템플릿을 배포합니다.

AWS CloudFormation 콘솔에서 S3 버킷과 동일한 AWS 리전에 '첨부 파일' 섹션에 제공된 템플릿을 배포합니다. 다음 에픽에서는 파라미터 값을 제공하세요.

클라우드 아키텍트

Lambda 코드 업로드

작업설명필요한 기술

S3 버킷을 정의합니다.

Amazon S3 콘솔에서 선행 슬래시를 포함하지 않는 고유한 이름을 가진 S3 버킷을 선택하거나 생성합니다. S3 버킷 이름은 전역 수준에서 고유하며, 네임스페이스는 모든 AWS 계정이 공유합니다. S3 버킷은 평가 중인 로드 밸런서와 같은 리전에 있어야 합니다.

클라우드 아키텍트

Lambda 코드를 S3 버킷에 업로드합니다.

"첨부 파일" 섹션에 나와 있는 Lambda 코드 .zip 파일을 정의된 S3 버킷에 업로드합니다.

클라우드 아키텍트

AWS CloudFormation 템플릿을 배포합니다.

AWS CloudFormation 콘솔에서 S3 버킷과 동일한 AWS 리전에 '첨부 파일' 섹션에 제공된 템플릿을 배포합니다. 다음 에픽에서는 파라미터 값을 제공하세요.

클라우드 아키텍트
작업설명필요한 기술

S3 버킷에 이름을 지정합니다.

첫 번째 에픽에서 생성한 S3 버킷의 이름을 입력합니다.

클라우드 아키텍트

Amazon S3 접두사를 입력합니다.

S3 버킷의 Lambda 코드 .zip 파일 위치를 선행 슬래시 없이 입력합니다(예: <directory>/<file-name>.zip).

클라우드 아키텍트

SNS 주제 ARN을 입력합니다.

위반 알림에 기존 SNS 주제를 사용하려는 경우 SNS 주제 Amazon 리소스 이름(ARN)을 입력합니다. 새 SNS 주제를 생성하려면 값을 None (기본값)으로 유지하세요.

클라우드 아키텍트

이메일 주소를 입력합니다.

Amazon SNS 알림을 수신할 활성 이메일 주소를 입력합니다.

클라우드 아키텍트

로깅 수준을 정의합니다.

Lambda 함수의 로깅 수준 및 빈도를 정의합니다. Info는 애플리케이션 진행 상황에 대한 자세한 정보 메시지를 지정합니다. Error는 애플리케이션을 계속 실행할 수 있게 해주는 오류 이벤트를 지정합니다. Warning은 잠재적으로 유해한 상황을 지정합니다.

클라우드 아키텍트

CloudFormation 파라미터

작업설명필요한 기술

S3 버킷에 이름을 지정합니다.

첫 번째 에픽에서 생성한 S3 버킷의 이름을 입력합니다.

클라우드 아키텍트

Amazon S3 접두사를 입력합니다.

S3 버킷의 Lambda 코드 .zip 파일 위치를 선행 슬래시 없이 입력합니다(예: <directory>/<file-name>.zip).

클라우드 아키텍트

SNS 주제 ARN을 입력합니다.

위반 알림에 기존 SNS 주제를 사용하려는 경우 SNS 주제 Amazon 리소스 이름(ARN)을 입력합니다. 새 SNS 주제를 생성하려면 값을 None (기본값)으로 유지하세요.

클라우드 아키텍트

이메일 주소를 입력합니다.

Amazon SNS 알림을 수신할 활성 이메일 주소를 입력합니다.

클라우드 아키텍트

로깅 수준을 정의합니다.

Lambda 함수의 로깅 수준 및 빈도를 정의합니다. Info는 애플리케이션 진행 상황에 대한 자세한 정보 메시지를 지정합니다. Error는 애플리케이션을 계속 실행할 수 있게 해주는 오류 이벤트를 지정합니다. Warning은 잠재적으로 유해한 상황을 지정합니다.

클라우드 아키텍트
작업설명필요한 기술

템플릿을 다운로드합니다.

첨부 파일 섹션에 제공된 CloudFormation 템플릿을 다운로드하세요.

클라우드 아키텍트

스택을 생성합니다.

S3 버킷과 동일한 리전에서 CloudFormation 서비스 콘솔로 이동하여 다운로드한 템플릿을 배포합니다. 파라미터 세부 정보는 이전 서사시를 참조하세요.

클라우드 아키텍트

리소스를 확인합니다.

스택이 완전히 생성되면 리소스 탭으로 이동하여 리소스를 확인합니다. 템플릿은 다음 리소스를 만듭니다.

  • EventBridge 규칙

  • Lambda 함수

  • Lambda 실행 역할

  • Lambda 호출 권한

클라우드 아키텍트

CloudFormation 템플릿 배포

작업설명필요한 기술

템플릿을 다운로드합니다.

첨부 파일 섹션에 제공된 CloudFormation 템플릿을 다운로드하세요.

클라우드 아키텍트

스택을 생성합니다.

S3 버킷과 동일한 리전에서 CloudFormation 서비스 콘솔로 이동하여 다운로드한 템플릿을 배포합니다. 파라미터 세부 정보는 이전 서사시를 참조하세요.

클라우드 아키텍트

리소스를 확인합니다.

스택이 완전히 생성되면 리소스 탭으로 이동하여 리소스를 확인합니다. 템플릿은 다음 리소스를 만듭니다.

  • EventBridge 규칙

  • Lambda 함수

  • Lambda 실행 역할

  • Lambda 호출 권한

클라우드 아키텍트
작업설명필요한 기술

구독을 확인합니다.

템플릿이 성공적으로 배포되면 새 SNS 주제가 생성되면 파라미터에 제공된 이메일 주소로 구독 이메일 메시지가 전송됩니다. 위반 알림을 받으려면 이 이메일 구독을 확인해야 합니다.

클라우드 아키텍트

구독 확인

작업설명필요한 기술

구독을 확인합니다.

템플릿이 성공적으로 배포되면 새 SNS 주제가 생성되면 파라미터에 제공된 이메일 주소로 구독 이메일 메시지가 전송됩니다. 위반 알림을 받으려면 이 이메일 구독을 확인해야 합니다.

클라우드 아키텍트

문제 해결

문제Solution

스택 생성이 실패했습니다. GetObject를 수행하는 동안 오류가 발생했습니다. S3 오류 코드: PermanentRedirect. S3 오류 메시지: 버킷이 xx-xxxx-1 리전에 있습니다. 이 리전을 사용하여 요청을 다시 시도하세요.

S3 버킷 리전과 스택이 배포되는 리전이 동일한지 확인하세요.

스택 생성이 실패했습니다. python3.6의 런타임 파라미터는 AWS Lambda 함수를 생성 또는 업데이트하는 데 더 이상 지원되지 않습니다.

186행에서 다운로드한 템플릿을 Python 버전 3.6에서 3.9로 업데이트합니다.

관련 리소스

첨부

이 문서와 관련된 추가 콘텐츠에 액세스하려면 attachment.zip 파일의 압축을 풉니다.

프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.