こんにちは、新卒の鎌田です。5月に入り、技術研修を行っています。LinuxサーバーをAWSで立てて色々いじり始めました。
なお、立てたサーバーにログインして最初にしたことは魔のコマンドrm -rfを入力することでした。爽快感。(直ぐにサーバーをリビルドしました。)
さて、今回私は、5/19に目黒のARCO TOWERで開かれたAmazonの技術交流会に参加してきました。
正直、私は今回のトピックを理解する技術力を持っていませんでした。
しかし最先端の技術を追いかけているエンジニアたちの、熱量や今見ているモノを少しでも感じたいと思い、参加することにしました。
普段交流のあまりないAWSJとAmazonのエンジニアが会すということもあり、そこで何が起こるのかみたいということがウラの目的でした。
公式として、初心者の方や学生の方も歓迎ということなので、易しい内容のプレゼンテーションもありました。
出来るだけ多くの方に楽しんでもらいたいというAmazonの意図が汲み取れます。
今回私はAWS lambdaを使ってIoTの環境を実現する構成についてと、Apache
sparkという高速分散処理エンジンを利用した言語学習についての二つのセッションに参加しました。(今回はほとんどが英語のセッションでした。これは回によりけりだそうです)
以前、私の上司や同僚とARCO TOWERへ行った時の記事はこちら新卒三人、Amazonへ行く
AWSで実現するIoT環境
こちらの記事でわかりやすくユースケースが紹介されています。
EC2の「状態」をCloudWatchが読み取り、その値をトリガーに何らかの「アクション」をするLambda
AWS
Lambdaを利用するには予め反応するイベント、反応の仕方をセットで定めておきます。
そうしておくことで設定したイベントが発生した際に指定した「アクション」を行ってくれるサービスです。
この「アクション」がキモで、その処理を行うために必要なサーバーなどのリソースを動的に構築して自動でスケールをしてくれます。
Lambdaを使うことによって、サーバーを立てておく必要がなくなり、使うときだけ、使いたい分だけのサーバーを構築することができます。
必要がなくなれば増幅されたサーバーは再度縮小されます。
LambdaとAWS IoT
IoTとLambdaを組み合わせた時に何が起こるかご説明します。
まず、IoTの一般的なユースケースは、様々なセンサーから逐次データが送られるようになっていることです。
そのインプットの多寡は時間によって上下することから、上限に合わせた構成を行うことはコストデメリットが大きいと言えます。
しかし、Lambdaを使うことで、インプット量に合わせて自動でスケールするシステムができます。
それによりサーバーに関しては上限に合わせる必要がなくなります。
Lambdaを使うことによるメリットは、
1 インフラの維持コストの軽減
2 需要に応じた自動スケーリング
3 インフラ構築に時間を割く時間の短縮
です。これによって、インフラに関する知識が少なくても環境を構築することができます。
Apacheのsparkを使用した言語学習
ApacheのSparkという分散処理エンジンを使って、関西弁と標準語を学習していき、最終的にプログラムとして見分けられるようにするシステムを作るセッションがありました。
単語を構成要素別に分解して、そのパーツを関西弁と標準語とでプログラムによって分類します。
関西弁は1のhash tagを、標準語には0のhash tagを付与します。繰りかえし学習をさせることで、識別の精度が高まると説明されていました。
終わりに
最初のIoTセッションは公式ドキュメントで参照できるような構成に見受けられました。
Apache sparkのセッションは私には難解でしたが、この機械学習を使うことによって文字だけでなく、画像や音声データにも符合を付与して分析を行うことができるのではと妄想しました。
総じて、参加してよかったと思っています。まず、普段目にしない、サービス開発エンジニアたちの温度感を感じることができ、その熱量が心地よかったです。
技術について理解できていないにせよ、その技術を使うことによって何ができるのかといったこと、それらの技術が目指すものの一端を知ることができました。
今後の学習のモチベーションアップにつながりよかったと思ってます。
なお、当日は英語のセッションであったため、日本語に変換した過程で多少ニュアンスの違いなどがあるかと思います。
英語版も後日公開致しますので、ご興味がある方がいましたらご覧になって頂けましたら幸いです。