建立基礎設施 - AMS 進階應用程式開發人員指南

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

建立基礎設施

在開始之前收集下列資料,可讓部署更快進行。

必要資料 HA 堆疊:

  • AutoScalingGroup:

    • UserData:此值在本教學課程中提供。它包含用於設定 CodeDeploy 資源並啟動 CodeDeploy 代理程式的命令。

    • AMI-ID:此值決定 Auto Scaling 群組 (ASG) 將啟動的 EC2 執行個體類型。請務必在您帳戶中選取以「customer-」開頭的 AMI,且為您想要的作業系統。使用 尋找 AMI IDs 如需 AMS SKMS API 參考,請參閱 AWS 成品主控台中的報告索引標籤。 操作 (CLI:list-amis) 或 AMS 主控台 VPCs VPCs詳細資訊頁面。此逐步解說適用於設定為使用 Linux AMI 的 ASGs。

  • 資料庫:

    • 這些參數 DBEngine、 和 LicenseModel應根據您的情況設定EngineVersion,但範例中顯示的值已經過測試。

    • 部署應用程式套件時,MasterUserPassword需要這些參數、MasterUsername、、 RDSSubnetIds DBName和 。對於 RDSSubnetIds請使用兩個私有子網路。

  • LoadBalancer:

    • 這些參數 DBEngine、 和 LicenseModel應根據您的情況設定EngineVersion,但範例中顯示的值已經過測試。

    • ELBSubnetIds:使用兩個公有子網路。

  • 應用程式: ApplicationName值會設定 CodeDeploy 應用程式名稱和 CodeDeploy 部署群組名稱。您可以使用它來部署應用程式。它在帳戶中必須是唯一的。若要檢查您的帳戶是否有 CodeDeploy 名稱,請參閱 CodeDeploy 主控台。此範例使用「WordPress」,但如果您將使用該值,請確定該值尚未在使用中。

