ある企業では、アプリケーション・ロード・バランサー(ALB)の背後にあるAmazon EC2インスタンス群で、多階層のWebアプリケーションを実行している。インスタンスはAuto Scalingグループ内にある。ALBとAuto ScalingグループはバックアップAWSリージョンにレプリケートされている。Auto Scalingグループの最小値と最大値はゼロに設定されている。Amazon RDS Multi-AZ DBインスタンスがアプリケーションのデータを保存する。DBインスタンスはバックアップリージョンにリードレプリカを持っている。アプリケーションはエンドユーザーにエンドポイントを提示します。
A. 2つのALB間でトラフィックを負荷分散するレイテンシーベースのルーティングポリシーで、アプリケーションのRoute 53レコードを再設定する。バックアップリージョンにAWS Lambda関数を作成して、リードレプリカをプロモートし、Auto Scalingグループの値を変更します。プライマリーリージョンのALBのHTTPCode_Target_5XX_Countメトリックに基づくAmazon CloudWatchアラームを作成します。Lambda関数を呼び出すようにCloudWatchアラームを構成する。
B. バックアップリージョンにAWS Lambda関数を作成して、読み取りレプリカをプロモートし、Auto Scalingグループの値を変更します。Web アプリケーションを監視し、ヘルスチェックのステータスが不健康な場合に Amazon Simple Notification Service (Amazon SNS) 通知を Lambda ファンクションに送信するヘルスチェックで Route 53 を構成する。ヘルスチェックに失敗したときにバックアップリージョンのALBにトラフィックをルーティングするフェイルオーバーポリシーでアプリケーションのRoute 53レコードを更新する。
C. バックアップリージョンのAuto Scalingグループが、プライマリーリージョンのAuto Scalingグループと同じ値になるように設定する。アプリケーションのRoute 53レコードを、2つのALB間でトラフィックを負荷分散するレイテンシベースのルーティングポリシーで再設定する。リードレプリカを削除します。リードレプリカをスタンドアロンのRDS DBインスタンスに置き換えます。スナップショットとAmazon S3を使用して、RDS DBインスタンス間でクロスリージョンレプリケーションを構成します。
D. AWSグローバルアクセラレータで、2つのALBを同じ重み付けターゲットとしてエンドポイントを構成する。バックアップリージョンにAWS Lambda関数を作成し、リードレプリカをプロモートし、Auto Scalingグループの値を変更します。プライマリーリージョンのALBのHTTPCode_Target_5XX_Countメトリックに基づくAmazon CloudWatchアラームを作成します。Lambda関数を呼び出すようにCloudWatchアラームを構成する。