Skip to main content

はじめに

Amazon Redshift は、高速かつ強力なフルマネージド型のペタバイト規模のデータウェアハウスサービスで、クラウドコンピューティングプラットフォームである Amazon Web Services の一部です。

MoEngage × Redshift

MoEngage と Redshift の連携により、キャンペーンインタラクションイベントのデータを Amazon Redshift クラスターに直接エクスポートできます。

連携

  • Redshift クラスター、ロール、ポリシーを作成・編集する権限を持つ Amazon Web Services アカウントがあることを確認してください。
  • 任意:新しいユーザーを作成するには、Redshift クラスターで新しいユーザーを作成するアクセス権が必要です。
  • Redshift へのエクスポートは Streams アドオンの一部です。お使いのアカウントで有効にするには、担当の MoEngage CSM(カスタマーサクセスマネージャー)にお問い合わせください。

ステップ 1:Redshift クラスターがパブリックにアクセス可能であることを確認する

Redshift クラスターで “Publicly Accessible” 設定がオンになっていることを確認してください。
  • 新しい Redshift クラスターを作成する場合は、“Network and Security” セクションで “Turn on Publicly accessible” オプションを選択します。 Create-Public.png
  • すでに Redshift クラスターがある場合は、Properties タブで Network and Security セクションを探します。“Edit” ボタンをクリックします。 Edit-Properties.png
プロパティで Publicly accessible をオンにして保存します Edit-Public.png

ステップ 2:MoEngage 用の新しいデータベースユーザーを作成する

MoEngage は、お客様が提供した認証情報を使用して Redshift クラスターに接続します。MoEngage 専用に、権限を制限した新しいユーザーを作成することをおすすめします。既存のユーザーの認証情報を提供することもできます。新しい専用ユーザーを作成するには、Redshift クラスターで以下のコマンドを実行します。
既存のスキーマを使用することもできます。MoEngage は、App Marketplace で接続を設定する際に指定したスキーマにテーブルを作成します。

ステップ 3:MoEngage の IP がクラスターにアクセスできるようにする

新しいセキュリティグループを作成するか、既存のセキュリティグループを編集できます。

新しいセキュリティグループを作成する

EC2 コンソールの “Network & Security” で、Security Groups ページを開きます。“Create security group” ボタンをクリックします。
  1. セキュリティグループに名前と、任意で説明を付けます。
  2. VPC を選択します(デフォルトでは選択済みです)。
  3. 以下の詳細で新しいインバウンドルールを追加します。
“source” フィールドに入力する正しい IP アドレスは、MoEngage のデータセンターのリージョンによって異なります。 追加する必要があるインバウンドルールは 1 つだけです。たとえば、MoEngage の DC-01 サーバーを使用している場合は、最初の CIDR ブロックのみを追加します。 securitygroup.png
  1. アウトバウンドルールは空のままにします。
  2. 完了したら “Create security group” をクリックします。

既存のセキュリティグループを編集する

EC2 コンソールの “Network & Security” で、Security Groups ページを開きます。セキュリティグループの一覧から、編集するものを開きます。
  1. セキュリティグループのページで “Actions” ボタンをクリックし、“Edit inbound rules” を選択します。
  2. 上記の表に従って、新しいインバウンドルールを追加します。
  3. 完了したら “Save rules” をクリックします。

セキュリティグループを Redshift クラスターにアタッチする

  1. Redshift コンソールで、Redshift クラスターを開きます。Properties タブに移動します。
  2. “Network & Security settings” セクションで、“Edit” ボタンをクリックします。
  3. VPC security groups で、作成または編集したセキュリティグループを選択します。
  4. 完了したら “Save changes” をクリックします。

ステップ 4:新しい IAM ポリシーを作成する

MoEngage が S3 から Redshift クラスターにデータを転送できるようにする、新しい IAM ポリシーを作成する必要があります。 createpolicy.png
  1. IAM コンソールの Access Management で、Policies に移動します。“Create policy” ボタンをクリックします。
  2. Create Policy ページで JSON タブに切り替え、以下のポリシーを貼り付けます。
