図解!よく分かる Amazon Cognito 入門 #アドカレ2015
今年は AWS モバイルのアドベントカレンダーをやります!
おはようございます!12月になりましたね! Developers.IO もクリスマス気分でお送りいたします。
12月といえば、デベロッパーにとってはアドベントカレンダーの季節。Developers.IO では、今年はAWS のモバイルサービスをテーマにしたアドベントカレンダーを開催いたします。
今年も数多くのモバイル向けの新サービス、新機能がリリースされました。幅広く取り扱っていく予定ですので、お楽しみください。
初回の本記事は、AWS のモバイルサービスの要とも言える Amazon Cognito がテーマです!
Amazon Cognito、知っていますか?
Amazon Cognito は、ユーザーのアイデンティティやデータ同期に関する機能を提供する、主にモバイルアプリのためのAWS のサービスです。
Cognito が世の中にリリースされてから1年以上経ちましたが、Cognito がどのような機能を持っていて、モバイルアプリにとってどのように役立つのか、まだ知らないデベロッパーの方も多いのではないでしょうか。
そこで、この記事では Cognito とは一体何者なのか、AWS のことをあまりよく知らなくても理解できるよう、図解したいと思います!
Cognito は一体何者?
Cognito は、2014年7月に発表された ユーザーのアイデンティティ をテーマにしたサービスです。「こぐにーと」と読みます。
Cognito というサービス名は Incognito (いんこぐにーと) が由来となった造語と言われています。Incognito は「変数の」「匿名の」「微行の」「お忍びの」「知られないで」といった意味があります。このような、包み隠しているようなものとは反対に、Cognito は「アイデンティティ」(その人がその人であること) をテーマとしています。Incognito から「In」を取ることで、対義語をイメージして名付けたのではないでしょうか。
どんな機能があるの?
Cognito は、次の2つの機能を持っています。
- Cognito Identity
- Cognito Sync
これらの機能について、順番に解説します。
Cognito Identity
Cognito Identity は、AWS のサービスを利用するユーザーに 一意のアイデンティティ を与えるためのサービスです。Cognito を使って、各ユーザーに固有の ID を振ることができます。
Cognito はユーザーを一意にするために、次の2つの方法を取ります。
- 匿名ユーザーとして ID を発行する
- パブリックなログインプロバイダのユーザー ID と紐付ける
パブリックなログインプロバイダとは、一般公開されているログインすることができるサービスのことです。Facebook や Google、Amazon、Twitter などが挙げられます。これらのいずれかのサービスでログインしたユーザー ID を Cognito が発行した ID と紐付けて、そのユーザーが一意であることを保証します。
パブリックなログインプロバイダを利用しない場合でも、匿名ユーザーとして ID を発行することができます。匿名ユーザーは Cognito にアクセスしてきた時点で、固有の ID が振られます。この ID は重複することはないため、匿名ユーザーであっても、常にアイデンティティは保たれています。
Cognito Sync
Cognito Sync は、AWS のサービスを利用するユーザーに 固有のデータストレージ を提供するサービスです。
Cognito Identity により一意になったユーザー一人一人に対して、ユーザーデータを保存する場所を提供してくれます。格納されたデータは、ローカルだけではなく、クラウドと同期して保存されます。
一番の特徴は、デバイスが変わっても、同じユーザーであればデータは同期できるという点です。例えば、スマホや Web サイト、タブレットなどといった1人のユーザーが触れる様々なデバイスで、データが同期されます。
何ができるの?
Cognito Identity と Cognito Sync という2つの機能を見てきましたが、これらを使って何ができるのでしょうか。例えば...
- ゲームのスコアを保存して、スマホとタブレットで同期。いつでもどこでも楽しめるゲームに!
- Amazon S3 を利用し、ユーザー固有の場所に写真を直接アップロード。クラウド写真サービスを簡単に実現!
- モバイルアプリから Amazon SNS に直接登録。モバイルアプリに対して、いつでもプッシュ通知を送信!
などなど。Cognito を使うと、モバイルアプリから直接 AWS のサービスに問い合わせることができるため、バックエンドサービスの保守や管理などを行わなくて済みます。面倒なところはすべて AWS にお任せ!あとは、自分のアプリの価値を高めるだけです。
どうやって学べば良いの?
この記事を掲載している「Developers.IO」では、Cognito に関する記事を随時公開しています。新機能が増えるたび、すぐに試してみた記事を公開していますので、新しい情報も得ることができます。ぜひ Cognito の学習にご活用ください!
まとめ!
Cognito は AWS の各種サービスと直結したモバイルアプリを作る上で欠かせないサービスです。ぜひ、キャッチアップしていきたいですね。
AWS Mobile アドベントカレンダー 2015 では、Cognito に関する記事を数多く公開する予定です。ぜひ、毎日チェックしてください。
明日(12月2日)は、おおはしりきたけさんの Mobile Hub についての記事です。お楽しみに!