AWS Summit 2015 に参加してきました Day2 #AWSSummit

こんにちは、sparkgeneです。

6/2〜6/3はAWS Summit 2015が開催されています。

2日目の参加レポートをお送りしたいと思います。

KeyNote

初日のKeyNoteではAWSの状況や利用事例を中心に進められましたが、2日目では嬉しいお知らせがいくつか発表されました。

この夏、LambdaとCognitoがTokyoリージョンへ来ます!

Lambdaが東京で使えるようになると、ちょっとしたことのためにインスタンスを用意していた場合はLambdaで足りてしまうことも出てくるので、サーバレスを進めることが出来ます。

さらに、LambdaファンクションをJavaで書けるようになるとの話もあり、re:Inventの発表以来Lambdaの盛り上がりはスゴイですね。

本日よりAmazon WorkDocsが日本語UI+東京リージョンで利用できるようになりました!

ストレージ&共有の機能を提供しているWorkDocsですが、PC、スマフォ、タブレットとデバイスを選ばず利用可能ということで、エンタープライズで利用するにはかなり便利なサービスではないでしょうか。

新サービスの発表の途中で、AWS Community Heroに選出されたクラスメソッドの横田さんも登壇し、JAWS-UGの話もありました。

AWSの中でも、日本のAWSユーザーグループが規模も活動も最も活発なユーザーグループとして認識されており、USの社員の中でもサメのロゴも人気があるようです。

つづいて、参加したセッションの紹介です。

今日から始められる、機械学習!Amazon Machine Learningのご紹介

先日のAWS Summit で発表されたAmazon Machine Learningですが、本格的なデータサイエンティストに使ってもらう想定ではなく、開発者がもうすこし気軽に機械学習を使えるようにとローンチされたサービスです。

IMG_5282

取り扱える予測モデルとアルゴリズムは

  • 二項分類
    • ロジステック回帰
  • 他クラス分類
    • 多項式ロジスティック回帰
  • 回帰分析
    • 線形回帰

となっています。

デモで顔の画像データを学習させ、そのデータを元に他の顔の画像データを解析することで、本人かどうかを判定できるような物が紹介されました。

マネージメントコンソールから学習結果を調整したりと、コマンドラインからではなくても使えるので、モデルを作るのは非エンジニアでも簡単に出来そうです。

IMG_5288

開発生産性を上げるためのデプロイ戦略

Amazon.comにおけるデプロイは

平日のデプロイ間隔 1時間あたりの最高デプロイ回数 1回のデプロイで同時に変更を受ける平均ホスト数 1回のデプロイで同時に変更を受ける最高のホスト数
11.6秒 1,079回 10,000台 30,000台

と言う驚異的な数字でした。

これを実現するにはマイクロサービス化がされていないとダメで、「Two Pizzaルール」(1チームが2枚のピザで足りるぐらいの規模。アメリカンなピザのサイズなので、最大8〜10名ぐらい)にもとづいたチームが、それぞれの担当する機能を作っては、デプロイするような形となっています。

ポイントとしては以下が上げられていました。

  • 多くのチームが非同期にデプロイする必要がある
  • APIによるチーム間の疎結合化
  • デプロイ自動化と全チームでの利用

もちろん、属人的なチームだと「この人いないとデプロイ出来ない」みたいなことはあってはならないように、個々人が複数のスキルを持っている必要があるとのこと。

実際に他のサービスでデプロイをするとした場合、Amazon.comほどの規模は必要なく、そのサービスに合ったデプロイ戦略が大事との話でした。

IMG_5313

AWSでは、以下のサービスがデプロイを支援してくれるので、サービスに合ったものを選ぶのがいいでしょう

なぜクックパッドは開発しやすいのか

クックパッドの最近のデータ

レシピ数 月間ユニークブラウザ数 プレミアム会員 EC2インスタンス リクエスト数
2百万件 5200万 160万人 1000台 ( ピーク時 ) 15,000req/sec ( ピーク時 )

7名の運用エンジニアと90名以上の開発者でクックパッドが作られているそうです。

また、クックパッドは世界で一番大きなモノリシックRailsアプリケーションだそうで、大体Railsの本家も知らないようなバグを踏んでは、開発元にフィードバックしているとのことでした。

