AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

54
Amazon Cognito Mobile Identity Management and Data Synchronization Amazon Data Service Japan K.K. Solutions Architect Keisuke Nishitani(@Keisuke69) 2015.09.28

Transcript of AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

Page 1: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

Amazon CognitoMobile Identity Management and Data Synchronization

Amazon Data Service Japan K.K.

Solutions Architect

Keisuke Nishitani(@Keisuke69)

2015.09.28

Page 2: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

自己紹介{

"Name" : "西谷圭介",

"Twitter" : "@Keisuke69",

"Profile" : {

"Role" : "Solution Architect",

"Customers": [

"Web Services",

"Start-up"

],

"Services" : [

"AWS Lambda",

"Amazon API Gateway",

"All Mobile Services"

]

}

}

Page 3: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

Mobile開発における課題

Page 4: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

モバイル開発における課題

デベロッパーが直面している課題

• 複数プラットフォームの断片的な利用• スケーラブルな同期処理の実装が困難• 高い運用管理コスト• ユーザエクスペリエンスの喪失• ユニークなユーザアイデンティティ管

理の難しさ• 限られた予算

Undifferentiated Heavy Lifting

モバイルアプリケーションアイデンティティの管理と認可

データ同期非同期通信

アクティブなデバイスの分析ユーザの行動分析

エンゲージメントの分析Push通知

イベントトリガーPlatformにとらわれない

モバイルバックエンドデータのバリデーションと変換

ファイル/メディア保管用ストレージ共有データベース

データの収集And More….

AWS Cloud Infrastructure

Page 5: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

モバイル開発における課題

モバイルアプリケーションアイデンティティの管理と認可

データ同期非同期通信

アクティブなデバイスの分析ユーザの行動分析

エンゲージメントの分析Push通知

イベントトリガーPlatformにとらわれない

モバイルバックエンドデータのバリデーションと変換

ファイル/メディア保管用ストレージ共有データベース

データの収集And More….

AWS Cloud Infrastructure

モバイルに最適化されたコネクタ(Kinesis, S3, DynamoDB, SQS)

Amazon Cognito

Amazon Mobile Analytics

Amazon SNS Mobile Push

AWS Lambda

Page 6: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

AWS Mobile Services

Amazon Cognito

Kinesis Connector DynamoDB Mapper S3 Transfer Mgr SQS Client SES Client

グローバルインフラ(リージョン、アベイラビリティゾーン、エッジロケーション)

コアとなるサービス群

モバイルに最適化されたコネクタ

モバイルに最適化されたサービス

お客様のモバイルアプリ、ゲーム、デバイス

AWS Mobile SDK, API Endpoints, Management Console

コンピュート ストレージ ネットワーク 分析 データベース

統合されたSDK

Amazon Mobile Analytics Amazon SNS

AWS Lambda

AWS Device FarmAmazon API Gateway

Page 7: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

統合されたAWS Mobile SDK

• 全てのサービスに共通の認証機構

• オンライン・オフラインを自動でハンドリング

• クロスプラットフォームのサポート:Android, iOS, Fire OS, Unity, Xamarin

• Mobile OSへの最適化例: ローカルオフラインキャシュを利用するアーキテクチャ

• メモリフットプリントの削減

• 同梱するパッケージの選択も可

• 各プラットフォームのエンハンスに追従

iOS Android Fire OS Unity

Xamarin

Page 8: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

ユーザ認証

アクセスの認可

データの同期

ユーザの行動分析

保持率の追跡

メディアの管理

メディアの配信

プッシュ通知の送信

共有データの保存

データのリアルタイム解析

Your Mobile App

モバイルアプリ開発の課題

Amazon Cognito(Identity Broker)

AWS Identity and Access Management

Amazon Cognito (Sync)

Amazon Mobile Analytics

Amazon Mobile Analytics

Amazon S3Transfer Manager

Amazon CloudFront(Device Detection)

Amazon DynamoDB(Object Mapper)

Amazon Kinesis(Recorder)

