Amazon Web Servicesが提供するサービスは単体で完結するというよりは、複数のサービスを組み合わせてシステムを構築するというのが一般的だ。そして、どのようなサービスが存在するのか、どのサービスとどのサービスを組み合わせることができるのか、サービスをどのように組み合わせると新たな製品やサービスを開発することができるのか、これらが現在のエンジニアに求められるスキルの1つと言える。
新たなアイデアは一人で考え続けるよりも、他のエンジニアと交流して、お互いの製品やアイデアを交換することで生まれたりする。技術の開発は"真似"が大切な要素になっており、他のエンジニアの取り組みを真似することから始め、そこに自分の改善やアイデアを取り込んだり、自分たちの条件に合わせて変えたりすることで新たなものを生み出せる。
AWS re:Invent 2017は全体では5つの会場に分かれて開催されたが、その1つに実際にAWSのサービスを組み合わせて開発されたプロダクトを展示するコーナーが設けられていた。これぞ、他のエンジニアの取り組みを知るには絶好の場所だ。
AWSのサービスを組み合わせて開発されたプロダクトを一挙紹介
机1台分のスペースには、開発したシステムが展示されていたほか、ホワイトボードにどのAWSサービスを使って開発されたのかを示す簡単なダイアグラムが記述されていた。ベンダーの発表というよりも、ホビー寄りのメーカーの発表に近いスタイルだ。
AWSでは100を超えるサービスが提供されているが、こうしたシステムで使われるAWSサービスの種類はそれほど多いわけではないようだった。組み込みデバイスの場合はまずAWS IoTが使われ、それらの周辺にデータをストアするサービス、入力された音声データを認識するためのリコグニッションサービス、処理を行うためのラムダなどが使われるというのが基本的な構成だったように思う。
展示されているシステムの1つに「Simple Beer Service」というものがあった。これはビールサーバとAmazon Echoが接続されたシステムで、音声経由で操作や情報取得が可能というものだ。ビールサーバにはIntel Edisonが接続されており、ここで収集したデータをクラウド側へ送っている。データ収集にはAWS IoTが使われている。そのほか、AWSサービスとして、S3、DynamoDB、Redshift、Lambdaなどが使われている。
Simple Beer Serviceのデモを担当してくれた人が、Intel Edisonの入ったブラックボックスをダム端末と呼んでいた点が印象的だった。最近、ダム端末という言葉はあまり使わないように思うが、処理のほとんどをクラウドプラットフォーム側で行っているということを示すため、あえて「ダム端末」という言葉を使っているようだった。
ダム端末の定義は時代や状況によって変わるので明確な意味を述べることが難しい。だが多くの場合、ある端末が別のメインで処理を行うシステムよりも性能が低く多くの処理をメインのシステムに依頼するようなケースで、その性能の低い端末のことをダム端末と呼ぶことが多いように思う。今回のケースではクラウドがメインのシステムとなり、Intel Edisonの入ったブラックボックスがダム端末ということになる。
この「ダム端末」という言葉は、AWSの進めるクラウドプラットフォームの使い方を示唆するものではないだろうか。
AWSの提供するサービスは基本的にインターネットに接続していることが前提であり、ほとんどの処理をクラウドプラットフォーム側で行うことを前提としている。これはクライアント側にそれほど高い性能が必要ないということを意味しており、廉価なデバイスであってもAmazon Echoのようにインテリジェントな振る舞いをさせることが可能というわけだ。AWSサービスで実現できることを示す1つの言葉が「ダム端末」と言える。
AWSサービスを使うようなトースターや電動歯ブラシが、われわれの生活に必要かどうかはわからないが、2年前に登場したAWS IoTに始まり、ここ数年でリリースされたAWSサービスがさまざまな組み込みデバイスの開発を可能にしていることは間違いない。
AWS re:Invent 2017でもAWS IoT関連の新サービスが続々と発表されており、こうしたクラウドサービスを利用したインテリジェントな製品これから増えることはあっても減ることはないだろう。
そのほか、発表会場で印象的だったのは、開発されたシステムのバックエンドにGoogleの機械学習ライブラリ「TensorFlow」が使われているものが多かったことだ。機械学習のプラットフォームとして、Google TensorFlowは人気がある。
これまでのAWSであればGoogle TensorFlowに代わるサービスを提供することで対抗しそうなものだが、今のところAWSはGoogle TensorFlowとの共同利用を前提とした取り組みを進めているように見える。今後Google TensorFlowにかわるAWSサービスが提供されないとも限らないが、今のところは組み合わせての利用が一般的な状態のようだった。