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

启动、列出和终止 Amazon EC2 实例

您可以使用 Amazon Command Line Interface (Amazon CLI) 启动、列出和终止 Amazon Elastic Compute Cloud (Amazon EC2) 实例。如果您启动不在 Amazon 免费套餐范围内的实例,那么在启动实例后您将需要付费,费用按实例的运行时间计算,即使实例处于闲置状态也需付费。

注意

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

先决条件

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

启动实例

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

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

以下示例在 VPC 的指定子网中启动 t2.micro 实例。将斜体参数值替换为您自己的值。

$ 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 (Amazon EBS) 卷或实例存储卷。

要向实例添加块储存设备,请在使用 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\":\"\"}]"

有关更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南 中的块存储设备映射

向您的实例添加标签

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

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

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

连接到您的实例

当您的实例运行时,您可以连接到该实例,然后像使用您面前的电脑一样使用该实例。有关更多信息,请参阅 适用于 Linux 实例的 Amazon EC2 用户指南 中的 连接到您的 Amazon 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"

以下命令列出使用以下任何 AMI 启动的实例:ami-x0123456ami-y0123456ami-z0123456

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

终止实例

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

一旦实例的状态变为 shutting-downterminated,您即停止为该实例付费。如果您希望稍后重新连接到实例,请使用 stop-instances,而不是 terminate-instances。有关更多信息,请参阅适用于 Linux 实例的 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 参考:

其他参考资料: