6/2にAWS Summit 2015内で行われたAWS Summit Tokyo IOT ハッカソン2015に出場してきました。
ハッカソンは5/9に行われたアイデアソンで通過した5チームで行われたのですが、実質3週間で作り上げないといけなかったためかなりハードでした。
我々はホームロボットと家庭用センサー端末を利用したアイデアを提案したのですが、その中で私はクラウド側(AWS側)の構築とアプリケーションの開発及びホームロボットの基本ロジック部分の実装を担当しました。
今回はその中でAWS側を中心に内容を簡単にまとめたいと思います。
#■その前に今年のAWS Summitについて
説明の前に今年のAWS Summitの感想を少しばかり。
ここ数年、AWSはIaaSからPaaSへの移行が進んでいましたが、昨年はCognitoやMobile Analyticsなどが発表されるなど、モバイル端末との接続を強く押し出していたような印象を受けてました。その流れのを受けて、今年の潮流は、ずばり「IoT/M2M」だったように思います。モバイルからの接続という昨年までの流れを一歩進めて、あらゆるデバイスが接続され、それらから得られる大量のデータを溜め込み、それを解析して活かすという部分に今年はフォーカスが置かれていたように感じました。そういう方向性の中でAWS ハッカソンが行われたのは自然の流れだったのかもしれません。
#■AWSについて
実は、私自身これだけちゃんとAWSを触ったのははじめてでした。
業務上でAWSを利用することがあったとしても環境構築はインフラチームの方がやってくれていましたし、個人で触っていたといってもEC2インスタンスを立ててDocker上でGitLabを立てるとかそれぐらいでした。
なので、今回はかなり初心者レベルからのスタートでした。
そのためかなり難儀しましたが、その分学んだ部分も多かったと思います。
#■システム構成概要
やっと本題です。
今回はまず我々のシステム構成を簡単に紹介させていただきたいと思います。
我々のシステムは大きく分けて二つの処理の流れがあります。
- アプリケーション側からホームロボットを遠隔操作するための流れ
- 家のセンシング情報を集約→集計してアプリケーションに受け渡す流れ
1.については、昔ながらにEC2インスタンスを立てて、その上にMQTTサーバ(正式には MQTT Brokerというのですね)を立てて構築しました。
2.については、S3にログが保存されたことを検知してLamdaで解析処理を実行し、結果をDyanamoDBに登録するという流れになっています。またアプリからDynamoDBへアクセスするための権限付与のためにCognitoも利用しています。
1.はAWSの中でもレガシーな環境構築が必要で、2.については比較的新しめのサービスを利用しているという点で両方を同時に学べたのは非常に良かったと感じています。
次回から何回かに分けて説明を行いたいと思います。
自分自身の備忘録も兼ねて、基本的なことも書いていきたいと思います。
(残バグ修正したり、やり残したこともトライしながら書くと思うのでペースは遅いかもしれません。。。。)