Soracom

Users

ドキュメント

Amazon Kinesis Data Firehose アダプターを使用する (ユーザーコンソール版)

当ガイドでは、SORACOM Funnel (以下、Funnel) の Amazon Kinesis Firehose アダプターを使用し、デバイスから送信するデータを Amazon S3 に収集します。

ステップ 1: Amazon Kinesis Firehose を設定する 

まず、クラウドサービス側の Amazon Kinesis Firehose を設定します。 AWS (Amazon Web Services) のコンソールから「Kinesis」を選択します。

Funnel

「Go to Kinesis Firehose」をクリックします。

Funnel

Amazon Kinesis Firehose の管理画面から「ストリームを作成」を選択します。

Funnel

次に、以下のように Destination として「Amazon S3」、Delivery stream name に「my-kinesis-firehose01」を選択し、S3 bucket を選択します。

Funnel

Kinesis Firehose サービスが使用する IAM ロールを選択します。ここでは、「Firehose delivery IAM role」を選択します。

Funnel

以下のような画面が表示されたら、IAM ロールのアクセスを許可します。

Funnel

IAM ロールを確認し、「Next」をクリックします。

Funnel

設定内容を確認し、「Create Delivery Stream」をクリックし、Delivery Stream を作成します。

Funnel

Kinesis Firehose 実行用の AWS IAM ロールを IAM サービス から作成します。

IAM ロール作成

  • [指定されたエンティティの種類]: 別の AWS アカウントを選択します。
  • [アカウント ID]: SIM グループのカバレッジに応じて以下のとおり入力します。
    • 日本カバレッジ: 762707677580
    • グローバルカバレッジ: 950858143650
  • [外部 ID]: 任意の文字列を指定します。外部 ID は認証情報ストアに認証情報をメモします。

次のステップに進み、Kinesis の実行を許可するポリシーをアタッチ(KinesisFirehose作成時にIAMロールが作成されますので、同じポリシーをアタッチしてください)、もしくは新規作成してアタッチしてロールを作成します。作成が完了したら、IAM ロールの ARN をメモします。

以上で、クラウドサービス側 (Amazon Kinesis Firehose) の設定は完了です。

ステップ 2: SORACOM Funnel を設定する 

クレデンシャルの登録 

SORACOM コンソールで AWS IAM ロールの認証情報を登録します。

[右上のユーザー名][セキュリティ][認証情報ストア][認証情報を登録] を選択します。

  • [認証情報 ID]: 認証情報の名称となりますのでわかりやすい文字列を指定します。
  • [種別]: AWS IAM ロール認証情報を指定します。
  • [ロール ARN]: ステップ 1 でメモした IAM ロールの ARN を入力します。
  • [外部 ID]: ステップ 1 でメモした外部 ID を入力します。

funk設定

クラウドサービスの指定 

次に、クラウドサービスを指定します。Funnel の設定 (クラウドサービスの指定) は IoT SIM のグループに適用します。

以下のようにグループを作成してください。

Funnel

画面左上部のプルダウンメニューから「グループ」をクリックし、作成したグループを選択します。 以下のような画面が表示されます。

Funnel

「SORACOM Funnel 設定」のタブを開き、以下のようにクラウドサービスを指定します。

  • リソースタイプを選択します。ここでは、「Amazon Kinesis Firehose」を選択します。

  • リソース URL を入力します。

    • 東京リージョンの場合、以下のようなリソース URL となります。

      https://firehose.ap-northeast-1.amazonaws.com/<Delivery stream name>
      
  • 認証情報では、先ほど登録した AWS 認証情報を選択します。

  • 送信するデータの形式は、JSON を選択してください。

Funnel

以上で、設定は完了です。

ステップ 3: Kinesis Firehose アダプターを使用してクラウドにデータを収集する 

いよいよデータを送信します。 SORACOM Air の SIM を先ほど Funnel の設定を行ったグループに所属させてください。

Funnel の エントリーポイント へリクエストを送信します。

  • 送信コマンド例
$ nc funnel.soracom.io 23080
{"message":"Hello SORACOM Funnel via TCP!"} [Enter]
200
[Ctrl+C]
  • 送信コマンド例
$ nc -u funnel.soracom.io 23080
{"message":"Hello SORACOM Funnel via UDP!"} [Enter]
200
[Ctrl+C]
  • 送信コマンド例
~$ curl -vX POST http://funnel.soracom.io -d "{\"message\":\"Hello SORACOM Funnel via HTTP!\"}" -H Content-Type:application/json
* Rebuilt URL to: http://funnel.soracom.io/
*   Trying 100.127.65.43...
* Connected to funnel.soracom.io (100.127.65.43) port 80 (#0)
> POST / HTTP/1.1
> Host: funnel.soracom.io
> User-Agent: curl/7.43.0
> Accept: */*
> Content-Type:application/json
> Content-Length: 44
>
* upload completely sent off: 44 out of 44 bytes
< HTTP/1.1 204 No Content
< Date: Thu, 14 Jan 2016 17:18:46 GMT
< Connection: keep-alive
<
* Connection #0 to host funnel.soracom.io left intact

ステップ 4:収集されたデータを確認する 

Kinesis Firehose の出力先 (Destination) として指定した S3 Bucket を確認します。 以下のようにファイルが生成されていることが確認できます。

Funnel

{"operatorId": "OP0026965167", "timestamp": 1455672330494, "destination": {"resourceUrl": "https://firehose.us-west-2.amazonaws.com/my-kinesis-firehose01", "service": "firehose", "provider": "aws"}, "credentialsId": "my-aws-credentials", "payloads": {"message": "Hello SORACOM Funnel via TCP!"}, "sourceProtocol": "tcp", "imsi": "440XXXXXXXXXX"}
{"operatorId": "OP0026965167", "timestamp": 1455672351248, "destination": {"resourceUrl": "https://firehose.us-west-2.amazonaws.com/my-kinesis-firehose01", "service": "firehose", "provider": "aws"}, "credentialsId": "my-aws-credentials", "payloads": {"message": "Hello SORACOM Funnel via UDP!"}, "sourceProtocol": "udp", "imsi": "440XXXXXXXXXX"}
{"operatorId": "OP0026965167", "timestamp": 1455672363539, "destination": {"resourceUrl": "https://firehose.us-west-2.amazonaws.com/my-kinesis-firehose01", "service": "firehose", "provider": "aws"}, "credentialsId": "my-aws-credentials", "payloads": {"message": "Hello SORACOM Funnel via HTTP!"}, "sourceProtocol": "http", "imsi": "440XXXXXXXXXX"}

以上で、「SORACOM Funnel の Kinesis Firehose アダプターを使用してクラウドにデータを収集する (コンソール版)」は完了です。