Slide 1

Slide 1 text

© Morisawa Inc. Amazon SES のバウンス率が急上昇 〜Amazon SES を止めてしまった日〜 株式会社モリサワ システム開発部門 小室 貴史

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

© Morisawa Inc. 3

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

© 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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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