JavaScriptを有効にしてください

【Docker】Amazon Cognitoをローカルでエミュレートできる「cognito-local」を使ってみよう

 ·  ☕ 3 分で読めます

【Docker】Amazon Cognitoをローカルでエミュレートできる「cognito-local」を使ってみよう

Amazon Cognitoは、ユーザー認証やデータ管理をクラウドでサポートするための大変便利なサービスですが、利用にはAWSアカウントやインターネット接続が必要です。これはローカルで開発を行う人にとって不便な場合もあります。

こんな問題を解決してくれるのが、ローカルデバッグに便利な「cognito-local」です。今回はこのツールについて解説し、そのインストール方法や使い方を簡単に紹介します。


cognito-localとは

cognito-localは、Amazon Cognitoの機能をローカル環境でエミュレートするためのツールです。これにより、インターネット接続なしでも、ユーザー認証やユーザープールの管理などの機能をローカルで開発したりテストしたりできるようになります。

主な機能

  • ユーザープールの作成と管理
    • ローカルでユーザープールを作成し、ユーザーの追加や削除、属性の更新が可能
  • 認証フローのエミュレーション
    • サインアップ、サインイン、パスワード変更などがテスト可能
  • Lambdaトリガーのサポート
    • カスタム認証やユーザー属性の検証をテストできる

インストール方法

cognito-localはDockerまたはNode.js系のプロジェクトとして使用できます。ここではいずれのセットアップ方法を簡単に解説します。

Dockerを使用する場合

Dockerを使用してcognito-localを起動するには、以下のコマンドを実行するだけです。

1
docker run --publish 9229:9229 jagregory/cognito-local:latest

該当コマンドでcognito-localがポート、9229で起動します。データを永続化するためには、Dockerボリュームをマウントします。

Node.jsを使用する場合

Node.js環境では、次のように設定します。

1
2
npm install --save-dev cognito-local
npx cognito-local

これにより、cognito-localがデフォルトのポート、9229で起動します。


制限事項

cognito-localはAmazon Cognitoのすべての機能をエミュレートするわけではありません。一部のAPIや機能は未サポートまたは部分的なサポートにとどまります。ため、正確な機能が必要な場合は、AWS本番環境での検証を必ず行いましょう。


UserPoolの作成

このコマンドを使用することでUserPoolを作成することが可能です。

1
aws --endpoint http://localhost:9229 cognito-idp create-user-pool --pool-name MyUserPool

おわりに

cognito-localは、ローカルでAmazon Cognitoの機能をすばやく検証するための助けとなるツールです。DockerやNode.jsを使えば、簡単にセットアップできるので、ぜひ試してみてください。

他にもCognito互換のソフトウェアがあります。

LocalStackは現在 Pro(有料)になります。

参考

リポジトリや関連資料は下記のURLを参考してください。

共有

こぴぺたん
著者
こぴぺたん
Copy & Paste Engineer