Kinesis Firehoseとは

ストリーミングデータを AWS にロードする最も簡単な方法です。ストリーミングデータをキャプチャ、変換して、Amazon Kinesis Analytics、Amazon S3、Amazon 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関連の記事を下記にまとめました。是非読んでみて下さい。
- Kinesis Firehoseで送るデータをLambdaで整形するNode.jsの実装方法
- Kinesis Firehoseをオレゴンから東京リージョンに移行する手順
- Node.js AWS-SDKを使ったKinesis Firehoseへのデータアップロード
おすすめ書籍
AWSをこれから使う初心者の方から現在使っている中級者の方までおすすめできる書籍です。内容はVPC、セキュリティグループ、IAMなどの基本的なことからWEBサービスを作るのに欠かせない、EC2、RDS、Route53などの扱い方が丁寧に説明されています。
中級者向けにはWEBサーバのオートスケール、Cloud Watchを使ったモニタリング方法、セキュリティ等について解説されています。手元において困ったときに読むのにちょうどいい一冊になると思います。
髙妻智一
最新記事 by 髙妻智一 (全て見る)
- Polkadot(Substrate)のアドレスとトランザクションについて - 2023-03-09
- 【無料公開】「Goで始めるBitcoin」3章 Bitcoinノードとの通信 技術書典8 - 2020-03-08
- エンジニアがゼロから技術ブログを書くための方法をまとめました - 2019-05-25
コメントを残す