見出し画像

【動画レポ】JAWSDAYS 2024 B-4 国内東西リージョンでウォームスタンバイのDR設計をした話〜AWS User Group Japan JAWS-UGチャンネルから

今回は2024年3月2日(土)に池袋サンシャインで開催されたJAWSDAYS 2024のセッション動画が公開されていたのでその中からピックアップしたいと思います。
今回はDR設計がテーマのセッションです。

セッションスピーカー

松本 祐樹さん
佐々木慎也さん

デロイトトーマツコンサルティング合同会社

DB要件

・大規模な基幹システム
・首都直下型地震など大規模災害が発生しても業務を継続できる
・サービスレベルの障害ではDRを行わない
・東京リージョンから大阪リージョンにフェイルオーバー
・DR後大阪リーションをメインリージョンとする
・開発や運用保守を大阪リージョンで行う
・RTO/RPOは2時間だが過度にコストはかけたくない
・多数の外部システムからアクセスされる前提
・切り替え後に外部システムには再デプロイや設定変更を行わない

DR戦略の選択

・DR戦略としてウォームスタンバイを選択
 バックアップ&リストアやパイロットライトではRTOを満たせない

DR戦略の選択

アーキテクチャ

・一般的なサーバレスアーキテクチャの構成

アーキテクチャ図の抜粋(東京リージョン)

災害時
・Route53のエイリアスレコードを大阪リージョンのAPI Gatewayに切り替え
・外部システムごとにClientCredentionalGrantで認証
・CloudFormationのテンプレートをCodeCommitに保管、
 CodeBuildとCodePipelineでデプロイ

災害時の対応


DR設計時に検討したこと

APIクライアントの認証機能

実現したいこと
・外部システム向けにClient Credentional Grantによる認証
・AWS環境内に構築(外部iDaasは使用しない)
・DR発動後に外部システム側の設定変更を不要としたい

課題
・Amazon Cognitoを利用したいが大阪リージョンは未提供
・サードパーティ製品で構築を行う場合AmazonCognitoに比べ手間が増える

⇒絶妙のタイミングで大阪リージョンでCognitoが利用可能になった
 Cognito利用となったがCognito間で同じ認証情報を利用できない
 ⇒認証情報の切り替えが必要 :要件が満たせない

Amazon Cognito利用における新たな課題

課題への対応

Amazon Cognitoの前段に処理を追加しリージョン間の認証情報の差異を吸収
・Cognitoの前段にAPI GatewayとLambdaを設置、認証情報を差し替え
・認証はCognitoにまかせてしまう

課題への対応

東西リージョンの構成管理

ウォームスタンバイ戦略では日頃から最新構成を維持する必要がある
⇒運用負荷を抑えつつ更新漏れをなくしたい
 ・東西リージョンの構成は8〜9割が同じ
 ・東西リージョンの更新をCI/CDパイプラインで更新したい

CloudFormationのテンプレートの構成

・同一リポジトリで階層化して管理(共通、東京専用、大阪専用)
・スタックに含める子テンプレートをリージョンごとのroot.yamlで選択

CloudFormationのテンプレートの構成

CI/CDパイプライン

・東西リーションをまたぐパイプラインを構築
・フォルダ単位に監視、変更が含まれていたらパイプラインを起動
〜コードコミットの遠隔地バックアップを取りつつ適用の手間を削減

CI/CDパイプライン

課題
・大阪リージョンではAWS CodePipelineが提供されていない
 認証アクションや複数実行時のステージ移行待機などが出来ない

⇒CodePipelineも大阪リージョンに利用可能になった
 最終的に東西同じパイプラインで構成できた

CI/CDパイプライン見直し後

まとめ

・大阪リージョンのサービスラインナップは日々充実してきている
・DR発動時には外部システムへの影響にも配慮する
・ウォームスタンバイ戦略では日頃から最新構成を維持しておく必要がある




この記事が気に入ったらサポートをしてみませんか?