本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
CloudFormation 擷取範例:3 層 Web 應用程式
擷取標準 3-Tier Web 應用程式的 CloudFormation 範本。
這包括 Application Load Balancer、Application Load Balancer 目標群組、Auto Scaling 群組、Auto Scaling 群組啟動範本、具有 MySQL 資料庫的 Amazon Relational Database Service (RDS for SQL Server)、 AWS SSM 參數存放區和 AWS Secrets Manager。請預留 30-60 分鐘的時間來演練此範例。
先決條件
使用 Secrets Manager 建立包含使用者名稱和密碼與對應值的 AWS 秘密。您可以參考此包含秘密名稱 的範例 JSON 範本 (zip 檔案)
ams-shared/myapp/dev/dbsecrets,並將其取代為您的秘密名稱。如需搭配 AMS 使用 AWS Secrets Manager 的詳細資訊,請參閱 搭配 AMS 資源使用 AWS Secrets Manager。在 AWS SSM 參數存放區 (PS) 中設定必要的參數。在此範例中,私有和公有子網路
Subnet-Id的VPCId和 會存放在 SSM PS 中的路徑,例如/app/DemoApp/PublicSubnet1a、PrivateSubnet1a、PublicSubnet1cPrivateSubnet1c和VPCCidr。根據您的需求更新路徑、參數名稱和值。建立具有 AWS Secrets Manager 和 SSM 參數存放區路徑讀取許可的 IAM Amazon EC2 執行個體角色 (這些範例中建立和使用的 IAM 角色為
customer-ec2_secrets_manager_instance_profile)。如果您建立執行個體描述檔角色等 IAM 標準政策,角色名稱必須以 開頭customer-。若要建立新的 IAM 角色, (您可以將其命名為 或其他customer-ec2_secrets_manager_instance_profile項目) 會使用 AMS 變更類型管理 | 應用程式 | IAM 執行個體描述檔 | 建立 (ct-0ixp4ch2tiu04) CT,並連接所需的政策。您可以在 IAM 主控台中檢閱 AMS IAM 標準政策customer_secrets_manager_policy和 AWScustomer_systemsmanager_parameterstore_policy,以正常使用或做為參考。
擷取標準 3-Tier Web 應用程式的 CloudFormation 範本
將連接的範例 CloudFormation JSON 範本以 zip 檔案 3-tier-cfn-ingest.zip 形式上傳至 S3 儲存貯體,並產生簽署的 S3 URL 以在 CFN 擷取 RFC 中使用。如需詳細資訊,請參閱預先簽章。當您透過 AMS 主控台提交 RFC 時,CFN 範本也可以複製/貼上至 CFN 擷取 RFC。
透過 AMS 主控台或 AMS CLI 建立 CloudFormation 擷取 RFC (部署 | 擷取 | 從 CloudFormation 範本堆疊 | 建立 (ct-36cn2avfrrj9v))。CloudFormation 擷取自動化程序會驗證 CloudFormation 範本,以確保範本具有有效的 AMS 支援資源,並遵守安全標準。
使用主控台 - 針對變更類型,選取部署 -> 擷取 -> 從 CloudFormation 範本堆疊 -> 建立,然後新增下列參數做為範例 (請注意,MultiAZDatabase 的預設值為 false):
CloudFormationTemplateS3Endpoint: "https://s3-ap-southeast-2.amazonaws.com/amzn-s3-demo-bucket/3-tier-cfn-ingest.json?AWSAccessKeyId=#{S3_ACCESS_KEY_ID}&Expires=#{EXPIRE_DATE}&Signature=#{SIGNATURE}" VpcId: "VPC_ID" TimeoutInMinutes:120IAMEC2InstanceProfile: "customer_ec2_secrets_manager_instance_profile" MultiAZDatabase: "true" WebServerCapacity: "2"使用 AWS CLI - 如需使用 RFCs 的詳細資訊 AWS CLI,請參閱建立 RFCs。例如,執行下列命令:
aws --profile=saml amscm create-rfc --change-type-id ct-36cn2avfrrj9v --change-type-version "2.0" --title "TEST_CFN_INGEST" --execution-parameters "{\"CloudFormationTemplateS3Endpoint\":\"https://s3-ap-southeast-2.amazonaws.com/my-bucket/3-tier-cfn-ingest.json?AWSAccessKeyId=#{S3_ACCESS_KEY_ID}&Expires=#{EXPIRE_DATE}&Signature=#{SIGNATURE}\",\"TimeoutInMinutes\":120,\"Description\":\"TEST\",\”VpcId”\”:\”VPC_ID\”,\"Name\":\"MY_TEST\",\"Tags\":[{\"Key\":\"env\",\"Value\":\"test\"}],\"Parameters\":[{\"Name\":\"IAMEC2InstanceProfile\",\"Value\":\"customer_ec2_secrets_manager_instance_profile\"},{\"Name\":\"MultiAZDatabase\",\"Value\":\"true\"},{\"Name\":\"VpcId\",\"Value\":\"VPC_ID\"},{\"Name\":\"WebServerCapacity\",\"Value\":\"2\"}]}" --endpoint-urlhttps://amscm.us-east-1.amazonaws.com/operational/--no-verify-ssl
在 AWS CloudFormation RFC 執行輸出中尋找 Application Load Balancer URL 以存取網站。如需存取 資源的資訊,請參閱存取執行個體。