Amazon Web Services ブログ

AWS の分析サービスを活用した Amazon SES イベントデータの解析

このブログでは、Amazon Kinesis Firehose、Amazon Athena、Amazon QuickSight などの AWS サービスを使用して、お客様のメール閲覧状況などの詳細を把握するために必要な粒度の Amazon SES のメール送信イベントを監視する方法を説明します。

現在、E メールマーケターはニュースレターやプロモーションコンテンツなど、キャンペーンやコミュニケーション方法を作るために内部アプリケーションに依存しています。
これらの活動から、顧客とのより良いインタラクションを得るためにワークフローを分析して改善し、より多くの情報を収集する必要があります。
バウンス、拒否、受信成功、配信遅延、苦情、開封率などのデータは顧客を理解するための強力なツールとなります。
通常のアプリケーションは、キャンペーンの効果をより高めるための詳細なログやデータを提供していないため、高レベルの情報しか扱えません。

Amazon Simple Email Service (SES) は自身の製品に簡単に統合でき、コスト効率の良い柔軟でスケーラブルなメールサービスソリューションを求める企業向けのツールです。
Amazon SES は、Amazon CloudWatch Metrics との組み込み統合により送信活動を管理できる機能を提供し、メール送信イベントデータを収集するメカニズムも提供します。

このブログでは、送信、配信、開封、クリック、バウンス、苦情、拒否、レンダリング失敗、配信遅延などさまざまな種類のメール送信イベントに対して詳細にメール送信アクティビティを追跡するためのアーキテクチャと段階的なガイドを提案します。
Amazon SES の設定セット機能を使用して、詳細なログを分析サービスに送信し、そこでデータを保存、クエリ、詳細なビューのダッシュボードを作成します。

ソリューションの概要

このアーキテクチャでは、Amazon SES の組み込み機能と AWS の分析サービスを利用して、メール追跡の要件に対する迅速かつ低コストのソリューションを提供します。
以下のサービスから構成されます。

次の図はこのソリューションのアーキテクチャを示しています。

Serverless Architecture to Analyze Amazon SES events

図 1. Amazon SES イベントを分析するためのサーバーレスアーキテクチャ

お客様が Amazon SES を使用してメールを送信すると、イベントのフローが開始されます。それらの送信イベントはすべて、設定セット機能によってキャプチャされ、Kinesis Firehose 配信ストリームに転送されます。そこでイベントがバッファされ、Amazon S3 バケットに保存されます。

イベントを保存した後、Amazon Athena が S3 上のそれらのイベントを適切にクエリできるように、データベースとテーブルスキーマを作成し、AWS Glue Data Catalog に格納する必要があります。
最後に、Amazon QuickSight を使用して、インタラクティブなダッシュボードを作成し、メールごとの詳細情報を示して、送信アクティビティ全体を検索および可視化します。

前提条件

このウォークスルーを行うには、以下の前提条件を満たしている必要があります:

ウォークスルー

ステップ 1: AWS CloudFormation を使用して、追加の前提条件をデプロイする

AWS CloudFormation のサンプルテンプレートを使えば、前提条件をいくつか含めて始められます。
このテンプレートは、Amazon S3 バケットと、Amazon SES から Amazon Kinesis Data Firehose にアクセスするために必要な IAM ロールを作成します。

CloudFormation テンプレートをダウンロードするには、お使いの OS に応じて以下のコマンドのいずれかを実行してください:

Windows の場合:

curl https://raw.githubusercontent.com/aws-samples/amazon-ses-analytics-blog/main/SES-Blog-PreRequisites.yml -o SES-Blog-PreRequisites.yml

MacOS の場合:

wget https://raw.githubusercontent.com/aws-samples/amazon-ses-analytics-blog/main/SES-Blog-PreRequisites.yml

テンプレートをデプロイするには、次のAWS CLIコマンドを使用します:

aws cloudformation deploy --template-file ./SES-Blog-PreRequisites.yml --stack-name ses-dashboard-prerequisites --capabilities CAPABILITY_NAMED_IAM

テンプレートがリソースの作成を完了すると、スタックの出力タブに IAM サービスロールと配信ストリームが表示されます。
これらのリソースは次の手順で使用します。

IAM Service role and Delivery Stream created by CloudFormation template

図 2. CloudFormation テンプレートの出力

ステップ 2: SES で設定セットを作成し、検証済みの ID のデフォルト設定セットを設定する

