AWSでSaaSアプリケーションのデータをAWS内に取り込むサービスが発表されました。
私が注目したのは、Google AnalyticsのデータをS3に簡単に取り込めるようになったことです。今までは、Google AnalyticsのデータをS3に落としてこようとすると、Google AnalyticsのAPIを利用するか、360を契約してBigQueryで引っ張ってくるしかありませんでした。
私の会社はGCPが使えないので、今まではAPIを利用するしかありませんでした。そこで登場したのがAmazon AppFlowです。早速設定してみました。
公式での使い方をチェック
Requirements for Amazon AppFlow - Google Analyticsから翻訳して引用します。
Google API Console at https://console.developers.google.com にログインして、下記の手順を行う
Analytics APIをアクティベイトする
新しいアプリをAppFlowとして作成する。ユーザーの種類は"内部"にセット。スコープに"read only access"を追加。承認済みドメインに"amazon.com"を追加
OAuth 2.0 クライアント IDを作成する。アプリケーションの種類は"ウェブ アプリケーション"。承認済みの JavaScript 生成元に"https://console.aws.amazon.com"をセット。承認済みのリダイレクト URIに"https://ap-northeast-1.console.aws.amazon.com/appflow/oauth"をセット
Amazon AppFlowにクライアントIDとクライアントシークレットをセット。Googleのログインページにリダイレクトされる。okを押すと、Amazon AppFlow permissionsに、Google Analyticsのアカウントへのアクセスが与えられる。
簡単そうですね、それでは実際に手を動かしてやってみます。
GCPの設定
Google Analytics APIとGoogle Analytics Reporting APIを有効化します。説明ではAnalytics APIだけですが、Analytics Reporting APIも有効化しないとAWS側でエラーになります。
OAuth同意画面でユーザーの種類を"外部"にします。(注)公式では"内部"となっていますが、"内部は"G suiteユーザーしか選択できません。私は"外部"でAppFlowが動作しましたが、動作しない方もいる可能性もあります。
また、OAuth同意画面でスコープと承認済みドメインをセットします。
スコープの選択画面で、Google Analyticsと、 Google Reporting API、2つ出てきますが、どちらのreadonlyを選んでもスコープは同じなので、問題ないです。
認証情報で、承認済みのJavaScript生成元、承認済みのリダイレクトURIに値をセットします。承認済みのリダイレクトURIは、東京リージョンであれば"https/://ap-northeast-1.console.aws.amazon.com/appflow/oauth"でokです。
AppFlowの設定
GCPで作成したクライアントID、クライアントシークレットをセットします。
Dimensions & Metrics Explorerで欲しいディメンションとメトリックスを選択していきます。今回は日付とPVを取得することにします。
Google Analyticsはスコープの概念があり、これを考慮しないと誤った値を取得してきてしまいます。AppFlowには、全てのディメンション、メトリックスをマッピングという機能がありましたが、値はおかしくなる気がするので注意が必要です。
実行
結果
まとめ
AppFlowを利用して簡単にS3に引っ張ってくることができました。Goole Analyticsの他にもSalesforce、Marketoと面白そうなソースを取得してくることができます。これからも増えてくるのでしょうか。
AWSにSaaSのコネクターが増えてくれば、AWSだけで何とかなっていきそうですね。