View a markdown version of this page

EC2 堆栈 | 创建 - AMS 高级更改类型参考

终止支持通知:2027 年 6 月 30 日, AWS 将终止对 AMS Advanced 的支持。2027 年 6 月 30 日之后,您将无法再访问 AMS 高级控制台或 AMS 高级资源。有关更多信息,请参阅 AMS 高级终止支持

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

EC2 堆栈 | 创建

用于创建亚马逊弹性计算云 (EC2) 实例。

完整分类:部署 | 高级堆栈组件 | EC2 堆栈 | 创建

更改类型详情

更改类型 ID

ct-14027q0sjyt1h

当前版本

5.0

预期执行时长

360 分钟

AWS 批准

必填

客户批准

非必需

执行模式

自动

附加信息

创建堆栈

以下显示了 AMS 控制台中的这种更改类型。

创建显示 ID ct-14027q0sjyt1h、自动执行模式和版本 4.0 的 EC2 堆栈页面。

工作原理:

  1. 导航到 “创建 RFC” 页面:在 AMS 控制台的左侧导航窗格中,单击 RFC 打开 RFC 列表页面,然后单击 “创建 RFC”。

  2. 在默认的 “浏览更改类型” 视图中选择常用更改类型 (CT),或在 “按类别选择” 视图中选择 CT。

    • 按更改类型浏览:您可以在 “快速创建” 区域中单击常用的 CT,立即打开 “运行 RFC” 页面。请注意,您无法使用快速创建功能选择较早的 CT 版本。

      要对 CT 进行排序,请使用 “卡片” 或 “表” 视图中的 “所有更改类型” 区域。在任一视图中,选择 CT,然后单击 “创建 RFC” 以打开 “运行 RFC” 页面。如果适用,“创建 RFC” 按钮旁边会显示 “使用旧版本创建” 选项。

    • 按类别选择:选择类别、子类别、项目和操作,CT 详细信息框随即打开,并显示 “使用旧版本创建” 选项(如果适用)。单击 “创建 RFC” 打开 “运行 RFC” 页面。

  3. 运行 RFC 页面上,打开 CT 名称区域以查看 CT 详细信息框。主题为必填项(如果您在 “浏览更改类型” 视图中选择 CT,则会为您填写主题)。打开 “其他配置” 区域以添加有关 RFC 的信息。

    执行配置区域中,使用可用的下拉列表或输入所需参数的值。要配置可选的执行参数,请打开附加配置区域。

  4. 完成后,单击 “运行” 。如果没有错误,则会显示成功创建 RFC 的页面,其中包含提交的 RFC 详细信息以及初始运行输出。

  5. 打开 “运行参数” 区域以查看您提交的配置。刷新页面以更新 RFC 的执行状态。或者,取消 RFC 或使用页面顶部的选项创建 RFC 副本。

工作原理:

  1. 使用内联创建(您发出包含所有 RFC 和执行参数的create-rfc命令)或模板创建(创建两个 JSON 文件,一个用于 RFC 参数,一个用于 RFC 参数,一个用于执行参数),然后使用这两个文件作为输入发出create-rfc命令。此处描述了这两种方法。

  2. 使用返回的 RFC ID 提交 RFC: aws amscm submit-rfc --rfc-id ID 命令。

    监视 RFC: aws amscm get-rfc --rfc-id ID 命令。

要检查更改类型版本,请使用以下命令:

aws amscm list-change-type-version-summaries --filter Attribute=ChangeTypeId,Value=CT_ID
注意

您可以将任何CreateRfc参数与任何 RFC 一起使用,无论它们是否属于变更类型的架构的一部分。例如,要在 RFC 状态发生变化时收到通知,请将此行添加到请求的 RFC 参数部分(而不是执行参数)中。--notification "{\"Email\": {\"EmailRecipients\" : [\"email@example.com\"]}}"有关所有 CreateRfc 参数的列表,请参阅 AMS 变更管理 API 参考

内联创建

使用内联提供的执行参数(内联提供执行参数时使用转义引号)发出 create RFC 命令,然后提交返回的 RFC ID。例如,你可以用这样的东西替换内容:

aws amscm create-rfc --change-type-id "ct-14027q0sjyt1h" --change-type-version "4.0" --title "EC2-Create-RFC" --execution-parameters "{\"Description\": \"Create a new EC2 Instance stack\",\"VpcId\": \"vpc-0a60eb65b4EXAMPLE\",\"Name\": \"My-EC2\",\"TimeoutInMinutes\": 60,\"Parameters\": {\"InstanceAmiId\": \"ami-1234567890EXAMPLE\",\"InstanceDetailedMonitoring\": false,\"InstanceEBSOptimized\": false,\"InstanceProfile\": \"customer-mc-ec2-instance-profile\",\"InstanceRootVolumeIops\": 3000,\"InstanceRootVolumeType\": \"gp3\",\"InstanceType\": \"t2.large\",\"InstanceUserData\": \"\",\"InstanceSubnetId\": \"subnet-0bb1c79de3EXAMPLE\",\"EnforceIMDSV2\": \"false\"}}"

