本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
CloudFormation 采集示例:3 层 Web 应用程序
为标准 3 层 Web 应用程序提取 CloudFormation 模板。
这包括应用程序负载均衡器、应用程序负载均衡器目标组、Auto Scaling 组、Auto Scaling 组启动模板、带有 MySQL 数据库的亚马逊关系数据库服务(适用于 SQL Server 的 RDS)、 AWS SSM 参数存储和 S AWS ecrets Manager。请等待 30-60 分钟来完成此示例。
先决条件
使用 Secrets Manager 创建包含用户名和密码以及相应值的 AWS 密钥。您可以参考包含密钥名称的示例 JSON 模板(zip 文件)
ams-shared/myapp/dev/dbsecrets,并将其替换为您的密钥名称。有关将 S AWS ecrets Manager 与 AMS 配合使用的信息,请参阅将 S AWS ecrets Manager 与 AMS 资源配合使用。在 AWS SSM 参数存储 (PS) 中设置必需的参数。在此示例中,私有子网
VPCId和Subnet-Id公有子网的和存储在 SSM PS 中,路径如/app/DemoApp/PublicSubnet1a、PublicSubnet1cPrivateSubnet1a、PrivateSubnet1c和。VPCCidr根据需要更新路径、参数名称和值。创建一个 IAM Amazon EC2 实例角色,该角色具有对 S AWS ecrets Manager 和 SSM 参数存储路径的读取权限(这些示例中创建和使用的 IAM 角色是
customer-ec2_secrets_manager_instance_profile)。如果您创建 IAM 标准策略,例如实例配置文件角色,则角色名称必须以开头。customer-要创建新的 IAM 角色,(您可以命名它customer-ec2_secrets_manager_instance_profile或其他名称)使用 AMS 更改类型管理 | 应用程序 | IAM 实例配置文件 | 创建 (ct-0ixp4ch2tiu04) CT,然后附加所需的策略。您可以在 IAM 控制台中查看 AMS AWS IAM 标准策略customer_secrets_manager_policy和customer_systemsmanager_parameterstore_policy,以便按原样使用或作为参考。
摄取标准 3 层 Web 应用程序的 CloudFormation 模板
将随附的示例 CloudFormation JSON 模板作为 zip 文件(3-tier-cfn-ingest .zip)上传到 S3 存储桶,然后生成签名的 S3 网址以在 CFN Ingest RFC 中使用。有关更多信息,请参阅 presign。当你通过 AMS 控制台提交 RFC 时,CFN 模板也可以 copy/pasted 放在 CFN Ingest RFC 中。
通过 AMS 控制台 CloudFormation 或 AMS CLI 创建 Ingest RFC(部署 | Ingestion | 来自 CloudFormation 模板的堆栈 | 创建 (ct-36cn2avfrrj9v))。 CloudFormation 采集自动化流程会对 CloudFormation 模板进行验证,以确保该模板具有 AMS 支持的有效资源并符合安全标准。
使用控制台-对于更改类型,从 “ CloudFormation 模板”-> “创建” 中选择 “部署”-> “接收”-> “堆栈”,然后添加以下参数作为示例(请注意,“多” 的默认值AZDatabase为 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 网址以访问该网站。有关访问资源的信息,请参阅访问实例。