

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在 中啟動、列出和刪除 Amazon EC2 執行個體 AWS CLI
<a name="cli-services-ec2-instances"></a>

您可以使用 AWS Command Line Interface (AWS CLI) 來啟動、列出和刪除 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體。如果您啟動不在 AWS 免費方案中的執行個體，則會在您啟動執行個體之後向您收費，並按執行個體執行的時間收費，即使執行個體保持閒置。

**注意**  
如需其他命令範例，請參閱 [AWS CLI 。](https://docs.aws.amazon.com/cli/latest/reference/index.html)

**Topics**
+ [先決條件](#cli-services-ec2-instances-prereqs)
+ [啟動您的執行個體](#launching-instances)
+ [新增區塊型儲存設備至您的執行個體](#block-device-mapping)
+ [新增標籤至您的執行個體](#tagging-instances)
+ [連線到您的執行個體](#connecting-to-instances)
+ [列出您的執行個體](#listing-instances)
+ [刪除您的執行個體](#terminating-instances)
+ [參考](#cli-services-ec2-instances-references)

## 先決條件
<a name="cli-services-ec2-instances-prereqs"></a>

若要在此主題中執行 `ec2` 命令，您需要：
+ 安裝及設定 AWS CLI。如需詳細資訊，請參閱[安裝或更新至最新版本的 AWS CLI](getting-started-install.md)及[的身分驗證和存取憑證 AWS CLI](cli-chap-authentication.md)。
+ 設定 IAM 許可，以允許 Amazon EC2 存取。如需有關 Amazon EC2 IAM 許可的詳細資訊，請參閱《Amazon EC2 使用者指南》**中的 [Amazon EC2 IAM 政策](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-policies-for-amazon-ec2.html)。
+ 建立[金鑰對](cli-services-ec2-keypairs.md)和[安全群組](cli-services-ec2-sg.md)。
+ 選取 Amazon Machine Image (AMI) 並記下 AMI ID。如需詳細資訊，請參閱《Amazon EC2 使用者指南》**中的[尋找合適的 AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html)。

## 啟動您的執行個體
<a name="launching-instances"></a>

若要使用所選的 AMI 來啟動 Amazon EC2 執行個體，請使用 `[aws ec2 run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html)` 命令。您可於虛擬私有雲端 (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
        }
    ]
}
```

## 新增區塊型儲存設備至您的執行個體
<a name="block-device-mapping"></a>

您啟動的每個執行個體均有一個相關聯的根設備磁碟區。您可以使用區塊型設備映射，來指定執行個體啟動時要連接的其他 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\":\"\"}]"
```

如需詳細資訊，請參閱《Amazon EC2 使用者指南》**中的[區塊型儲存設備映射](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html)。

## 新增標籤至您的執行個體
<a name="tagging-instances"></a>

標籤是您指派給 AWS 資源的標籤。它可讓您新增中繼資料到您的資源，以供您用於各種用途。如需詳細資訊，請參閱《Amazon EC2 使用者指南》**中的[標記您的資源](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html)。

以下範例顯示說明如何使用 `[aws ec2 create-tags](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-tags.html)` 命令，將金鑰名稱為「`Name`」和金鑰值為「`MyInstance`」的標籤新增至指定的執行個體。

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

## 連線到您的執行個體
<a name="connecting-to-instances"></a>

執行個體正在執行時，您可以與其連結並加以使用，如同操作面前的電腦一般。如需詳細資訊，請參閱《Amazon EC2 使用者指南》**中的[連線至您的執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-linux-instance.html)。

## 列出您的執行個體
<a name="listing-instances"></a>

您可以使用 AWS CLI 列出您的執行個體，並檢視其相關資訊。您可以列出所有執行個體，或根據感興趣的執行個體來篩選條件結果。

下列範例顯示如何使用 `[aws ec2 describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html)` 命令。

下列命令能列出您所有的執行個體。

```
$ 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-x0123456`、`ami-y0123456` 和 `ami-z0123456`。

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

## 刪除您的執行個體
<a name="terminating-instances"></a>

當您不再需要 Amazon EC2 執行個體時，您可以使用 AWS CLI 來終止 （刪除） 該執行個體。

**重要**  
**終止執行個體的操作為永久性且無法復原。**  
終止執行個體後，您將無法再連線至該執行個體，且無法復原該執行個體。所有設定為終止時刪除的已連接 Amazon EBS 磁碟區，也會被永久刪除且無法復原。儲存在執行個體儲存體磁碟區的所有資料將永久遺失。如需詳細資訊，請參閱[執行個體終止的運作方式](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/how-ec2-instance-termination-works.html)。  
在終止執行個體之前，確認您已將終止使用後需要保留的全部資料備份至持久性儲存體。

執行個體的狀態變更為 `shutting-down` 或 `terminated` 時刻起，該執行個體便停止收取費用。如果您希望稍後重新連接執行個體，請使用 [stop-instances](https://docs.aws.amazon.com/cli/v1/reference/ec2/stop-instances.html) 而不是 `terminate-instances`。如需詳細資訊，請參閱*《Amazon EC2 使用者指南》*中的[終止您的執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html)。

下列範例示範如何使用 `[aws ec2 terminate-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/terminate-instances.html)`命令刪除執行個體。

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

## 參考
<a name="cli-services-ec2-instances-references"></a>

**AWS CLI 參考：**
+ `[aws ec2](https://docs.aws.amazon.com/cli/latest/reference/ec2/index.html)`
+ `[aws ec2 create-tags](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-tags.html)`
+ `[aws ec2 describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html)`
+ `[aws ec2 run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html)`
+ `[aws ec2 terminate-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/terminate-instances.html)`

**其他參考：**
+ [Amazon Elastic Compute Cloud 文件](https://docs.aws.amazon.com/ec2/)
+ 若要檢視和貢獻 AWS SDK 和 AWS CLI 程式碼範例，請參閱 *GitHub* 上的[AWS 程式碼範例儲存庫](https://github.com/awsdocs/aws-doc-sdk-examples/)。