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




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

アップロード方法

  • AWS SDKを使用する方法
  • aws-kinesis-agentを使用した方法
  • fluent-plugin-kinesisを使用した方法

アップロードにはいくつか方法がありますが今回はAWS SDKを使用したアップロード方法を紹介したいと思います。

AWS SDKを使ったアップロード方法

Kinesis Firehoseの設定

今回はFirehoseにアップしたデータをS3にアップできるように設定します。まず、リージョンはオレゴンを指定します。

*2017年8月25日から東京リージョンでも使用できるようになっています。

Create Delivery Streamを押して詳細設定を行います。

Destinationは今回S3です。Streamの名称を好きなものに決めて、アップロード先のS3バケットを選択します。

 

圧縮方法とバッファ間隔

次の設定はS3にアップロードするタイミングを決める設定、圧縮するかどうか、暗号化を行うか等を決めれます。今回は圧縮と暗号化はせずにアップロード間隔を60に変更しました。間隔は60秒から900秒まで設定できます。

 

ロール設定

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

最後に確認画面で設定が問題なければCreate Delivery Streamを押して完了となります。

AWS SDKの使い方

Node.jsを使用する場合はJavascript用のものを使用します。npmにあるので下記でインストールします。

まずはFirehoseにアクセスできるように各種値を設定します。2017年6月現在Firehoseは東京リージョンでは使用できないのでオレゴンで作ったものを使用します。エンドポイントとリージョンはここを参考にしました。

putRecordでデータを一件だけFirehoseにアップロードすることができます。複数アップロードする場合はputRecordBatchでできます。使い方は簡単でStream名とアップしたいデータを渡すだけでS3までデータをアップロードしてくれます。

まとめ

  • Firehose、S3をオレゴンに立てる。
  • AWS SDKのputRecord(putRecordBatch)を使う

FirehoseはRedshiftやAnalyticsにもデータをロードできるので次回はその方法について記事を書きたいと思います。

書きました!こちらも参考にしてみてください!

おすすめ本

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







コメントを残す

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