Amazon SNS Mobile Push

AWS Mobile SDK

Page 9: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

User identity and sync withAmazon Cognito

Page 10: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

Amazon Cognito

“Your app data is secure, available offline, and kept in sync between devices”

クロスデバイス・クロスプラットフォームなデータ同

デバイスとプラットフォームをまたがってユーザのデータ

を同期

モバイルデバイスから全AWSサービスへのセキュ

アなアクセス

セキュリティのベストプラクティスを実装

アイデンティティとアクセスの管理を簡潔に

IDプロバイダを越えたユニークなアイデンティティとして

ユーザを管理

独自認証

Page 11: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

Amazon Cognito

“Your app data is secure, available offline, and kept in sync between devices”

クロスデバイス・クロスプラットフォームなデータ同

デバイスとプラットフォームをまたがってユーザのデータ

を同期

モバイルデバイスから全AWSサービスへのセキュ

アなアクセス

セキュリティのベストプラクティスを実装

アイデンティティとアクセスの管理を簡潔に

IDプロバイダを越えたユニークなアイデンティティとして

ユーザを管理

独自認証

Page 12: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

ID プロバイダゲストアクセス独自認証システム

ユニーク ID

Joe Anna Bob

デバイスプラットフォーム

AWS サービス

複数の ID プロバイダをサポートID プロバイダと簡単に連携して認証Amazon, Facebook, Twitter, Google, OpenID Connect などに対応

ユニークなアイデンティティ認証済ユーザに対してユニークIDを割り当て、デバイスやプラットフォームをまたがって認識と管理

Amazon Cognito Identity

Mobile Analytics

S3 DynamoDB Kinesis

容易なセキュリティのベストプラクティス実装モバイルデバイスからAWSリソースへのセキュアなアクセスのためのやり取りをIAMと連携して簡略化

Page 13: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

Amazon Cognitoの認証フロー

Amazon Cognito ID

(Temp Credentials)

Amazon

DynamoDB

End Users

Developer

App with

AWS Mobile

SDK

Access

to AWS

Services

Amazon Cognito

Identity Broker

User Name

Password

Amazon Cognito ID,

Temp Credentials

Amazon S3

Amazon Mobile

Analytics

Amazon Cognito

Sync Store

AWS

Management

Console

Token

Pool ID

Role ARNs

User Authentication

System

(Running on AWS or not)

Token

Page 14: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

(参考)OpenID Connect

• 2014年2月に最終承認されたID連携に関する仕様

• 準拠しているIDプロバイダをCognitoでも利用可能例:Salesforce, Ping Identity, Google etc…

Page 15: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

Developer Authenticated Identity

UsernameAnd Password

独自認証システム

パブリックIDプロバイダの併用CognitoのIDを元にパブリックなIDプロバイダと独自認証を併用して管理することも可能

認証基盤の実装が必要GetOpenIdTokenForDeveloperIdentity() を実装する既存の認証基盤を使う場合、改修が必要

独自認証システムの利用パブリックなIDプロバイダではなく独自のUsernameとPasswordを使って認証

Page 16: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

Amazon Cognitoの認証フロー(Developer Authenticated Identities)

Amazon Cognito ID

(Temp Credentials)

Amazon

DynamoDB

End Users

Developer

App with

AWS Mobile

SDK

Access

to AWS

Services

Amazon Cognito

Identity Broker

Get OpenID Token

User Name

Password

Amazon Cognito ID,

Temp Credentials

Amazon S3

Amazon Mobile

Analytics

Amazon Cognito

Sync Store

AWS

Management

Console

OIDC Token

Pool ID

Role ARNs

独自認証システム

(AWS上で稼働していなくてもOK)OIDC Token

OIDC Token

Page 17: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

未認証ユーザのゲストアクセス(Unauthenticated Identities)• IDプロバイダで認証をしていないユーザをゲス

トユーザとしてユニークIDの付与と管理– 未認証の場合、IDはデバイスと紐づくので同一デバイスから

のアクセスの場合に同一ユーザとして認識される– 未認証によるアクセスを許可しない設定も可能

• アプリやAWSリソースへのアクセスにアカウントの作成や認証が不要

– アクセス権限は未認証ユーザに対して割り当てたIAM Roleのポリシーに基づく

– センサーデバイス等のスクリーンや入力装置のないデバイスに対してもユニークIDの付与と管理が可能

• データはクラウド上に保存され後からログインした場合は自動でマージ

Visitor

Preferences

Cognito

Store

Guest

EC2 S3 DynamoDB Kinesis

Page 18: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

(例)ゲストアクセスのユースケース

1. イベント会場でBLE(Bluetooth Low Energy)を利用したBeacon端末を配置2. ユーザ登録不要なイベント公式アプリを配布し、ゲストユーザとして認証情報を取得3. アプリはBeaconを拾って位置情報等を直接KinesisへPUT

• ゲストユーザはKinesisへのPUTだけを許可

4. Kinesisは受け取ったデータを元にリアルタイムに処理を実施(ヒートマップ作成等)

Amazon Kinesis

Cognito Identity Broker

Identity PoolRole ARN

Cognito IDTemporaly Credential

PUT

Page 19: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

(参考)IAM Role用のアクセスポリシーの作成

{

"Effect":"Allow",

"Action":["s3:*"],

"Resource":"*"

}

{

"Effect": ”Deny",

"Action": ["dynamodb:*"],

"Resource": "*"

}

