Amazon Simple Email Service(SES)를 사용하여 Amazon Virtual Private Cloud(VPC) 내에 있는 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스 또는 AWS Lambda 함수에서 이메일을 전송하려고 합니다.
간략한 설명
기본적으로 Amazon VPC에 배포하는 Amazon EC2 인스턴스 및 Lambda 함수는 인터넷에 직접 액세스할 수 없습니다. 이메일을 보내려면 Amazon SES API가 Amazon SES 서비스와 통신하기 위한 아웃바운드 인터넷 연결이 필요합니다.
해결 방법
Amazon VPC 엔드포인트에서 Amazon SES SMTP 인터페이스 사용
Amazon SES Simple Mail Transfer Protocol(SMTP) 인터페이스를 사용하여 이메일을 전송하려면 다음 단계를 완료하십시오.
- Amazon VPC에서 Amazon SES SMTP 서비스를 위한 새 Amazon VPC 엔드포인트를 생성합니다.
참고: Amazon VPC 엔드포인트는 AWS 리전 간 요청을 지원하지 않습니다. API 호출을 발행하려는 동일한 리전에 엔드포인트를 생성하십시오.
- 인스턴스 또는 Lambda 함수의 액세스 제어 목록(ACL)이 Amazon SES SMTP 엔드포인트로의 아웃바운드 트래픽을 허용하는지 확인합니다. Lambda 함수를 사용하는 경우 Amazon SES SMTP 엔드포인트를 Lambda 함수와 동일한 서브넷에 연결했는지 확인하십시오.
- SMTP 프로토콜을 사용하고 Amazon SES SMTP 엔드포인트에 연결하도록 애플리케이션을 업데이트합니다.
인터넷에 Amazon SES API 연결
전제 조건: 인스턴스 역할 또는 Lambda 실행 역할에 ses:SendEmail 및 ses:SendRawEmail 권한이 있는지 확인하십시오. 또한 이메일 주소 ID 또는 도메인 ID도 확인하십시오.
Amazon SES API를 사용하려면 프라이빗 서브넷에서 인터넷에 액세스할 수 있도록 퍼블릭 서브넷에서 NAT 게이트웨이를 설정하십시오. 또한 프라이빗 서브넷에서 인터넷 트래픽을 전달하도록 프록시 서버를 퍼블릭 서브넷에 배포 및 구성할 수 있습니다.
그런 다음, Amazon SES SMTP 엔드포인트에 대한 연결을 테스트하십시오.
참고: 기본적으로 Amazon EC2는 모든 인스턴스의 SMTO 포트 25에서 아웃바운드 트래픽을 제한합니다.
관련 정보
Amazon SES SMTP 인터페이스를 사용하여 이메일 전송
Lambda 함수에 Amazon VPC의 리소스에 대한 액세스 권한 부여
Amazon SES의 SMTP 연결 또는 시간 초과 문제를 해결하려면 어떻게 해야 합니까?