SES は、送信したメールごとに送信、配信、開封、クリック、バウンス、苦情のイベント数を追跡できます。イベントパブリッシングを使用すると、これらのイベントに関する情報を他の AWS サービスに送信できます。今回は、イベントを Kinesis Firehose に送信します。そのためには、設定セットが必要です。

設定セットを作成するには、以下の手順を実行してください:

  1. AWS コンソールで、Amazon Simple Email Service を選択します。
  2. Configuration sets を選択します。
  3. Create set をクリックします。

    Create a configuration set in Amazon SES

    図 3. Amazon SES Create Configuration Set

  4. Configuration set name を設定します。
  5. 他の設定はデフォルトのままにしておきます。

    Write a name for your configuration set

    図 4. Configuration Set Name

  6. 設定セットが作成されたら、Event destinationsを選択します。

    Configuration set created successfully

    図 5. Configuration set created successfully

  7. Add destination をクリックします。
  8. 分析したいイベントタイプを選択し、nextをクリックします。

    Sending Events to analyze

    図 6. Sending Events to analyze

  9. 宛先として Amazon Kinesis Data Firehose を選択し、前に作成した配信ストリームと IAM ロールを選択し、next をクリックします。レビューページで Add destination をクリックします。

    Destination for Amazon SES sending events

    図 7. Destination for Amazon SES sending events

  10. 設定セットとイベント宛先を作成したら、検証済みの ID (ドメインまたはメールアドレス) のデフォルトの設定セットを定義できます。SES コンソールで Verified identities を選択します。

    Amazon SES Verified Identity

    図 8 Amazon SES Verified Identity

  11. イベントを収集する検証済みの ID を選択し、Configuration set を選択します。Edit をクリックします。

    Edit Configuration Set for Verified Identity

    図 9. Edit Configuration Set for Verified Identity

  12. デフォルトの設定セットを割り当てるチェックボックスをオンにし、前に作成した設定セットを選択します。

    Assign default configuration set

    図 10. Assign default configuration set

  13. 前の手順を完了すると、イベントが Amazon S3 に送信されます。Kinesis 配信ストリームのバッファ設定により、データは 5 分ごとまたは 5 MiB ごとに Amazon S3 にロードされます。バケットに作成された構造を確認し、SES イベントデータの JSON ログを確認できます。

    Amazon S3 bucket structure

    図 11. Amazon S3 bucket structure

ステップ 3: Amazon Athena を使用して SES イベントログをクエリする

Amazon SES は、メール送信イベントレコードを JSON 形式で Amazon Kinesis Data Firehose に公開します。
トップレベルの JSON オブジェクトには、eventType 文字列、mail オブジェクト、およびイベントの種類に応じて Bounce、Complaint、Delivery、Send、Reject、Open、Click、Rendering Failure、DeliveryDelay オブジェクトが含まれています。

  1. メール送信イベントの分析を簡素化するために、次のスクリプトを Amazon Athena で実行して sesmaster テーブルを作成します。次のスクリプトの LOCATION をメール送信イベントのデータを含む自分のバケットに変更することを忘れないでください
    CREATE EXTERNAL TABLE sesmaster (
    eventType string,
    complaint struct < arrivaldate: string,
    complainedrecipients: array < struct < emailaddress: string >>,
    complaintfeedbacktype: string,
    feedbackid: string,
    `timestamp`: string,
    useragent: string >,
    bounce struct < bouncedrecipients: array < struct < action: string,
    diagnosticcode: string,
    emailaddress: string,
    status: string >>,
    bouncesubtype: string,
    bouncetype: string,
    feedbackid: string,
    reportingmta: string,
    `timestamp`: string >,
    mail struct < timestamp: string,
    source: string,
    sourcearn: string,
    sendingaccountid: string,
    messageid: string,
    destination: string,
    headerstruncated: boolean,
    headers: array < struct < name: string,
    value: string >>,
    commonheaders: struct < `from`: array < string >,
    to: array < string >,
    messageid: string,
    subject: string >,
    tags: struct < ses_source_tls_version: string,
    ses_operation: string,
    ses_configurationset: string,
    ses_source_ip: string,
    ses_outgoing_ip: string,
    ses_from_domain: string,
    ses_caller_identity: string >>,
    send string,
    delivery struct < processingtimemillis: int,
    recipients: array < string >,
    reportingmta: string,
    smtpresponse: string,
    `timestamp`: string >,
    open struct < ipaddress: string,
    `timestamp`: string,
    userAgent: string >,
    reject struct < reason: string >,
    click struct < ipAddress: string,
    `timestamp`: string,
    userAgent: string,
    link: string >
    )
    ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
    WITH SERDEPROPERTIES (
    "mapping.ses_caller_identity" = "ses:caller-identity",
    "mapping.ses_configurationset" = "ses:configuration-set",
    "mapping.ses_from_domain" = "ses:from-domain",
    "mapping.ses_operation" = "ses:opeation",
    "mapping.ses_outgoing_ip" = "ses:outgoing-ip",
    "mapping.ses_source_ip" = "ses:source-ip",
    "mapping.ses_source_tls_version" = "ses:source-tls-version"
    )
    LOCATION 's3://aws-s3-ses-analytics-<aws-account-number>/'
    

    sesmaster テーブルは、org.openx.data.jsonserde.JsonSerDe SerDe ライブラリを使用して JSON データを逆シリアル化します。

    JSON 配列とマップのサポート、およびネストされたデータ構造のサポートを活用しています。これらの機能により、データの準備と可視化のプロセスが容易になります。

    sesmaster テーブルでは、次のマッピングが適用されており、コロンを含む JSON フィールド名によるエラーを回避しています。

    • “mapping.ses_configurationset”=”ses:configuration-set”
    • “mapping.ses_source_ip”=”ses:source-ip”
    • “mapping.ses_from_domain”=”ses:from-domain”
    • “mapping.ses_caller_identity”=”ses:caller-identity”
    • “mapping.ses_outgoing_ip”=”ses:outgoing-ip”
  2. sesmaster テーブルが準備できたら、そのデータの整理されたビューを作成するのが良い戦略です。最初のビュー vwSESMaster には、メール送信イベントのすべてのレコードと、各イベントで一意のすべてのフィールドが含まれています。次のスクリプトを Amazon Athena で実行して、vwSESMaster ビューを作成します。
    CREATE OR REPLACE VIEW vwSESMaster AS 
     SELECT 
     eventtype as eventtype 
    , mail.messageId as mailmessageid 
    , mail.timestamp as mailtimestamp 
    , mail.source as mailsource 
    , mail.sendingAccountId as mailsendingAccountId 
    , mail.commonHeaders.subject as mailsubject 
    , mail.tags.ses_configurationset as mailses_configurationset 
    , mail.tags.ses_source_ip as mailses_source_ip 
    , mail.tags.ses_from_domain as mailses_from_domain 
    , mail.tags.ses_outgoing_ip as mailses_outgoing_ip 
    , delivery.processingtimemillis as deliveryprocessingtimemillis 
    , delivery.reportingmta as deliveryreportingmta 
    , delivery.smtpresponse as deliverysmtpresponse 
    , delivery.timestamp as deliverytimestamp 
    , delivery.recipients[1] as deliveryrecipient 
    , open.ipaddress as openipaddress 
    , open.timestamp as opentimestamp 
    , open.userAgent as openuseragent 
    , bounce.bounceType as bouncebounceType 
    , bounce.bouncesubtype as bouncebouncesubtype 
    , bounce.feedbackid as bouncefeedbackid 
    , bounce.timestamp as bouncetimestamp 
    , bounce.reportingMTA as bouncereportingmta 
    , click.ipAddress as clickipaddress 
    , click.timestamp as clicktimestamp 
    , click.userAgent as clickuseragent 
    , click.link as clicklink 
    , complaint.timestamp as complainttimestamp 
    , complaint.userAgent as complaintuseragent 
    , complaint.complaintFeedbackType as complaintcomplaintfeedbacktype 
    , complaint.arrivalDate as complaintarrivaldate 
    , reject.reason as rejectreason 
     FROM 
     sesmaster

    sesmaster テーブルには、ネストされた配列で表されているフィールドがいくつかあるため、それらを複数の行にフラット化する必要があります。次に、イベントタイプとフラット化が必要なフィールドを示します。

    • イベントタイプ SEND: フィールド mail.commonHeaders
    • イベントタイプ BOUNCE: フィールド bounce.bouncedrecipients
    • イベントタイプ COMPLAINT: フィールド complaint.complainedrecipients

    これらの配列を複数の行にフラット化するために、CROSS JOIN と UNNEST 演算子を次の戦略で使用しました。

    • mail.messageID とフラット化するフィールドを含む一時ビューを作成します。
    • 配列を複数の行にフラット化した別の一時ビューを作成します。
    • sesmaster テーブルと 2 番目の一時ビューをイベントタイプと mail.messageID で結合して、最終ビューを作成します。

    これらのビューを作成するには、次の手順に従ってください。

  3. 次のスクリプトを Amazon Athena で実行して、SEND イベントタイプの mail.commonHeaders 配列をフラット化します。
    CREATE OR REPLACE VIEW vwSendMailTmpSendTo AS 
     SELECT 
     mail.messageId as messageid 
    , mail.commonHeaders.to as recipients 
     FROM 
     sesmaster 
     WHERE 
     eventtype='Send'
    
    CREATE OR REPLACE VIEW vwsendmailrecipients AS 
     SELECT 
     messageid 
    , recipient 
     FROM 
    ("vwSendMailTmpSendTo"
     CROSS JOIN UNNEST(recipients) t (recipient))
    
    CREATE OR REPLACE VIEW vwSentMails AS 
     SELECT 
     eventtype as eventtype 
    , mail.messageId as mailmessageid 
    , mail.timestamp as mailtimestamp 
    , mail.source as mailsource 
    , mail.sendingAccountId as mailsendingAccountId 
    , mail.commonHeaders.subject as mailsubject 
    , mail.tags.ses_configurationset as mailses_configurationset 
    , mail.tags.ses_source_ip as mailses_source_ip 
    , mail.tags.ses_from_domain as mailses_from_domain 
    , mail.tags.ses_outgoing_ip as mailses_outgoing_ip 
    , dest.recipient as mailto 
     FROM 
     sesmaster as sm 
    ,vwsendmailrecipients as dest 
     WHERE 
     sm.eventtype = 'Send'
     and sm.mail.messageid = dest.messageid
  4. 次のスクリプトを Amazon Athena で実行して、BOUNCE イベントタイプの bounce.bouncedrecipients 配列をフラット化します。
    CREATE OR REPLACE VIEW vwbouncemailtmprecipients AS 
     SELECT 
     mail.messageId as messageid 
    , bounce.bouncedrecipients 
     FROM 
     sesmaster 
     WHERE (eventtype = 'Bounce')
    
    CREATE OR REPLACE VIEW vwbouncemailrecipients AS 
     SELECT 
     messageid 
    , recipient.action 
    , recipient.diagnosticcode 
    , recipient.emailaddress 
     FROM 
    (vwbouncemailtmprecipients 
     CROSS JOIN UNNEST(bouncedrecipients) t (recipient))
    
    CREATE OR REPLACE VIEW vwBouncedMails AS 
     SELECT 
     eventtype as eventtype 
    , mail.messageId as mailmessageid 
    , mail.timestamp as mailtimestamp 
    , mail.source as mailsource 
    , mail.sendingAccountId as mailsendingAccountId 
    , mail.commonHeaders.subject as mailsubject 
    , mail.tags.ses_configurationset as mailses_configurationset 
    , mail.tags.ses_source_ip as mailses_source_ip 
    , mail.tags.ses_from_domain as mailses_from_domain 
    , mail.tags.ses_outgoing_ip as mailses_outgoing_ip 
    , bounce.bounceType as bouncebounceType 
    , bounce.bouncesubtype as bouncebouncesubtype 
    , bounce.feedbackid as bouncefeedbackid 
    , bounce.timestamp as bouncetimestamp 
    , bounce.reportingMTA as bouncereportingmta 
    , bd.action as bounceaction 
    , bd.diagnosticcode as bouncediagnosticcode 
    , bd.emailaddress as bounceemailaddress 
     FROM 
     sesmaster as sm 
    ,vwbouncemailrecipients as bd 
     WHERE 
     sm.eventtype = 'Bounce'
     and sm.mail.messageid = bd.messageid 
    
  5. 次のスクリプトを Amazon Athena で実行して、COMPLAINT イベントタイプの complaint.complainedrecipients 配列をフラット化します。
    CREATE OR REPLACE VIEW vwcomplainttmprecipients AS 
     SELECT 
     mail.messageId as messageid 
    , complaint.complainedrecipients 
     FROM 
     sesmaster 
     WHERE (eventtype = 'Complaint')
    
    CREATE OR REPLACE VIEW vwcomplainedrecipients AS 
     SELECT 
     messageid 
    , recipient.emailaddress 
     FROM 
    (vwcomplainttmprecipients 
     CROSS JOIN UNNEST(complainedrecipients) t (recipient))
    

    メール送信イベントを分析するために Amazon QuickSight で使用できる以下の 4 つのテーブルと 1 つのビューがあります。

    • テーブル: sesmaster
    • ビュー: vwSESMaster
    • ビュー: vwSentMails
    • ビュー: vwBouncedMails
    • ビュー: vwComplainedemails

