티스토리 뷰

 대용량 메일 전송하는 서비스는 비용이 많이 발생할 수 있고 안정성 등을 위해 복잡한 과정을 거쳐야 한다. 

이런 과정들을 저렴한 비용으로 구축할 수 있도록 돕는 서비스가 SES(Simple Email Service)이다. 

해당 서비스를 이용하기 위해서는 백엔드에서 SDK를 사용하여 돌리는 방법도 있지만, Lambda를 사용하여 백엔드의 비용을 줄이는 것이 좋다고 판단하여 Lambda 

 

  • AWS에서 안내하는 전체적인 과정은 여기
  • 각 서비스 별 요금 정책 SESLambda

 

 

진행 과정 

1. SES에 메일 인증 및 샌드박스 환경 벗어나기 

2. Lambda 함수 작성 및 테스트

3. Lambda 함수 배포 (이것를 수행하기 위해 API Gateway 서비스 필요)

4. curl 명령어로 최종 테스트 

 

* 이 문서에서 다루는 내용은 모두 미국 서부(오레곤, us-west-2) 리전에서 진행하도록 한다. 

 

1. SES 메일 인증 및 샌드박스 환경 벗어나기 

 - 기본적으로 SES 서비스는 샌드박스에 갇혀있는 상태. 인증된 메일끼리만 주고 받을 수 있도록 제한 되어있음. 

 - 샌드박스를 벗어나야 외부 메일 주소로 송신이 가능하고, 메일 요청 제한도 기본 (200/일)에서 늘릴 수 있음. 

 - 샌드박스를 벗어나기 위해서는 SES 서비스 - Sending Statistics 클릭 후 Request a Sending Limit Increase클릭

 - Service limit increase 선택 후 Limit type(SES Sending Limits) 지정 후 Submit

 - AWS에서 정상적으로 처리를 해 주면 (최대 24시간 소요) 샌드박스를 벗어나게 됨. 

 - Email Addresses에 보낼 메일 추가 (메일 인증이 되어야 추가 됨, 추가된 메일 계정만이 SES를 사용할 수 있음)

 

2. Lambda 함수 작성 및 테스트
 - Lambda 함수 생성( 이름, IAM 역할 생성, IAM 정책 생성 후 역할에 정책 추가 )

 - Lambda 함수 코드 작성 ( 역할 생성 및 함수 코드 예제 )

 - 테스트 케이스 작성 및 테스트 (테스트가 완료 되었다면 다음으로 진행)

 

3. Lambda 함수 배포 ( API Gateway 서비스 필요 )

 - 트리거 구성에서 API게이트웨이 선택

 - 새 API 생성, REST API 선택, 추가세팅에서 보안(API 키로 열기) 설정, API이름 및 스테이지 이름 지정 (자동으로 스테이지, API, 사용량 계획이 생성되어 붙는다)

 - API Gateway 화면 - 리소스 - [함수이름] - ANY를 선택 후 작업-메서드 삭제 

 - 작업 - 메서드 생성 (POST) -> Lambda 리전을 지정, Lambda 지정 (2번에서 작성한 Lambda함수 이름 지정)

 - 우측 화면에서 클라이언트 박스 안에 있는 테스트 버튼 클릭 후 본문 파라미터 넘겨서 테스트 (테스트가 완료 되었다면 다음으로 진행)

 

4. curl 명령어로 최종 테스트

 - curl -X POST [URL] -d [Event Parameter(JSON)] -H "x-api-key:[API key]" -H "Content-Type:application/json"

 URL : API Gateway - 스테이지 - [스테이지이름] 클릭 시 보여지는 URL

 BODY JSON Parameter : Lambda에서 받아 처리할 event 파라미터의 내용 

 API key : 자동 발급된 API 키 (API키 탭에서 키 값 표시하면 볼 수 있다)

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함