在中启动、列出和关闭 Amazon EC2 实例 Amazon CLI - Amazon Command Line Interface
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

在中启动、列出和关闭 Amazon EC2 实例 Amazon CLI

您可以使用 Amazon Command Line Interface (Amazon CLI) 启动、列出和终止亚马逊弹性计算云 (AmazonEC2) 实例。如果您启动的实例不在 Amazon 免费套餐范围内,则即使实例处于闲置状态,也会在启动该实例后向您收费,并按该实例的运行时间收费。

注意

有关其他命令示例,请参阅参考指南

先决条件

要运行本主题中的 ec2 命令,您需要先完成以下操作:

启动实例

要使用AMI您选择的启动 Amazon EC2 实例,请使用aws ec2 run-instances命令。您可以将实例启动到虚拟私有云中 (VPC)。

最初,您的实例显示为 pending 状态,但在几分钟后将更改为 running 状态。

以下示例说明如何在的指定子网中启动t2.micro实例VPC。更换 italicized 使用您自己的参数值。

$ aws ec2 run-instances --image-id ami-xxxxxxxx --count 1 --instance-type t2.micro --key-name MyKeyPair --security-group-ids sg-903004f8 --subnet-id subnet-6e7f829e { "OwnerId": "123456789012", "ReservationId": "r-5875ca20", "Groups": [ { "GroupName": "my-sg", "GroupId": "sg-903004f8" } ], "Instances": [ { "Monitoring": { "State": "disabled" }, "PublicDnsName": null, "Platform": "windows", "State": { "Code": 0, "Name": "pending" }, "EbsOptimized": false, "LaunchTime": "2013-07-19T02:42:39.000Z", "PrivateIpAddress": "10.0.1.114", "ProductCodes": [], "VpcId": "vpc-1a2b3c4d", "InstanceId": "i-5203422c", "ImageId": "ami-173d747e", "PrivateDnsName": "ip-10-0-1-114.ec2.internal", "KeyName": "MyKeyPair", "SecurityGroups": [ { "GroupName": "my-sg", "GroupId": "sg-903004f8" } ], "ClientToken": null, "SubnetId": "subnet-6e7f829e", "InstanceType": "t2.micro", "NetworkInterfaces": [ { "Status": "in-use", "SourceDestCheck": true, "VpcId": "vpc-1a2b3c4d", "Description": "Primary network interface", "NetworkInterfaceId": "eni-a7edb1c9", "PrivateIpAddresses": [ { "PrivateDnsName": "ip-10-0-1-114.ec2.internal", "Primary": true, "PrivateIpAddress": "10.0.1.114" } ], "PrivateDnsName": "ip-10-0-1-114.ec2.internal", "Attachment": { "Status": "attached", "DeviceIndex": 0, "DeleteOnTermination": true, "AttachmentId": "eni-attach-52193138", "AttachTime": "2013-07-19T02:42:39.000Z" }, "Groups": [ { "GroupName": "my-sg", "GroupId": "sg-903004f8" } ], "SubnetId": "subnet-6e7f829e", "OwnerId": "123456789012", "PrivateIpAddress": "10.0.1.114" } ], "SourceDestCheck": true, "Placement": { "Tenancy": "default", "GroupName": null, "AvailabilityZone": "us-west-2b" }, "Hypervisor": "xen", "BlockDeviceMappings": [ { "DeviceName": "/dev/sda1", "Ebs": { "Status": "attached", "DeleteOnTermination": true, "VolumeId": "vol-877166c8", "AttachTime": "2013-07-19T02:42:39.000Z" } } ], "Architecture": "x86_64", "StateReason": { "Message": "pending", "Code": "pending" }, "RootDeviceName": "/dev/sda1", "VirtualizationType": "hvm", "RootDeviceType": "ebs", "Tags": [ { "Value": "MyInstance", "Key": "Name" } ], "AmiLaunchIndex": 0 } ] }

向实例添加块储存设备

每个启动的实例都具有关联的根设备卷。您可以使用块储存设备映射来指定其他 Amazon Elastic Block Store (AmazonEBS) 卷或实例存储卷,以便在实例启动时连接到该实例。

