タグアーカイブ マルチリージョン

Cloud Runのマルチリージョン高可用性が強化、障害検知と自動復旧が数秒単位に

Cloud Runのマルチリージョン高可用性が強化、障害検知と自動復旧が数秒単位に

発表の概要

発表の概要

Google Cloudは2026年7月20日、Cloud Runにおけるマルチリージョン高可用性の機能強化を発表した。ミッションクリティカルなアプリケーションのダウンタイムは、企業の収益や評判に直結する問題だ。これに対処するため、Cloud Runは単一コマンドで複数リージョンに同一サービスを展開できる設計をとってきたが、今回のアップデートで障害検知と自動復旧の精度が大幅に向上している。

新たに導入された機能は「Readiness Probe」と「Service Health」の2つだ。インスタンスレベルの死活監視とリージョンレベルの健全性評価を組み合わせることで、リージョン障害が発生した際のトラフィック迂回が数秒単位で自動化される。

マルチリージョン高可用性を支える2つの新機能

マルチリージョン高可用性を支える2つの新機能
Readiness Probe(準備状況プローブ)
コンテナがトラフィックを処理できる状態かを検証するヘルスチェック。Cloud Runサービス内の各インスタンスの稼働状況を可視化し、異常があれば速やかに検知する。
↓
Service Health(サービス健全性)
Readiness Probeの結果を集約し、リージョン単位でサービスの健全性を評価する。この情報はサーバーレスNEG(ネットワークエンドポイントグループ)を通じてグローバルロードバランサに公開され、異常が確認されたリージョンへのトラフィックが自動的に停止される。
■ Readiness Probe ■ Service Health

Readiness Probeの役割は「個々のコンテナが外部リクエストを受け付けられる状態か」を確認することだ。この結果はCloud Runコンソールからもリージョン別に確認でき、どのリージョンでインスタンスが縮退しているかが一目で分かる。

Service Healthはこのプローブ結果をリージョン単位で集約するレイヤーにあたる。複数のヘルスチェック結果を「そのリージョンが正常に稼働しているかどうか」というひとつの評価に落とし込み、グローバルロードバランサがこの評価に基づいてルーティングを切り替える。この仕組みにより、障害発生時の手動オペレーションが原則不要になる。

パブリックとプライベートで異なる自動フェイルオーバーの経路

パブリックとプライベートで異なる自動フェイルオーバーの経路

自動フェイルオーバーを実現するには、トラフィックが流入してくるネットワーク層によってロードバランサの種類を選択する必要がある。Cloud Runは外部向けと内部向けで最適なバランサ構成を用意している。

パブリックインターネットアプリケーション
ユーザー → グローバル外部ALB → リージョンA NEG(正常)
ユーザー → グローバル外部ALB → リージョンB NEG(異常) ※自動迂回
ウェブサイトや一般公開API向け。グローバルな外部ロードバランサがトラフィックを受け、障害リージョンを除外してルーティングする。
プライベートネットワークアプリケーション
内部VPC → クロスリージョン内部ALB → リージョンA NEG(正常)
内部VPC → クロスリージョン内部ALB → リージョンB NEG(異常) ※自動迂回
社内システムやマイクロサービス間通信向け。VPC内に閉じた内部ロードバランサが同じ自動フェイルオーバー機能を提供する。
■ リクエスト元 ■ 外部ALB ■ 内部ALB ■ 正常リージョン ■ 障害リージョン

この構成の利点は、どちらのパターンでもロードバランサ側が自動でService Healthを参照し、異常リージョンをルーティング対象から外してくれる点にある。手動でのDNS切り替えや手作業によるトラフィック操作が不要になるため、復旧までの時間が大幅に短縮される。

設計段階で押さえるべき3つのポイント

設計段階で押さえるべき3つのポイント

Service Healthの活用を前提にマルチリージョン構成を設計する際、見落としやすい検討項目が3つある。いずれも高可用性に直結するため、初期段階で整理しておくことが望ましい。

1 単一障害点の排除 全レイヤー(Web・アプリ・DB)を対象とする。3層アーキテクチャであればWeb層は外部ALB、アプリ層は内部ALBでそれぞれマルチリージョン化し、DB層にも冗長構成が求められる。
2 データレプリケーション リカバリポイント目標(RPO)の要件を明確にしたうえで、リージョン間でのデータ複製方針を決める。書き込みの多いワークロードはアクティブ-アクティブ同期が効果的だが、ゼロデータロスが必須かを先に判断する必要がある。
3 データレジデンシー 特定の国や地域にデータを置く必要がある場合、Firestore、Spanner、Cloud Storage、Cloud SQLなどGoogle Cloudのマルチリージョン対応データベースを選定する。これらはCloud Runとの相性がよく、厳格なデータ主権要件にも対応しやすい。

単一障害点をなくすには、インフラ層だけでなくアプリケーション自体のステートレス設計が前提になる。データ層を別途冗長化し、ロードバランサの背後で自由にインスタンスを入れ替えられる状態を作っておくことが、Cloud Runのマルチリージョン構成を最大限活かす秘訣だ。