<bucket-arn> の値は、MoEngage のデータセンターのリージョンによって異なります。 <bucket-arn> を、お使いの MoEngage データセンターのリージョンに対応するものに置き換えるだけです。 jsonpolicy.png “Next” をクリックし、任意でタグを追加します。次に “Next: Review” をクリックします。
  1. ポリシーに名前と、任意で説明を付けます。準備ができたら “Create policy” をクリックします。reviewpolicy.png

ステップ 5:新しい Redshift IAM ロールを作成する

このロールにより、MoEngage のサーバーが Redshift クラスターにデータを書き込めるようになります。
  1. IAM コンソールの Access Management で、Roles に移動します。“Create role” ボタンをクリックします。
  2. Trusted entity type として “AWS service” を選択します。Use Case で、“Use cases for other AWS services” から “Redshift ” を選択します。Redshift のユースケースの種類で、“Redshift - Customizable ” を選択します。準備ができたら “Next” をクリックします。 newrole.png
  3. 次のステップで、ステップ 4 で作成したポリシーを選択します。完了したら Next をクリックします。 selectpolicy.png
  4. ロールに名前を付け、先ほど作成した正しいポリシーがアタッチされているかを確認します。準備ができたら Create Role をクリックします。 createrolefinal.png

ステップ 6:このロールを Redshift クラスターにアタッチする

Redshift コンソールで、Redshift クラスターを開きます。
  1. Properties タブで、“Associated IAM roles” セクションに移動します。
  2. “Manage IAM roles” ボタンをクリックし、“Associate IAM roles” オプションを選択します。
  3. ポップアップのモーダルから、ステップ 5 で作成したロールを選択します。
attachrole.png
  1. “Associate IAM roles” をクリックして、このロールを Redshift クラスターにアタッチします。

ステップ 7:MoEngage App Marketplace で Redshift 連携を有効にする

  1. MoEngage ダッシュボードで、App Marketplace に移動します。
  2. “Redshift” を検索します。
  3. “Integrate” タブに移動し、”+ Add Integration” をクリックします。
addintegration.png
  1. Redshift クラスターの接続の詳細を入力します。
connectiondetails.png credentialsandevents.png
  1. 任意で、接続をテストできます。MoEngage は入力された詳細が正しいかどうかを検証します。問題がある場合はエラーが表示されるので、修正できます。
  2. 接続テストが成功したら、接続の詳細を保存できます。MoEngage は間もなく Redshift クラスターへのイベントのエクスポートを開始します。

データを正しく受信しているかを確認する

MoEngage はスキーマに以下の 2 つのテーブルを作成します。
  1. test_connection_moengage - このテーブルは、接続の詳細が有効かどうかを定期的に確認するために使用します。
  2. moengage_events - すべてのイベントをこのテーブルにダンプ(追加)します。
tablestructure.png moengage_events テーブルをクエリすることで、データがウェアハウスに正しく流れているかを確認できます。 tabledata.png

サポートされている日時形式

テーブル構造のサンプル

最終的なテーブル定義は、エクスポートの具体的な構成によって異なります。

エクスポートの頻度

データは 1 時間ごとにダンプされます。

よくある質問

通常、アカウントの自動データエクスポートが設定され、データが表示され始めるまでに最大 30 分かかります。
はい。後から新しいイベントをエクスポートする必要がある場合は、いつでも App Marketplace で構成を編集し、新しいイベントをエクスポートに追加できます。
現時点では、自動データエクスポートを使用して履歴データをエクスポートすることはできません。構成が完了すると、エクスポートを有効にした時点からの各イベントのデータが表示され始めます。
お使いの料金プランにこの機能がまだ含まれておらず、後から有効にする必要がある場合は、カスタマーサクセスマネージャーと協力して料金プランに含める必要があります。MoEngage が毎月データウェアハウス/パートナー/API に送信するデータ量に応じて、追加料金が発生する場合があります。
いいえ。データエクスポートは主にイベントをほぼリアルタイムでエクスポートするために構築されており、MoEngage のユーザー属性は非同期で更新されるため、現時点ではエクスポートにおけるユーザー属性の最新値を保証することはできません。