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 Funnel

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

Funnel Funnel

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

Funnel Funnel

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

Funnel Funnel

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

Funnel Funnel

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

Funnel Funnel

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

Funnel Funnel

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

Funnel Funnel

Kinesis Firehose 実行用の AWS IAM ロールを 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設定 funk設定

SORACOM Funnel を有効にする

Funnel の設定はグループに対して行います

ここでは、グループの設定を変更する操作のみを説明します。グループの仕組みやグループを作成する操作について詳しくは、グループ設定 を参照してください。

  1. SIM グループ画面で [SORACOM Funnel 設定] をクリックします。

    SIM グループ画面を表示する操作について詳しくは、グループの設定を変更する を参照してください。

  2. スイッチをクリックして「ON」にします。

  3. 各項目を設定します。

    Funnel Funnel

    項目説明
    [転送先サービス]「Amazon Kinesis Firehose」を選択
    [転送先 URL]

    データ送信先のクラウドサービスの URL を入力します。

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

      https://firehose.ap-northeast-1.amazonaws.com/<Delivery stream name>
      
    [認証情報]クレデンシャルの登録 で登録した AWS IAM ロール認証情報を選択
    [送信データ形式]「JSON」を選択
  4. [保存] をクリックします。

  5. IoT SIM が所属するグループを切り替えます。

    IoT SIM の 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 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 アダプターを使用してクラウドにデータを収集する (コンソール版)」は完了です。