ステップ 4: Amazon QuickSight を使用してデータを分析し、可視化する

Amazon QuickSight を使用して、上述した sesmaster テーブル と 4 つのビューからメール送信イベントを分析し、可視化します。
Amazon QuickSight は Athena を通じてデータに直接アクセスできます。
セッションごとの課金体系であり、組織内の全員に分析のインサイトを提供できます。

まずはセットアップしましょう。最初に Athena で新しいデータソースを作成するためのテーブルとビューを選択しましょう。そして、これらのデータソースを使って可視化していきましょう。ここでは可視化の例を作成します。情報ニーズに基づいて、独自の可視化を作成してください。

Amazon QuickSight でデータを使用する前に、まず基盤となる S3 バケットへのアクセスを許可する必要があります。他の分析でまだ行っていない場合は、その方法についてのドキュメントを参照してください。

  1. Amazon QuickSight のホームページで、左側のメニューから Datasets を選択し、右上の New dataset を選択します。データソースとして Athena を設定し選択します。次のダイアログボックスで、データソースに分かりやすい名前を付けて、データソースの作成を選択します。

    Create New Athena Data Source
    図 12. 新しい Athena データソースの作成

  2. 次のダイアログボックスで、sesmaster と加工済みビューを含む CatalogDatabase を選択します。基本的な KPI (Key Performance Indicators) を作成するために、sesmaster テーブルを選択し、Select をクリックします。Select Sesmaster Table

    図 13. Sesmaster テーブルの選択

  3. sesmaster テーブルが Amazon QuickSight のデータソースになりました。次はデータの可視化に移ります。QuickSight Visualize Data

    図 14. QuickSight でのデータ可視化

  4. 左側にフィールドのリストが表示されています。右側のキャンバスはまだ空白です。データを追加する前に、利用可能なビジュアルタイプから KPI を選択します。

    QuickSight Visual Types
    図 15. QuickSight のビジュアルタイプ

  5. グラフにデータを追加するには、左側のフィールドリストからフィールドをドラッグ&ドロップして、それぞれの領域に配置します。今回は、フィールド send を値の領域に配置し、集計に count を使用します。Add Send field to visualization

    図 16. Send フィールドの可視化への追加

  6. 左上から新しいビジュアルを追加し、ビジュアルタイプに KPI を選択します。Add a new visual

    図 17. 新しいビジュアルの追加

    Key Performance Indicator Visual Type

    図 18. KPI のビジュアルタイプ

  7. フィールド Delivery を値の領域に配置し、集計に count を使用します。Add Delivery Field to visualization

    図 19. Delivery フィールドの可視化への追加

  8. 同様の手順 (ステップ 1 から 4) を繰り返し、Open、Click、Bounce、Complaint、Reject イベントの数をカウントします。最後に、次のような可視化が表示されるはずです。ビジュアルのサイズを変更して並べ替えると、下の画像のような分析結果が得られます。Preview of Key Performance Indicators

    図 20. KPI のプレビュー

  9. 現在のデータセットの右側にある鉛筆アイコンをクリックして、新しいデータセットを追加します。Add a New Dataset

    図 21. 新しいデータセットの追加

  10. 次のダイアログボックスで Add Dataset を選択します。Add a New Dataset

    図 22. 新しいデータセットの追加

  11. vwsesmaster と呼ばれるビューを選択し、Select をクリックします。Add vwsesmaster dataset

    図 23. vwsesmaster データセットの追加

    vwsesmaster ビューの利用可能なフィールドがすべて表示されます。

    New fields from vwsesmaster dataset

    図 24. vwsesmaster データセットの新しいフィールド

  12. 新しいビジュアルを作成し、ビジュアルタイプに表を選択します。

    QuickSight Visual Types
    図 25. QuickSight のビジュアルタイプ

  13. 左側のフィールドリストからフィールドをドラッグ&ドロップして、それぞれの領域に配置します。今回は、フィールド eventtype、mailmessageid、mailsubject を グループ化の領域に配置しますが、必要に応じてさらにフィールドを追加できます。Add eventtype, mailmessageid and mailsubject fields

    図 26. eventtype、mailmessageid、mailsubject フィールドの追加

  14. 次に、このビジュアルにイベントタイプでフィルタリングするフィルターを作成します。まず、テーブルを選択し、左側のメニューからフィルターを選択します。Add a Filter
  15. Create One をクリックし、ポップアップウィンドウでフィールド eventtype を選択します。次に、eventtype フィルターを選択すると、次のオプションが表示されます。

    Create eventtype filter
    図 28. eventtype フィルターの作成

  16. eventtype フィルターの右側の点をクリックし、Add to Sheet を選択します。Add filter to sheet

    図 29. フィルターのシートへの追加

  17. すべてのデフォルト値をそのままにして、下にスクロールして Apply を選択します。

    図 30. デフォルト値でフィルターを適用
  18. これで、vwsesmaster ビューを eventtype でフィルターできます。
    図 31. eventtype で vwsesmasterview をフィルター
  19. sesmaster テーブル、vwsesmaster ビューで利用可能なすべてのデータを使用して可視化をカスタマイズし続けることができます。さらに、vwSentMails、vwBouncedMails、vwComplainedemails ビューのデータを含めるためにデータセットを追加することもできます。以下に、これらのビューから作成された他の可視化をいくつか示します。
    図 32. 最終的な視覚化 1

    図 33. 最終的な視覚化 2

    図 34. 最終的な視覚化 3

