AWS로 시작하는 인프라 구축의 정석 리뷰5(11장 메일서버 준비하기)

신창호·2023년 8월 7일
0

aws책리뷰

목록 보기
5/8

📨 메일

구성 요소

항목설명
송신자메일을 보내는 사람의 메일 주소
수신자메일을 받는 사람의 메일 주소
제목메일 제목으로, 메일 목록을 표시할 때 주로 이용
본문메일본문
첨부파일이미지 파일이나 워드 파일 등 메일에 첨부된 파일



전송 시스템

  • 1 : 앨리스가 자신이 속한 메일 서버에 밥을 수신자로 한 메일 송신을 요청
  • 2 : 수신지인 밥의 메일 서버를 검색 후 해당 메일 서버에 메일 전송
  • 3 : 도착한 메일은 수신지 메일 서버의 밥 메일함에 저장
  • 4 : 밥이 자신의 메일함 확인

메일 프로토콜

사양프로토콜
메일송신SMTP(Simple Mail Transfer Protocol)
메일수신POP3(Post Office Protocol Version 3)
IMAP4(Internet Message Access Protocol Version4)
  • SMTP : 송신한 메일이 수신자의 메일함에 도착하기까지의 과정을 담당 (1~3)
  • POP3, IMPAP4: : 수신자가 메일함에 있는 메일을 읽는 부분을 담당

POP3와 IMAP4비교

가장 큰 차이점은 도작한 메일이 저장되는 위치이다.

  • POP3 : 사용자의 기기로 이메일을 다운로드하여 읽는 프로토콜
    • 메일 소프트웨어에 따라 메일함 안의 메일을 로컬 컴퓨터에 내려받는다.
    • 한번 내려받은 뒤에는 네트워크에 연결되지 않은 상태에서도 메일을 읽을 수 있다
    • 하지만 다른 컴퓨터에서는 읽을 수 없다.
  • IMAP4 : 서버에서 이메일을 읽는 프로토콜
    • 브라우저 등을 이용해 직접 메일함의 메일을 읽는다.
    • 인터넷에 연결되어 있기만 하면 어떤 컴퓨터에서나 메일을 읽을 수 있다
    • 인터넷이 연결되지 않으면 읽을 수 없다.
  • POP3는 로컬 컴퓨터의 하드 디스크에 여유가 있는 한 계속 저장할 수 있지만, IMAP4는 메일함의 상한선 용량까지만 저장할 수 있어 주의가 필요했다.






☁️ SES

  • AWS에서 메일 송수신 기능을 제공하는 매니지드 서비스 (SES)Simple Email Service
  • 당연히 애플리케이션에서 메일을 송수신하는데 활용하기 좋은 기능이다.

메일 송신

과거의 메일 송신

  • 과거의 메일 서버에서는 우선 조직에 소속된 많은 사용자를 메일 서버에 등록한다.
  • 해당 사용자가 메일 서버에 SMTP로 접속해 메일을 송신한다.
    • 접속할 때는 사용자가 ID와 PW를 입력

SES의 메일 송신

  • 송신할 때 사용하는 특별한 계정을 만든다.
  • IAM 사용자로 등록하고 해당 IAM 사용자를 이용해 메일을 송신한다.

이때 IAM 사용자를 이용한 SES연결시 인증방법 2가지

  • SES API
    • 직접 SES와 데이터를 주고받는 방법
    • 프로그램 언어용 SDK와 AWS 커맨드라인 인터페이스를 이용해 메일을 송신할 수 있다.
  • SES API SMTP 인터페이스
    • 일반적인 메일 서버방식

메일 수신

  • SES에서는 POP3, IMAP4와 같은 프로토콜을 제공하지 않는다.

  • 대신 메일을 수신 했을 때 Action(액션) 이라 불리는 처리를 실행한다.

  • 이 액션을 이용해 애플리케이션에서 제공하는 커스텀API를 실행할 수 있으므로 사용자로부터 도착한 메일을 실시간으로 처리할 수 있다.

수신시 액션 목록

액션설명
S3 액션도착한 메일을 S3에 저장
SNS 액션도착한 메일을 Amazon SNS 토픽에 공개
Lambda 액션Lambda 함수를 실행
Bounce 액션송신자에게 바운스 응답을 반환
Stop 액션도착한 메일을 무시
  • SNS액션을 등록해두면 고객으로부터 송신때 사용한 메일서버로 메일이 받았을 때 관리자에게 메일이나 휴대전화의 푸시 알림을 보낼 수 있거나 Lambda 액션을 등록해두면 애플리케이션의 커스텀 API를 호출할 수 있다.
  • 하지만, SES에서는 POP3,IMAP4와 같은 수신 프로토콜을 제공하지 않기 때문에, 관리자가 메일을 수동으로 대응할 수 없다.
    • 그래서 액션기능을 활용해 소위 고객 관리 시스템(CRM)과 연동해 사용한다.



SES를 생성하는 리전

SES를 생성하는 리전에 주의해야한다.

  • 서울 리전에서는 2020년 7월부터 SES를 이용할 수 있게 되었으나, 2022년 3월 기준 현재 송신 기능만 이용할 수 있다.
  • 보통 미국 동부(버지니아 북부)리전은 왠만한 기능을 다 이용할 수 있다.

샌드박스

  • 외부에 영향을 주지 않도록 격리된 환경을 말한다.

  • SES를 생성한 초기시점에 악용을 방지하기 위해 샌드박스 내부에 위치하는데, 제약이 있다.

    • 메일 송신 대상지는 검증된 주소로만 한정된다.
    • 메일 송신지는 검증된 주소 또는 등록한 도메인으로만 한정된다.
    • 송수신할 수 있는 메일 건수가 200건/24시간 또는 1건/1초로 제한된다.
  • 위 제약조건을 해제하고 샌드박스 외부로 SES를 이동하려면 AWS 지원센터로 요청해야된다.

    ✂️ 실습

profile
한단계씩 올라가는 개발자

1개의 댓글

comment-user-thumbnail
2023년 8월 7일

좋은 글 감사합니다.

답글 달기