AWS의 SES (Simple Email Service) 서비스는 별도의 SMTP 서버 구축 없이 Outbound 이메일을 전송할 수 있는 서비스입니다. 저렴한 비용으로 대량의 이메일을 전송할 수 있으며, 발송한 이메일의 수에 따라(데이터 전송 비용 별도) 요금이 부과되므로 적은 부담으로 서비스를 이용할 수 있습니다.

BounceRate란?

AWS SES는 BounceRate라는 수치를 관리하고 있습니다. BounceRate는 단어 그대로 반송률을 의미하는 것으로 전체 전송되는 메일 수에서 얼마나 메일이 반송되었는지 그 비율을 나타냅니다. AWS에서는 메일의 반송률이 높아질 경우 계정을 검토하거나 메일 전송 기능을 일시 중지 할 수 있습니다. 메일 서비스를 안정적으로 유지/운영하기 위해서는 BounceRate에 대한 꾸준한 관리가 중요합니다.

BounceRate를 모니터링 할 수 있나요?

AWS SES 서비스의 Reputation Dashboard 메뉴에서 BounceRate 수치를 확인할 수 있습니다. 아래 스크린샷 이미지는 Reputation Dashboard 메뉴에서 볼 수 있는 BounceRate 수치입니다.

위 이미지에서는 Account Status를 HEALTHY로 표현하고 있습니다. SES에서 관리하고 있는 Status는 아래와 같습니다.

  • Healthy : 메트릭이 정상 수준입니다.
  • Almost healed : 계정이 검토 중이나 검토 기간이 시작된 이후로 메트릭이 일정 수준 이하로 유지되고 있기 때문에 곧 정상으로 변경될 수 있습니다.
  • Under Review : 검토 요청에 의하여 계정이 검토 중이며, 검토 기간이 끝날 때까지 일정 수준 이하로 유지되지 않으면 계정의 메일 전송 기능이 일시 중지될 수 있습니다.
  • Sending Pause : 계정의 메일 전송 기능이 일시 중지되었습니다. 해당 상태를 해제하기 위해서는 BounceRate 수치를 일정 수준 이하로 유지한 후 SES 팀에 검토 요청을 진행해야 합니다.
  • Pending Sending Pause : BounceRate가 높은 수준으로 유지 중이기 때문에 계정이 검토 중입니다. 아직 문제가 해결된 것이 아니기 때문에 문제를 해결하여야 하며, 문제가 해결되지 않으면 계정의 메일 전송 기능이 일시 중지될 수 있습니다.

다만 Reputation Dashboard는 BounceRate 수치가 일정 수준 이상 상승했을 때 사용자에게 알림을 전송하지는 않기 때문에 CloudWatch를 이용하여 임계값을 설정하고 AlertNow 서비스를 이용하여 알림을 받는 것이 좋습니다.

AWS에서는 반송 메일 발생률을 5% 미만으로 유지할 것을 권장합니다. 그렇기 때문에 CloudWatch의 임계값을 5%로 설정하거나 좀 더 선제적으로 관리하고 싶다면 3% 정도로 설정하는 것이 좋습니다. CloudWatch의 임계치를 설정하는 방법은 다음 링크를 참조하세요. (바로가기)

BounceRate를 낮추는 방법

BounceRate를 낮추는 가장 확실한 방법은 반송되는 메일이 없도록 하는 것입니다. 반송된 메일의 원인을 제거하여 반송되지 않도록 하거나 반송되는 메일 주소를 격리 처리하여 해당 메일로 전송 요청을 수행하지 않도록 하는 것이 하나의 방법입니다.

우선 반송되는 메일에 대해 처리할 수 있는 방법은 수동으로 진행하는 방법과 자동으로 진행하는 방법으로 나눌 수 있습니다. 수동으로 진행하는 방법은 반송되는 메일을 메일함에서 직접 확인하여 해당 주소로 메일을 더 이상 전송하지 못하도록 메일 발신 규칙 등에서 제거하는 방법입니다.

아래는 반송되는 메일을 확인할 수 있는 메일함입니다.

SES를 사용하여 메일을 전송하는 경우 발신용 이메일 주소를 등록하여 사용하셨을 것입니다. 해당 발신 메일 주소에 로그인하여 확인해보면 반송된 이메일을 확인할 수 있습니다. 메일 내용을 통해 어떤 이메일 주소로 메일을 발송하였고 반송이 되었는지를 직접 확인할 수 있는데 이 내용을 확인후 직접 메일 전송 규칙을 수정하여 해당 메일 주소로 메일을 보내지 않도록 처리할 수 있습니다.

이렇게 수동으로 메일 주소를 제거하는 방법으로 BounceRate를 낮출 수도 있지만 이를 자동화하여 처리할 수도 있습니다. 반송 메일에 대해 어떻게 자동화하여 수집하고 처리할 수 있는지는 다음 AWS 블로그 글을 참고하세요. (바로가기)

이를 응용하면 수집한 반송 메일 주소로 다시 메일이 전송되지 않도록 프로그램을 구현할 수 있습니다.

마치며

SES BounceRate 관리는 비율이 상승했을 때 조치도 중요하지만 예방이 더욱 더 중요합니다. 메일 서비스가 어느 순간 갑자기 먹통이 되지 않도록 BounceRate를 항시 모니터링하고 반송되는 메일에 대한 전략을 강구하여 안정적인 메일 서비스를 제공할 수 있도록 노력해야 할 것입니다.

출처

  1. AWS Document : Amazon SES를 사용하여 전송하는 이메일의 높은 반송률을 처리하려면 어떻게 해야 합니까?
  2. AWS Document : 평판 대시보드를 사용하여 Amazon SES 반송 메일 발생률이 높아지는 시점을 알아내려면 어떻게 해야 합니까?
  3. AWS Document : 바운스 액션