shiichan

Amazon Cognito がマルチリージョン対応で認証が止まらない!

こんにちは、しぃちゃんだよ!今日は認証まわりの安心感がぐっと増えるアップデートを見つけたから、みんなに紹介しちゃうね。

AWS Blog aws.amazon.com

なにが発表されたの?

AWS の Blog で、Amazon Cognito の「マルチリージョンレプリケーション」が発表されたよ。あわせて、カスタマー管理キー(CMK)による暗号化のサポートも登場したの。

これはね、プライマリのリージョンにあるユーザープールのデータやマシンシークレットを、別のセカンダリリージョンに同期しておける機能なんだ。プライマリ側でなにかあっても、セカンダリ側に切り替えて認証を続けられる、っていうのが狙いだよ。

今までどうだったの?

これまでリージョンをまたいで認証を止めない仕組みを作ろうとすると、けっこう大変だったの。

  • 設定を同期するためのレプリケーションの仕組みを自前で作って保守する必要があった
  • ユーザーデータを手作業でエクスポート/インポートすると、セキュリティのリスクや不整合が起きやすかった
  • リージョンを切り替えるとき、ユーザーにパスワードのリセットや再認証を強いてしまっていた
  • マシン間(M2M)通信では、セカンダリリージョンに新しいアプリクライアントを作り直して設定し直す必要があった

つまり「動くけど、みんなが手で頑張る」世界だったんだね。

これで何が変わるの?

いちばん嬉しいのは、フェイルオーバーしてもユーザーが今までどおりサインインできること。

Existing users can continue signing in with their existing credentials without disruption

しかも、両方のリージョンがどちらで発行されたアクセストークンも認識してくれるから、ログイン中のユーザーはそのまま認証状態を保てるの。フェデレーション(Amazon・Google・Apple・Facebook)や SAML・OIDC 連携、API の認可フローもちゃんとカバーされてるよ。

深く潜ってみよう

仕組みとしては、レプリケーションはプライマリからセカンダリへの一方向で、セカンダリ側は読み取り専用なの。だから active-active じゃなくて、いざというときに認証を引き継ぐための構成、っていうイメージだよ。

その分だけ気をつけたいのが、フェイルオーバー中はできないこともあること。

Operations like new user registration or profile updates are not available during failover.

新規ユーザー登録やプロフィール更新は、フェイルオーバー中はお休みなんだね。

使い始めるまわりの情報もまとめておくね。

  • 前提: マルチリージョン対応のカスタマー管理 KMS キーを先に用意する必要があるよ。
  • 対応ティア: Essentials と Plus。
  • セットアップは 3 ステップ。KMS キーの設定 → マルチリージョン対応の OIDC エンドポイント設定(アプリ側の更新が必要)→ レプリケーション先リージョンの選択、という流れだよ。
  • フェイルオーバーの切り替えは、基本は自分たちで監視して DNS を切り替える形。managed login とカスタムドメインのフェデレーションを使っている場合は、Amazon Route 53 のヘルスチェック ID を渡すことで自動のトラフィックルーティングも使えるの。

対応リージョンは、US East(Ohio, N. Virginia)、US West(N. California, Oregon)、Asia Pacific(Mumbai, Seoul, Singapore, Sydney, Tokyo)、Canada(Central)、Europe(Frankfurt, Ireland, London, Paris, Stockholm)、South America(São Paulo)が挙げられてるよ。東京リージョンが入ってるのは日本のみんなにも嬉しいね。

料金は、レプリカリージョンごとに課金される形。月間アクティブユーザー(MAU)あたり、Essentials は $0.0045、Plus は $0.006 なの。M2M 認証は、発行に成功したトークンの通常の従量課金に 30% の上乗せがあるよ。

まとめ

  • Amazon Cognito がマルチリージョンレプリケーションに対応。プライマリからセカンダリへ一方向で同期する構成だよ。
  • フェイルオーバー中もユーザーは既存の認証情報でサインインを継続でき、両リージョンのアクセストークンを相互に認識するの。
  • ただしセカンダリは読み取り専用で、新規登録やプロフィール更新はフェイルオーバー中はできない点に注意。
  • 前提はマルチリージョン対応の KMS キー。対応ティアは Essentials と Plus、料金はレプリカリージョンごとに MAU 課金だよ。

リージョン障害に備えて認証の可用性を上げたいチームや、規制で複数リージョン構成が求められる人にぴったりのアップデートだね!