クリーンアップ

このブログで作成したリソースを削除して、継続的な課金を避けてください。

  1. Amazon QuickSight で作成した可視化を削除する。
  2. 他のプロジェクトで Amazon QuickSight を使用していない場合は、サブスクリプションを解除する。
  3. Amazon Athena で作成したビューとテーブルを削除する。
  4. Amazon SES の設定セットを削除する。
  5. S3 バケットにログとして保存されている Amazon SES のイベントを削除する。
  6. Amazon Kinesis Delivery Stream を削除するために、CloudFormation スタックを削除する。

結論

このブログでは、Amazon SES イベントに基づいてメール追跡ソリューションを迅速に作成する方法を、AWS のサービスおよび機能を使って示しました。
このソリューションは、サーバーレスアーキテクチャを完全に採用しているため、インフラを管理する必要がなく、Amazon SES の使用量が少なくても多くても、サーバーを気にすることなく柔軟にソリューションを利用できます。

我々は、ほとんどのお客様の要件に対応したダッシュボードと分析のサンプルをいくつか紹介しました。しかし、このソリューションを発展させ、ダッシュボードにチャートやフィルター、イベントを追加したり削除したりするなど、ニーズに合わせてカスタマイズすることができます。Amazon SES の利用可能なイベント、その構造、および Amazon QuickSight でのダッシュボードと分析の作成方法については、次のドキュメントを参照してください。

