Amazon Cognitoとは
Amazon Cognitoは、AWSが提供しているID管理やアクセスコントロールなどを行うサービスです。例えばアプリケーションの中で、ユーザが新しくユーザ登録する際には、IDの管理が必要です。
Amazon Cognitoはユーザの登録情報の保持だけでなく、データの更新やSMSを使ってパスワードリセットするサービスなども提供しています。
そのためアプリケーションの開発者や、運用する人にとって非常に便利なサービスといえます。アプリケーションの開発コストを押さえたい人や、ユーザからの問い合わせを減らしたい人は、Amazon Cognitoを使ってみることをおすすめします。
本記事では、Amazon Cognitoの特徴や大まかな利用手順について解説しますので、興味のある方はぜひ参考にしてください。
【参考】:AWS Amazon Cognito
Amazon Cognitoの特徴
Amazon Cognitoの概要に触れたところで、次にこのサービスの特徴を紹介します。Amazon Cognitoを使って具体的に何ができるのか、料金についてなど詳しく解説しますので、参考にしてください。
ユーザ認証が可能
Amazon Cognitoではいくつかの認証機能を提供しています。具体的には、アダプティブ認証や多要素認証、フェデレーションなどが用意されています。
まず、多要素認証では、SMSやワンタイムパスワードを利用することができます。
またアダプティブ認証とは、ユーザが普段と違う行動パターンを示した時に追加の認証をしてくれることを指します。例えばいつもと違うIPアドレスからアクセスされた場合、パスワードが合っていても追加の認証を行ってくれます。
次に、フェデレーションについて説明します。フェデレーションとは、別のシステムで認証が通っている場合、再度ログインしなくても済むようにIDを連携させる仕組みです。
Amazon Cognitoでは、Google・Amazon・Appleなどの外部IDプロバイダーを利用してユーザログインを行うことができます。
このように、認証に関してのセキュリティ機能も充実しているのがAmazon Cognitoの特徴です。
【参考】:Amazon Cognito の特徴
一定の条件を満たせば無料で利用できる
次に、Amazon Cognitoの料金について解説します。Amazon Cognitoは基本的には使用した分だけ請求される課金体制をとっていますが、無料利用枠も用意されています。
例えば、Cognitoユーザープールにサインインする1アカウントあたり50,000 MAUの無料利用枠が用意されています。50,000 MAUを超えると、使用した分だけ課金がされていきますので注意が必要です。ちなみにAmazon Cognitoの無料利用枠は、基本的には無期限に利用できます。
下図のように、公式サイトではリージョンごとの料金を表示することができます。図ではアジアパシフィックの料金表を表示しています。
しかし、料金体系は一部条件によって異なる場合がありますので、実際に利用される際には事前に公式サイトを確認しましょう。
【参考】:Amazon Cognitoの料金
Amazon Cognitoの利用手順
Amazon Cognitoの特徴について理解したところで、次に利用手順を紹介します。本記事では大まかな利用手順の解説にとどめますが、詳細を確認したい方は公式サイトのドキュメントや、後述するワークショップなどを活用してみましょう。
また、Amazon Cognitoを使用するためには、AWSの登録が必要です。本記事ではAWSの登録方法にも触れながら、Amazon Cognitoの利用方法をご紹介します。
【参考】:Amazon Cognito の開始方法 【参考】:Amazon Cognito ドキュメント
AWSのアカウントを用意する
AWSの登録をしていない人は、まずは登録を完了させましょう。AWSのユーザ登録は無料で完了しますので、時間のある人は本記事を参考にしながら、一緒に作業を進めましょう。
まずは、公式サイトにアクセスします。
【参考】:AWS公式
画面右上に「今すぐサインアップ」というボタンがありますのでそちらを押してください。メールアドレスとアカウント名を求められますので、こちらを入力して「メールアドレスの確認」を押します。
メールを送信すると、本人確認のため認証コードを求められます。登録したいメールアドレス宛に認証コードが届きますので、認証コードを入力しましょう。入力できたら「認証を完了して次へ」ボタンを押してください。
その後、パスワード・氏名・住所・カード情報などを入力します。サインアップが完了したら公式サイトに移動し、サインインしましょう。
ユーザープールを作成する
AWSのサインアップが完了したら、次にAmazon Cognitoのユーザープールを作成します。Amazon Cognitoのユーザープールとは、ユーザーディレクトリやユーザのサインインやサインアップを行うものです。
このユーザープールを使うことで、ユーザーディレクトリの管理を始め、多要素認証やメールでのユーザの検証が可能になります。
ユーザープールの作成方法は下図のようなコンソール画面から作成できます。また、ユーザープールの作成方法の詳細については公式サイトから確認できますので、興味のある方は公式サイトをご覧ください。
【参考】:Amazon Cognito ユーザープールの概要
アイデンティティプールの作成
ユーザープールの作成後は、アイデンティティプールと呼ばれるものを作成します。Amazon Cognitoのアイデンティティプールを使用すると、ユーザにアクセス許可を割り当てたり、外部サービスと連携してサインインすることができます。
外部サービスとの連携については、例えばGoogleやFacebookを始めとするサービスのIDプロバイダーを使用して、ユーザ認証ができます。
ちなみに、アイデンティティプールはコンソール画面から作成できます。下図のように、コンソール画面の検索窓で「Amazon Cognito」を検索すると、Amazon Cognitoへのリンクが表示されますのでこちらをクリックします。
遷移先のページに移動すると、「アイデンティティプールの作成」というボタンがありますので、こちらからアイデンティティプールを作成することもできます。
アイデンティティプールの詳しい作成方法を知りたい方は、公式ドキュメントなどを参照してみましょう。
【参考】:Amazon Cognito ID プールの概要 【参考】:Amazon Cognito ID プールを作成する
AppSyncを活用する
AppSyncは、スマホとパソコンといった異なるデバイスでサインインをした際に、ユーザのデータを同期できる機能です。例えば、複数のデバイスで遊べるゲームを開発したい場合などでは、このAppSyncが活躍してくれるでしょう。
AppSyncを活用するためには、GraphQLと呼ばれるデータ言語を使用する必要があります。このGraphQLを作成するためにはAPIを作成する必要があります。APIの作成や概要を学びたい方は、AWSのコンソール画面から検索機能を使ってAppSyncのサービスページに移動することができます。
下図のように、AWSにログイン後、画面左上の検索窓に「AppSync」と入力すると、サービスの一覧にAppSyncへのリンクが表示されます。また、AppSyncのサービスページに移動すると、API作成のボタンもありますので、必要に応じて活用してみましょう。
Amazon Cognitoのワークショップや動画を活用しよう
これまで、Amazon Cognitoの概要や大まかな利用手順について解説しました。しかし、実際に利用してみようと思っても、具体的な方法が分からない方もいるのではないでしょうか。
より詳しくAmazon Cognitoの利用手順を知りたい場合は、AWSが提供しているAmazon Cognitoの概要動画やワークショップを活用してみましょう。
例えば、概要動画ではAmazon CognitoとWAFを使用する方法や、ユーザープールの作成方法などが解説されています。その他にもAmazon Cognitoを活用したアクセス制御など、様々な事例を紹介していますので、ぜひ参考にしてみてください。
Amazon Cognitoのワークショップは、公式サイトから見ることができます。ワークショップは、無料で行えますのでこちらもぜひ試してみてください。ちなみにAmazon Cognitoのワークショップは、日本語で解説を受けられます。
【参考】:Amazon Cognito 概要動画 【参考】:Amazon Cognito ワークショップ
Amazon Cognitoを使ってアプリ開発に役立てよう
Amazon Cognitoは、AWSを使ってアプリケーションのサインアップやサインイン機能を有するユーザ管理機能です。
その他にも、Amazon Cognitoではアクセス管理や認証機能などアプリケーションの開発には欠かせない機能が用意されています。さらに、一定条件を満たせば無料で利用できますので、個人のアカウントで気軽にテストすることも可能です。
これからAWSを利用してアプリケーションの開発を検討されている方は、ぜひAmazon Cognitoを使ってみることをおすすめします。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから