話題の記事

図解!よく分かる Amazon Cognito 入門 #アドカレ2015

2015.12.01

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

今年は 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-illust-01

どんな機能があるの?

Cognito は、次の2つの機能を持っています。

  • Cognito Identity
  • Cognito Sync

これらの機能について、順番に解説します。

Cognito Identity

Cognito Identity は、AWS のサービスを利用するユーザーに 一意のアイデンティティ を与えるためのサービスです。Cognito を使って、各ユーザーに固有の ID を振ることができます。

cognito-illust-02

Cognito はユーザーを一意にするために、次の2つの方法を取ります。

  • 匿名ユーザーとして ID を発行する
  • パブリックなログインプロバイダのユーザー ID と紐付ける

パブリックなログインプロバイダとは、一般公開されているログインすることができるサービスのことです。Facebook や Google、Amazon、Twitter などが挙げられます。これらのいずれかのサービスでログインしたユーザー ID を Cognito が発行した ID と紐付けて、そのユーザーが一意であることを保証します。

cognito-illust-03

パブリックなログインプロバイダを利用しない場合でも、匿名ユーザーとして ID を発行することができます。匿名ユーザーは Cognito にアクセスしてきた時点で、固有の ID が振られます。この ID は重複することはないため、匿名ユーザーであっても、常にアイデンティティは保たれています。

Cognito Sync

Cognito Sync は、AWS のサービスを利用するユーザーに 固有のデータストレージ を提供するサービスです。

Cognito Identity により一意になったユーザー一人一人に対して、ユーザーデータを保存する場所を提供してくれます。格納されたデータは、ローカルだけではなく、クラウドと同期して保存されます。

cognito-illust-04

一番の特徴は、デバイスが変わっても、同じユーザーであればデータは同期できるという点です。例えば、スマホや Web サイト、タブレットなどといった1人のユーザーが触れる様々なデバイスで、データが同期されます。

cognito-illust-05

何ができるの?

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 についての記事です。お楽しみに!