パフォーマンスとコスト効率の観点から、この解決策を改善するための設定がいくつかあります。
たとえば、parquet などの列形式のファイルフォーマットを使用したり、Snappy で圧縮したり、メール送信の使用状況に応じて S3 のパーティション戦略を設定したりすることができます。
別の改善点として、Amazon QuickSight でデータを読み取るために SPICE にデータをインポートすることが考えられます。
SPICE を使用すると、Athena からデータが 1 回だけロードされ、手動で更新するかスケジュールを使用して自動的に更新されるまでキャッシュされます。

このウォークスルーを使用して、最初の SES ダッシュボードを構成し、イベントの詳細を可視化することができます。このブログで説明されているサービスは要件に応じて調整できます。

著者について

Oscar Mendoza AWS Solutions Architect Oscar Mendoza is a Solutions Architect at AWS based in Bogotá, Colombia. Oscar works with our customers to provide guidance in architectural best practices and to build Well Architected solutions on the AWS platform. He enjoys spending time with his family and his dog and playing music.
Luis Eduardo Torres AWS Solutions Architect Luis Eduardo Torres is a Solutions Architect at AWS based in Bogotá, Colombia. He helps companies to build their business using the AWS cloud platform. He has a great interest in Analytics and has been leading the Analytics track of AWS Podcast in Spanish.
Santiago Benavidez AWS Solutions Architect Santiago Benavídez is a Solutions Architect at AWS based in Buenos Aires, Argentina, with more than 13 years of experience in IT, currently helping DNB/ISV customers to achieve their business goals using the breadth and depth of AWS services, designing highly available, resilient and cost-effective architectures.

本記事は、Analyzing Amazon SES event data with AWS Analytics Services を翻訳したものです。翻訳は Solutions Architect の 松岡勝也 が担当しました。