LoginSignup
9
8

More than 3 years have passed since last update.

Amazon Cognito に入門してみる 〜 1

Posted at

全く無知なので、ちょっと調べてみました。

何ができる?

ユーザープール機能

ログインを提供する機能です。

  • AWS内にユーザディレクトリ(ユーザープール)を作成できる機能のこと
    • ユーザパスワード、メールアドレス、電話番号、カスタム属性などを格納可能 ユーザにまつわるデータベースの構築ですね
    • LDAPみたいなものだと思ってます
  • 上記ユーザプールを利用して認証・および認証済みをあらわすトークン(ユーザープールトークン)を取得できる
  • ユーザーはグループにまとめることも可能
  • ソーシャルサインインを用いて、Googleなど他プロバイダからもログイン可能 (Identity Provider機能)
    • この場合でも、ユーザープールにユーザのエントリは残る
  • ログインページをAWS上で作成することが可能
  • JWT発行まわりだけを丸投げすることも可能
    • リフレッシュトークンとアクセストークンを発行してくれます
    • APIサーバはアクセストークンを検証して、問題なければユーザログイン済みとして扱えばOK
      • AWSが発行するアクセストークンは公開鍵暗号形式(RS256)
      • APIサーバがログイン機能を持つ必要はありません。

アイデンティティプール機能

ログイン後のAWSサービスへのアクセスを提供する機能です。

  • ユーザープールからユーザ認証成功時に発行されるトークンを使って、AWSのサービスに対するアクセス権を得ることができる機能のこと
    • e.g. S3, AppSync, DynamoDB, Lambda
  • 別にユーザープールからのトークンだけはなく、他のOAuthプロバイダからのログインも使える。 (Federated Identity)

何に使える?

  • ログイン
    • 要するにユーザ認証プロバイダ
    • 作成したサービスのログインまわりをAmazon Cognitoに投げられる
  • サーバレスアプリ
    • SPA + AWSのマネージドサービスで構成する
    • ログインは他のOAuthプロバイダ、あるいはAWS上のユーザープールを用いる
    • ログイン済みユーザには、アイデンティティプールを使って、AWS上に用意したLambdaや、マネージドサービスに直接アクセスしてもらう
    • ここらへんのクラウドスタックをすぐに構築できるようになっているAWS AmplifyはCognitoを中心にしたスタックを見据えていると思います

料金

ユーザープールについて、月ごとのアクティブユーザ(サインインなどが生じたユーザ)の数で、今(2019/11/11)のところ、 50,000ユーザまで無料、そこから 0.00550 USD / ユーザ、もっといくとスケールメリットで安くなる、となっています。

月間ユーザ(MAU) 料金(USD) 料金(JPY 110円換算) MAUあたりの料金増分
50,000 0 0 ここから先は 0.00550USD
60,000 55 6,050
70,000 110 12,100
80,000 165 18,150
90,000 220 24,200
100,000 275 30,250 ここから先は 0.00460USD
110,000 321 35,310
200,000 735 80,850
400,000 1,655 182,050
800,000 3,495 384,450
1,000,000 4,415 485,650 ここから先は 0.00325USD
2,000,000 7,665 843,150
4,000,000 14,165 1,558,150
8,000,000 27,165 2,988,150
10,00,0000 33,665 3,703,150 ここから先は 0.00250USD
20,000,000 58,665 6,453,150
40,000,000 108,665 11,953,150
120,000,000 308,665 33,953,150

(※実際にサービス利用する際は自分で計算してください)

小規模サービスだと無料、全国民が使うサービスを作ると3千万円ぐらいかかるそうです。(ただし、その前にアカウントごとのリミットあり)

また、上記はプレーンなユーザープールの使い方に対して課金されており、TOTPやSAMLなど使うともっと高いレートがMAUごとに適用されます。

次回

実際になにか構築してみたい

9
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
8