利用開始とコスト

Cloud Runのマルチリージョン高可用性に関する一連の機能は、すでに全リージョンで利用可能だ。Service Healthの機能そのものに追加料金は発生しない。Readiness Probeの実行に伴う標準的なCPU・メモリ消費のみが課金対象となる。

導入にあたっては、既存のCloud RunサービスにReadiness Probeを設定し、Service Healthを有効にしたうえで適切なロードバランサに接続するだけでよい。公式ドキュメントにチュートリアルが用意されており、少ないステップでマルチリージョン高可用性の基盤を整えられる。

この記事のポイント

  • Readiness Probeがコンテナ単位の死活監視を行い、Service Healthがリージョン単位の健全性を可視化する
  • Serverless NEGを通じてグローバルロードバランサに健全性が通知され、障害リージョンを数秒で自動迂回する
  • パブリック向けは外部ALB、VPC内向けは内部ALBを選択すれば、どちらも自動フェイルオーバーに対応可能
  • DB層を含めた全レイヤーでの冗長化と、データレプリケーションの方針決定が設計の鍵を握る
  • 機能追加に伴う追加コストはなく、通常のリソース消費のみで全リージョンですぐに利用を開始できる
Amazon Cognitoがマルチリージョンレプリケーションに対応、耐障害性向上とCMKサポートの詳細

Amazon Cognitoがマルチリージョンレプリケーションに対応、耐障害性向上とCMKサポートの詳細

AWSがAmazon Cognitoにマルチリージョンレプリケーション機能を追加した。ユーザーデータとM2M(Machine-to-Machine)シークレットを別のAWSリージョンに自動同期し、認証基盤の耐障害性を高める。あわせてカスタマーマネージドキー(CMK)による暗号化制御もサポートされた。

これまでマルチリージョンでの整合性維持には、エンジニアリングチームが手動で複製ソリューションを構築・運用する必要があった。今回のアップデートで、Cognitoが自動的にセカンダリリージョンへデータを複製し、リージョン障害時でも認証を継続できるようになる。

レプリケーションは一方向(プライマリ→セカンダリ)で動作し、プライマリリージョンの障害発生時にはセカンダリで認証処理を受け持つ。セッション継続性も担保され、既存ユーザーは資格情報の再設定なしでサインインを続けられる。

従来の手動レプリケーション(Before)
エンジニア手動でエクスポート・インポート
⚠データ流出リスク
⚠構成の不整合
⚠パスワード再設定の強制
⚠M2Mトークン再発行
↓
Cognitoマルチリージョンレプリケーション(After)
Cognito自動で一方向同期(プライマリ→セカンダリ)
✔暗号化された安全な転送
✔プロファイル・資格情報・プール設定を自動反映
✔既存セッションは中断なしで継続
✔M2M通信もシームレスに引継ぎ

従来は手動レプリケーションに依存し、データ不整合やセキュリティリスクがつきまとっていた。新機能により、複製にかかる運用負荷を大幅に削減しつつ、認証の継続性を確保できる。

Cognitoマルチリージョンレプリケーションとは何か

Cognitoマルチリージョンレプリケーションとは何か

マルチリージョンレプリケーションは、Amazon CognitoがユーザーデータとM2Mシークレットの複製を自動管理する機能だ。プライマリリージョンからユーザーが選択したセカンダリリージョンへ、一方向でデータを同期する。

カバーされるデータの範囲と動作モード

複製の対象はユーザープロファイル、資格情報、ユーザープールの設定全体に及ぶ。セカンダリリージョンは読み取り専用モードで動作し、認証機能の維持に特化する。つまり、新規ユーザー登録やプロファイル更新といった書き込み操作はフェイルオーバー中には行えない。

この設計により、すべての認証方式(ソーシャルプロバイダ経由のフェデレーテッドサインイン、SAML、OIDC連携、API認可フロー)がサポートされる。対人認証だけでなく、バックエンドサービス間のM2M通信もレプリケーションの恩恵を受けられる点がポイントだ。

セッション継続性とトークンの相互認識

レプリケーション済みのユーザープールでは、プライマリ・セカンダリの双方が、どちらのリージョンで発行されたアクセストークンも有効とみなす。そのため、アクティブなセッションはリージョン切り替え前後を通じて中断されない。

この仕組みは、エンドユーザーにとって「裏側でリージョンが切り替わった」ことをまったく意識させずに済むという、実運用上の大きな利点になる。パスワードリセットの強制や再認証といった、ユーザー体験を損なう事態を回避できるわけだ。

CMKサポートで変わる暗号化の主導権

CMKサポートで変わる暗号化の主導権

マルチリージョンレプリケーションの利用には、AWS KMS(Key Management Service)上のマルチリージョンカスタマーマネージドキー(CMK)が必須となる。CMKはユーザーデータの保存時暗号化に一貫性をもたらし、利用者側に暗号化戦略の主導権を与える。

