プログラミングマガジン

プログラミングを中心にIT技術をできるだけわかりやすくまとめます。

  • ホーム
  • AWS
  • 【AWS】「SES」、送信アクティビティのモニタリングなど
 
 
     
  • サーバー言語  
    • Python
    • Ruby
    • PHP
    • SQL
  •  
  • インフラ  
       
    • AWS
    •  
    • 基本
    • Git
  • Web
       
    • Web開発
    • JavaScript
    • Vue.js
    • React
  •  
  • 設計  
       
    • 実装設計
    • DB設計
  • 問い合わせ
  

【AWS】「SES」、送信アクティビティのモニタリングなど

01.17

  • miyabisan2
  • コメントを書く

この記事は4分で読めます

Amazon SESとは?

コスト効率が高いクラウドベースのeメール送受信サービス。バージニア、オレゴン、アイルランドのリージョンにSESを設置して利用可能

イメージ

東京リージョンのMTA(メール転送エージェント)が配置されているEC2から、バージニア、オレゴン、アイルランドリージョンのSESに対してメールを転送する。

ユースケース

トランザクションメッセージ送信

購入確認、出荷通知、注文状況の更新、ポリシー変更通知

マーケティングコミュニケーションの送信

広告、ニュースレター、特典情報、顧客が希望する製品やサービスの宣伝

通知の送信

システムヘルスレポート、アプリケーションアラート、ワークフローステータスの更新

受信eメールの受信

Amazon S3バケットに自動で配信できる。メッセージの受信時にAWS Lambdaを使用してカスタムコードを実行することや、特定キーワードを含むメッセージの受信時にAmazon SNSを使用して通知を配信することができる。

メールの送信

3つの方法あります。

SESコンソール

eメールの送信テストをする場合の最も早い方法です。

ユースケース

システムセットアップ時にテストしたい場合

SES API

2種類のAPIがあります。

SendEmail API

From、To、Subject、Bodyだけを用意すればSES側でメッセージを生成して送信してくれる。

SendRawEmail API

メッセージ全体をアプリケーション側で生成して送信する。より細かくメッセージの内容を制御することが可能です。

ユースケース

アプリケーション側から直接メール送信を行たい場合

SMTPインターフェイス

認証には専用IAMユーザーを作成してそのクレデンシャルを使用する。要TLS認証

ポート

25、465(SMTP over SSL)、587(Message Submission)

ユースケース

既存の送信用SMTPサーバからリレーしたり、SMTPを前提としてプログラムから直接利用する場合

送信制限

送信できるeメール数と送信レートを制限します。なお、送信制限の上限は特定の条件を満たすと緩和で来たりするので調べてみて下さい。

送信クォータ

  • 24時間あたりに送信できるeメールの最大数
  • eメールを送信しようとすると、その都度24時間以内に送信されたeメールの件数をチェックする。合計数が送信クォータ未満であれば、送信リクエストを受理して送信されます。

最大送信レート

  • SESが1秒あたりにアカウントから受け付けるeメールの最大数
  • 最大送信レートを瞬間的に超えることは可能だが、制限を超えた状態を長時間続けることは不可能

SES Dashboard

送信制限を確認できます。

送信制限に達した場合

スロットリングエラーが発生してEメールは破棄されます。その後、再度送信するには必要な送信クォータの量に増えるまで待つ必要がある。

SES HTTP REST APIで送信した場合

  • Daily message quota exceeded
  • Maximum sending rate exceeded

SMTPで送信した場合

  • 454 Throttiling failure: Maximum sending rate exceeded
  • 454 Throttiling failure: Daily message quota exceeded

アクセスレベル

サンドボックス(初期状態)

  • 指定されたアドレスにのみ送信可能(Verify済みのemailアドレス)
  • 小さな送信制限
  • 200通/24時間
  • 最大送信レート 1通/秒

プロダクション(サンドボックスの外)

  • 送信先に制限なし
  • 送信制限は実績によって決定
  • 上限緩和申請をすることで、自動的にこちらに変更されます。

送信承認

異なるAWSアカウントまたはIAMユーザーから当該アカウントのドメインやeメールアドレスを使ってeメールを送信する権限を許可

送信承認の流れ

  1. eメール送信リクエストまたはeメールのヘッダでID(ドメインまたはeメールアドレス)のARNをSESへ渡す。
  2. IDのポリシーを確認し、承認されている場合はSESはeメールを受け入れる。未承認の場合はSESはエラーメッセージを返す。

ユースケース

  • サードパーティ(eメールのマーケティング会社等)のeメールを自分が所有するドメインから送信する。
  • 指定されたeメールアドレスからのみ送信を許可
  • Return Pathに特定のeメールアドレスを指定した時のみ送信を許可
  • 指定された期間のみ送信を許可
  • Fromアドレスの表示名に特定のフレンドリ名が指定された時のみ送信を許可

Suppression List機能