要向实例添加块储存设备,请在使用 run-instances 时指定 --block-device-mappings 选项。

以下示例参数预置了一个大小为 20 GB 的标准 Amazon EBS 卷,并使用标识符将其映射到您的实例/dev/sdf

--block-device-mappings "[{\"DeviceName\":\"/dev/sdf\",\"Ebs\":{\"VolumeSize\":20,\"DeleteOnTermination\":false}}]"

以下示例根据现有快照添加映射到/dev/sdf的 Amazon EBS 卷。快照表示加载到卷的镜像。指定快照时,无需指定卷大小;它的大小足够容纳您的镜像。但是,如果您确定指定大小,则大小必须大于或等于快照的大小。

--block-device-mappings "[{\"DeviceName\":\"/dev/sdf\",\"Ebs\":{\"SnapshotId\":\"snap-a1b2c3d4\"}}]"

以下示例向实例添加两个卷。可用于您的实例的卷的数目取决于其实例类型。

--block-device-mappings "[{\"DeviceName\":\"/dev/sdf\",\"VirtualName\":\"ephemeral0\"},{\"DeviceName\":\"/dev/sdg\",\"VirtualName\":\"ephemeral1\"}]"

以下示例创建映射 (/dev/sdj),但未为实例预配置卷。

--block-device-mappings "[{\"DeviceName\":\"/dev/sdj\",\"NoDevice\":\"\"}]"

有关更多信息,请参阅 Amazon EC2 用户指南中的区块设备映射

向您的实例添加标签

标签是您分配给 Amazon 资源的标签。它允许您向您可用于各种目的的资源添加元数据。有关更多信息,请参阅 Amazon EC2 用户指南中的为资源添加标签

以下示例显示如何使用 aws ec2 create-tags 命令,将带有密钥名称“Name”和值“MyInstance”的标签添加到指定的实例。

$ aws ec2 create-tags --resources i-5203422c --tags Key=Name,Value=MyInstance

连接到您的实例

当您的实例运行时,您可以连接到该实例,然后像使用您面前的电脑一样使用该实例。有关更多信息,请参阅《亚马逊EC2用户指南》中的 “连接到您的亚马逊EC2实例”。

列出您的实例

您可以使用列 Amazon CLI 出您的实例并查看有关它们的信息。您可以列出所有实例,或根据您感兴趣的实例对结果进行筛选。

以下示例演示了如何使用 aws ec2 describe-instances 命令。

以下命令列出您的所有实例。

$ aws ec2 describe-instances

以下命令将列表筛选到只仅限您的 t2.micro 实例,并仅为每个匹配项输出 InstanceId 值。

$ aws ec2 describe-instances --filters "Name=instance-type,Values=t2.micro" --query "Reservations[].Instances[].InstanceId" [ "i-05e998023d9c69f9a" ]

以下命令列出具有标签 Name=MyInstance 的任何实例。

$ aws ec2 describe-instances --filters "Name=tag:Name,Values=MyInstance"

以下命令列出了使用以下任一方式启动的实例AMIs:ami-x0123456ami-y0123456、和ami-z0123456

$ aws ec2 describe-instances --filters "Name=image-id,Values=ami-x0123456,ami-y0123456,ami-z0123456"

终止实例

终止实例将删除此实例。在您终止之后,您将无法重新连接到此实例。

一旦实例的状态变为 shutting-downterminated,您即停止为该实例付费。如果您希望稍后重新连接到实例,请使用 stop-instances,而不是 terminate-instances。有关更多信息,请参阅 Amazon EC2 用户指南中的终止您的实例

要删除实例,请使用命令 aws ec2 terminate-instances 以将其删除。

$ aws ec2 terminate-instances --instance-ids i-5203422c { "TerminatingInstances": [ { "InstanceId": "i-5203422c", "CurrentState": { "Code": 32, "Name": "shutting-down" }, "PreviousState": { "Code": 16, "Name": "running" } } ] }

参考信息

Amazon CLI 参考:

其他参考资料: