Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

Blackbelt Online Serminar Parse.comからAWSへのモバイルアプリの移行

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Wird geladen in …3
×

Hier ansehen

1 von 63 Anzeige
Anzeige

Weitere Verwandte Inhalte

Diashows für Sie (20)

Andere mochten auch (18)

Anzeige

Ähnlich wie Blackbelt Online Serminar Parse.comからAWSへのモバイルアプリの移行 (20)

Weitere von Amazon Web Services Japan (20)

Anzeige

Aktuellste (20)

Blackbelt Online Serminar Parse.comからAWSへのモバイルアプリの移行

  1. 1. Migrating Apps from Parse to AWS Keisuke Nishitani (@Keisuke69) Amazon Web Services Japan K.K. Jul 05, 2016
  2. 2. Profile Keisuke Nishitani Solutions Architect, Amazon Web Service Japan K.K @Keisuke69 Keisuke69 ✤ ソリューションアーキテクト ✤ クラウドを使ったアプリ開発とかモバイル開発の話しをよくします ✤ モバイルニンジャ1号機 ✤ RESTおじさん ✤ Lambda Wizards ✤ 餃子の王将エヴァンジェリスト(自称) ✤ 音楽が好きです、フジロッカーです、今年も行きます ✤ でもサマソニも毎年行きます ✤ 小説大好き、マンガ大好き、空想好き ✤ ブログ: http://keisuke69.hatenablog.jp/ Keisuke69 Keisuke69Keisuke69x
  3. 3. AWS Black Belt Online Seminer へようこそ! ✤ 質問を投げることができます! ✤Adobe Connect のチャット機能を使って、質問を書き込んでください。(書き 込んだ質問は、主催者にしか見えません) ✤Twitterへツイートする際はハッシュタグ #awsblackbelt をご利用ください。 ①画面右下の チャットボックス に質問を書き込ん でください ②吹き出しマーク で送信してくださ い
  4. 4. 内容についての注意点 ✤ 本資料では2016年7月5日時点のサービス内容および価格についてご 説明しています。最新の情報は AWS 公式ウェブサイト (http://aws.amazon.com) にてご確認ください。 ✤ 資料作成には十分注意しておりますが、資料内の価格と AWS 公式 ウェブサイト記載の価格に相違があった場合、AWS 公式ウェブサイ トの価格を優先とさせていただきます。 ✤ 価格は税抜表記となっています。日本居住者のお客様がサービスを使 用する場合、別途消費税をご請求させていただきます。 AWS does not offer binding price quotes. AWS pricing is publicly available and is subject to change in accordance with the AWS Customer Agreement available at http://aws.amazon.com/agreement/. Any pricing information included in this document is provided only as an estimate of usage charges for AWS services based on certain information that you have provided. Monthly charges will be based on your actual use of AWS services, and may vary from the estimates provided.
  5. 5. will shutdown Jan 28, 2017
  6. 6. Recommended timeline by Parse ✤ April 28, 2016 ✤Data migrated to a self-hosted MongoDB. ✤ July 28, 2016 ✤Finish setting up your self-hosted Parse Server and release a new app pointing to it. ✤ January 28, 2017 ✤Parse shutdown.
  7. 7. AWSに移行するメリット ✤ モバイルアプリ開発に利用可能なサービスが提供されている ✤Amazon SNSなどParseが提供している機能相当のサービスを提供 ✤その他にも、実デバイスでのテストを可能にするAWS Device FarmやAPIの提 供・管理を容易にするAmazon API Gateway / AWS Lambdaなどのサービスも 提供 ✤ 自前で構築した場合でも運用の効率化・自動化ができる ✤オートスケーリング ✤APIを利用した運用作業の自動化 ✤Elastic BeanstalkやCloudFormationを利用した構築作業の自動化
  8. 8. マイグレーションの選択肢 ✤ Parse ServerとMongoDBをAWS上でセットアップし、稼働させる ✤Parse ServerはAWS Elastic Beanstalkを利用してセットアップすることも可能 ✤MongoDBは自前で用意するだけでなくmLabなどのサービス利用も可能 ✤ Parse PushはAmazon SNS mobile pushへ ✤ Parse AnalyticsはAmazon Mobile Analyticsへ ✤ Parse UsersはAWS Cognito User Poolsへ
  9. 9. Parse Server ✤ Parse終了に伴い、ParseがサービスのバックエンドをOSSとして公 開したもの ✤ Node.js 4.3とMongoDBの2.6.X/3.0.Xが必要 ✤ サービス版と全く同一のものが利用できるわけではない ✤AnalyticsやJobsなどが未サポート ✤Cloud Codeが同一ホスト上で稼働 ✤Push通知ではスケジュール機能やレポート機能が未サポート ✤詳細はコンパチビリティガイドを参照 ✤ 可用性やスケーラビリティは自身で考えて確保する必要がある
  10. 10. 移行のステップ ✤ Parse DBから用意したMongoDBへデータ移行 ✤ ローカルでParse Serverをセットアップし移行したDBを使ってテスト ✤ AWS上でParse Serverをセットアップしテスト ✤ アクセス先を切り替えたアプリをリリース ✤ 詳細は以下のリンク先を参照 https://parse.com/migration
  11. 11. AWS Elastic Beanstalk を使用したParse Serverのセット アップ
  12. 12. AWS Elastic Beanstalk ✤特徴 (http://aws.amazon.com/jp/elasticbeanstalk/) ✤速く簡単にアプリケーションをデプロ イ可能 ✤インフラストラクチャの準備&運営か らアプリケーションスタックの管理ま で自動化 ✤Auto Scaling によりコストを抑えなが らスケーラビリティを確保 ✤Java, PHP, Ruby, Python, Node.js, .NET, Docker などに対応 ✤価格体系 (http://aws.amazon.com/jp/elasticbeanstalk/pricing/) ✤追加料金なし ✤アプリケーションの保存、実行に必要 なAWSリソース (EC2, S3, RDS, DynamoDB など) に対してのみ課金 インフラ構成の構築・アプリデプロイの自動化サービス
  13. 13. Elastic Beanstalkを利用したParse Serverの実行 ✤ 以下のリンク先をクリックし、Parse ServerをElastic Beastalkで起動 https://console.aws.amazon.com/elasticbeanstalk/home?region=us-east- 1#/newApplication?applicationName=ParseServer&solutionStackName=Node.js&tierName=WebS erver&instanceType=t2.small&sourceBundleUrl=https://s3.amazonaws.com/elasticbeanstalk- samples-us-east-1/eb-parse-server-sample/parse-server-example.zip ✤ アプリケーション名を設定し、「Review & Launch」をクリックするだけ ✤ Parse Server用のEC2インスタンスが設定されデプロイされる
  14. 14. MongoDBのセットアップ(mLab利用) ✤ mLabはAWS上で動かすMongoDBをサービスとして提供 ✤もちろん、MongoDBインスタンスを手動でセットアップするのも問題なし ※MongoDB on AWSに関する参考資料 http://www.slideshare.net/AmazonWebServicesJapan/black-belt-online-seminar-awsmongodb ✤ データ移行にはParse DashboardのMigrateオプションを利用すると簡 単
  15. 15. MongoDBのセットアップ(mLab利用) ✤ mLabにサインアップ ✤ 「Create new」をクリックし、新規データベースを作成 ✤ 「Cloud Provider」としてAWSを選択し、自身の環境にあわせてPlanを選択 ✤ Single-nodeの0.5GBが無償枠として提供されている ✤ 任意の名前をつけ「Create new MongoDB deployment」をクリック
  16. 16. MongoDBのセットアップ(mLab利用) ✤ 作成したデータベースをクリックし、ユーザを追加
  17. 17. Elastic Beanstalkの設定 ✤ 「Configuration」から「Software Configuration」を選択 ✤ Environment Propertiesの各値を自身の値に変更する
  18. 18. AWS Mobileサービス
  19. 19. 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 ソーシャル
  20. 20. Cognito SNS Mobile Push S3 Mobile Analytics Device Farm Lambda CloudFront AWS Mobile Hub
  21. 21. AWS Mobile Hub ✤ AWS上でモバイルアプリを作成する最も簡単な方法 ✤ ユーザサインインといった典型的なユースケースの選択と 設定 ✤ 自動で必要なAWSサービスをプロビジョニング ✤ iOSとAndroid向けにプロビジョニングされたサービスを 使って実際に機能するクイックスタートアプリを生成 ✤ AWS Mobile Hub自体のご利用は無料 ※利用する各サービスの費用はかかります
  22. 22. プロジェクトの作成と機能の追加
  23. 23. 例:User Sign-in ✤ ユーザがどのようにサインインするか設 定: ✤ サインインなし、オプショナルもしくは必 須 ✤ サインインプロバイダを設定: ✤ Facebook (Google, Twitter, Amazon etc) ✤ 独自のシステム(認証基盤) ✤ クイックスタート用アプリにサインイン画 面を追加 Powered by Amazon Cognito Identity
  24. 24. 例:Push通知 ✤ アプリへのプッシュ通知 ✤iOS/Android ✤1:1 もしくはトピック ✤ クイックスタートアプリでは以下の機能 が含まれる ✤通知のEnable/Disable ✤SNSを使ったトークンの自動登録 ✤サブスクライブするトピックの選択 Powered by Amazon SNS
  25. 25. 例:Cloud Logic ✤ バックエンドのコードを実行 ✤ モバイルアプリから直接呼び出し ✤ JavaScript、Python、Javaに対応 ✤ コードを書くだけでよく、インフラの 管理不要 Powered by AWS Lambda
  26. 26. スターターアプリのダウンロード
  27. 27. AWS Mobile SDK ✤ Mobile OS へ最適化されたAWS SDK ✤ オンライン・オフラインを自動でハンドリ ング ✤ローカルオフラインキャシュを利用するアーキ テクチャ ✤ メモリフットプリントの削減 ✤ 各プラットフォームのエンハンスに追従 iOS Android Fire OS Unity Xamarin
  28. 28. Parse PushからAmazon SNSへの 移行
  29. 29. Amazon SNS Mobile Push Internet Apple APNS Google GCM Amazon ADM Windows WNS and MPNS Baidu CP Amazon SNS Mobile Push ✤世界中のユーザにクロスプラットフォームでプッシュ通知 ✤個々の通知だけでなく多数の受信者への同報通知も可能 Android Phones and Tablets Apple iPhones and iPads Kindle Fire Devices Android Phones and Tablets in China iOS Windows Desktop and Windows Phone Devices
  30. 30. Step 1: Parse Pushデータのエクスポート ✤ Parseのコンソールにログインし、アプリケーションを選択 ✤ Core > Browserと進み、Installationを選択 ✤ 右上のEditをクリック ✤ Export this dataを選択
  31. 31. Step 1: Parse Pushデータのエクスポート ✤ Exportをクリック ✤ しばらくするとJSON形式でエクスポートされたデータ(Zipファイ ル)のダウンロードリンクがメールで届く
  32. 32. Step 1: Parse Pushデータのエクスポート ✤ エクスポートされたJSON ファイルをダウンロードし、 保存 ✤ エクスポートされたデータ には以下が含まれる - deviceToken - deviceType - channels
  33. 33. Step 2: APNSとGCMのクレデンシャル取得 ✤ Parseを利用する際に作成したAPNSとGCM(もしくはどちらか)の クレデンシャルを取得する ✤iOSアプリケーション向け(APNS): Amazon SNSは.p12 push certificateを使 用するが、これは自身のMacのKeychainからエクスポート可能。もし.p12を 持っていないならこちらのチュートリアルのStep1を参照 ✤Androidアプリケーション向け(GCM): Parseのアプリに紐付けているGoogle Developers ProjectのAPI(Server)Keyを使う必要あり ✤Windowsアプリケーション向け(WNS): こちらの手順に従ってClient secret とPackage Security Identifier (SID)を渡す必要あり ✤ AWS Mobile Hubを利用してSNSリソースを作成するのに利用するた め、これらのクレデンシャルを保存しておく
  34. 34. Step 3: AWSリソースの作成 ✤ マネージメントコンソール上でAWS Mobile Hubを選択する ✤ 「Get Started」を選択
  35. 35. Step 3: AWSリソースの作成 ✤ 「First things first…」の内容を確認 ✤ パーミッションを許可するため「Yes, grant permissions」をクリック
  36. 36. Step 3: AWSリソースの作成 ✤ 「Create new mobile project」を選択し、プロジェクト名を入力(例 :Parse Migration) ✤ プロジェクトが作成された後、「Push Notifications」のfeatureを追加
  37. 37. Step 3: AWSリソースの作成 ✤ 「Click Enable push」をクリックし、プラットフォームを選択 ✤ 各プラットフォームのクレデンシャルをアップロードし、「Save changes」をクリック
  38. 38. Step 3: AWSリソースの作成 ✤ Mobile Hubのコンソールの左パネルでResourcesをクリック ✤ Amazon SNS Platform Applicationsで、ハイライトされた名前をコ ピーしテンポラリの場所に保存 ✤ Amazon SNS Topicsで、トピック名をコピーしテンポラリの場所に保 存
  39. 39. Step 3: AWSリソースの作成 ✤ 完全修飾なSNSのplatform application名は以下のようになり、ハイラ イトされた箇所がStep 4で移行ツールに渡すアプリケーション名にな る arn:aws:sns:us-east- 1:xxxxxxxxxxxx:app/APNS/parse_MOBILEHUB_1768078787
  40. 40. Step 3: AWSリソースの作成 ✤ 移行ツールの利用にはAWSクレデンシャルが必要なため、事前に取得 する ✤ 以下のリンクからAWSクレデンシャルコンソールにアクセス https://console.aws.amazon.com/iam/home?region=us-east- 1#security_credential ✤ 「Continue to Security Credentials」をクリック
  41. 41. Step 3: AWSリソースの作成 ✤ 「Access Keys (Access Key and Secret Access Key)」をクリック ✤ 「Create New Access Key」をクリック
  42. 42. Step 3: AWSリソースの作成 ✤ 「Create Access Key」で「Show Access Key」を選択 ✤ 「Access Key ID」と「Secret Access Key」の両方をコピーし保存
  43. 43. Step 4: Parse Pushデータのインポート ✤ 以下のリンクからParse Push migration toolをダウンロード https://s3.amazonaws.com/sns.region/SNSImportTool.jar ✤ 移行ツールは自分のMac/PCから実行可能なスタンドアロンjarファイル ✤ 前のステップで集めた情報をパラメータ形式でツールに渡す ✤ Javaの実行環境が必要 ✤ 以下のように必要なオプションに適切な値を指定してコマンド実行 java -jar SNSImportTool.jar -s -f <PATH_TO_EXPORTED_PARSE_INSTALLATION_.JSON_FILE> --apnsName <APNS_PLATFORM_APP_NAME_STEP> --gcmName <GCM_PLATFORM_APP_NAME_STEP> --wnsName <WNS_PLATFORM_APP_NAME_STEP> --topicName <SNS_TOPIC_NAME_STEP> --awsaccess <AWS_KEY_ID_STEP> --awssecret <SECRET_ACCESS_KEY_STEP>
  44. 44. 移行ツール ✤ 指定されたPlatformApplicationを検証 ✤ PlatformEndpointをエクスポートされたJSONファイル内のユニーク なトークンごとに作成 ✤ ユニークなchannelごとにSNS Topicを作成し、これらのTopicに対し てPlatformEndpointを登録 ✤ 「parse_alldevices」というTopicを作成し、全てのPlatformEndpoint を登録
  45. 45. 機能 Parse Push Amazon SNS サブスクリプション Yes - channel Yes - topic 高度なターゲティング Yes – オブジェクト、ユーザ、クエリ、ジオポイント No カスタムセグメント Yes – Saved Audiences No スケジュール通知 Yes (Android/Windowsのみ) No A/B テスト Yes – Push Experiments No Pushのローカライズ Yes No バッジインクリメント Yes – (iOSのみ) No 期限設定 Yes Yes バックグラウンド/サイレントPush Yes Yes サウンド Yes Yes キャンペーン Yes No Token Feedback No Yes Token/Endpoint イベントトリガー Yes Yes Delivery Success/Failureの100%ロ グ出力 No (“Generic” Push Delivery Reportのみ) Yes (ターゲットしたendpointごとにsuccess/failureを100%ログ 出力) Parse Pushとの対応
  46. 46. Parse AnalyticsからAmazon Mobile Analyticsへの移行
  47. 47. Amazon Mobile Analytics  利用状況に関するデータを大規模に収集、自動的に可視化 アプリケーション側はAmazon Mobile SDKを組み込むだけ  生データをS3/Redshiftへ自動エクスポート可能 既存のユーザマスタの突き合わせ等によるより深い分析が可能 CSVでのダウンロードも可能  高速かつスケーラブル データを受け取ったら60分以内にレポート反映 数百万のユーザーからの数十億イベント/日を収集・処理可能  クロスプラットフォーム 各種デバイス、OS(Android, iOS, FireOS)からデータを送信可能 AWS SDK for JavaScriptでもサポート
  48. 48. ビジネス上重要な指標 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
  49. 49. 継続率のトラッキング ユーザの継続率はマーケティ ング、新機能、UI変更やアプ リ更新の効果を測る際の重要 な指標 日次/週次でユーザ再訪率に 関する4つのチャートを提供
  50. 50. アプリ固有のアクションに関して行動分析 が可能 特定イベントの発生頻度に関するレポート を提供。各イベントに属性やメトリックを 追加可能。 サンプル Track the number of Likes/Shares, per article, in a news app Understand player abort rates per level, in a game Number of songs played, per user session, in a music app In-app item popularity in a shopping app カスタムイベントのトラッキング
  51. 51. Amazon Mobile Analyticsの利用 ✤ Amazon SNSと同様の手順でAWS Mobile Hubを利用してプロジェク トを作成 ✤ 「App Analytics」のfeatureを追加
  52. 52. Amazon Mobile Analyticsの利用 ✤ 「Add analytics」を選択し、「Save changes」をクリック
  53. 53. Amazon Mobile Analyticsの利用 ✤ 左パネルから「Build」を選択し、対象プラットフォームを選択する
  54. 54. Parse Analyticsとの対応 Feature Parse Analytics (Client-side) Amazon Mobile Analytics Active Users Yes - Daily Active Users (DAU), Weekly Active Users (WAU), Monthly Active Users (MAU), and Installations Yes - Daily Active Users (DAU), Monthly Active Users (MAU), and Installations Sessions Yes – App Opens Yes - Session Count and Average Sessions per Daily Active User Custom Events Yes Yes Revenue No Yes - Average Revenue per Daily Active User (ARPDAU) and Average Revenue per Paying Daily Active User (ARPPDAU) Retention Yes Yes - Day 1, 3, and 7 Retention and Week 1, 2, and 3 Retention Sticky Factor No Yes - DAU divided by MAU Console Reports Yes - Overview, Audience, Events, Saved/Recent Queries Yes - Overview, Active Users, Sessions, Retention, Revenue, and Custom Events Download Reports Yes - CSV format Yes - CSV format Auto Export No Yes - Amazon Simple Storage Service (Amazon S3) bucket and Amazon Redshift cluster
  55. 55. Amazon Cognito User Pools
  56. 56. Amazon Cognito Identity User Pools (Beta) モバイルおよび Web アプリに サインアップとサインインの機 能を簡単に追加 ユーザ管理を簡単に 電話番号や email アドレスの 検証と多要素認証の提供 拡張されたセキュリティ機能 数億のユーザまでスケールす るユーザディレクトリを作成・管 理するシンプル、セキュア、低 コストでフルマネージドなサー ビス マネージド型 ユーザディレクトリ
  57. 57. 幅広いユーザシナリオ Email もしくは 電話番号による確認 パスワード紛失 ユーザのサインアップと サインイン アカウントを確認するための Email アドレスや電話番号の検証 パスワードを紛失した場合にユーザは自分自身でパスワード変更可能 Email、電話番号もしくはユーザ名とパスワードを使用したサインアップ サインアップ後のサインイン ユーザプロファイル カスタム属性を含むユーザプロファイルの取得と更新 SMS ベースの MFA 有効にすると、サインアップ、パスワード紛失におけるフローの一環としてSMS を通じ た確認コードによる多要素認証(MFA)を利用可能
  58. 58. 幅広い管理者シナリオ ユーザプール内の ユーザ管理 Email と電話番号の確認 AWS Lambda による カスタマイズ パスワードポリシーの セットアップ ユーザプールの 作成と管理 ユーザプール内の特定ユーザのリスト、検索、アクション実行 アカウントの有効化前に SMS を通じてユーザの email アドレスと電話番号を検証す る設定(SMS経由) ワークフローをカスタマイズするために AWS Lambda のファンクションを作成 最小文字数、大文字、特殊文字を含めるといったパスワード要件のコントロール AWS アカウント内に複数のユーザプールを作成、構成、削除可能 属性の定義 必要な属性の選択とカスタムユーザ属性の定義
  59. 59. セキュアなサインインを簡単に Amazon Cognito サードパーティのアイデ ンティティプロバイダによ る認証 ゲストアクセス User Pools Sign in with Facebook Or Username Password Sign In Or Start as a guest
  60. 60. Photo credit: rolands.lakis via VisualHunt.com / CC BY
  61. 61. 資料の配置場所 ✤ AWS クラウドサービス活用資料集 ✤http://aws.amazon.com/jp/aws-jp-introduction/ ✤ AWS Solutions Architect ブログ ✤最新の情報、セミナー中のQ&A等が掲載されています ✤http://aws.typepad.com/sajp/
  62. 62. 公式Twitter/Facebook AWSの最新情報をお届けします @awscloud_jp 検索 最新技術情報、イベント情報、お役立ち情報、 お得なキャンペーン情報などを日々更新しています! もしくは http://on.fb.me/1vR8yWm

×