アップロード方法
- 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にあるので下記でインストールします。
npm install --save aws-sdk
まずはFirehoseにアクセスできるように各種値を設定します。2017年6月現在Firehoseは東京リージョンでは使用できないのでオレゴンで作ったものを使用します。エンドポイントとリージョンはここを参考にしました。
import AWS from 'aws-sdk'; const firehose = new AWS.Firehose({ apiVersion: '2015-08-04', accessKeyId: ACCESS_KEY_ID, secretAccessKey: SECRET_ACCESS_KEY, endpoint: 'https://firehose.us-west-2.amazonaws.com', region: 'us-west-2' });
putRecordでデータを一件だけFirehoseにアップロードすることができます。複数アップロードする場合はputRecordBatchでできます。使い方は簡単でStream名とアップしたいデータを渡すだけでS3までデータをアップロードしてくれます。
firehose.putRecord({ DeliveryStreamName: 'TestFirehose', Record: { Data: 'firehose test data' } }, function(err, data) { if (err) { console.log(err, err.stack); } console.log(data); // { RecordId: 'Y49Vw8CxcD++gBnq4Ubj8rNpfG08nEz5pZTI7NL5PMoACYFvVhjTeVLvwBpNKWCFn94fJV3zqfNXpTrOC4NtJblZVC25TbscBR6mZe55M3HbQVHUqt3hOfsmMlBl16nYNQNjw0ZgnC/BHZAZTaeMyBai80rAbF/0jA235b/o200D3ATaejlICX+yz5HYNtgM+lNM7ts8Mcd5Wf7RH/3Q6+xklnPIu3pd' } });
まとめ
- Firehose、S3をオレゴンに立てる。
- AWS SDKのputRecord(putRecordBatch)を使う
FirehoseはRedshiftやAnalyticsにもデータをロードできるので次回はその方法について記事を書きたいと思います。
書きました!こちらも参考にしてみてください!
- AWS KinesisFirehoseとS3、Redshiftの連携方法
- Kinesis Firehoseをオレゴンから東京リージョンに移行する手順
- Kinesis Firehoseで送るデータをLambdaで整形するNode.jsの実装方法
おすすめ書籍
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
コメントを残す