模板创建

  1. 将此更改类型的执行参数输出到 JSON 文件中;此示例将其命名 CreateEC2Params.json为:

    aws amscm get-change-type-version --change-type-id "ct-14027q0sjyt1h" --query "ChangeTypeVersion.ExecutionInputSchema" --output text > CreateEC2Params.json
  2. 修改并保存 createEC2Params 文件。例如,你可以用这样的东西替换内容:

    { "Description": "Create a new EC2 Instance stack", "VpcId": "vpc-0a60eb65b4EXAMPLE", "Name": "My-EC2", "TimeoutInMinutes": 60, "Parameters": { "InstanceAmiId": "ami-1234567890EXAMPLE", "InstanceDetailedMonitoring": false, "InstanceEBSOptimized": false, "InstanceProfile": "customer-mc-ec2-instance-profile", "InstanceRootVolumeIops": 3000, "InstanceRootVolumeType": "gp3", "InstanceType": "t2.large", "InstanceUserData": "", "InstanceSubnetId": "subnet-0bb1c79de3EXAMPLE", "EnforceIMDSV2": "false" } }
  3. 将 RFC 模板输出到当前文件夹中的文件中;此示例将其 CreateEC2Rfc.json命名为:

    aws amscm create-rfc --generate-cli-skeleton > CreateEC2Rfc.json
  4. 修改并保存该 CreateEC2Rfc.json 文件。例如,你可以用这样的东西替换内容:。

    { "ChangeTypeVersion": "4.0", "ChangeTypeId": "ct-14027q0sjyt1h", "Title": "EC2-Create-RFC" }
  5. 创建 RFC,指定 createEC2RFC 文件和 createEC2Params 文件:

    aws amscm create-rfc --cli-input-json file://CreateEC2Rfc.json --execution-parameters file://CreateEC2Params.json

    您在响应中收到新 RFC 的 ID,可以使用它来提交和监控 RFC。在您提交之前,RFC 将保持编辑状态且无法启动。

安全组

从此更改类型的 3.0 版开始,如果您指定自己的安全组,AMS 不会附加默认 AMS 安全组。如果您未在请求中指定自己的安全组,AMS 会附加 AMS 默认安全组。在以前的版本中,无论您是否提供自己的安全组,AMS 都会附加默认安全组。

当前,如果您指定自定义安全组,则还必须为您的账户指定默认 AMS 安全组的 ID,mc-initial-garden-SG-name以及mc-initial-garden-SG-name

实例类型

AMS 不推荐 t2。micro/t3.micro t2。nano/t3.nano 类型。这些是较小的实例类型,可能会降低您的应用程序和 AMS 工具的性能。除了应用程序工作负载外,EC2 实例还需要足够的容量来支持 AMS 工具,例如 EPS、SSM 和 Cloudwatch。有关更多信息,请参阅为您的应用程序选择正确的 EC2 实例类型

  • 要创建包含更多卷的 EC2 堆栈,请参阅 EC2 堆栈 | 创建(使用其他卷)

  • 您最多可以添加 50 个标签,但为此,必须启用其他配置视图。

  • 在置备实例之前移除陈旧的计算机对象。如果您计划使用 Active Directory 中已存在的主机名配置新实例(Windows 或 Linux),例如,从 AMI 恢复或重复使用先前堆栈中的主机名时,必须先运行管理 | 目录服务 | 计算机对象 | 删除更改类型 (ct-3d0lrfb8eckuu) 以删除过时的计算机对象。如果 Active Directory 中已经存在具有相同主机名的计算机对象,AMS 不会预置实例。

    如果您不删除过时的对象,则可能会遭受 RFC 拒绝、在错误的组织单位 (OU) 中重复计算机对象、域加入中断、DNS 记录冲突以及无法访问的实例(Windows 上的 RDP 失败,Linux 上的 Kerberos 身份验证和 SSH 失败)。当源 AMI 是在未事先准备的情况下从正在运行的加入域的实例中捕获时,这一点尤其重要。在 Windows 上,这意味着不运行Invoke-AMSSysprep;在 Linux 上,这意味着不运行 AMS 准备脚本 (prepare_instance_for_ami_and_shutdown.sh)。

    在没有准备的情况下,AMI 会保留先前实例的计算机凭证(Windows 上的计算机帐户 SID 和密码,或者 Linux 上的 Kerberos 密钥表),这会导致信任关系失败和对象冲突,当新实例从该实例启动时,这会导致信任关系失败和对象冲突。有关实例准备的更多信息,请参阅部署 | 高级堆栈组件 | AMI | 创建 (ct-3rqqu43krekby) 的提示部分。

如果需要,请参阅 EC2 实例堆栈创建失败

执行输入参数

有关执行输入参数的详细信息,请参阅变更架构类型 ct-14027q0sjyt1h

示例:必需的参数

{ "Description": "This is a test description", "VpcId": "vpc-1234567890abcdef0", "Name": "Test Stack", "TimeoutInMinutes": 360, "Parameters": { "InstanceAmiId": "ami-1234567890abcdef0", "InstanceSubnetId": "subnet-1234567890abcdef0", "EnforceIMDSV2": "true" } }

示例:所有参数

{ "Description": "This is a test description", "VpcId": "vpc-12345678", "Name": "Test Stack", "Tags": [ { "Key": "foo", "Value": "bar" }, { "Key": "testkey", "Value": "testvalue" } ], "TimeoutInMinutes": 60, "Parameters": { "InstanceAmiId": "ami-a0b1c2d3", "InstanceDetailedMonitoring": false, "InstanceEBSOptimized": false, "InstanceProfile": "customer-mc-ec2-instance-profile", "InstanceRootVolumeIops": 3000, "InstanceRootVolumeName": "/dev/xvda", "InstanceRootVolumeSize": 60, "InstanceRootVolumeType": "gp3", "InstancePrivateStaticIp": "172.16.0.0", "InstanceSubnetId": "subnet-a0b1c2d3", "InstanceType": "t2.large", "InstanceUserData": "pwd\nls -ltrh\necho \"Hello, World\"", "EnforceIMDSV2": "true" } }