2015 / 11 / 17
アマゾン ウェブ サービス ジャパン 株式会社
ソリューション アーキテクト
清水 崇之
【 AWS 初心者向け Webinar 】
AWS を活用したモバイルアプリの開発と運用
ご質問を受け付け致します!
質問を投げることができます!
• Adobe Connect のチャット機能を使って、質問を書き込んでく
ださい。(書き込んだ質問は、主催者にしか見えません)
• 最後の Q&A の時間で可能な限り回答させていただきます。
①画面右下のチャッ
トボックスに質問を
書き込んでください
②吹き出しマークで
送信してください
AWS 初心者向け Webinar のご紹介
AWS についてこれから学ぶ方むけのソリューションカット
の Webinar です
過去の Webinar 資料
• AWS クラウドサービス活用資料集ページにて公開
http://aws.amazon.com/jp/aws-jp-introduction/
イベントの告知
• 国内のイベント・セミナースケジュールページにて告知
http://aws.amazon.com/jp/about-aws/events/
(オンラインセミナー枠)
自己紹介
清水 崇之
• アマゾン ウェブ サービス ジャパン 株式会社
⎼ ソリューション アーキテクト
• 西日本担当(大阪のお客様にもプライム対応!だけどプライスレス)
• ゲーム、モバイル、Web サービス全般
• AWS 芸人 (詳しくは http://www.slideshare.net/shimy_net)
アジェンダ
モバイルアプリ開発について
AWS を活用するメリット
ケースごとの課題と解決方法
まとめ
アジェンダ
モバイルアプリ開発について
AWS を活用するメリット
ケースごとの課題と解決方法
まとめ
モバイルアプリを実行する複数のプラットフォームがあり開発の方法が異なる。
モバイルアプリの開発とは?
プラットフォーム OS 開発ツール 言語
Apple iPhone, iPad iOS Xcode Swift, Objective-C
Google Android Android OS Android Studio Java
Amazon Kindle Fire Fire OS 〃 〃
開発ツールで実装
アプリ
ビルド インストール
デバイス
iPhone, iPad 向けのアプリを開発できる。Apple Developer サイトで入手できる。
Xcode
https://developer.apple.com/jp/xcode/downloads/
Android, Kindle Fire 向けのアプリを開発できる。Google Developer サイトで入手できる。
Android Studio
https://developer.android.com/sdk/index.html
アジェンダ
モバイルアプリ開発について
AWS を活用するメリット
ケースごとの課題と解決方法
まとめ
モバイルアプリとサーバーアプリ
<戻る Book
情報
ISBN:22-2222
作者:夏目漱石
ハードカバー
詳しく見る>
我輩は猫である
データベース
サーバーアプリ
検索
データ
データセンター
Java
PHP
etc.
インタラクティブなアプリには
サーバー側の構築も必要となる
モバイルアプリ
しかし、予算も時間も足りない・・・
<戻る Book
情報
ISBN:22-2222
作者:夏目漱石
ハードカバー
詳しく見る>
我輩は猫である
データベース
サーバーアプリ
検索
データ
データセンター
Java
PHP
etc.
モバイルアプリ
多岐にわたる課題
開発者が直面する課題
 複数のプラットフォーム
 スケーラビリティの確保
 高コストな管理や運用
 ユーザ体験の阻害
 ユーザIDの管理
モバイルアプリのコード
ユーザID管理、認証
ユーザデータの同期処理
非同期通信
アクティブデバイスの分析
ユーザ行動の分析
コンバージョンの分析
プッシュ通知
イベントトリガー
プラットフォームごとのはっきりしない仕様
データチェックと変換
ファイルやメディアのストレージ
共有データベースのストレージ
データコレクション
その他さまざま….
AWS Cloud インフラストラクチャ
AWS モバイルサービス
を活用して課題を解決
AWS モバイルサービスを活用して課題を解決
<戻る Book
情報
ISBN:22-2222
作者:夏目漱石
ハードカバー
詳しく見る>
我輩は猫である
データベース
サーバーアプリ
検索
データ
データセンター
Java
PHP
etc.
モバイルアプリ
管理 &
セキュリティ
アクセス
コントロール
Identity
Management
キー管理
& ストレージ
モニタリング
& ログ
リソース &
利用の監査
プラットフォーム
サービス
分析 アプリケーション 開発者ツール & 運用 モバイル
Data
Pipelines
データウェアハウス
Hadoop
Real-time
Streaming Data
アプリケーション
ライフサイクル管理
コンテナ
デプロイ
DevOps
イベント駆動
コンピューティング
リソース
テンプレート
ユーザ認証
アナリティクス
プッシュ通知
データ同期
App
Streaming
Eメール
キュー&通知
検索
トランス
コーディング
Workflow
コアサービス CDN
コンピュート
(VMs, Auto-scaling
& Load Balancing)
データベース
(Relational,
NoSQL, Caching)
ネットワーク
(VPC, DX, DNS)
ストレージ
(Object, Block
and Archival)
インフラストラクチャ アベイラビリティゾーン
Points of
Presence
リージョン
エンタープライズ
アプリケーション ビジネスEメー
ル
共有&コラボレーション仮想デスクトップ
技術 &
ビジネスサポート
アカウント
マネージメント
パートナー
エコシステム
プロサービス
セキュリティ
料金レポート
ソリューション
アーキテクト
サポート
トレーニング
資格
AWS が提供する 50 以上のサービス
自動テスト
AWS Mobile サービス
Cognito
Kinesis DynamoDB S3 SQS SES
グローバルインフラ
コアとなるサービス群
モバイルに最適化
されたコネクタ
モバイルに最適化
されたサービス
AWS SDK for Android
ストレージ データベース キュー メール
コンピュート
ネットワーク
AWS Mobile SDK
Mobile Analytics SNS Mobile Push
AWS SDK for iOS AWS SDK for Unity
あなたのモバイルアプリ
ゲームアプリ ユーティリティアプリ 家計簿アプリ クーポンアプリ
Lambda
Device Farm API Gateway
AWS SDK for JavaScript
AWS SDK for Android AWS SDK for iOS AWS SDK for Unity AWS SDK for JavaScript
AWS Mobile サービス
グローバルインフラ
コアとなるサービス群
モバイルに最適化
されたコネクタ
モバイルに最適化
されたサービス
ストレージ データベース キュー メール
コンピュート
ネットワーク
AWS Mobile SDK
あなたのモバイルアプリ
ゲームアプリ ユーティリティアプリ 家計簿アプリ クーポンアプリ
Cognito
Kinesis DynamoDB S3 SQS SES
Mobile Analytics SNS Mobile Push
Lambda
Device Farm API Gateway
ユーザ認証
データ同期
アナリティクス
レポート
プッシュ通知
NoSQL
データベース
断続的なネットワーク
コネクションを処理で
きるレコーダー
コンテンツの
保存と配信
Eメール分散キュー
API 作成自動テスト
ロジック
AWS Mobile サービス
Cognito
Kinesis DynamoDB S3 SQS SES
グローバルインフラ
コアとなるサービス群
モバイルに最適化
されたコネクタ
モバイルに最適化
されたサービス
ストレージ データベース キュー メール
コンピュート
ネットワーク
AWS Mobile SDK
Mobile Analytics SNS Mobile Push
あなたのモバイルアプリ
ゲームアプリ ユーティリティアプリ 家計簿アプリ クーポンアプリ
Lambda
Device Farm API Gateway
AWS SDK for Android AWS SDK for iOS AWS SDK for Unity AWS SDK for JavaScript
モバイルプラットフォームに合わせて
AWS SDK を利用
AWS Mobile SDK
クロスプラットフォーム
• Android, Fire OS, iOS, Unity, JavaScript をサポート
共通の認証
• Amazon Cognito により認証機構を迅速に導入可能
ネットワーク状態を自動でハンドリング
• 例: ローカルキャッシュによりオフラインでも利用可能
メモリフットプリントの削減
• 導入するパッケージをサービス単位で選択可能
開発ツールで実装
アプリ
ビルド インストール
デバイス
AWS Mobile SDK をインポートする
AWSサービス
インポートして利用する
アジェンダ
モバイルアプリ開発について
AWS を活用するメリット
ケースごとの課題と解決方法
まとめ
ケース1:ユーザーを認証したい
Guest
独自認証
ユーザー認証
ID プロバイダ
ゲストアクセス
独自認証システム
ユニーク ID
ジョー アンナ ボブ
デバイス
プラットフォーム
AWS サービス
独自認証システム
ID プロバイダによる認証ではなく
独自の Username と Password で認証できる。
複数の ID プロバイダ
ID プロバイダと簡単に連携して認証できる。
Amazon, Facebook, Twitter, Google,
OpenID Connect などに対応
ゲストユーザアクセス
アカウント作成やログインを必要とせず、セ
キュアに AWS サービスを利用でき、アプリ
の特徴を損なわない。”モノ”の ID として
Amazon Cognito Identity
S3 DynamoDB Kinesis
ケース1:ユーザーを認証したい
Amazon Cognito Identity
ケース1:ユーザーを認証したい
DynamoDB
モバイルアプリ
Amazon Cognito
Identity
Cognito ID
Temp Credentials
S3
Access Token
Pool ID
Role ARNs
Temp Credentials
Mobile SDK
IDプロバイダ
Kinesis
ID プロバイダや独自認証システムと連携して認証することで、任意のポリシーを持った
一時的なクレデンシャルが発行され、AWS リソースを利用する。
ゲストアクセス
独自の認証システム
ケース2:シンプルにデータを保存したい
データ保存/同期
ケース2:シンプルにデータを保存したい
Amazon Cognito Sync
クロスデバイス、クロスプラットフォームで同期
ユーサデータや設定をデバイスをまたいで同期できる。
Cognito Identity のユーザごとに 20MB
各データセットは 1MB までの Key/Value
最大 1024 Key まで保存
バイナリデータは Base64 でエンコードして保存
K/V Data Store
ケース2:シンプルにデータを保存したい
SDK
ローカルデータストア
オフライン動作
データはまずローカルのデータストレージに保存されるので、
電波が不安定もしくは不通であってもシームレスに動作できる
インテリジェントな同期処理
同期メソッドはローカルとクラウドのデータのバージョンを比
較して、データをプッシュ/プル
柔軟なコンフリクトの解決
同期メソッドは、変更を読み取り後、ローカルの変更をクラウ
ドのデータストアへ書き込む。デフォルトでは、最後の書き込
みを有効として保存する。開発者はコンフリクト処理を独自に
上書きして実装することもできる。
K/V Data Store
Amazon Cognito Sync
ユーザ情報
Dataset
ゲーム状況
Dataset
お役立ちアプリ
ゲームアプリ
ケース2:シンプルにデータを保存したい
Amazon Cognito Identity & Sync
IDプロバイダ認証
ケース3:データベースを利用したい
データベース
ケース3:データベースを利用したい
Amazon DynamoDB
No SQL データベース
高い信頼性、スケーラビリティ、低レイテンシで安定
した性能を兼ね備えた NoSQL データベースサービス
Joe Anna Bob
High Scores
Joe 1500
Anna 800
Bob 750
DynamoDB Connector : Object Mapper
• アプリ側のクラスが Amazon DynamoDB テーブ
ルにマッピング
• オブジェクトをテーブルに変換することも、その
逆も必要ない
ケース3:データベースを利用したい
isbn
(HashKey)
title hardCover
22-22222 我輩は猫である Yes
43-43234 こころ No
55-12345 三四郎 Yes
DynamoDB のテーブルをアプリ側のクラス
にマッピングして簡単に操作できる
Table: Books
Amazon DynamoDB
<戻る Book
情報
ISBN:22-2222
作者:夏目漱石
ハードカバー
詳しく見る>
我輩は猫である
Amazon DynamoDB
ケース4:画像や音楽をアップロード/ダウンロードしたい
ストレージ
ケース4:画像や音楽をアップロード/ダウンロードしたい
Amazon S3 リージョン
3か所以上で
自動複製
データセンターA
データセンターB
データセンターC
Joe Anna Bob
オンラインストレージ
安全で耐久性があり拡張性の高い容量無制限の
マネージドオンラインストレージサービス
S3 Connector: Transfer Manager
• マルチパートアップロード対応
• フォールトトレラントなダウンロード
• バックエンドサーバー不要
• 自動リトライ
• モバイルアプリ/ネットワークに最適化するための
ポーズ、レジューム、キャンセル関数
ケース4:画像や音楽をアップロード/ダウンロードしたい
Amazon S3 アプリからファイルを直接 S3 へアップロード/ダウン
ロードして、保管や配信に利用できる。
Amazon S3
<戻る Photo
アップロード>
001.png
002.png
003.png
…
MyBucke
t
001-thumb.png
002-thumb.png
003-thumb.png
…
ThumbnailBucket
ケース5:プッシュ通知を送信したい
プッシュ通知
ケース5:プッシュ通知を送信したい
Amazon SNS Mobile Push
複数のプラットフォームに対応
iOS, Android, Kindle Fire, Windows Phone など複数のプラットフォームの差異を吸収し
つつ、プラットフォームをまたいで簡単にプッシュ通知を送信できる。
Amazon SNS
Mobile Push
Apple iOS
Google Android
Amazon Kindle Fire
送信者
Baidu Android
MS Windows Phone
ケース5:プッシュ通知を送信したい
Amazon SNS Mobile Push
個別送信・一括送信
Topic という機能を利用する
ことで一括送信もできる。
Publish
Publish
Publish
Publish
デバイスごとに直接通知 トピックによる一斉通知
1トピックあたり
最大1,000万サブスクリプション
3,000トピックまで作成可
Topic
特有のフォーマットにも対応
プラットフォーム特有のメッセ
ージフォーマットにも対応する。
トークンの入れ替えや無効化を自動実行
プラットフォームからのフィードバックをもとに、トークンの入れ替えや無効化を自動で
実行することで、最新の状態を維持できる。
ケース6:ユーザーの行動を分析したい
アナリティクス
ケース6:ユーザーの行動を分析したい
Amazon Mobile Analytics
アプリ利用状況に関するデータを収集、可視化
• すぐに導入でき高速に集計できる
• クロスデバイス/クロスプラットフォーム
• 高いスケーラビリティ(100 万ユーザーの 1 億イベントを収集しても問題ない)
一般的に利用されるメトリクスは自動的に計測
• DAU、MAU、NU、Sticky Factor(DAU÷MAU)、ARPDAU、ARPPDAU
• Session数と DAU当たりの平均セッション数
• 1, 3, 7日のRetention、1, 2, 3週の Retention
カスタムイベント
• アプリを特徴づけるような特定のユーザー行動も解析できる
グラフィカルなレポートとCSV形式のデータダウンロード
ケース6:ユーザーの行動を分析したい
Key Business Metrics
1. Monthly Active
Users (MAU)
2. Daily Active Users
(DAU)
3. New Users,
4. Daily Sessions,
5. Sticky Factor,
6. 1-Day Retention,
7. Avg. Revenue per
DAU,
8. Daily Paying Users,
9. Avg. Paying DAU
Amazon Mobile Analytics – 重要なビジネス指標
ケース6:ユーザーの行動を分析したい
Amazon Mobile Analytics – ユーザー維持率の計測
Retention
ユーザー維持率は、マーケ
ティングキャンペーン、新
しい機能の追加、UXの変更、
アプリアップデートなどに
よる集客状況を判断するた
めの重要な指標
新規ユーザーが日次/週次
でどれだけ再訪問したかを
計測するための4つの
チャートを提供
ケース7:アプリをテストしたい
テスト
ケース7:アプリをテストしたい
AWS Device Farm
複数の実デバイス
製造メーカー/型&モデル/OS バージョン/キャリアを組
み合わせて実デバイス上でテストを自動化し並列処理できる。
複数のテストフレームワークに対応
Appium, Calabash, Espresso, Robotium といった主要なテ
ストフレームワークでテストスクリプトを実行できる。
ビルトイン Fuzz テスト
テストスクリプトを作成しなくても、ランダムなユーザー入
力(タッチ、スワイプ、キーボード入力)を与えて UI テス
トを実施できる。
ケース7:アプリをテストしたい
AWS Device Farm
レポート
成功/失敗の情報
クラッシュレポート
テストログ
デバイスログ
スクリーンショット
パフォーマンス情報
Jenkins 連携
Jenkins プラグインを利用すれば
開発ワークフローと統合できる
ケース8:独自の API を作成したい
REST
API
https://example.com/books/123
独自 API
ケース8:独自の API を作成したい
Amazon API Gateway
API に必要な機能を提供
バージョン管理、API キーの作成と配布、認証とアクセス権の管理
リクエストのスロットリング、モニタリング、レスポンスのキャシング
インフラのセットアップおよび管理(AWS Lambda を利用できる)
AWS Lambda
アプリケーションコードを実行できるコンピュートサービス
実行環境は AWS が管理しているので、インフラなどを気にするこ
とがない。AWS サービスと連携することで簡単にイベントドリブン
なアプリケーションを実装できる。
API
ケース8:独自の API を作成したい
ケース8:独自の API を作成したい
API の作成 ダッシュボード
最も簡単に始めるなら
AWS Mobile Hub
AWS Mobile Hub
AWS を利用しているモバイルアプリケーションを構築するための最も簡単な方法。ユー
ザー認証、データストレージ、バックエンドのロジック、プッシュ通知、 コンテンツ配信、
および分析などの機能をアプリケーションに簡単に追加したり構成できる。
各機能が揃っている 選択して設定するだけ
AWS Mobile Hub
ガイドにそってボタンをクリックするだけで任意の機能をセットアップできて、サンプルの
ソースコードをダウンロードすることができる。
プッシュ通知の設定 ソースパッケージをダウンロード
アジェンダ
モバイルアプリ開発について
AWS を活用するメリット
ケースごとの課題と解決方法
まとめ
AWS を活用して本来の業務に集中!!
開発者が直面する課題
 複数のプラットフォーム
 スケーラビリティの確保
 高コストな管理や運用
 ユーザ体験の阻害
 ユーザIDの管理
モバイルアプリのコード
ユーザID管理、認証
ユーザデータの同期処理
非同期通信
アクティブデバイスの分析
ユーザ行動の分析
コンバージョンの分析
プッシュ通知
イベントトリガー
プラットフォームごとのはっきりしない仕様
データチェックと変換
ファイルやメディアのストレージ
共有データベースのストレージ
データコレクション
その他さまざま….
AWS Cloud インフラストラクチャ
AWS を活用して
効率よくアプリ開発
ゴール
あなたのモバイルアプリの特徴は?
あなたがもっとも予算と時間をかけている部分は?
Q&A
詳しくは、http://aws.amazon.com/training をご覧ください
メリット
• AWS について実習や実践練習を通じ
て学習できる
• AWS を熟知したエキスパートから直
接 AWS の機能について学び、疑問の
答えを得られる
• 自信をもって IT ソリューションに関
する決定を下せるようになる
提供方法
e ラーニングや動画
セルフペースラボ
クラスルーム
トレーニング
AWSトレーニングでは様々な学習方法をご提供しています
公式Twitter/Facebook
AWSの最新情報をお届けします
@awscloud_jp
検索
最新技術情報、イベント情報、お役立ち情報、お得なキャンペーン情報などを
日々更新しています!
もしくは
http://on.fb.me/1vR8yWm
AWS 初心者向け Webinar
• AWSをこれからご使用になる技術者向け、ソリュー
ションカットのセミナー
• 今後の配信予定
11月24日(火)【AWS 初心者向け Webinar】 AWS ではじめてみ
よう、IoT システム構築
12月10日(木) 【AWS 初心者向け Webinar】Big Data 活用
※12時~13時15分の時間帯です!
• 申し込みサイト
– http://aws.amazon.com/jp/about-aws/events/
アンケートにご協力ください。ご意見/ご要望
AWS Black Belt Tech Webinar 2015
AWSのサービスをディープにご紹介
• 今後の配信予定 デプロイ&プロビジョニング月間!
– 11月18日(水)18:00〜 AWS CloudFormation
– 11月25日(水)18:00〜 AWS Elastic Beanstalk
– 12月2日(水)18:00〜 AWS IoT
– 12月9日(水)18:00〜 AWS WAF
• 申し込みサイト
– http://aws.amazon.com/jp/about-aws/events/
AWSの導入、お問い合わせのご相談
AWSクラウド導入に関するご質問、お見積り、資料請求
をご希望のお客様は、以下のリンクよりお気軽にご相談
ください
https://aws.amazon.com/jp/contact-us/aws-sales/
※「AWS 問い合わせ」で検索してください
We are hiring!!
http://aws.amazon.com/jp/careers/
[AWS初心者向けWebinar] AWSを活用したモバイルアプリの開発と運用

[AWS初心者向けWebinar] AWSを活用したモバイルアプリの開発と運用