ハードバウンスしたeメールアドレスが登録されるリスト

  • 一度登録されると最大14日登録される。(手動削除可能)
  • アカウントを超えて共有
  • 登録済みアドレスに送信を試みた場合は、SESへのCallは成功するがSESから外部へは送信されずハードバウンスとして処理される。

役割

バウンスを起こし続けることで送信元ドメインやSESのIPアドレスプールの評判が落ちないよう保護(評判はバウンス率で決まりバウンス率が悪いとそのアドレスがシャットダウンされる可能性がある。)

コンテンツフィルタリング

  • アプリからの送信リクエストを受けるとSESはメールメッセージを組み立てて(assemble)、ISPがスパムとみなされないか、HeaderとBodyをスキャンする。SESによりスパムと判断された場合はSES内の評価が低下する。
  • ウイルスやマルウェアが含まれるメッセージを検出するとブロックし、これらが送信されるのを未然に防止

送信アクティビティのモニタリング

コンソール、API、CloudWatchでモニタリング可能です。

イベント

送信

SESに対する呼び出しの成功、あくまで呼び出しの成功であり配信の成功ではない。

拒否

メールの送信をしない。例えば、メールにウイルスが発見された場合はメール送信をしない。

バウンス

受け取り先のMTAから弾かれること。

苦情

eメールが受取人に受診されたが、受信者がスパムとしてマークした場合

配信

メールを正常に配信した場合

オープン

オープントラッキング

eメールの開封と内容に含まれるURLクリックに関するメトリクスを収集できます。eメール内の各メッセージに1ピクセル×1ピクセルの透明Gif画像ファイルへの固有リンク挿入され、どのメッセージが誰によって開かれたのか正確に知ることが可能。

クリック

クリックトラッキング

eメールの開封と内容に含まれるURLクリックに関するメトリクスを収集できます。eメール内の各リンクを固有のリダイレクトリンクに置換する。どの受信者がリンクをクリックしたのか及び、リンクに到達した電子メールを簡単に判断できます。

レンダリング失敗

eメールテンプレートとパーソナライズされたeメール機能

テンプレートを作成し、パーソナライズされたeメールを送信することが可能

  • 件名及び本文セクションを受信者ごとにパーソナライズが可能です。
  • アカウントごとに最大10000のeメールテンプレートを作成が可能です。
  • 各テンプレートはテキストパートとHTMLパートを含め最大500KB
  • SendBulkTemplatedEmailオペレーションの呼び出しごとに最大50個の送信先(CC/BCC含む)に送信可能
スポンサーリンク
  • 2021 01.17
  • miyabisan2
  • コメントを書く
  • AWS
  • Tweets Twitter
  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  1. 2021 11.20

    【AWS】「ElasticCache」、「DynamoDB」、「RDS」、その他サービスの違い

  2. 2021 01.11

    【AWS】「AWS CLI」、初期設定、コマンドの基本、環境別設定(prod、dev)

  3. 2020 11.09

    【AWS】「SQS(Simple Queue Service)」、Step Functionsとの使い分けなど

  4. 2021 01.10

    【AWS】「AWS Step Functions」について

  5. 2020 02.24

    【AWS】「S3」、設定など

  6. 2021 12.02

    【AWS】「Code Commit」、「Code Build」、「Code Deploy」、「Code Pipeline」の違い

  • コメント ( 0 )
  • トラックバック ( 0 )
  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

返信をキャンセルする。

【AWS】セキュリティの考え方(責任共有モデル、SSO…

【React】「props」について

RETURN TOP

著者プロフィール

エンジニア歴10年で過去に業務系、Webデザイン、インフラ系なども経験あります。現在はWeb系でフロントエンド開発中心です。

詳細なプロフィールはこちら

スポンサーリンク

カテゴリー

  • Android
  • AngularJS
  • API
  • AWS
  • C++
  • CSS
  • cursor
  • C言語
  • DDD
  • DevOps
  • Django
  • Docker
  • Figma
  • Git
  • GitLab
  • GraphQL
  • gRPC
  • Hasura
  • Java
  • JavaScript
  • Kubernetes
  • Laravel
  • linux
  • MySQL
  • Next.js
  • nginx
  • Node.js
  • NoSQL
  • Nuxt.js
  • Oracle
  • PHP
  • Python
  • React
  • Redux
  • Rspec
  • Ruby
  • Ruby on Rails
  • Sass
  • Spring Framework
  • SQL
  • TypeScript
  • Unity
  • Vue.js
  • Webサービス開発
  • Webデザイン
  • Web技術
  • インフラ
  • オブジェクト指向
  • システム開発
  • セキュリティ
  • その他
  • データベース
  • デザインパターン
  • テスト
  • ネットワーク
  • プログラミング全般
  • マイクロサービス
  • マイクロソフト系技術
  • マルチメディア
  • リファクタリング
  • 副業
  • 未分類
  • 業務知識
  • 生成AI
  • 設計
  • 関数型言語
RETURN TOP

Copyright ©  プログラミングマガジン | プライバシーポリシー