{

"Effect": "Allow",

"Action": [”cognito-sync:*"],

"Resource": "*"

}

Allow

Actions:

All S3, Sync store

Operations

Resource:

All resources within

these services

Deny

Actions:

All DDB Operations

Resource:

All resources

Page 20: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

アクセスポリシーによる制限 (Policy Variables)

Allow

Actions:

All sync operations

Resource:

Only to that identity

{

"Effect": "Allow”,

"Action": ["s3:GetObject”,"s3:PutObject”],

"Resource": ["arn:aws:s3:::

myBucket/amazon/snakegame/

${cognito-identity.amazonaws.com:sub}"]

}

{

"Effect":"Allow",

"Action":"cognito-sync:*",

"Resource":["arn:aws:cognito-sync:us-east-1:

123456789012:identitypool/

${cognito-identity.amazonaws.com:aud}/identity/

${cognito-identity.amazonaws.com:sub}/*"]

}

Allow

Actions:

S3 Get/Put operations

Resource:

Only to a specific part

of bucket to that identity

Page 21: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

Cognito Identityの基本的な流れ

1. マネージメントコンソール上でIdentity Poolを作成する

2. AWS SDK for Android/iOSをプロジェクトに追加する

3. Amazon Cognito credentials providerを初期化する

4. IDプロバイダの認証情報を渡す※未認証ユーザの場合は不要

5. Cognitoの認証情報を利用して、その他のAWSサービスのクライアントを初期化する

Page 22: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

コード例(Android)

// Credential Providerの初期化

CognitoCachingCredentialsProvider credentialsProvider = new CognitoCachingCredentialsProvider(

getApplicationContext(),

”ap-northeast-1:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX", // Identity Pool ID

Regions.AP_NORTHEAST_1 // Region

);

// Facebookユーザで認証する場合

Map logins = new HashMap();

logins.put("graph.facebook.com", Session.getActiveSession().getAccessToken());

credentialsProvider.setLogins(logins);

//AWSサービスへのアクセス

AmazonDynamoDB client = new AmazonDynamoDBClient(credentialsProvider);

//Congito IDの取得

String identityId = credentialsProvider.getIdentityId();

※上記例では省略していますが、事前にIDプロバイダを利用した認証処理の実装が必要です※実際にはLoaderやAsyncTask等を用いた非同期タスクとして実装すること

Page 23: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

コード例(JavaScript)

// 以下ではFacebookユーザを認証済ユーザとして使用

AWS.config.region = ‘ap-northeast-1’; // リージョンの指定(必須)

AWS.config.credentials = new AWS.CognitoIdentityCredentials({

IdentityPoolId: ’ ap-northeast-1:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX’,

Logins: {

graph.facebook.com : facebookResponse.authResponse.accessToken

}

});

// Cognitoから付与されたIDの取得

AWS.config.credentials.get(function(err) {

if (!err) {

console.log("Cognito Identity Id: " + AWS.config.credentials.identityId);

}

});

Page 24: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

Amazon Cognito

“Your app data is secure, available offline, and kept in sync between devices”

クロスデバイス・クロスプラットフォームなデータ同

デバイスとプラットフォームをまたがってユーザのデータ

を同期

モバイルデバイスから全AWSサービスへのセキュ

アなアクセス

セキュリティのベストプラクティスを実装

アイデンティティとアクセスの管理を簡潔に

IDプロバイダを越えたユニークなアイデンティティとして

ユーザを管理

独自認証

Page 25: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

モバイルSDKを使う際の認証情報の扱い

• AWSの各種サービスはあくまでバックエンド

• エンドユーザは必ずしもAWSユーザではない– アプリは開発者のアカウントで認証・認可を受ける必要がある

• アプリに開発者アカウントのアクセスキー等を埋め込んだら– アクセスキーが広範にばら撒かれることに– アクセスキーの不正利用を止めるためにキーを無効化したら

→ 全ユーザへのサービスが停止!!

• アクセスキーの定期的な更新で対処するにしても– 更新のたびにバージョンアップは非現実的– 更新前のアプリからはサービス利用不可に

Page 26: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

セキュアなAWSアクセスを提供するには

• アプリに認証情報を埋め込むべきではない– アクセスキーが広範囲に配布されてしまう

– アクセスキーの更新はアプリのアップデートを伴うため非現実的

• エンドユーザ/端末ごとに異なる認証情報を提供すべき– ユーザごとに必要最小限の権限を与えるのは重要

– 不正利用発覚時に不正ユーザのみ権限を停止

• 認証情報は期限が来たら無効化されるべき– 不正ユーザの影響も期限付きに

Page 27: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

Amazon Cognitoのセキュリティ

細やかなアクセス制御IAM との連携で AWS リソースへの細かなアクセス制御を実現

AWS Credentials の保護必要な権限だけを付与された一時的なクレデンシャルを取得できるので、アプリにクレデンシャルを埋め込まなくてよい

セキュリティのベストプラクティスを支援セキュリティトークンサービスと連携したり、トークンベンディングマシンを構築する必要はないセキュアに AWS サービスを利用

EC2 S3 DynamoDB Kinesis

S3

DynamoDB

Get Delete Put

Page 28: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

Amazon Cognito

“Your app data is secure, available offline, and kept in sync between devices”

クロスデバイス・クロスプラットフォームなデータ同

デバイスとプラットフォームをまたがってユーザのデータ

を同期

モバイルデバイスから全AWSサービスへのセキュ

アなアクセス

セキュリティのベストプラクティスを実装

アイデンティティとアクセスの管理を簡潔に

IDプロバイダを越えたユニークなアイデンティティとして

ユーザを管理

独自認証

Page 29: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

Amazon Cognito Sync クラウドへのデータ保存と同期

User Data

Storage and

Sync

Any Platform

iOS/Android/FireOS

アプリのデータ、設定、状態などを保存アプリやデバイスのデータをクラウドに保存でき、ログイン後にマージされる

クロスデバイス、クロスプラットフォームで同期ユーサデータや設定をデバイスをまたいで同期

k/v data

Identity pool

バックエンド不要スケーラブルで信頼性の高いデータ同期基盤を簡単に利用可能

Page 30: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

SDKローカルデータストア

オフライン動作データはまずローカルのデータストレージに保存されるので、電波が不安定もしくは不通であってもシームレスに動作できる

インテリジェントな同期処理同期メソッドはローカルとクラウドのデータのバージョンを比較して、データをプッシュ/プル

柔軟なコンフリクトの解決同期メソッドは、変更を読み取り後、ローカルの変更をクラウドのデータストアへ書き込む。デフォルトでは、最後の書き込みを有効として保存する。開発者はコンフリクト処理を独自に上書きして実装することもできる。

Amazon Cognito Sync クラウドへのデータ保存と同期

Page 31: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

Cognito Sync データモデル

Identity Pool: アプリユーザのPool。アプリ間で共有する場合もある

Identity: 個々のユーザ。IDプロバイダ間をまたいでユニーク。ゲストユーザも可

Dataset: ユーザごとのデータのグループ

Record: Key/Valueのユーザデータ

AWS Account

Dataset

IdentityIdentityIdentity

DatasetDataset

Identity

Pool

1:60

1:n

1:20

DatasetDataset

Record

1:1024

You

Your App

Your App Users

User Data

Container

User Data

Page 32: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

Cognito Sync データモデル 例

User情報

Dataset

ゲームとユーティリティ、2種類アプリを

提供

Game情報

Dataset

Identitypool1

ユーティリティ

App

Game

App

AWS Account

Dataset

IdentityIdentityIdentity

DatasetDataset

Identity

Pool

1:60

1:n

1:20

DatasetDataset

Record

1:1024

You

Your App

Your App Users

User Data

Container

User Data

Page 33: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

Dataset

• 各Identityは最大20個のDatasetを利用可能

• 各Datasetは1MBまでKey/Value形式のデータを保存可能– Key/Valueともに英数字の文字列– 保存可能なキーの数は1024個まで– 容量内であれば文字数の制限はなし– バイナリデータはbase64でエンコードして保管する

• 保管されるデータはすべて暗号化され、通信はHTTPSで暗号化されている

– ただし、ローカルキャッシュはユーザ側で暗号化を実装しなければ暗号化はされない

Page 34: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

2種類のSyncronize

• synchronize– 接続が不安定な場合などのエラー時の処理は自分で実装する必要が

ある– コールされるとクラウド上の変更がpullされ、ローカルの変更は

pushされる

• synchronizeOnConnectivity– 実行時に接続可能であれば通常のsynchronizeメソッドと同様の振

る舞いをする– 接続できなかったときは接続状態を監視し可能になったら同期され

る– 複数回呼び出した場合は最後のオペレーションがキープされる

Page 35: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

コード例(Android)

// Cognito Sync client の初期化

CognitoSyncManager syncClient = new CognitoSyncManager(

getApplicationContext(),

Regions.AP_NORTHEAST_1, // Region

credentialsProvider);

//Datasetをオープンし、レコードを追加

Dataset dataset = syncClient.openOrCreateDataset("myDataset");

dataset.put("myKey", "myValue");

//同期処理の実行

dataset.synchronize(new DefaultSyncCallback() {

@Override

public void onSuccess(Dataset dataset, List newRecords) {

//Your handler code here

}

});

Page 36: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

コード例(JavaScript)

// Cognito Sync clientの初期化

AWS.config.credentials.get(function(){

var syncClient = new AWS.CognitoSyncManager();

syncClient.openOrCreateDataset('myDataset', function(err, dataset) {

dataset.put('myKey', 'myValue', function(err, record){

dataset.synchronize({

onSuccess: function(data, newRecords) {

// ハンドラを実装

}

});

});

});

});

Page 37: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

モバイルアプリ(デバイス1)

Mobile SDK

Amazon CognitoSync Store

1. データ同期

モバイルアプリ(デバイス2)

Mobile SDK

Amazon SNSMobile Push

2. プッシュ通知

3. データ同期

Amazon SNS Mobile Push との連携

Amazon Cognito がデータストアが更新されたタイミングで、Amazon SNS Mobile Push と連携して、各デバイスにプッシュ通知を送信できる。

プッシュ通知を受け取ったアプリはデータストアの再同期を行うように実装するなど。

Amazon Cognito Push Sync

Page 38: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

Amazon Kinesis との連携

Amazon Cognito のデータストアが更新されたタイミングで、Amazon Kinesis ストリームで更新や同期のデータを受け取ることができる。

モバイルアプリ

Mobile SDK

Amazon CognitoSync Store

1. データ同期

Amazon Kinesis

2. StreamContent

ストリームの内容

3. 例えば

Amazon Redshift

{

"identityPoolId" : "Pool Id”

"identityId" : "Identity Id ”

"dataSetName" : "Dataset Name”

"operation" : "(replace|remove)”

"kinesisSyncRecords" : [

{

"key" : "Key",

"value" : "Value",

"syncCount" : 1,

"lastModifiedDate" : 1424801824343,

"deviceLastModifiedDate" : 1424801824343,

"op": "(replace|remove)" }, ...

],

"lastModifiedDate": 1424801824343,

"kinesisSyncRecordsURL": "S3Url",

"payloadType" : "(S3Url|Inline)",

"syncCount" : 1

}

Amazon Cognito Stream

Page 39: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

モバイルアプリ

Mobile SDK Amazon CognitoSync Store

1. データ同期AWS Lambda

2. Sync Trigger

Amazon Lambda との連携

3. 何か処理

Amazon Cognito Events

Key Value

住所 東京都□渋谷区□松濤□1丁目

Key Value

住所 東京都渋谷区松濤1丁目

元データ

修正済みデータ空白を削除

するプログラム

Lambda Function(Node.js)

Page 40: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

Use cases

Page 41: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

WebとMobileを跨ったユーザ識別

Page 42: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

RSSリーダサービス

• ブラウザとモバイルアプリ間でシームレスにデータ連携

• サーバサイドのコードなし、この程度であればDynamoDBすら不要

App with AWS Mobile

SDK

JavaScriptSDK

S3

1. HTTP(S)アクセス

2. HTMLとJSをレスポンス

Cognito Identity

3. 認証・認可・ FBやGoogleのIDでログイン

Cognito Sync

4. データの同期・ MobileSDK、ブラウザ間でデータ同期

5. データのPush/Pull

Page 43: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

ユーザ状態の遷移

当初はゲストユーザとして

Page 44: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

ユーザ状態の遷移

その後、アカウント登録

• シームレスに遷移

Page 45: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

ユーザ状態の遷移

複数のアカウントをリンク

• 一貫性のあるアイデンティティ管理が必要

Page 46: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

結局、どう使えるのか?

Page 47: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

アプリからAWSリソースにアクセスする際は何も考えず使っておけばいい

Page 48: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

ありがちなデバイス間でのデータ共有で楽をしたいとき

Page 49: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

料金

• 無料利用枠– 月あたり100万回の同期オペレーション

– 月あたり10GBのデータストア

– 最初の12ヶ月のみ

• それ以降– 10000回の同期オペレーションあたり$0.15

– 同期用データストア10GBを越えた分について1GBあたり$0.15

Page 50: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

制約事項

アカウントあたりのIdentity Pool数 60

Identity PoolあたりのIdentity数 無制限

Identity Pool名の文字数 128bytes

ログインプロバイダ名の文字数 2048bytes

一回のList/Lookupコール時の結果数 60

Cognito Identity

Cognito SyncIdentityあたりのDataset数 20

DataSet辺りの最大レコード数 1024

1DataSetの最大サイズ 1MB

DataSet名の文字数 128bytes

Bulk Publish時の最小待ち時間 24時間

Page 51: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

参考資料

• Twitter: @awsformobile

• ブログ– http://mobile.awsblog.com/

• ドキュメント– Amazon Cognito:

https://aws.amazon.com/documentation/cognito/

– Amazon Mobile Analytics: https://aws.amazon.com/documentation/mobileanalytics/

Page 52: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

Q&A

Page 53: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

Webinar資料の配置場所

• AWS クラウドサービス活用資料集– http://aws.amazon.com/jp/aws-jp-introduction/

Page 54: AWS Black Belt Tech シリーズ 2015 - Amazon Cognito

ご参加ありがとうございました。