LoginSignup
8
11

More than 5 years have passed since last update.

[AWS IoT] Kinesis Firehoseに連携しAmazon S3へ保管

Posted at

やりたかったこと

AWS IoTを入り口にKinesis Firehose経由でAmazon S3にファイルを保管する仕組みを作りました。ノーコーディングなので、だいたい1時間くらいで実装できます。
本当はRaspberry Piあたりもやろうかと思ったのですが、時間がないので省略しました。
AWS IoTのMQTT Clientというテストツールを使うとAmazon S3に以下のようにファイルができます。
AWS IoT Result.jpg

仕組み

今回の連携図はこんな感じです。
IoT Overview.jpg
AWSのサービス間は連携が優れています。この辺のサービスを作った結果の感想をマイクロサービス否定派が変節した経験に書いています。
初心者が疑問に思うのは「Kinesis Firehoseいるの?」です。私も最初はその状態でした。
Kinesis FirehoseがないとIoT情報を集約することができず、Amazon S3に生成されるファイル数が異常に増えてしまいます。
例えば、100台のマシンから1分ごとにリクエストを受けた場合の1時間のファイル数は以下のとおりになります。
Kinesis Firehoseなし:6000ファイル(100 * 60 = 6000)
Kinesis Firehoseあり:20ファイル(3分でサマリする0設定にした場合:60 / 3 = 20)

設定1. Amazon S3

まず、Amazon S3から設定していきます。バケットを作るだけの簡単な作業です。
1.「バケットを作成」ボタンを押します。
01.AWS IoT 01 Create a S3 Bucket.jpg
2.バケット名入力とリージョン選択だけです。
01.AWS IoT 02 Create a S3 Bucket.jpg

設定2. Kinesis Firehose

1. Create Delivery Stream

まずは「Create Delivery Stream」ボタンを押します。
01.AWS IoT 03 Create Kinesis FH.jpg

2. Destination

次にDestinationをAmazon S3にして先のステップで登録したバケット名を指定します。
01.AWS IoT 04 Create Kinesis FH.jpg

3. Configuration

最後は細かい設定です。ほとんどはデフォルト値のままにして、「Buffer interval」だけ60(秒)にしました。この設定により、60秒間隔でAWS IoTからの情報を集約してAmazon S3にファイルを生成します。
01.AWS IoT 05 Create Kinesis FH.jpg

設定3. AWS IoT

1. Create a thing(1/2)

まずは「Create a thing」ボタンを押して"a thing"を作ることから始めます。
01.AWS IoT 06 IoT Create a Thing.jpg

2. Create a thing(2/2)

次に"a thing"の情報を入力して登録します。
01.AWS IoT 07 IoT Create a Thing.jpg

3. Create a rule(1/2)

"a thing"に続いてルールを登録するため「Create a rule」ボタンを押します。
01.AWS IoT 08 IoT Create a rule.jpg

4. Create a rule(2/2)

ルールの情報を入力していきます。「Choose an action」で"Amazon Kinesis Firehose"を選択して、先のステップで登録したDelivery Streamを入力します。"Amazon Kinesis Firehose"のリージョンとAWS IoTのリージョンが一緒でないとプルダウンメニューに出てこないので注意してください。
01.AWS IoT 09 IoT Create a rule.jpg

さいごに

これでAWS IoT→Amazon S3につながりました。Amazon S3はSparkやMapReduceなどからもアクセスできるので使いみち広がります!

以下の記事も併せて参考になるかと思います。

8
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
11