AWS Summit 2015 に参加してきました Day2 #AWSSummit
sparkgene
こんにちは、sparkgeneです。
6/2〜6/3はAWS Summit 2015が開催されています。
2日目の参加レポートをお送りしたいと思います。
KeyNote
初日のKeyNoteではAWSの状況や利用事例を中心に進められましたが、2日目では嬉しいお知らせがいくつか発表されました。
この夏、LambdaとCognitoがTokyoリージョンへ来ます!
AWS LambdaとAmazon Cognitoが東京リージョンで今夏、利用可能になることが発表されました! #AWSSummit pic.twitter.com/j6BTvHBp2d
— アマゾン ウェブ サービス (@awscloud_jp) June 3, 2015
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ですが、本格的なデータサイエンティストに使ってもらう想定ではなく、開発者がもうすこし気軽に機械学習を使えるようにとローンチされたサービスです。
取り扱える予測モデルとアルゴリズムは
- 二項分類
- ロジステック回帰
- 他クラス分類
- 多項式ロジスティック回帰
- 回帰分析
- 線形回帰
となっています。
デモで顔の画像データを学習させ、そのデータを元に他の顔の画像データを解析することで、本人かどうかを判定できるような物が紹介されました。
マネージメントコンソールから学習結果を調整したりと、コマンドラインからではなくても使えるので、モデルを作るのは非エンジニアでも簡単に出来そうです。
開発生産性を上げるためのデプロイ戦略
Amazon.comにおけるデプロイは
平日のデプロイ間隔 | 1時間あたりの最高デプロイ回数 | 1回のデプロイで同時に変更を受ける平均ホスト数 | 1回のデプロイで同時に変更を受ける最高のホスト数 |
---|---|---|---|
11.6秒 | 1,079回 | 10,000台 | 30,000台 |
と言う驚異的な数字でした。
これを実現するにはマイクロサービス化がされていないとダメで、「Two Pizzaルール」(1チームが2枚のピザで足りるぐらいの規模。アメリカンなピザのサイズなので、最大8〜10名ぐらい)にもとづいたチームが、それぞれの担当する機能を作っては、デプロイするような形となっています。
ポイントとしては以下が上げられていました。
- 多くのチームが非同期にデプロイする必要がある
- APIによるチーム間の疎結合化
- デプロイ自動化と全チームでの利用
もちろん、属人的なチームだと「この人いないとデプロイ出来ない」みたいなことはあってはならないように、個々人が複数のスキルを持っている必要があるとのこと。
実際に他のサービスでデプロイをするとした場合、Amazon.comほどの規模は必要なく、そのサービスに合ったデプロイ戦略が大事との話でした。
AWSでは、以下のサービスがデプロイを支援してくれるので、サービスに合ったものを選ぶのがいいでしょう
なぜクックパッドは開発しやすいのか
クックパッドの最近のデータ
レシピ数 | 月間ユニークブラウザ数 | プレミアム会員 | EC2インスタンス | リクエスト数 |
---|---|---|---|---|
2百万件 | 5200万 | 160万人 | 1000台 ( ピーク時 ) | 15,000req/sec ( ピーク時 ) |
7名の運用エンジニアと90名以上の開発者でクックパッドが作られているそうです。
また、クックパッドは世界で一番大きなモノリシックRailsアプリケーションだそうで、大体Railsの本家も知らないようなバグを踏んでは、開発元にフィードバックしているとのことでした。
「rake stats」の結果でModelの数が1732個あり、lsするだけでもしんどいみたいな話でした。
そんな大規模なシステムを抱えているクックパッドですが、開発しやすい環境を整えるためにそれなりの労力を惜しみなく注いでいると。
開発しやすいとは、「開発者が楽したい」という意味ではなく、「素早くユーザーに価値を提供したい」ために開発しやすいようにしているそうです。
今回の発表ではその取り組みとして以下の4つのことについて話がありました。
本番DBと同じデータで開発できる仕組みを作った
ダミーデータだと画面のレイアウトが分かり難いうえ、よりユーザーが見るのと同じ画面にしないとユーザー体験がわからない。
本番環境でベータテストを行う
範囲限定公開を支援するgem chankoというものが作られていて、本当に価値を生み出すかわからないような機能を、100%に仕上げてから投入するよりも、ある程度のところで実際に本番に入れてみて、仮説が正しいかを検証して、良ければちゃんと仕上げてリリースする。
テストの高速化
RRRSpecと言う複数のスポットインスタンスを使ってRSpecをへ移行実行してくれるツール。これによって、この大規模なテストケースを7分で終わらせるという。(ローカルのPCで実行したらヘタすると1日で終わらないそうです)
デプロイ
デプロイの仕組みには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と題し、デベロッパー向けのよりテクニカルなセッションを別会場で用意してましたので、今日参加したセッションはだいたいそちらの方で行われたものでした。すごく参考になるセッションも多く色々と勉強になりました。