本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
创建基础架构
在开始之前收集以下数据可以加快部署速度。
必需的数据有堆栈:
AutoScalingGroup:
UserData:本教程中提供了此值。它包括为其设置资源 CodeDeploy 和启动 CodeDeploy 代理的命令。AMI-ID:此值决定了您的 Auto Scaling 组 (ASG) 将启动哪种 EC2 实例。请务必在您的账户中选择以 “customer-” 开头且具有所需操作系统的 AMI。 IDs 使用 AMS SKMS API 参考查找 AMI,请参阅 AWS Artifact 控制台的 “报告” 选项卡。操作 (CLI: list-amis) 或 AMS 控制台-> 详情页面。 VPCs VPCs 本演练适用于 ASGs 配置为使用 Linux AMI。
数据库:
尽管示例中显示的值已经过测试,但这些参数
EngineVersion、、和LicenseModel应根据您的情况进行设置。DBEngine部署应用程序包时需要
MasterUserPassword这些参数RDSSubnetIdsDBNameMasterUsername、、、和。对于 RDSSubnet ID,请使用两个私有子网。
LoadBalancer:
尽管示例中显示的值已经过测试,但这些参数
EngineVersion、、和LicenseModel应根据您的情况进行设置。DBEngineELBSubnetIds:使用两个公有子网。
应用程序:该
ApplicationName值设置 CodeDeploy 应用程序名称和 CodeDeploy 部署组名称。你可以用它来部署你的应用程序。它在账户中必须是唯一的。要查看您的账户中的 CodeDeploy 姓名,请访问 CodeDeploy 控制台。该示例使用 “WordPress”,但是,如果您要使用该值,请确保该值尚未被使用。
此过程使用高可用性双层堆栈(高级)CT(ct-06mjngx5flwto)和创建 S3 存储 CT(ct-1a68ck03fn98r)。在经过身份验证的账户中,在命令行中执行以下步骤。
启动基础架构堆栈。
将 HA 双层堆栈 CT 的执行参数 JSON 架构输出到当前文件夹中名为 CreateStackParams .json 的文件中。
aws amscm get-change-type-version --change-type-id "ct-06mjngx5flwto" --query "ChangeTypeVersion.ExecutionInputSchema" --output text > CreateStackParams.json修改架构。根据需要
variables更换。例如,对于 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" } }将 CreateRfc JSON 模板输出到当前文件夹中名为 CreateStackRfc .json 的文件中:
aws amscm create-rfc --generate-cli-skeleton > CreateStackRfc.json按如下方式修改 RFC 模板并保存,即可删除和替换内容。请注意,
RequestedStartTime和现在RequestedEndTime是可选的;排除它们会创建一个 ASAP RFC,该RFC在获得批准后立即执行(通常会自动发生)。要提交计划的 RFC,请添加这些值。{ "ChangeTypeVersion": "3.0", "ChangeTypeId": "ct-06mjngx5flwto", "Title": "HA-Stack-For-WP-RFC" }创建 RFC,指定 CreateStackRfc .json 文件和.js CreateStackParams on 执行参数文件:
aws amscm create-rfc --cli-input-json file://CreateStackRfc.json --execution-parameters file://CreateStackParams.json您在响应中收到 RFC ID。保存 ID 以供后续步骤使用。
提交 RFC:
aws amscm submit-rfc --rfc-id RFC_ID如果 RFC 成功,则不会收到任何输出。
要检查 RFC 状态,请运行
aws amscm get-rfc --rfc-idRFC_ID
记下 RFC ID。
启动 S3 存储桶
在开始之前收集以下数据可以加快部署速度。
必需的数据 S3 存储桶:
VPC-ID:此值决定您的 S3 存储桶将位于何处。使用您之前使用的 VPC ID。BucketName:此值设置 S3 存储桶名称,您可以使用它来上传您的应用程序包。它在账户所在区域内必须是唯一的,并且不能包含大写字母。不要求将您的账户 ID 作为其中的 BucketName 一部分,但可以更轻松地在以后识别存储桶。要查看账户中存在哪些 S3 存储桶名称,请访问您的账户的 Amazon S3 控制台。
将 S3 存储创建 CT 的执行参数 JSON 架构输出到名为 createS3 StoreParams .json 的 JSON 文件中。
aws amscm get-change-type-version --change-type-id "ct-1a68ck03fn98r" --query "ChangeTypeVersion.ExecutionInputSchema" --output text > CreateS3StoreParams.json按如下方式修改架构,可以删除和替换其中的内容。
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" } }将的 JSON 模板输出 CreateRfc 到当前文件夹中名为 createS3 StoreRfc .json 的文件中:
aws amscm create-rfc --generate-cli-skeleton > CreateS3StoreRfc.json修改并保存 createS3 StoreRfc .json 文件,你可以删除和替换其中的内容。请注意,
RequestedStartTime和现在RequestedEndTime是可选的;排除它们会创建一个 ASAP RFC,该RFC在获得批准后立即执行(通常会自动发生)。要提交计划的 RFC,请添加这些值。{ "ChangeTypeVersion": "1.0", "ChangeTypeId": "ct-1a68ck03fn98r", "Title": "S3-Stack-For-WP-RFC" }创建 RFC,指定 createS3 StoreRfc .json 文件和 createS3 .json StoreParams 执行参数文件:
aws amscm create-rfc --cli-input-json file://CreateS3StoreRfc.json --execution-parameters file://CreateS3StoreParams.json您会在回复 RfcId 中收到新 RFC 的信息。保存 ID 以供后续步骤使用。
提交 RFC:
aws amscm submit-rfc --rfc-idRFC_ID如果 RFC 成功,则不会收到任何输出。
要检查 RFC 状态,请运行
aws amscm get-rfc --rfc-idRFC_ID