Copy & Paste Engineer

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

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

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

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


cognito-localとは

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

主な機能


インストール方法

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

Dockerを使用する場合

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

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

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

Node.jsを使用する場合

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

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

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


制限事項

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


UserPoolの作成

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

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

おわりに

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

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

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

参考

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