Amazon DynamoDB AWS Lambda Amazon API Gateway Internet Corporate data center Amazon SQS AWS Lambda Internet Amazon DynamoDB AWS CodePipeline AWS CodeCommit AWS CodeBuild Amazon Cognito ACM Amazon Route 53 AWS Backup SaaS IAM Corporate data center Server Corporate data center Server Corporate data center Server
Amazon DynamoDB AWS Lambda Amazon API Gateway Internet Corporate data center Amazon SQS AWS Lambda Internet Amazon DynamoDB AWS CodePipeline AWS CodeCommit AWS CodeBuild Amazon Cognito ACM Amazon Route 53 AWS Backup SaaS IAM Corporate data center Server Corporate data center Server Corporate data center Server 外部システムごとに ClientCredentialsGrantで認証 Route53の エイリアスレコードを ⼤阪リージョンの API Gatewayに切り替える Cloudformationテンプレートを CodeCommitに保管し、CodeBuild とCodePipelineでデプロイする
API Gateway Internet Amazon Cognito Corporate data center Server Amazon Route 53 ⼤阪リージョン Amazon API Gateway Amazon Cognito バックエンド バックエンド ①Amazon Cognito間で同じクライアン トID、クライアントシークレットを利⽤ できない。 =リージョン間で認証情報が異なる Corporate data center Server Corporate data center Server ②DR発動に合わせて、外部システム側 で認証情報の変更が必要 Amazon Cognito利⽤における新たな課題 アプリクライアント ( 外部システム) Amazon Cognito間で同じ認証情報を利⽤できない DR発動に合わせて認証情報の変更が必要
Amazon API Gateway Internet Amazon Cognito Corporate data center Server Amazon Route 53 ⼤阪リージョン Amazon API Gateway Amazon Cognito バックエンド バックエンド Corporate data center Server Corporate data center Server AWS Lambda Amazon API Gateway AWS Secrets Manager ①Amazon Cognitoの前段にAPIGatewayとLambda を配置 リクエスト内の認証情報が東京リージョン⽤のものなら、 ⼤阪リージョン⽤の認証情報に差し替え (AWS Secrets Managerで認証情報を保持) アプリクライアント ( 外部システム) ③DRが発動しても認証情報の変更は不要! (常に東京リージョンの認証情報を利⽤) ②Amazon Cognitoへリクエストを送信 Amazon Cognitoの前段に処理を追加し、リージョン間の認証情報の差異を吸収
• ウォームスタンバイ戦略では、⽇頃から最新構成を維持しておく必要がある (DR発動時に⾊々やっていては間に合わない) ü リージョン間のIaCテンプレートを共通化する ü DRリージョン環境の更新⾃動化も考える 運⽤負荷を抑えつつ、更新漏れを無くすために… 影響を抑えて、スムーズに切り替えるために… ”リージョン”に対して疎結合になるように意識する ü 外部システムが持つリージョン固有の情報を意識する ü リージョン間の差異を吸収する⽅法を検討してみる