本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
EC2 堆栈 | 创建(使用其他卷)
创建包含最多五个额外卷的 Amazon 弹性计算云 (EC2) 实例。
完整分类:部署 | 高级堆栈组件 | EC2 堆栈 | 创建(包含其他卷)
更改类型详情
更改类型 ID |
ct-1aqsjf86w6vxg |
当前版本 |
5.0 |
预期执行时长 |
360 分钟 |
AWS 批准 |
必需 |
客户批准 |
可选 |
执行模式 |
自动 |
附加信息
创建堆栈(包含其他卷)
下图显示了 AMS 控制台中的此更改类型。
它是如何运作的:
导航到 “创建 RFC” 页面:在 AMS 控制台的左侧导航窗格中,单击RFCs打开 RFCs 列表页面,然后单击 “创建 R FC”。
在默认的 “浏览更改类型” 视图中选择常用更改类型 (CT),或者在 “按类别选择” 视图中选择 CT。
按更改类型浏览:您可以单击 “快速创建” 区域中的常用 CT,立即打开 “运行 RFC” 页面。请注意,您不能使用快速创建来选择较旧的 CT 版本。
要进行排序 CTs,请使用卡片视图或表格视图中的所有更改类型区域。在任一视图中,选择一个 CT,然后单击 “创建 RFC” 打开 “运行 RFC” 页面。如果适用,“创建 RFC” 按钮旁边会出现 “使用旧版本创建” 选项。
按类别选择:选择类别、子类别、项目和操作,CT 详细信息框将打开,并显示 “使用旧版本创建” 选项(如果适用)。单击 “创建 RFC” 打开 “运行 RFC” 页面。
在 “运行 RFC” 页面上,打开 CT 名称区域以查看 CT 详细信息框。必须填写主题(如果您在 “浏览更改类型” 视图中选择 CT,则会为您填写此主题)。打开 “其他配置” 区域以添加有关 RFC 的信息。
在执行配置区域中,使用可用的下拉列表或输入所需参数的值。要配置可选的执行参数,请打开其他配置区域。
完成后,单击 “运行”。如果没有错误,则会显示成功创建的 RFC 页面,其中包含已提交的 RFC 详细信息和初始运行输出。
打开运行参数区域以查看您提交的配置。刷新页面以更新 RFC 的执行状态。(可选)取消 RFC 或使用页面顶部的选项创建一个 RFC 的副本。
它是如何运作的:
使用 Inline Create(您发出包含所有 RFC 和执行参数的
create-rfc命令)或模板创建(创建两个 JSON 文件,一个用于 RFC 参数,一个用于执行参数),然后以这两个文件作为输入发出create-rfc命令。这里描述了这两种方法。提交带有返回的 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-1aqsjf86w6vxg" --change-type-version "4.0" --title "EC2-Create-A-V-QC" --execution-parameters "{\"Description\":\"My EC2 stack with addl vol\",\"VpcId\":\"VPC_ID\",\"Name\":\"My Stack\",\"StackTemplateId\":\"stm-nn8v8ffhcal611bmo\",\"TimeoutInMinutes\":60,\"Parameters\":{\"InstanceAmiId\":\"AMI_ID\",\"InstanceSubnetId\":\"SUBNET_ID\"}}
模板创建:
将此更改类型的执行参数输出到名为 Cre EC2 AVParams ate.json 的 JSON 文件中。
aws amscm get-change-type-version --change-type-id "ct-1aqsjf86w6vxg" --query "ChangeTypeVersion.ExecutionInputSchema" --output text > CreateEC2AVParams.json修改并保存创建EC2AVParams 文件(示例显示了大多数参数)。例如,你可以用这样的东西替换内容:
{ "Description": "EC2-Create-1-Addl-Volumes", "VpcId": "VPC_ID", "StackTemplateId": "stm-nn8v8ffhcal611bmo", "Name": "My-EC2-1-Addl-Volume", "TimeoutInMinutes": 60, "Parameters": { "InstanceAmiId": "AMI_ID", "InstanceSecurityGroupIds": "SECURITY_GROUP_ID", "InstanceCoreCount":1, "InstanceThreadsPerCore":2, "InstanceDetailedMonitoring": "true", "InstanceEBSOptimized": "false", "InstanceProfile": "customer-mc-ec2-instance-profile", "InstanceRootVolumeIops":100, "InstanceRootVolumeName": "/dev/xvda", "InstanceRootVolumeSize":50, "InstanceRootVolumeType": "io1", "RootVolumeKmsKeyId": "default", "InstancePrivateStaticIp": "10.27.0.100", "InstanceSecondaryPrivateIpAddressCount":0, "InstanceTerminationProtection": "false", "InstanceType": "t3.large", "CreditSpecification": "unlimited", "InstanceUserData": "echo $", "Volume1Encrypted": "true", "Volume1Iops": "IOPS" "Volume1KmsKeyId": "KMS_MASTER_KEY_ID", "Volume1Name": "xvdh" "Volume1Size": "2 GiB", "Volume1Snapshot": "SNAPSHOT_ID", "Volume1Type": "iol", "InstanceSubnetId": "SUBNET_ID" } }将 RFC 模板输出到当前文件夹中的一个文件中;此示例将其命名为 Cre EC2 AVRfc ate.json:
aws amscm create-rfc --generate-cli-skeleton > CreateEC2AVRfc.json修改并保存创建 EC2 AVRfc .json 文件。例如,你可以用这样的东西替换内容:
{ "ChangeTypeVersion": "4.0", "ChangeTypeId": "ct-1aqsjf86w6vxg", "Title": "EC2-Create-1-Addl-Volume-RFC" }创建 RFC,指定创建EC2AVRfc 文件和创建EC2AVParams 文件:
aws amscm create-rfc --cli-input-json file://CreateEC2AVRfc.json --execution-parameters file://CreateEC2AVParams.json您在响应中收到新 RFC 的 ID,并可以使用它来提交和监控 RFC。在您提交之前,RFC 仍处于编辑状态且无法启动。
重要
这种变更类型有一个新版本 v 4.0,它使用了不同的变更类型 StackTemplateId (stm-nn8v8ffhcal611bmo)。如果您要在命令行提交带有此更改类型的 RFC,则这一点很重要。新版本引入了两个新参数(RootVolumeKmsKeyId和 CreditSpecification),并更改了一个现有参数(InstanceType)的默认值。
实例类型
-
如果选择指定内核数或线程数,则必须为两者都指定值。使用参数
InstanceCoreCount和InstanceThreadsPerCore。要查找内核/线程的有效组合,请参阅每种实例类型的 CPU 内核和每 CPU 内核的线程。 -
AMS 不推荐使用 t2.micro/t3. micro 或 t2.nano/t3.nano 实例类型。它们太小,除了您的业务工作负载外,还无法支持 EPS、SSM 和 Cloudwatch 等 AMS 工具。有关更多信息,请参阅为您的应用程序选择正确的 EC2 实例类型
。 -
在 4.0 版本中,默认类型从 t2.large 提升到 t3.larg e。默认情况下,T3 实例以 “无限积分” 启动。即使实例消耗了所有 CPU 积分,您也不会遇到 CPU 限制的情况。相反,您可以选择 T2 实例并使用 CreditSpecification 无限制选项。
-
有关亚马逊的更多信息 EC2,包括尺寸建议,请参阅亚马逊弹性计算云文档
。
要在创建更多卷后使用其他卷更新堆 EC2 栈,请参阅EC2 实例堆栈:更新(使用其他卷)
执行输入参数
有关执行输入参数的详细信息,请参见变更架构类型 ct-1aqsjf86w6vxg。
示例:必填参数
{ "Description" : "Test description", "VpcId" : "vpc-12345678901234567", "Name" : "TestStack", "StackTemplateId" : "stm-nn8v8ffhcal611bmp", "TimeoutInMinutes" : 60, "Parameters" : { "InstanceAmiId" : "ami-1234567890abcdef0", "InstanceSubnetId" : "subnet-1234567890abcdef0", "EnforceIMDSV2": "true" } }
示例:所有参数
{ "Description": "This is a test description", "VpcId": "vpc-12345678", "Name": "Test Stack", "Tags": [ { "Key": "key1", "Value": "value1" }, { "Key": "key2", "Value": "value2" } ], "Parameters": { "InstanceAmiId": "ami-12345678", "InstanceCoreCount": 0, "InstanceThreadsPerCore": 0, "InstanceRootVolumeName": "/dev/xvda", "InstanceRootVolumeSize": 100, "InstanceSubnetId": "subnet-12345678", "InstanceDetailedMonitoring": "false", "InstanceEBSOptimized": "false", "InstanceProfile": "customer-mc-ec2-instance-profile", "InstanceRootVolumeIops": 1000, "InstanceRootVolumeType": "io1", "InstancePrivateStaticIp": "172.16.0.10", "InstanceSecondaryPrivateIpAddressCount" : 1, "InstanceTerminationProtection" : "true", "InstanceType": "t2.small", "InstanceUserData": "#!/bin/bash\\npwd\\nls -ltrh\\necho \"Hello, World\"", "Volume1Iops": 100, "Volume1KmsKeyId": "12345678-1234-1234-1234-1234567890ab", "Volume1Name": "/dev/sdf", "Volume1Size": 100, "Volume1Type": "io1", "Volume2Iops": 100, "Volume2KmsKeyId": "12345678-1234-1234-1234-1234567890ab", "Volume2Name": "/dev/sdg", "Volume2Size": 100, "Volume2Type": "io1", "Volume3Iops": 100, "Volume3KmsKeyId": "12345678-1234-1234-1234-1234567890ab", "Volume3Name": "/dev/sdh", "Volume3Size": 100, "Volume3Type": "io1", "Volume4Iops": 100, "Volume4KmsKeyId": "12345678-1234-1234-1234-1234567890ab", "Volume4Name": "/dev/sdi", "Volume4Size": 100, "Volume4Type": "io1", "Volume5Iops": 100, "Volume5KmsKeyId": "12345678-1234-1234-1234-1234567890ab", "Volume5Name": "/dev/sdj", "Volume5Size": 100, "Volume5Type": "io1", "EnforceIMDSV2": "true" }, "TimeoutInMinutes": 60, "StackTemplateId": "stm-nn8v8ffhcal611bmp" }