Braze Currentsを利用してBrazeのデータをS3にストリーミングできるようにする

2022.02.21

BrazeにはCurrentsという機能を使って、Brazeで作成されたデータを他の場所にストリーミングすることが可能です。 これにより専門のプラットフォームで分析したり、可視化したりすることが可能になりますし、別のシステムに使わせたりする といったことが可能です。

現在利用できるパートナーはこちらに記載されています。

本記事では、Brazeからのデータをそのままの生データとして貯めておき、必要になったら取り出して加工したり、他のツールに流したりとかすることを想定をし、S3に保存していきます。

前提条件

AWSのアカウントと保存用のS3バケットが必要です。

すでにS3バケットをお持ちの場合でも、権限を制限できるように、Braze専用の新しいバケットを作成することを勧められています。

AWS側の設定

BrazeとS3の連携では

  • シークレットキーを使う
  • ロールARNを使う

上記の2種類がありますが、今回はロールARNの設定を行います。

IAMポリシーを作成

AWSのコンソールにログインし、IAMのページからポリシーを作成します。

ポリシーの内容ですが、

Braze Currents用は、

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": ["s3:ListBucket", "s3:GetBucketLocation"],
            "Resource": ["arn:aws:s3:::INSERTBUCKETNAME"]
        },
        {
            "Effect": "Allow",
            "Action": ["s3:PutObject", "s3:GetObject"],
            "Resource": ["arn:aws:s3:::INSERTBUCKETNAME/*"]
        }
    ]
}

を使います。

※ INSERTBUCKETNAMEは作成したs3バケット名に

IAMロールを作成

ポリシーを利用するロールを作成します。

  • 信頼されたエンティティタイプは AWS アカウント を選択
  • AWS アカウントを別の AWS アカウントにして、BrazeのアカウントIDを入力
  • オプションで外部 ID を要求するにチェックをつけ、外部IDを入力

を行います。

BrazeのアカウントIDと外部IDは、

BrazeのダッシュボードのテクノロジーパートナーのメニューでCurrentsを選択して設定画面に遷移してください。

BrazeアカウントIDとBraze外部ID(表示されなければ新規作成)が表示されているので、この値を使います。

ポリシーは先ほど作成した専用のポリシーを添付し、ロールを作成します。

作成したarnが必要なのでコピーしておきます。

Braze側の設定

BrazeのダッシュボードのテクノロジーパートナーのメニューでCurrentsを選択し、必要な情報を入力します。

  • ロールARNに作成したIAMロールのarnを入力
  • AWS S3バケット名前にはデータを保存するバケット名を入力

AWS S3バケットフォルダーと暗号化は任意です。

一般設定では、エクスポートするイベントを選択していきます。

の2種類がありますので、用途に応じて選択していきます。

設定完了後、ページ下部のLaunch Currentをクリックして作成完了です。

状態がActiveとなっていることを確認します。

データが送信されているか確認

Braze側の設定が終わったら、実際に何かイベントを起こしてデータがS3に送信されているか確認していきます。

セッションの開始、カスタムイベント送信、購入イベントの送信などです。

S3には上記のようにイベントタイプごとに分けられてデータが格納されていました。

データ形式はavroでした。

購入イベントの例

上記は購入イベントのスキーマです。

Glueのクローラーを使ってテーブルを作成し、Athenaでクエリすることも可能です。

このようにBrazeのデータを別の場所に保存しておくと、お使いの分析ツール、BIツールと組み合わせてイベントデータを利用できるようになるのでぜひ使っておきたい機能になります。

参考

Braze Currents

BrazeとAmazonS3の統合について