Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

JAWS re:Mote 2015 Nagoya

1,227 views

Published on

JAWS re:Mote 2015 での発表に使用するスライドです。内容はJAWS DAYS 2015での発表+αです。
サービス (web API) を安全に運営するために、どんな風に AWS を使って設計したかが書かれています。同様のサービスの開発を検討されている方の参考になれば幸いです。
もうすぐ画像認識APIに追加される新機能の紹介も兼ねています。

Published in: Technology
  • Be the first to comment

JAWS re:Mote 2015 Nagoya

  1. 1. JAWS re:Mote 2015 名古屋会場 2015.9.5 来栖川電算 山口陽平 ドコモの画像認識APIもAWSだった続
  2. 2. 2013年の re:Invent ”しゃべってコンシェル” などで 数千台 の EC2 を利用 http://www.slideshare.net/AmazonWebServices/telco-voicecommand- personal-agent-service-with-aws-cloud-mbl202-aws-reinvent-2013 【引用元】 2
  3. 3. 今日話すこと JAWS DAYS 2015 での 発表 + α • 自己紹介 & 会社紹介 • ドコモ の 画像認識API も AWS だった – 設計思想 – 設計 – まとめ – AWS を使う理由 • 宣伝 3
  4. 4. 自己紹介 & 会社紹介 とりあえず 4
  5. 5. 山 口 陽 平 @melleo1978 • 所属 – 有限会社 来栖川電算 取締役 • 自己紹介 企画 ~ 実装まで全部やる人 – 認識技術 & アルゴリズム の研究開発 • 文字認識,物体認識,動作認識,行動認識 – 言語処理系 の研究開発 • 分散DB,仮想機械,コンパイラ – 名古屋工業大学出身,未踏経験 • 好きなAWSサービス – S3,AWS Lambda,STS ※あくまでもイメージです。 実物に髪の毛はありません。 5
  6. 6. 山 口 陽 平 @melleo1978 • [実践]画像認識 を執筆 WEB+DB PRESS Vol.83 – これから画像認識をはじめる人におススメ 6 – OpenCV の使い 方や実装例 – SIFTなどの各種 アルゴリズムや 特定物体認識の しくみ – 精度改善への取 り組み方
  7. 7. 来栖川電算 設立 2003年(名古屋工業大学発ベンチャー) 従業員 30人 • SF世界の技術を実現し、社会に役立てる – 人工知能技術のライセンス販売・研究・SI • 文字認識,物体認識,動作認識,行動認識 – スマホアプリの企画・制作・運営 スマートライフ技術 NTTドコモ様との共同研究 スマートドライブ技術 大手自動車メーカー様むけ メイドさん もふくめて 7
  8. 8. ラジオ体操アプリ だれでも、いつでも、どこでも、すぐできる • Android & iPhone ⇒ http://maiasa.jp/ 8
  9. 9. ドコモの 画像認識APIも AWSだった それでは本題 9
  10. 10. 開発者さん、今すぐ登録ですよ! ⇒ https://dev.smt.docomo.ne.jp Docomo Developer support NTTドコモ が公開している 開発者 向けの API 提供サイト • 実は 画像認識 以外にも幅広く AWS を活用! 画像認識 今日の話はコレ! 画像に写っている物体の情報を取得 環境センサー 日本全国の気温、降水量、紫外線量を取得 音声認識 話した内容を即座に文字に変換 雑談対話 自然な会話をやり取り 知識Q&A 今知りたいことをピンポイントで回答 音声合成 入力した文字を読み上げ トレンド記事抽出 今人気の話題をジャンルやキーワードで検索 文字認識 画像の文字を読み取り 発話理解 要求を理解して、適切な機能を提示 動作推定 行っていた動作の推定
  11. 11. 画像認識API 画像を送るだけで写っている商品の情報が分かる • 登録商品:500 万件以上(昨年10月)の市販商品 – 書籍,DVD,CD,PCソフト,ゲームソフト, 食品パッケージ,… どんどん増加中 • 定期更新:網羅性 と 認識精度 の改善 – データ追加,パラメータ・アルゴリズム改良 11
  12. 12. FIREFLY的アプリが作れる API みなさんがよく知っている Fire Phone の目玉機能 • 写真や音楽からアマゾンの商品を検索 http://jp.techcrunch.com/2014/06/19/20140618amazons-fire-phone- introduces-firefly-a-feature-that-lets-you-identify-and-buy-things- you-see-the-real-world/ 【引用元】 12
  13. 13. 設計思想 安全性・再現性・生産性を重視した 13
  14. 14. 設計思想 安全性・再現性・生産性を重視 • 安全性 を高める考え方 – Blue-Green Deployment[Martin Fowler 2010] • 再現性・生産性 を高める考え方 – Immutable Infrastructure [Chad Fowler 2013] – 設定の版管理 – CLI on Cloud Storage • クラウドが当たり前になったおかげで、 やりやすくなった!(費用的にも) 14
  15. 15. Blue-Green Deployment ダウンタイムの最小化、迅速・確実な復旧 • スタンバイ環境の構築・切替 – アクティブ環境を書き換えないことが重要 15
  16. 16. Immutable Infrastructure ”いつも管理された環境” による再現性の向上 • 差分更新は困難 ⇒ 破棄して最初から構築 – 様々な状態を考慮した差分を作るのは困難 – 実際の状態を正確に管理することは困難 • 様々な要因でサーバの状態は複雑で不明瞭 16
  17. 17. 設定の版管理 ”環境のコード化” による再現性の向上 • 全ての版を保存 – 設定だけから環境を復元可能 – 同じ版の設定から復元される環境は いつも同じ振舞 • 設定(プログラムやデータなど一式) – プログラム:アプリケーション, ミ ドルウェア, OS, スクリプト – データ:設定ファイル, DBダンプ, 画 像, 辞書, … 17
  18. 18. CLI on Cloud Storage ”UNIX 的抽象化” による再現性・生産性の向上 • データ加工コマンド – 入力のみから決まる出力 – パスによるデータ指定 – ストレージ上での進捗データ管理 • 効果 – 疎結合な設計,再現しやすい試験, 明快なデータバージョン管理,障 害に強い運用,安い運用費,スク リプトによる自動化のサポート 18
  19. 19. 設計 AWSを駆使した 19
  20. 20. 主要なコマンド 以降で3つのコマンドとセキュリティの設計を紹介 • 画像認識APIの更新手順 – 商品収集 & 収集データ確認 – 設定構築 & 性能レポート確認 – スタンバイへの設定反映 – スタンバイの起動 & 動作確認 – アクティブ⇔スタンバイの切替 & 待機 – スタンバイ(旧アクティブ)の停止 – スタンバイ(旧アクティブ)への設定反映 20
  21. 21. 設定構築コマンドの設計 AWSを駆使した 21
  22. 22. 設定構築コマンド 収集データから設定(DB・辞書)を構築・検証 • S3上のデータを依存関係順に処理 22
  23. 23. aaaa@xxx.com システム構成 データ量・検証量に応じて EC2 種類・数の調整 23
  24. 24. Cloud Design Pattern による 要約 典型的なバッチ処理のための組み合わせ • 運用保守:設定のコード化 – Bootstrap,Stack Deployment • 運用保守:ログの集約 – Log Aggregation,Web Storage Archive • バッチ処理:順序付き並行処理 – Fanout,Queuing Chain • 性能向上:高速化 – Storage Index 24
  25. 25. ポイント 分散ファイルシステム上のファイル変換 • S3 から入力、S3 へ出力 – 失敗時の手戻りが軽微,途中から再開可能 • 適切なファイルサイズ – 細か過ぎるとS3アクセス数が増加 • S3アクセスが占める割合が増加 ⇒ 処理時間が増加 • S3アクセスはDynamoDBアクセスより割高 – 対策 • 複数ファイルのZIP化,DynamoDBへの変更 25
  26. 26. 設定反映コマンドの設計 AWSを駆使した 26
  27. 27. 設定反映コマンド 新設定でスタンバイ環境を更新 • 検索方法に合った DB へ商品情報を投入 – DynamoDB:ハッシュレンジ複合キー検索 – CloudSearch:全文検索,ブール型検索,ファ セット検索,地理空間検索 27
  28. 28. aaaa@xxx.com システム構成 データ量に応じて EC2 数と DynamoDB 速度の調整 28
  29. 29. Cloud Design Pattern による 要約 典型的なバッチ処理のための組み合わせ • 運用保守:設定のコード化 – Bootstrap,Stack Deployment • 運用保守:ログの集約 – Log Aggregation,Web Storage Archive • バッチ処理:順序付き並行処理 – Fanout,Queuing Chain • 性能向上:高速化 – Storage Index 29
  30. 30. ポイント 索引構築の効率化 • 差分更新で時間の短縮と費用の節約 – いざというときは全体更新 • DynamoDB 書込速度調整で時間の短縮 – 終わったら下げること!回数制限に注意! • CloudSearch で全文検索の工数の節約 – 自然言語処理はまじめにやると大変 – EC2 の費用 + 25% 程度 30
  31. 31. 起動コマンドの設計 AWSを駆使した 31
  32. 32. 起動コマンド 新設定でスタンバイ環境を起動 • 設定を指定して起動 – 混ざらないように起動ごとに新しく環境構築 32
  33. 33. aaaa@xxx.com システム構成 QPS に応じて EC2 数 & DynamoDB 速度 の調整 33
  34. 34. Cloud Design Pattern による 要約 典型的なステートレスサービスのための組み合わせ • 運用保守:設定のコード化 – Bootstrap,Stack Deployment • 運用保守:ログの集約 – Log Aggregation,Web Storage Archive • 性能向上:高速化 – Storage Index • 性能向上:冗長化 – Multi Server 34
  35. 35. ポイント Immutable Infrastructure • 環境の分離 – 環境は変化しないリソースだけを共有 • EC2 のステートレス化 – 必ずデータを外部 DB へ格納 • 設定のトレーサビリティ – コード化された設定へのパス 35
  36. 36. セキュリティの設計 AWSを駆使した 36
  37. 37. ネットワーク構成 複数拠点をまたぐ安全な開発運用体制 • 機能ごとにセキュリ ティグループで分 割・アクセス制限 – 誤設定リスク・ネッ トワークリスク低減 – サブネットも分割す るとより安全 • VPC で複数拠点を VPN 接続 37
  38. 38. Cloud Design Pattern による 要約 典型的なセキュリティ確保のための組み合わせ • ネットワーク:リスク低減 – Functional Firewall,Operational Firewall • ネットワーク:安全な裏口 – CloudHub,BackNet 38
  39. 39. まとめ AWS を駆使した設計の 39
  40. 40. 設計のまとめ 様々な ”考え方” と “CDP” の組み合わせ • 4種類の考え方 – Blue-Green Deployment,Immutable Infrastracture,設定の版管理,CLI on CloudStorage • 10種類のCDP – Bootstrap,Stack Deployment,Log Aggregation,Web Storage Archive,Fanout, Queuing Chain,Storage Index,Multi Server, CloudHub,BackNet 40
  41. 41. 設計の流れ AWS は非常に柔軟なので考慮することが多い • 要件を満たす設計の “洗い出し” – 様々なトレードオフが可能 • 生産性,品質(安全性,信頼性,可用性,拡張性,ス ループット,反応速度,容量),課金モデル(オンデ マンド,リザーブド,スポット,品質) – 何を重視するかで選択 • 無駄の少ない設計の “進化計画” – 事業の進捗に応じて適した設計が変化 • 進捗に応じてリソース量が変化 ⇒ オンプレでは困難 – 設計を乗り換えるコストも考慮 41
  42. 42. AWS の効果 大幅に工数を削減 短期間に実現 • 組み合わせるだけ実現できた機能 – 分散DB • S3,DynamoDB,CloudSearch – 進捗管理 • S3, SWF – クラスタ構成管理 • S3, AMI,EC2,EBS,ELB,CloudFormation – クラスタ監視・通知サービス • CloudWatch,SNS 42
  43. 43. AWS の効果 本業に専念可能 • OSSでもできるけど、やるべきことが多い – 使い方・性能・品質の調査 – アップデートの追随 – セットアップの自動化,手順書の作成 – 可用性・拡張性・信頼性・安全性の確保 – サーバの運用・監視・障害対応 • ※やりきってAWSと対等。AWSより安くやれる? • AWS がカバーしない領域だけやる – AWS ロックインがいやなら疎結合に設計 43
  44. 44. AWS を使う理由 使ったらスグわかる 44
  45. 45. 高い完成度 他社のサービスと比べて圧倒的 • 豊富なサービス 何個? – 欲しい機能がどんどん増殖 – 組み合わせるだけで多くの要件を満足 – スケール可能なシステムが簡単に実現 • 制御が容易 – 単機能で性能・費用の制御が容易 – 完全にプログラマブルで自動化可能 – CLI・Management Consoleが便利 45
  46. 46. 安くて安心 さまざまな案件に適用しやすい 特に新規事業 • とにかく経済的 どんどん値下げ – 従量課金で柔軟に調達 – ハードウェアの維持管理が不要 – 機能の組み合わせで柔軟な課金モデルを実現 • 手厚いサポート – 親切な中の人 – JAWS-UG(超巨大なユーザグループ) – 公式・非公式の豊富なドキュメント 46
  47. 47. こんなイカしたサービスを使わないのは “負け” 競合するのは “愚の骨頂” さっさとやめて AWS を使って 本業に専念 せよ! by 来栖川電算 の 山口さん 47
  48. 48. ドコモの 画像認識API の新機能 宣伝:近々リリースされる 48
  49. 49. 自分専用画像認識API 無料 なのに 1000枚 も画像を登録できる画像認識エンジン • 模様が描かれた平面形状の認識が得意 – 本の表紙や中身,お菓子の箱,チラシ,… • 様々な状況に対応 – アングル・パースの変化,照明の変化,隠れ, はみ出し,歪み,変形,複数出現,… • たくさん登録しても高速・高精度 – 難しい設定や調整が不要 • SLA強化やカスタマイズをしたいなら docomo Innovator support 49
  50. 50. こんなのが作れる① 表紙 を撮影すると 発売日 や 口コミ を教えてくれるアプリ • よく似ていても、複数冊同時でも、OK 50 ※画像のアプリはドコモの画像認識APIを使っていません(来栖川電算製SDKを使っています)。
  51. 51. こんなのが作れる② ワインラベル を撮影すると よく合う料理 が分かるアプリ • たくさん登録しても、速くて、賢い 51 ※画像のアプリはドコモの画像認識APIを使っていません(来栖川電算製SDKを使っています)。
  52. 52. 夢が広がりんぐ 人が目で見て判断するタスクを考えてみよう! • モノを検出・識別し、制御・統計・表示 52 工場内で箱の仕分け 体験や評判の調査 ワインラベルで情報検索 AR付箋 集めて応募キャンペーン ARフィギュア 開発者さん、今すぐ登録ですよ! ⇒ https://dev.smt.docomo.ne.jp
  53. 53. ドコモの 動作推定API 宣伝:実はコイツも AWS だった 53
  54. 54. 開発者さん、今すぐ登録ですよ! ⇒ https://dev.smt.docomo.ne.jp 動作推定API ドコモ と 来栖川電算 の共同研究 • 実は 動作推定API も AWS を活用! 画像認識 画像に写っている物体の情報を取得 環境センサー 日本全国の気温、降水量、紫外線量を取得 音声認識 話した内容を即座に文字に変換 雑談対話 自然な会話をやり取り 知識Q&A 今知りたいことをピンポイントで回答 音声合成 入力した文字を読み上げ トレンド記事抽出 今人気の話題をジャンルやキーワードで検索 文字認識 画像の文字を読み取り 発話理解 要求を理解して、適切な機能を提示 動作推定 コレ! 行っていた動作の推定
  55. 55. 動作推定API 加速度データから人の動作や行動を検出 • 動作と直接対応しない行動にも対応 – 静止,歩き,走り,自転車,睡眠,食事 • スマホ・スマートウォッチに対応 – Android,Android Wear,Apple Watch,… • 加速度データにアクセスできる API があればOK 55 画像はあくまで利用イメージを分かりやすく伝えるためであり、 これらのデバイスへの対応を保証しているわけではありません。
  56. 56. 応用例:ライフログ ウォッチの加速度データを収集・送信するだけ 56 開発者は今すぐ確認! ⇒ https://dev.smt.docomo.ne.jp/?p=docs.api.page&api_docs_id=127
  57. 57. 来栖川電算の 毎朝体操 宣伝:AWS の MBaaS 系機能を駆使したスマホアプリ 57
  58. 58. ラジオ体操アプリ だれでも、いつでも、どこでも、すぐできる • Android & iPhone ⇒ http://maiasa.jp/ 58
  59. 59. スマホ を持って ダンス 腕の動きを認識・採点し、素敵なレポートを作成 • 採点器として利用可能なデバイス – スマホ,スマートウォッチ • 対応楽曲 ※どんどん追加予定 – ラジオ体操(第1,第2) 59
  60. 60. ランキング で 賞品 GET いつでも どこでも だれでも 何度でも 挑戦可 • ダンスで競い合う期間限定イベント – 頑張りに応じてもらえる賞品(順位・抽選) – 主催者がテーマと賞品を設定 60 主催者 来栖川電算 メーカー企業 イベント企業 教育機関 福祉施設 地方自治体 採点 参加 主催
  61. 61. 習慣化 をサポート 何これ 凄い 楽しい 勝った 嬉しい • モチベーションを高める様々な機能 – 新しい体操 予定中,カレンダー,トロフィー, ランキング 隔週開催の楽しい企画&プレゼント,統計,… 61
  62. 62. 100,000 DL 突破 100↑ ヶ国の職場・自宅・旅先で 20 ~ 50 代の 女性 に人気 62 15053 いいね!
  63. 63. 知名度上昇中 ”風変わり” なアプリなので様々なメディアが注目 • Mashup Award 9 – 日本最大のアプリコンテストで優秀賞 • アプリソムリエ – 【石井寛子アプリ事始】「毎朝体操」 超最先端ラジオ体操第1!? • 週刊朝日 – 【おすすめアプリ生活】あなたの“ラジ オ体操度”が測れる「毎朝体操」 • 日経新聞 – 職場で気軽に体ほぐし ヨガ・体操… お助けアプリ • 文化放送 – ドコモ団塊倶楽部 – 8月23日(土)11:00 ~ 13:00 – アプリ紹介コーナー(生放送) 63
  64. 64. マグニチュード3~4 みんなのラジオ体操の熱量を合計するとヤバい! • 13.581 GJ2014年6月22日時点 – 実はラジオ体操は運動強度が高い! 熱量 状況 1.500 GJ 雷の平均のエネルギー 1.770 GJ 質量1kgの物体が木星の引力圏から脱出するために 必要な運動エネルギー 2.000 GJ マグニチュード3の地震のエネルギー 4.184 GJ TNT火薬1トンの爆発のエネルギー 8.532 GJ 世界の人口1人あたりの年間消費電力量(2002年) 13.581 GJ 毎朝体操の総熱量 2014年6月22日時点 64.100 GJ マグニチュード4の地震のエネルギー 運動強度 状況 2.0 METS 電車の中で立っている 3.0 METS 庭仕事・野球の野手 3.5 METS 平地での自転車 4.0 METS ハイキング・速足 4.5 METS ラジオ体操 6.0 METS 階段昇降・卓球 9.0 METS 水泳・高強度の長距離 走・筋力トレーニング 64
  65. 65. 来栖川電算の スタッフ募集 宣伝:いっしょに未来の習慣を作りませんか 65
  66. 66. スタッフ募集 愉快な技術を正しく届け、人々の生活を変えたい方 • 研究(認識技術) – 機械学習・アルゴリズム・高速化・省メモリ・画 像・センサーに関する知識,Java,C++ • 開発(サーバサイド) – プロセス・アーキテクチャ・ミドルウェア・ネッ トワークに関する知識,Scala,Java,C++ • 開発(フロントエンド) – UI/UX・Android・iOSに関する知識,JavaScript • 企画(認識アプリ・認識サービス) – 新しい習慣を考える力,普及のためのアイデア 66
  67. 67. オフィス 必要なら増やすよ!在宅もOK • 気軽に遊びに来てね! – 見学できて、ご飯も食べれて、泊まれる。 名古屋本社(2013年フロア増設) イオン千種・名大病院・名工大の近く 上野支社(2012年開設) 入谷駅・鶯谷駅・上野駅の近く 67

×