LoginSignup
8
9

More than 5 years have passed since last update.

Google Cloud Platformのサーバレスサービスを使用して、自宅の環境データを見える化したので振り返る。

Posted at

やった事

今回、自宅にあるラズパイから環境データを飛ばし見える化するまでを、Google Cloud Platformのサーバレスサービスを使用して実装してみました。一通り出来たので、料金含めて振り返りたいと思います。

イメージ図と使用したサービスは以下の通りです。
イメージ図

IoT Coreのアイコンは公式から提供がなかったので青い六角形で代用しています。

なお、当投稿は2017年12月時点の情報のものになります。

振り返り

ラズパイからIoT Coreまで

ラスパイにBosch社制BME280を繋ぎ、Pythonを使用してデータを取得しています。同じくPythonを使用してIoT Coreへデータを飛ばしています。
ほぼ公式のQuickStartと同じ手順で実装しました。

IoT Core自体は単なるデバイスの管理ができるサービスなのでデータが飛んできているか否かしか確認することができません。実際に使用するには他のサービスと連携する必要があります。

IoT CoreからPubsubまで

非常に簡単でした。IoT CoreでPubsubのトピックを指定するだけ。具体的にはIoT Coreの端末レジストリに指定するだけでした。そうすることでデバイスから飛んできたデータをPubsubへ飛ばしてくれます。
IoT CoreはPubsubが前提のサービス、Pubsubがハブの役割をして他のサービスへデータを流していきます。
PubsubからはGoogle Cloud Platformのサービスだけでなく、別のサービスへデータを流すことも可能です。

PubsubからDataflow経由でBigQueryまで

Google 提供のテンプレートを使用して実装しました。DataflowのコンソールにてPubsubのトピック名・BigQueryのテーブル名を入力するだけで実装可能です。送信するデータ形式はJSONで以下のように飛ばすと自動的にBigQueryのカラムに格納されます。

{"COLUMN_NAME":"DATA_VALUE"}

BigQueryからData Studioまで

データソースとしてBigqueryのテーブルを選択し、集計カラム、期間の入ったカラムを指定してレポートを作成するだけで実装可能です。一般的なグラフは既に機能として実装されているので簡単に見せる化することができました。BI系の経験がある方は割とすんなり使うことが可能かと思います。
イメージ

料金

ラズパイからのデータ送信間隔は30秒に1度、約二日半くらい使い続けた
料金一覧

まとめ・考察

非常に簡単に見える化できました。IoT CoreとData Studioはベータ版ですが機能としては十分に感じました。

が、料金は結構高い印象です。特にDataflowが。
Google提供のテンプレートですとストリーミングの取り込みになるので結構なコンピューティングリソースを使ってしまいます。
今回のようにデバイスが少ないしリアルタイムなデータを必要としない場合は無駄にリソースを消費していることになります。
Pubsubにデータが飛んできた場合にDataflowを起動するような仕組みや、定期的に起動する仕組みを用意すれば的確にリソースを使用することができそうです。工夫の余地はあります。

8
9
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
9