「rake stats」の結果でModelの数が1732個あり、lsするだけでもしんどいみたいな話でした。

そんな大規模なシステムを抱えているクックパッドですが、開発しやすい環境を整えるためにそれなりの労力を惜しみなく注いでいると。

開発しやすいとは、「開発者が楽したい」という意味ではなく、「素早くユーザーに価値を提供したい」ために開発しやすいようにしているそうです。

今回の発表ではその取り組みとして以下の4つのことについて話がありました。

本番DBと同じデータで開発できる仕組みを作った

IMG_5350

ダミーデータだと画面のレイアウトが分かり難いうえ、よりユーザーが見るのと同じ画面にしないとユーザー体験がわからない。

本番環境でベータテストを行う

IMG_5354

範囲限定公開を支援するgem chankoというものが作られていて、本当に価値を生み出すかわからないような機能を、100%に仕上げてから投入するよりも、ある程度のところで実際に本番に入れてみて、仮説が正しいかを検証して、良ければちゃんと仕上げてリリースする。

テストの高速化

IMG_5363

RRRSpecと言う複数のスポットインスタンスを使ってRSpecをへ移行実行してくれるツール。これによって、この大規模なテストケースを7分で終わらせるという。(ローカルのPCで実行したらヘタすると1日で終わらないそうです)

デプロイ

IMG_5378

デプロイの仕組みにはMamiyaを使っています。

クックパッドでのデプロイはこのMamiyaを使って、tarballにしたソースをS3に上げると各サーバがそれを事前にダウンロードしておいて、serfで新しいソースに切り替える命令を出して、各サーバがソースの入れ替えとサービスの再起動をしているそうです。

これによりデプロイ時間が8分から13秒に短縮されたとのこと。

AWS クラウドを活用した IoT / M2M ソリューション

スマートフォンのデバイス数は 73億台、Iot デバイスは 260億台と言われているそうです

IoTの市場規模は現在9.4兆円で、2019年には16.4兆円規模まで大きくなると予想されています。

IoTデバイスは様々なマーケットで利用されている

  • 製造
  • 交通
  • エネルギー
  • 家電
  • ヘルスケア
  • 農業

AmazonでのIoTへの取り組み

  • Amazon Drone
  • Amazon echo
  • Amazon dash
    • バーコード読み取り式
    • 特定の商品をボタンひとつで購入するもの

IoTを使った取り組みはヒットするかはわからないので、低コスト最小構成で始められるAWSをバックエンドに使うのに向いてます。

最近はIoT/M2Mゲートウェイというものの需要が高まっている

ゲートウェイでデータ集約、フィルタ、データ送信、コマンド実行などおこないます。
(コマンド実行とは、センサーデータが閾値を超えたら通知してくれると言ったこととか)

以前、別のイベントで会場の騒音を収集するデバイスを作って3日間設置しておいたら、25万レコードのデータが生成されたとのことでした。

生成されたデータはリアルタイムにAmazon Kinesisに取り込まれ、集計して可視化すると言ったものだったそうですが、やはりAWSとの相性は良いようです。

IoT連携を見越してなのか、Kinesisは6/2に料金体系が変わりました

  • 25kbyte以下のデータサーズは値下げされた
  • 50kbyte以上のデータサイズを利用することも可能(1Mまで可能に)
  • Kinesis Producer Libraly

あきんどスシローさんでもお皿にRFIDタグを付けてその情報をすべてKinesisで受け取り、分析に活用されていますので、IoTとKinesisの相性は良さそうです。

JAWS-UG 勉強会 in AWS Summit Tokyo 2015

前半はLTメインでユーザーグループの話やAWS芸人が登場したりと、JAWS-UGらしい楽しさがありました。

最後にウルトラクイズが行われました。優勝者は今年のre:Inventに招待されるということで、大変な盛り上がりでしたが、私はマネージメントコンソールの日本語化の問題で残念ながら敗退してしまいました。

まとめ

今年のAWS SummitはDevConと題し、デベロッパー向けのよりテクニカルなセッションを別会場で用意してましたので、今日参加したセッションはだいたいそちらの方で行われたものでした。すごく参考になるセッションも多く色々と勉強になりました。