此程序使用高可用性雙層堆疊 (進階) CT (ct-06mjngx5flwto) 和建立 S3 儲存 CT (ct-1a68ck03fn98r)。從您的已驗證帳戶,遵循命令列的這些步驟。

  1. 啟動基礎設施堆疊。

    1. 將 HA 兩層堆疊 CT 的執行參數 JSON 結構描述輸出到名為 CreateStackParams.json.

      aws amscm get-change-type-version --change-type-id "ct-06mjngx5flwto" --query "ChangeTypeVersion.ExecutionInputSchema" --output text > CreateStackParams.json
    2. 修改結構描述。視需要取代變數。例如,針對 ASG 將建立的 EC2 執行個體,使用您想要的作業系統。將 記錄ApplicationName為稍後用來部署應用程式的方式。請注意,您最多可以新增 50 個標籤。

      { "Description": "HA two tier stack for WordPress", "Name": "WordPressStack", "TimeoutInMinutes": 360, "Tags": [ { "Key": "ApplicationName", "Value": "WordPress" } ], "AutoScalingGroup": { "AmiId": "AMI-ID", "UserData": "#!/bin/bash \n REGION=$(curl 169.254.169.254/latest/meta-data/placement/availability-zone/ | sed 's/[a-z]$//') \n yum -y install ruby httpd \n chkconfig httpd on \n service httpd start \n touch /var/www/html/status \n cd /tmp \n curl -O https://aws-codedeploy-$REGION.s3.amazonaws.com/latest/install \n chmod +x ./install \n ./install auto \n chkconfig codedeploy-agent on \n service codedeploy-agent start" }, "LoadBalancer": { "Public": true, "HealthCheckTarget": "HTTP:80/status" }, "Database": { "DBEngine": "MySQL", "DBName": "wordpress", "EngineVersion": "8.0.16 ", "LicenseModel": "general-public-license", "MasterUsername": "admin", "MasterUserPassword": "p4ssw0rd" }, "Application": { "ApplicationName": "WordPress" } }
    3. 將 CreateRfc JSON 範本輸出到目前資料夾中名為 CreateStackRfc.json:

      aws amscm create-rfc --generate-cli-skeleton > CreateStackRfc.json
    4. 如下所示修改並儲存 RFC 範本,您可以刪除和取代內容。請注意, RequestedStartTime和 現在RequestedEndTime是選用的;排除它們會建立 ASAP RFC,在核准後立即執行 (通常會自動執行)。若要提交排定的 RFC,請新增這些值。

      { "ChangeTypeVersion": "3.0", "ChangeTypeId": "ct-06mjngx5flwto", "Title": "HA-Stack-For-WP-RFC" }
    5. 建立 RFC,指定 CreateStackRfc.json 檔案和 CreateStackParams.json 執行參數檔案:

      aws amscm create-rfc --cli-input-json file://CreateStackRfc.json --execution-parameters file://CreateStackParams.json

      您會在回應中收到 RFC ID。儲存後續步驟的 ID。

    6. 提交 RFC:

      aws amscm submit-rfc --rfc-id RFC_ID

      如果 RFC 成功,您不會收到任何輸出。

    7. 若要檢查 RFC 狀態,請執行

      aws amscm get-rfc --rfc-id RFC_ID

    請記下 RFC ID。

  2. 啟動 S3 儲存貯體

    在開始之前收集下列資料,可讓部署更快進行。

    必要資料 S3 儲存貯體:

    • VPC-ID:此值會決定 S3 儲存貯體的位置。使用您先前使用的相同 VPC ID。

    • BucketName:此值會設定 S3 儲存貯體名稱,您可以使用它來上傳應用程式套件。它在帳戶區域必須是唯一的,且不能包含大寫字母。將您的帳戶 ID 包含在 BucketName 中不是必要項目,但之後更容易識別儲存貯體。若要查看帳戶中存在哪些 S3 儲存貯體名稱,請前往您帳戶的 Amazon S3 主控台。

    1. 將 S3 儲存體的 JSON 結構描述輸出至名為 CreateS3StoreParams.json.

      aws amscm get-change-type-version --change-type-id "ct-1a68ck03fn98r" --query "ChangeTypeVersion.ExecutionInputSchema" --output text > CreateS3StoreParams.json
    2. 如下所示修改結構描述,您可以刪除和取代內容。適當地取代 VPC_ID。範例中的值已經過測試,但可能不適合您。

      提示

      BucketName 必須是帳戶區域中唯一的,且不能包含大寫字母。將您的帳戶 ID 包含在 BucketName 中不是必要項目,但之後更容易識別儲存貯體。若要查看帳戶中存在哪些 S3 儲存貯體名稱,請前往您帳戶的 Amazon S3 主控台。

      { "Description": "S3BucketForWordPressBundle", "VpcId": "VPC_ID", "StackTemplateId": "stm-s2b72beb000000000", "Name": "S3BucketForWP", "TimeoutInMinutes": 60, "Parameters": { "AccessControl": "Private", "BucketName": "ACCOUNT_ID-BUCKET_NAME" } }
    3. 將 CreateRfc 的 JSON 範本輸出至目前資料夾中名為 CreateS3StoreRfc.json:

      aws amscm create-rfc --generate-cli-skeleton > CreateS3StoreRfc.json
    4. 修改並儲存 CreateS3StoreRfc.json 檔案,您可以刪除並取代內容。請注意, RequestedStartTime和 現在RequestedEndTime是選用的;排除它們會建立 ASAP RFC,在核准後立即執行 (通常會自動執行)。若要提交排定的 RFC,請新增這些值。

      { "ChangeTypeVersion": "1.0", "ChangeTypeId": "ct-1a68ck03fn98r", "Title": "S3-Stack-For-WP-RFC" }
    5. 建立 RFC,指定 CreateS3StoreRfc.json 檔案和 CreateS3StoreParams.json 執行參數檔案:

      aws amscm create-rfc --cli-input-json file://CreateS3StoreRfc.json --execution-parameters file://CreateS3StoreParams.json

      您會在回應中收到新 RFC 的 RfcId。儲存後續步驟的 ID。

    6. 提交 RFC:

      aws amscm submit-rfc --rfc-id RFC_ID

      如果 RFC 成功,您不會收到任何輸出。

    7. 若要檢查 RFC 狀態,請執行

      aws amscm get-rfc --rfc-id RFC_ID