Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Amazon SES のバウンス率が急上昇 〜Amazon SES を止めてしまった日〜

Amazon SES のバウンス率が急上昇 〜Amazon SES を止めてしまった日〜

nakanoshima.dev #34 - 開発しくじり先生 LT会
「Amazon SES のバウンス率が急上昇 〜Amazon SES を止めてしまった日〜」
の資料になります。
https://nakanoshima-dev.connpass.com/event/293381/

Takafumi Omuro

September 20, 2023
Tweet

More Decks by Takafumi Omuro

Other Decks in Technology

Transcript

  1. © Morisawa Inc. アジェンダ 1 • 自己紹介 • 株式会社モリサワの紹介 •

    Backend アーキテクチャ • Amazon Simple Email Service • 復旧作業 • まとめ
  2. © Morisawa Inc. 自己紹介 名前:小室 貴史 所属:株式会社モリサワ システム開発部門 シニアテックマネージャー 仕事:テックリード、

    インフラエンジニア 好きな Amazon Web Services サービス: CloudFormation 趣味:バイク 2 サーキットで YZF-R1 に跨る本人
  3. © Morisawa Inc. フォント販売方法も変革 物理媒体からクラウドへ 5 2005年 MORISAWA PASSPORT パッケージ

    サブスクリプション 2002年 OpenTypeフォント パッケージ 売り切り 2022年 Morisawa Fonts クラウド サブスクリプション
  4. © Morisawa Inc. Backend アーキテクチャ(SES 利用時代) 7 AWS Fargate で

    GraphQL サーバーを稼働 AWS Cloud ユーザー Amazon Route 53 Elastic Load Balancing AWS WAF Amazon Aurora Amazon DynamoDB Amazon CloudWatch Alarm Logs Amazon Simple Noti?cation Service (Amazon SNS) AWS Chatbot AWS CodeBuild AWS CodePipeline Amazon Elastic Container Registry (Amazon ECR) AWS Fargate Amazon SES Slack ※主要なサービスのみ記載しております
  5. © Morisawa Inc. Backend アーキテクチャ(SES 利用時代) 8 AWS Fargate で

    GraphQL サーバーを稼働 AWS Cloud ユーザー Amazon Route 53 Elastic Load Balancing AWS WAF Amazon Aurora Amazon DynamoDB Amazon CloudWatch Alarm Logs Amazon Simple Noti?cation Service (Amazon SNS) AWS Chatbot AWS CodeBuild AWS CodePipeline Amazon Elastic Container Registry (Amazon ECR) AWS Fargate Amazon SES 今日の主役です! Slack ※主要なサービスのみ記載しております
  6. © Morisawa Inc. Amazon Simple Email Service(Amazon SES) • SMTP

    サーバーを準備しなくてもメール送信ができる • SPAM 送信に利用させないために評判メトリクスという機能がある • 過去のバウンス率と苦情率がモニタリングされている • 一定のしきい値を超えるとサービスが止められることがある • リージョンごとに計測される • 本番環境と開発環境を同じ AWS で構築していると… 10 E メールプラットフォーム
  7. © Morisawa Inc. Amazon Simple Email Service(Amazon SES) • SMTP

    サーバーを準備しなくてもメール送信ができる • SPAM 送信に利用させないために評判メトリクスという機能がある • 過去のバウンス率と苦情率がモニタリングされている • 一定のしきい値を超えるとサービスが止められることがある • リージョンごとに計測される • 本番環境と開発環境を同じ AWS で構築していると… 11 E メールプラットフォーム → 開発環境での失敗が本番環境に影響する
  8. © Morisawa Inc. Backend アーキテクチャ(SES 利用時代) 12 とある日、Slack へアラート通知が届く AWS

    Cloud ユーザー Amazon Route 53 Elastic Load Balancing AWS WAF Amazon Aurora Amazon DynamoDB Amazon CloudWatch Alarm Logs Amazon Simple Noti?cation Service (Amazon SNS) AWS Chatbot AWS CodeBuild AWS CodePipeline Amazon Elastic Container Registry (Amazon ECR) AWS Fargate Amazon SES Slack 📣トラブってるでー ※主要なサービスのみ記載しております
  9. © Morisawa Inc. Amazon SES アラート発生 13 同時に AWS からもメールがくる

    • 「Amazon SES Immediate Bounce Sending Pause」 • SES が止められたというメール • Slack の致命的なエラーチャンネルに通知
  10. © Morisawa Inc. Amazon SES アラート発生 16 要因を確認 • 不正な

    Gmail が大量送信されている → 開発環境のテストで存在しないメールを使った
  11. © Morisawa Inc. Amazon SES 復旧作業 18 SES の復旧依頼 •

    AWS のサポートセンターにケースが存在している • 3つの質問に回答する必要がある • What caused your high bounce rate? • What changes have you made in your email-sending systems or processes? • How do these changes ensure that the issue won’t occur again in the future? • 日本のサポートセンターにもケースを作成 • 電話での連絡をお願いし口頭で説明 • AWS Japan の担当営業にも連絡 • サポートチームへのエスカレーション依頼
  12. © Morisawa Inc. Amazon SES 復旧作業 19 SES の復旧依頼 →

    有識者にどれぐらいで復旧するか聞くと2〜3日くらいと • AWS のサポートセンターにケースが存在している • 3つの質問に回答する必要がある • What caused your high bounce rate? • What changes have you made in your email-sending systems or processes? • How do these changes ensure that the issue won’t occur again in the future? • 日本のサポートセンターにもケースを作成 • 電話での連絡をお願いし口頭で説明 • AWS Japan の担当営業にも連絡 • サポートチームへのエスカレーション依頼
  13. © Morisawa Inc. Amazon SES 復旧作業 21 違うアカウントの SES を借りる

    • 同じドメインを利用したシステムを違う AWS アカウントで作成していた • こちらのアカウントの SES を間借りすれば一時しのぎできそう • 当社管理アカウントではなかった • 参照権限しか持ってなかったので触ることができない • 権限を貰えないか依頼 • 連絡を待つ
  14. © Morisawa Inc. Amazon SES 復旧作業 22 違うメールサービスを利用 • 別のサービスでは

    SendGrid を採用していた • SES の代替手段として利用できそう • すでに開発経験があるのでなんとかなりそう • 急いで切り替え対応を開始
  15. © Morisawa Inc. Amazon SES 復旧 24 AWS より待望のメールが •

    We recently created a case in the AWS Support Center related to your SES account. In this case, we informed you that your account was subject to a review period or a sending pause. The issue that caused us to place your account under review or pause your ability to send email is now resolved. → 結果的に6.5時間ぐらいで復旧
  16. © Morisawa Inc. Backend アーキテクチャ 25 その後、SendGrid へ移行しました AWS Cloud

    ユーザー ※主要なサービスのみ記載しております Amazon Route 53 Elastic Load Balancing AWS WAF Amazon Aurora Amazon DynamoDB Amazon CloudWatch Alarm Logs Amazon Simple Noti?cation Service (Amazon SNS) AWS Chatbot AWS CodeBuild AWS CodePipeline Amazon Elastic Container Registry (Amazon ECR) AWS Fargate Slack SendGrid
  17. © Morisawa Inc. まとめ 27 • バウンスメールには気をつける • 存在しないメールアドレスは利用しない •

    IT リテラシーを高める • example.com を利用する • テスト用メールアドレスの準備 • 開発環境はホワイトリスト化によるメール送信制限 • SES の DR 対策 • AWS の環境は本番とそれ以外は分離する • SendGrid など代替手段の検討