AWS 初心者向け Webinar AWS を活用したモバイルアプリの …...セキュリティ...
Transcript of AWS 初心者向け Webinar AWS を活用したモバイルアプリの …...セキュリティ...
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作者:夏目漱石ハードカバー
詳しく見る>
我輩は猫である
データベース
サーバーアプリ
検索
データ
データセンター
JavaPHPetc.
インタラクティブなアプリにはサーバー側の構築も必要となる
モバイルアプリ
しかし、予算も時間も足りない・・・
<戻る Book
情報ISBN:22-2222作者:夏目漱石ハードカバー
詳しく見る>
我輩は猫である
データベース
サーバーアプリ
検索
データ
データセンター
JavaPHPetc.
モバイルアプリ
多岐にわたる課題
開発者が直面する課題
複数のプラットフォーム スケーラビリティの確保 高コストな管理や運用 ユーザ体験の阻害 ユーザIDの管理
モバイルアプリのコード
ユーザID管理、認証
ユーザデータの同期処理
非同期通信
アクティブデバイスの分析
ユーザ行動の分析
コンバージョンの分析
プッシュ通知
イベントトリガー
プラットフォームごとのはっきりしない仕様
データチェックと変換
ファイルやメディアのストレージ
共有データベースのストレージ
データコレクション
その他さまざま….
AWS Cloud インフラストラクチャ
AWS モバイルサービスを活用して課題を解決
AWS モバイルサービスを活用して課題を解決
<戻る Book
情報ISBN:22-2222作者:夏目漱石ハードカバー
詳しく見る>
我輩は猫である
データベース
サーバーアプリ
検索
データ
データセンター
JavaPHPetc.
モバイルアプリ
管理 &セキュリティ
アクセスコントロール
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 CognitoIdentity
Cognito IDTemp Credentials
S3
Access TokenPool 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
…
MyBucket
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/FacebookAWSの最新情報をお届けします
@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 問い合わせ」で検索してください