$30 off During Our Annual Pro Sale. View Details »

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

Takafumi Omuro
September 20, 2023

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.
    Amazon SES のバウンス率が急上昇
    〜Amazon SES を止めてしまった日〜
    株式会社モリサワ
    システム開発部門 小室 貴史

    View Slide

  2. © Morisawa Inc.
    アジェンダ
    1
    • 自己紹介
    • 株式会社モリサワの紹介
    • Backend アーキテクチャ
    • Amazon Simple Email Service
    • 復旧作業
    • まとめ

    View Slide

  3. © Morisawa Inc.
    自己紹介
    名前:小室 貴史
    所属:株式会社モリサワ
    システム開発部門 シニアテックマネージャー
    仕事:テックリード、 インフラエンジニア
    好きな Amazon Web Services サービス:
    CloudFormation
    趣味:バイク
    2
    サーキットで YZF-R1 に跨る本人

    View Slide

  4. © Morisawa Inc.
    3

    View Slide

  5. © Morisawa Inc.
    株式会社モリサワ
    画期的な発明から間もなく100年
    これからも文字を通じて社会に貢献します
    4
    1924年 写真の原理で文字を現して組む方法を
    世界に先駆けて発明し「邦文写真植字機」を特許申請

    View Slide

  6. © Morisawa Inc.
    フォント販売方法も変革
    物理媒体からクラウドへ
    5
    2005年
    MORISAWA PASSPORT
    パッケージ
    サブスクリプション
    2002年
    OpenTypeフォント
    パッケージ 売り切り
    2022年
    Morisawa Fonts
    クラウド
    サブスクリプション

    View Slide

  7. © Morisawa Inc.
    6 © Morisawa Inc.
    Backend アーキテクチャ

    View Slide

  8. © 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
    ※主要なサービスのみ記載しております

    View Slide

  9. © 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
    ※主要なサービスのみ記載しております

    View Slide

  10. © Morisawa Inc.
    9 © Morisawa Inc.
    Amazon Simple Email Service

    View Slide

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

    View Slide

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

    View Slide

  13. © 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
    📣トラブってるでー
    ※主要なサービスのみ記載しております

    View Slide

  14. © Morisawa Inc.
    Amazon SES アラート発生
    13
    同時に AWS からもメールがくる
    • 「Amazon SES Immediate Bounce Sending Pause」
    • SES が止められたというメール
    • Slack の致命的なエラーチャンネルに通知

    View Slide

  15. © Morisawa Inc.
    Amazon SES アラート発生
    14
    SES のダッシュボード確認
    • バウンス率急上昇

    View Slide

  16. © Morisawa Inc.
    Amazon SES アラート発生
    15
    要因を確認
    • 不正な Gmail が大量送信されている

    View Slide

  17. © Morisawa Inc.
    Amazon SES アラート発生
    16
    要因を確認
    • 不正な Gmail が大量送信されている
    → 開発環境のテストで存在しないメールを使った

    View Slide

  18. © Morisawa Inc.
    17 © Morisawa Inc.
    システムをメンテモードにして復旧開始

    View Slide

  19. © 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 の担当営業にも連絡
    • サポートチームへのエスカレーション依頼

    View Slide

  20. © 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 の担当営業にも連絡
    • サポートチームへのエスカレーション依頼

    View Slide

  21. © Morisawa Inc.
    20 © Morisawa Inc.
    2〜3日は無理

    View Slide

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

    View Slide

  23. © Morisawa Inc.
    Amazon SES 復旧作業
    22
    違うメールサービスを利用
    • 別のサービスでは SendGrid を採用していた
    • SES の代替手段として利用できそう
    • すでに開発経験があるのでなんとかなりそう
    • 急いで切り替え対応を開始

    View Slide

  24. © Morisawa Inc.
    23 © Morisawa Inc.
    並行して作業を進めていると

    View Slide

  25. © 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時間ぐらいで復旧

    View Slide

  26. © 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

    View Slide

  27. © Morisawa Inc.
    26 © Morisawa Inc.
    まとめ

    View Slide

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

    View Slide

  29. © Morisawa Inc.
    ありがとうございました
    採用情報はこちら
    https://www.morisawa.co.jp/about/recruit/

    View Slide