多區域基礎設施部署指引可協助客戶更加輕鬆地控制應用程式 (跨主要和次要區域部署) 基礎設施的更新。此指引可設定多區域架構並維持工作負載的一致性。此指引可自動佈建和設定 AWS CodePipeline,以自動化 AWS 雲端中 CloudFormation 範本的持續整合/持續交付 (CI/CD) 管道。AWS CodePipeline 是具備多個部署選項的持續整合 (CI) 協同運作服務,可協助開發人員快速地部署與管理其軟體。使用 AWS CodePipeline,可以輕鬆地在 AWS CloudFormation 範本變更時持續建置並測試 AWS CloudFormation 範本。
概觀
以下圖表展示了您可以使用 GitHub 上的範例程式碼建置的架構。

多區域基礎設施部署指引架構
該指引使用 AWS CodePipeline 在主要區域部署持續整合/持續交付 (CI/CD) 管道。AWS CodePipeline 會自動偵測 GitHub 儲存庫中的變更,並從 GitHub 提取目前原始程式碼,而且會加密該程式碼並存放於 Amazon Simple Storage Service (Amazon S3) 儲存貯體中,然後透過一系列驗證步驟和部署階段推送該程式碼。在部署 AWS CloudFormation 範本時,您可以選擇保留或刪除 AWS CloudFormation 堆疊。當您選擇在手動核准後刪除 AWS CloudFormation 堆疊時,會發生下方的工作流程。
在推送變更至 GitHub 儲存庫時,AWS Lambda 函數會檢查 AWS Systems Manager 參數,以確定是否有階段 AWS CloudFormation 堆疊的現有 AWS CodePipeline 成品。然後,系統將會建立 AWS CloudFormation 變更集,並叫用 AWS Lambda 函數,以檢查變更是否將導致對生產基礎設施的變更。接著系統使用 cfn-nag 和 cfn-lint,藉著安全性和樣式來驗證 GitHub 儲存庫的 AWS CloudFormation 範本。AWS CloudFormation 堆疊會更新為最新的 AWS CloudFormation 範本。範本必須在 AWS CodePipeline 主控台手動核准。核准之後,AWS CloudFormation 堆疊會終止,而主要區域中的主要 AWS CloudFormation 堆疊和次要區域中的次要 AWS CloudFormation 堆疊會完成部署。