« AWS ストレージアップデート - S3 の新しい低コストなストレージオプション & Glacier の値下げ | メイン | Amazon Linux AMI 2015.09 公開 »

【AWS発表】Amazon Cognitoが東京リージョンで利用可能になりました

ソリューションアーキテクトの西谷(@Keisuke69)です。

本日、Amazon Cognitoが東京リージョンでも利用可能となりました。皆様より非常に多くのご要望を頂いていましたので私も嬉しいです。

Cognito

Amazon Cognitoはモバイルアプリ開発におけるユーザIDとアクセスの簡略化と、クロスデバイス/クロスプラットフォームでのデータ同期を可能とするサービスです。Amazon Cognitoを利用することでモバイルアプリ開発におけるいくつかの課題を解決することができ、開発者はより本質的な問題の解決に取り組めます。例えば、Amazon CongitoのIdentity機能では各種ログインプロバイダと連携して、デバイスやプラットフォームをまたがってユニークなアイデンティティを生成し管理することが可能です。いっぽうSync機能ではこのユニークなアイデンティティをもとにKey-Value形式の任意のデータをデバイス間およびクラウド上のストレージ間で簡単に同期することが可能です。

なお、Amazon Cognitoは他にもUS East (N. Virginia)、EU (Ireland)のリージョンでも利用可能です。詳細な情報についてはプロダクトページをご覧下さい。

では、改めてAmazon Cognitoでできること、機能について簡単におさらいをしたいと思います。

Amazon Cognito Identity

Amazon Cognitoの大きな機能の1つがこのAmazon Cognito Identityです。パブリックなIDプロバイダや独自の認証システムと連携してCognito Identityの機能を利用することで、デバイスやプラットフォームをまたがったユニークなアイデンティティを生成することができ、任意のポリシーを持った一時的なクレデンシャルが発行することが可能です。現在サポートされているパブリックなIDプロバイダは、Amazon、Facebook、Twitter/Digits、Google+そしてアイデンティティの認証におけるオープン・スタンダードであるOpenID Connect(OIDC)に準拠するプロバイダです。また、これらのパブリックなIDプロバイダではなく独自に実装した認証システムを利用することもでき、これにより独自のユーザとパスワードで認証した上でAmazon Cognitoと連携するといったことが可能となります。また、特徴的な機能としてゲストユーザ(Unauthenticated Identityと呼ばれます)をサポートしており、認証の前後で権限を切り替えたりデータを引き継ぐといったことが可能です。

Amazon Cognitoを利用することで必要な権限だけを付与された一時的なAWSクレデンシャルを取得することができるため、アプリ内にクレデンシャル情報を静的に埋め込む必要がなくなりセキュリティのベストプラクティスが簡単に実現できます。従来、セキュアにAWSサービスを利用するためのベストプラクティスとしてAWS Security Token ServiceならびにToken Vending Machineを個別に実装することをご案内していましたが、Amazon Cognitoを利用することでこれらを用意することなくセキュアにAWSサービスを利用することが可能となります。アクセス制御にはAWS Identity and Access Management(IAM)を用いることでAWSリソースへの細やかなアクセス制御を実現できます。

Amazon Cognito Sync

もう1つの大きな機能がAmazon Cognito Syncです。Amazon Cognito Syncを使えばアプリケーションの設定やゲームの状態など、あらゆる種類のデータを AWSクラウドに保存し、クロスデバイス、クロスプラットフォームで同期することが可能です。バックエンドのコードを書くことや、インフラストラクチャの構築・管理は必要ありません。データはまずローカルのデータストアに保存されるため、モバイルで課題になりがちな、電波状況が不安定であったり不通であったりした場合にもシームレスに動作させることが可能です。また、ローカルとクラウド間の同期処理はデータのバージョンを比較してプッシュもしくはプルが行われるインテリジェントな仕様となっています。加えてコンフリクトが発生した場合は標準では最後の書き込みを有効として保存されますが、開発者で独自に実装することも可能です。これにより、開発者はネットワークの状態、ストレージ、同期を処理するバックエンドの構築や管理から解放され、優れたアプリケーション体験の開発に集中できます。

Push Sync

Amazon Cognito SyncはAmazon SNS Mobile Pushと連携することも可能です。Amazon Cognitoのデータストアが更新されたタイミングで、各デバイスにプッシュ通知を送信できます。これによりプッシュ通知を受け取ってからデータストアの再同期を行えるようにできるなどより効率的な実装が行えます。例えばこの場合は無駄な通信を削減することができるためバッテリーの節約につながります。

Amazon Cognito Streams

Amazon Kinesisとの連携も可能です。データが更新されたり、同期されたことをイベントとしてAmazon KinesisのStreamで受け取るように構成することができます。KCL(Kinesis Client Library)を利用したKinesisアプリケーションを用意したり、AWS LambdaのファンクションとしてKinesisアプリケーションを実装することでAmazon Cognitoに保存されたデータをリアルタイムに操作したり調査したりできるようになります。 

Amazon Cognito Events

Amazon Cognito Eventsにより、Amazon Cognitoにおける重要なイベントに呼応してAWS Lambdaのファンクションを実行することが可能です。データセットが同期されるとSync Triggerが発火されます。クラウド上や他のデバイスに保存される前にデータを操作したりすることが可能です。これにより保存されるデータのバリデーションを行ったり、同期されるデータを元に別のデータを更新する(例えばレベルを上げるなど)などといったことが行えます。

料金と無料枠

Amazon Cognitoの料金は同期用のデータストアに保存されたデータの合計量と同期オペレーションの実行回数によって決まります。また、無料利用枠が用意されており最初の12か月間、1か月につき10GBのデータストア容量と100万回の同期オペレーションを無料で利用可能です。無料利用枠を超えた場合は同期オペレーション1万回につき 0.15USD、データストアの容量1GBにつき毎月0.15 USDが請求されます。

最後に

Amazon Cognitoの東京リージョンでのローンチを記念して、毎週開催しているAWS Black Belt Tech Webinarにて最近お馴染みとなりつつある緊急特番を開催する予定です。
今のところ9月28日(月)の12時〜13時を予定しています。詳細は参加登録のご案内は別途行いますのでぜひともご参加ください。
講師はもちろん私、西谷が行います!(同じくソリューションアーキテクトの清水もいるかも知れません)

- 西谷圭介(@Keisuke69)

コメント

Featured Event

2016年3 月

    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31