CMK導入による暗号化制御の比較
AWS管理キーのみ
AWS側で自動管理され、ユーザーは鍵のライフサイクルやローテーションを制御できない
↓
CMK(カスタマーマネージドキー)
キーポリシー、ローテーション、監査ログをユーザーが制御。医療や金融などの規制業界の要件に対応可能

CMKの利用は、レプリケーション機能とは独立して提供される。つまり、単一リージョンのユーザープールでもCMKによる暗号化制御は利用可能だ。医療や金融サービスなど、規制の厳しい業界ではとくに重要な選択肢となる。

3ステップで始めるレプリケーション設定

3ステップで始めるレプリケーション設定

AWS News Blogの記事では、us-west-2(オレゴン)の既存ユーザープールをus-east-1(バージニア北部)に複製するデモが紹介されている。設定は管理コンソールから3つのステップで完了する。

STEP 1 AWS KMSでマルチリージョンCMKを作成し、キーポリシーにCognitoのアクセス許可を追加
↓
STEP 2 OIDC発行者タイプをマルチリージョン向けに変更し、新しいエンドポイントをアプリに適用
↓
STEP 3 ターゲットリージョンを選択してレプリケーションを開始、準備完了後に手動でアクティブ化

STEP 2のOIDCエンドポイント更新は、クライアントアプリケーション側の必須対応となる。サーバーサイドアプリは再デプロイ、モバイルアプリはストアへの更新申請が必要だ。この変更を怠ると、旧エンドポイントへのリクエストが正しくルーティングされず、認証障害を引き起こす。

追加で必要な設定と注意点

レプリケーション設定の完了後も、いくつかの付随リソースは手動でセカンダリリージョンに展開する必要がある。具体的には、カスタム認証フローに使うLambda関数、SMSやメール通知の設定、ログストリーミング、AWS WAFの構成が該当する。

AWS News Blogの記事では、これらの追加設定を計画的に実施するようコンソール上でトラッキングできる点も紹介されている。フェイルオーバー前に抜け漏れを防ぐ仕掛けとして有効だ。

フェイルオーバー運用とヘルスチェックの設計

フェイルオーバー運用とヘルスチェックの設計

プライマリとセカンダリの両エンドポイントは常時アクティブで、いつでもトラフィックを受け入れ可能な状態にある。フェイルオーバーの判断と実行は、アプリケーションの要件に合わせて利用者側が設計する形だ。

ヘルスチェックでは、エラーレートやレイテンシのパターン、サービスアラートを監視し、事前定義した基準を満たした場合にDNSの切り替えでセカンダリへトラフィックを誘導する。オフピーク時間帯に少量のトラフィックをセカンダリに流し、認証が期待通り動作するか検証しておくことが推奨されている。

フェイルオーバー判断の基準例
● 認証エンドポイントのエラーレートが閾値を超過
● レイテンシが平常時の2倍以上に悪化
● AWS Health Dashboardで該当リージョンの障害が通知
● 即時切り替え対象  ● 要注意  ● 外部シグナル

カスタムドメインでのマネージドログインやフェデレーションを利用している場合、Amazon Route 53のヘルスチェックIDをCognitoに提供することで、トラフィックルーティング機能を組み込むこともできる。これによりDNSレベルでの自動切り替えが容易になる。

料金体系と利用可能リージョン

料金体系と利用可能リージョン

マルチリージョンレプリケーションは、EssentialsティアおよびPlusティアのアドオン機能として提供される。料金は認証の種類によって異なる。

ユーザー認証(MAUベース)
Essentials: $0.0045 / MAU / レプリカリージョン
Plus: $0.006 / MAU / レプリカリージョン
M2M認証(トークンボリュームベース)
標準の従量課金に30%の追加料金が加算

利用可能リージョンは、米国東部(オハイオ、バージニア北部)、米国西部(北カリフォルニア、オレゴン)、アジアパシフィック(ムンバイ、ソウル、シンガポール、シドニー、東京)、カナダ(中部)、欧州(フランクフルト、アイルランド、ロンドン、パリ、ストックホルム)、南米(サンパウロ)となっている。これらのリージョンはソース・デスティネーションのどちらとしても使用可能だ。

CMKサポートの提供リージョンはさらに広く、アフリカ(ケープタウン)、アジアパシフィック(香港、ハイデラバード、ジャカルタ、マレーシア、メルボルン、ニュージーランド、大阪など)や、イスラエル(テルアビブ)、メキシコ(中部)、AWS GovCloudもカバーされている。

この記事のポイント

  • Amazon Cognitoにマルチリージョンレプリケーション機能が追加され、ユーザーデータとM2Mシークレットの自動同期が可能になった
  • レプリケーションにはAWS KMSのマルチリージョンCMKが必須で、暗号化制御の主導権を利用者側に与える
  • 設定は3ステップで完了するが、OIDCエンドポイント変更に伴うアプリ側の対応が必須となる
  • フェイルオーバー時のセッション継続性が担保され、エンドユーザーはパスワード再設定なしで認証を継続できる
  • 料金はアドオン形式で、ユーザー認証はMAUあたりの課金、M2M認証はトークンボリュームに対する30%追加となる