티스토리 뷰
대용량 메일 전송하는 서비스는 비용이 많이 발생할 수 있고 안정성 등을 위해 복잡한 과정을 거쳐야 한다.
이런 과정들을 저렴한 비용으로 구축할 수 있도록 돕는 서비스가 SES(Simple Email Service)이다.
해당 서비스를 이용하기 위해서는 백엔드에서 SDK를 사용하여 돌리는 방법도 있지만, Lambda를 사용하여 백엔드의 비용을 줄이는 것이 좋다고 판단하여 Lambda
진행 과정
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
- 프로가드
- mac command
- ReactNative 한글
- HTML
- Gif
- WKwebview
- zip
- cocoapods
- env: python
- uicollecionview
- local
- TextInput 한글
- multidex
- idea
- DEX
- F
- multiple commands produce
- Monterey
- proguard
- 12.5
- png
- idea command
- jpeg
- Podfile
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |