AWS SES를 활용한 이메일 서비스 구축하기 - 1
tech
AWS SES(Amazon Simple Email Service) 는 이메일 전송, 수신을 구성할 수 있는 서비스입니다.
이메일을 전송하거나 수신하는 양이 많지 않다면 비용도 부담되지 않습니다.
개인 도메인이나 비즈니스용 도메인을 가지고 있고 이메일 주소를 만들고자 한다면,
Google Workspace(이전 G suite), 혹은 다른 이메일 서버를 구축해주는 서비스를 이용하거나 AWS SES를 이용할수 있습니다.
하지만 AWS SES를 사용하려면 DNS 설정이나 AWS S3와 같은 내용에 조금 익숙할 필요가 있습니다.
따라서 기본 지식이 있는 상태라면 구축을 해서 사용하는 것도 나쁘지 않고 AWS를 다뤄본 사람이 없거나
1분 1초가 급한 스타트 업이라면 빠르게 기능과 비용을 비교해보고 다른 이메일 솔루션을 사용하는 것이 나쁘지 않은 판단이 될 수 있습니다.
AWS SES 설정하기
Region 선택 서울 리전을 선택하면 Email Receiving 기능을 사용할 수가 없습니다.(글 작성일 기준) Email Receiving 셋팅을 통해 외부 이메일 클라이언트로 포워딩하여 이메일을 수신 해야하는데 이 메뉴가 활성화 되어있지 않은 경우 다른 방법을 사용해야 합니다. (S3에서 이에일 수신 등)
또한 SES의 Sandbox를 해제해야 하는데 다른 리전에서 해제 후 다시 요청할 경우 그 과정이 매우 번거로워집니다.
도메인 인증 Verify a New Domain
을 클릭합니다. Domain 필드에 사용할 도메인을 입력한 뒤 하단에 Generate DKIM Settings
를 체크하고 Verify This Domain
을 선택합니다.
DKIM(DomainKeys Identified Mail)은 발신자의 이메일이 전송 중에 타인에 의해서 수정되는 것을 방지 할 수 있게 발신자의 메시지에 암호화 키를 사용하여 서명할 수 있게 한다. 또한 DKIM 설정을 선택하고 도메인을 인증하려면 DNS 설정을 수정해야 합니다.
이제 Verify This Domain
을 클릭하면 DNS 설정을 위한 내용이 나타납니다.
도메인 인증을 위한 TXT Record, DKIM 인증을 위한 CNAM Record,
Email 수신을 위한 MX Record를 도메인 공급자 DNS 설정에서 모두 입력해주시면 됩니다.
DNS 설정을 완료하고 다시 AWS SES 메인화면으로 돌아오면 아래와 같이 상태가 verified로 변경되어 도메인 인증이 완료된 것을 알 수 있습니다.
Sandbox 해제하기
도메인 인증을 완료하고 좌측의 Email Sending 하위 메뉴의 Sending Statistics에 들어가면 Sandbox 상태로 바뀌어 있습니다.
24시간 이내 보낼 수 있는 메일이 200개로 제한되어 있고 사전에 이메일 주소를 등록한 이메일이 아니면 이메일을 보낼 수 없기 때문에 Case를 열어서 Sandbox 해제를 요청하고 Limits 증가를 요청해야 합니다.
우측에 Additional Information 항목에서 "Request Increased Sending Limits"
항목을 클릭하면
바로 Sandbox를 해제하기 위한 케이스를 만들 수 있고 Limit type 케이스를 아래와 같이 선택하면 됩니다.
처음 SES 설정을 시작할 때 설정한 Region을 선택합니다. 그리고 Limit를 항목은 Desired Maximum Send Rate를 선택 후, Case description에는 Sandbox 해제에 대한 이유를 아래처럼 입력해야 합니다.
Receiving e-mail addresses are collected with the consent of the user- Bounce mail is changed or deleted after the system administrator checks the reason for the return. Complaints are received and handled through email, bulletin board, or wireline. The increased capacity specified in the above request was calculated in anticipation of the maximum.
만약 이유를 입력하지 않으면 요청이 거절될 수 있습니다. 마지막으로 Submit을 클릭하여 요청을 완료하면 24시간 안에 승인 이메일을 받을 수 있습니다.
SMPT Setting하기
다시 SES로 돌아와서 SMTP Settings 메뉴를 클릭합니다.
SMTP Setting을 위한 Sever name, Port에 대한 정보가 있는데 하단의 "Create My SMTP Credentials" 버튼을 클릭하면 SMTP 사용자 이름과 비밀번호를 생성할 수 있습니다. 해당 내용은 잘 저장해 두고 추후 이메일 클라이언트에 연결하기 위해 사용하게 됩니다.
AWS SES를 사용하기 위해서 Domain 주소를 인증하고 Sandbox 해제 요청과 SMTP Setting까지 완료하였습니다.
이후에는 반송 이메일에 대한 피드백과 반송률에 대한 Health 체크를 위해 AWS SNS 설정, 수신한 이메일을 포워딩하기 위한 AWS S3와 AWS Lambda 설정을 해야 합니다.
Reference