

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# CloudFormation 擷取範例：3 層 Web 應用程式
<a name="cfn-ingest-ex-3-tier"></a>

擷取標準 3-Tier Web 應用程式的 CloudFormation 範本。

![\[AWS 雲端 architecture diagram showing VPC with two availability zones, load balancer, and multi-AZ RDS setup.\]](http://docs.aws.amazon.com/zh_tw/managedservices/latest/appguide/images/cfn-ingest-ex-3-tier.png)


這包括 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 分鐘的時間來演練此範例。

## 先決條件
<a name="cfn-ingest-ex-3-tier-prerequisites"></a>
+ 使用 Secrets Manager 建立包含使用者名稱和密碼與對應值的 AWS 秘密。您可以參考此包含秘密名稱 [的範例 JSON 範本 (zip 檔案）](samples/3-tier-cfn-ingest-2025.zip)`ams-shared/myapp/dev/dbsecrets`，並將其取代為您的秘密名稱。如需搭配 AMS 使用 AWS Secrets Manager 的詳細資訊，請參閱 [搭配 AMS 資源使用 AWS Secrets Manager](secrets-manager.md)。
+ 在 AWS SSM 參數存放區 (PS) 中設定必要的參數。在此範例中，私有和公有子網路`Subnet-Id`的 `VPCId`和 會存放在 SSM PS 中的路徑，例如 `/app/DemoApp/PublicSubnet1a`、`PrivateSubnet1a`、 `PublicSubnet1c``PrivateSubnet1c`和 `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 變更類型管理 \$1 應用程式 \$1 IAM 執行個體描述檔 \$1 建立 (ct-0ixp4ch2tiu04) CT，並連接所需的政策。您可以在 IAM 主控台中檢閱 AMS IAM 標準政策 `customer_secrets_manager_policy`和 AWS `customer_systemsmanager_parameterstore_policy`，以正常使用或做為參考。

## 擷取標準 3-Tier Web 應用程式的 CloudFormation 範本
<a name="cfn-ingest-ex-3-tier-procedure"></a>

1. 將連接的範例 CloudFormation JSON 範本以 zip 檔案 [3-tier-cfn-ingest.zip](samples/3-tier-cfn-ingest-2025.zip) 形式上傳至 S3 儲存貯體，並產生簽署的 S3 URL 以在 CFN 擷取 RFC 中使用。如需詳細資訊，請參閱[預先簽章](https://docs.aws.amazon.com/cli/latest/reference/s3/presign.html)。當您透過 AMS 主控台提交 RFC 時，CFN 範本也可以複製/貼上至 CFN 擷取 RFC。

1. 透過 AMS 主控台或 AMS CLI 建立 CloudFormation 擷取 RFC （部署 \$1 擷取 \$1 從 CloudFormation 範本堆疊 \$1 建立 (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: 120
     IAMEC2InstanceProfile: "customer_ec2_secrets_manager_instance_profile"
     MultiAZDatabase: "true"
     WebServerCapacity: "2"
     ```
   + 使用 AWS CLI - 如需使用 RFCs 的詳細資訊 AWS CLI，請參閱[建立 RFCs](https://docs.aws.amazon.com/managedservices/latest/userguide/create-rfcs.html)。例如，執行下列命令：

     ```
     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-url https://amscm.us-east-1.amazonaws.com/operational/ --no-verify-ssl
     ```

   在 CloudFormation RFC 執行輸出中尋找 Application Load Balancer URL 以存取網站。如需存取 資源的資訊，請參閱[存取執行個體](https://docs.aws.amazon.com/managedservices/latest/userguide/access-instance.html)。