AWS KinesisFirehoseとS3、Redshiftの連携方法




どうも高妻です。Twitterでもプログラミングのことや暗号通貨のことをつぶやいているのでよかったら覗きにきてください。  

Kinesis Firehoseとは

ストリーミングデータを AWS にロードする最も簡単な方法です。ストリーミングデータをキャプチャ、変換して、Amazon Kinesis AnalyticsAmazon S3Amazon Redshift、および Amazon Elasticsearch Service にロードできるので、現在お客様が使用している既存のビジネスインテリジェンスツールやダッシュボードで、ほぼリアルタイムに分析できるようになります。

スマホゲーム業界ではログの種類、ログの量が日々膨大に生成されるので、従来だとログを中継させるログサーバーを準備したり、ログサーバー自身のリソースの管理等をしなければいけませんでした。

Kinesis Firehoseを使えばwebサーバーから直接Firehoseにアップすればいいのでログサーバーの管理が必要なくなり、煩雑な転送処理もしなくて済みます。また、少しの設定でS3とRedshiftに自動でアップロードしてくれるので非常に便利なサービスです。

しかし、Firehoseは2017年6月6日時点ではまだ東京リージョンで使用できないのが残念なところです。なんと2017年8月25日から東京リージョンでもFirehoseが使えるようになりました。これでRedshiftも東京リージョンに作成して問題無くなりますね!

今回はFirehoseが東京リージョンで使用できる前だったのでS3とRedshiftのインスタンスをオレゴンに立てています。正確にはS3はどこのリージョンでもいいのですが、RedshiftはFirehoseと同じリージョンにないと連携ができないので注意してください。

権限設定

3つのサービスの連携では権限付与とセキュリティ設定が肝になります。

  • FirehoseがS3に書き込むための権限付与(ロール設定)
  • FirehoseがRedshiftにアクセスするための設定(Redshiftのセキュリティグループ)

 

FirehoseがS3に書き込むための権限

この権限はFirehoseのストリームを作成するときのロール設定で付与できます。ここでは初期設定でS3に書き込むための権限がついているのでポリシーは変更しなくて大丈夫です。

 

FirehoseがRedshiftにアクセスするための権限

セキュリティグループの設定でFirehoseからのアクセスを許可する必要があります。また、Firehoseをオレゴンに準備した場合、Redshiftも同じリージョンのオレゴンに立てないといけません。

設定はものすごく簡単でRedshiftのセキュリティグループ(初期設定はdeafult VPC)に下記IPとポートを登録してあげるだけです。タイプとプロトコルは自動で設定されます。下記IPはオレゴンにFirehoseを立てた場合なので別リージョンにFirehoseを立てた場合はここを参照してください。

IP: 52.89.255.224/27, Port: 5439(Redshiftのポート)

 

Redshiftへのデータロード

Firehoseへのデータ転送とS3へのロードは下記記事を参考にしてください。

Node.js AWS-SDKを使ったKinesis Firehoseへのデータアップロード

Redshiftへのデータロードを行うにはFirehose側でアクセスするDB名、ユーザー、コピーコマンドオプションを設定します。

 

まとめ

  • S3とRedshiftへのデータロードが簡単に設定できる。
  • Firehoseのロール設定とRedshiftのセキュリティグループ設定が肝。

少しの設定でサービスの連携が簡単に行えるのでぜひ試してみてください。

最後にFirehose関連の記事を下記にまとめました。是非読んでみて下さい。

おすすめ本

AWS初心者の方には下記の入門書がすごくわかりやすいのでおすすめです。







コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です