nakanoshima.dev #34 - 開発しくじり先生 LT会 「Amazon SES のバウンス率が急上昇 〜Amazon SES を止めてしまった日〜」 の資料になります。 https://nakanoshima-dev.connpass.com/event/293381/
© Morisawa Inc.Amazon SES のバウンス率が急上昇〜Amazon SES を止めてしまった日〜株式会社モリサワシステム開発部門 小室 貴史
View Slide
© Morisawa Inc.アジェンダ1• 自己紹介• 株式会社モリサワの紹介• Backend アーキテクチャ• Amazon Simple Email Service• 復旧作業• まとめ
© Morisawa Inc.自己紹介名前:小室 貴史所属:株式会社モリサワシステム開発部門 シニアテックマネージャー仕事:テックリード、 インフラエンジニア好きな Amazon Web Services サービス:CloudFormation趣味:バイク2サーキットで YZF-R1 に跨る本人
© Morisawa Inc.3
© Morisawa Inc.株式会社モリサワ画期的な発明から間もなく100年これからも文字を通じて社会に貢献します41924年 写真の原理で文字を現して組む方法を世界に先駆けて発明し「邦文写真植字機」を特許申請
© Morisawa Inc.フォント販売方法も変革物理媒体からクラウドへ52005年MORISAWA PASSPORTパッケージサブスクリプション2002年OpenTypeフォントパッケージ 売り切り2022年Morisawa Fontsクラウドサブスクリプション
© Morisawa Inc.6 © Morisawa Inc.Backend アーキテクチャ
© Morisawa Inc.Backend アーキテクチャ(SES 利用時代)7AWS Fargate で GraphQL サーバーを稼働AWS Cloudユーザー Amazon Route 53 Elastic LoadBalancingAWS WAF Amazon Aurora Amazon DynamoDBAmazon CloudWatchAlarmLogs Amazon Simple Noti?cationService (Amazon SNS)AWS ChatbotAWS CodeBuild AWS CodePipelineAmazon ElasticContainer Registry(Amazon ECR)AWS FargateAmazon SESSlack※主要なサービスのみ記載しております
© Morisawa Inc.Backend アーキテクチャ(SES 利用時代)8AWS Fargate で GraphQL サーバーを稼働AWS Cloudユーザー Amazon Route 53 Elastic LoadBalancingAWS WAF Amazon Aurora Amazon DynamoDBAmazon CloudWatchAlarmLogs Amazon Simple Noti?cationService (Amazon SNS)AWS ChatbotAWS CodeBuild AWS CodePipelineAmazon ElasticContainer Registry(Amazon ECR)AWS FargateAmazon SES今日の主役です!Slack※主要なサービスのみ記載しております
© Morisawa Inc.9 © Morisawa Inc.Amazon Simple Email Service
© Morisawa Inc.Amazon Simple Email Service(Amazon SES)• SMTP サーバーを準備しなくてもメール送信ができる• SPAM 送信に利用させないために評判メトリクスという機能がある• 過去のバウンス率と苦情率がモニタリングされている• 一定のしきい値を超えるとサービスが止められることがある• リージョンごとに計測される• 本番環境と開発環境を同じ AWS で構築していると…10E メールプラットフォーム
© Morisawa Inc.Amazon Simple Email Service(Amazon SES)• SMTP サーバーを準備しなくてもメール送信ができる• SPAM 送信に利用させないために評判メトリクスという機能がある• 過去のバウンス率と苦情率がモニタリングされている• 一定のしきい値を超えるとサービスが止められることがある• リージョンごとに計測される• 本番環境と開発環境を同じ AWS で構築していると…11E メールプラットフォーム→ 開発環境での失敗が本番環境に影響する
© Morisawa Inc.Backend アーキテクチャ(SES 利用時代)12とある日、Slack へアラート通知が届くAWS Cloudユーザー Amazon Route 53 Elastic LoadBalancingAWS WAF Amazon Aurora Amazon DynamoDBAmazon CloudWatchAlarmLogs Amazon Simple Noti?cationService (Amazon SNS)AWS ChatbotAWS CodeBuild AWS CodePipelineAmazon ElasticContainer Registry(Amazon ECR)AWS FargateAmazon SESSlack📣トラブってるでー※主要なサービスのみ記載しております
© Morisawa Inc.Amazon SES アラート発生13同時に AWS からもメールがくる• 「Amazon SES Immediate Bounce Sending Pause」• SES が止められたというメール• Slack の致命的なエラーチャンネルに通知
© Morisawa Inc.Amazon SES アラート発生14SES のダッシュボード確認• バウンス率急上昇
© Morisawa Inc.Amazon SES アラート発生15要因を確認• 不正な Gmail が大量送信されている
© Morisawa Inc.Amazon SES アラート発生16要因を確認• 不正な Gmail が大量送信されている→ 開発環境のテストで存在しないメールを使った
© Morisawa Inc.17 © Morisawa Inc.システムをメンテモードにして復旧開始
© Morisawa Inc.Amazon SES 復旧作業18SES の復旧依頼• 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 の担当営業にも連絡• サポートチームへのエスカレーション依頼
© Morisawa Inc.Amazon SES 復旧作業19SES の復旧依頼→ 有識者にどれぐらいで復旧するか聞くと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 の担当営業にも連絡• サポートチームへのエスカレーション依頼
© Morisawa Inc.20 © Morisawa Inc.2〜3日は無理
© Morisawa Inc.Amazon SES 復旧作業21違うアカウントの SES を借りる• 同じドメインを利用したシステムを違う AWS アカウントで作成していた• こちらのアカウントの SES を間借りすれば一時しのぎできそう• 当社管理アカウントではなかった• 参照権限しか持ってなかったので触ることができない• 権限を貰えないか依頼• 連絡を待つ
© Morisawa Inc.Amazon SES 復旧作業22違うメールサービスを利用• 別のサービスでは SendGrid を採用していた• SES の代替手段として利用できそう• すでに開発経験があるのでなんとかなりそう• 急いで切り替え対応を開始
© Morisawa Inc.23 © Morisawa Inc.並行して作業を進めていると
© Morisawa Inc.Amazon SES 復旧24AWS より待望のメールが• We recently created a case in the AWS Support Centerrelated to your SES account. In this case, we informedyou that your account was subject to a review period or asending pause. The issue that caused us to place youraccount under review or pause your ability to send emailis now resolved.→ 結果的に6.5時間ぐらいで復旧
© Morisawa Inc.Backend アーキテクチャ25その後、SendGrid へ移行しましたAWS Cloudユーザー※主要なサービスのみ記載しておりますAmazon Route 53 Elastic LoadBalancingAWS WAF Amazon Aurora Amazon DynamoDBAmazon CloudWatchAlarmLogs Amazon Simple Noti?cationService (Amazon SNS)AWS ChatbotAWS CodeBuild AWS CodePipelineAmazon ElasticContainer Registry(Amazon ECR)AWS Fargate SlackSendGrid
© Morisawa Inc.26 © Morisawa Inc.まとめ
© Morisawa Inc.まとめ27• バウンスメールには気をつける• 存在しないメールアドレスは利用しない• IT リテラシーを高める• example.com を利用する• テスト用メールアドレスの準備• 開発環境はホワイトリスト化によるメール送信制限• SES の DR 対策• AWS の環境は本番とそれ以外は分離する• SendGrid など代替手段の検討
© Morisawa Inc.ありがとうございました採用情報はこちらhttps://www.morisawa.co.jp/about/recruit/