このドキュメントは、 のバージョン 1 AWS CLI 専用です。のバージョン 2 に関連するドキュメントについては AWS CLI、バージョン 2 ユーザーガイド を参照してください。
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
での Amazon EC2インスタンスの起動、一覧表示、および終了 AWS CLI
AWS Command Line Interface (AWS CLI) を使用して、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを起動、一覧表示、終了できます。 AWS 無料利用枠内にないインスタンスを起動すると、インスタンスを起動した後に課金され、インスタンスがアイドル状態のままであっても、インスタンスが実行されている時間に対して課金されます。
注記
その他のコマンド例については、AWS CLI リファレンスガイドリファレンスを参照してください。
前提条件
このトピックの ec2
コマンドを実行するには、次の操作を行う必要があります。
AWS CLIをインストールして設定します。詳細については、「のインストール、更新、アンインストール AWS CLI」および「の認証認証情報とアクセス認証情報 AWS CLI」を参照してください。
-
Amazon EC2 アクセスを許可するアクセスIAM許可を設定します。Amazon のIAMアクセス許可の詳細についてはEC2、「Amazon EC2 ユーザーガイド」の「Amazon IAMのポリシーEC2」を参照してください。
-
キーペアとセキュリティグループを作成します。
-
Amazon マシンイメージ (AMI) を選択し、AMIID を書き留めます。詳細については、「Amazon EC2ユーザーガイド」の「適切な を見つけるAMI」を参照してください。
インスタンスの起動
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-nameMyKeyPair
--security-group-idssg-903004f8
--subnet-idsubnet-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
\"}}]"
次の例は、2 つのボリュームをインスタンスに追加します。インスタンスで使用できるボリュームの数は、インスタンスタイプによって異なります。
--block-device-mappings "[{\"DeviceName\":\"
/dev/sdf
\",\"VirtualName\":\"ephemeral0
\"},{\"DeviceName\":\"/dev/sdg
\",\"VirtualName\":\"ephemeral1
\"}]"
次の例では、マッピング (/dev/sdj
) を作成しますが、インスタンスのボリュームはプロビジョニングされません。
--block-device-mappings "[{\"DeviceName\":\"
/dev/sdj
\",\"NoDevice\":\"\"}]"
詳細については、「Amazon ユーザーガイド」の「デバイスマッピングのブロック」を参照してください。 EC2
インスタンスへのタグの追加
タグは、 AWS リソースに割り当てるラベルです。リソースにメタデータを追加して、さまざまな目的に使用できます。詳細については、「Amazon EC2ユーザーガイド」の「リソースのタグ付け」を参照してください。
次の例は、aws ec2
create-tags
コマンドを使用して、キー名「Name
」と値「MyInstance
」を持つタグを指定されたインスタンスに追加する方法を示しています。
$
aws ec2 create-tags --resources
i-5203422c
--tags Key=Name
,Value=MyInstance
インスタンスへの接続
実行中のインスタンスに接続して、目の前にあるコンピュータと同じように使用することができます。詳細については、「Amazon ユーザーガイド」の「Amazon EC2 インスタンスに接続する」を参照してください。 EC2
インスタンスの一覧表示
を使用して AWS 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-x0123456
、 ami-y0123456
のいずれかを使用して起動されたインスタンスを一覧表示しますami-z0123456
。
$
aws ec2 describe-instances --filters "Name=image-id,Values=
ami-x0123456
,ami-y0123456
,ami-z0123456
"
インスタンスの終了
インスタンスを終了すると、インスタンスが削除されます。インスタンスの終了後に、インスタンスに再接続することはできません。
インスタンスの状態が shutting-down
または terminated
に変わったら、そのインスタンスへの課金は停止します。後でインスタンスに再接続する必要がある場合は、terminate-instances
の代わりに stop-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" } } ] }
リファレンス
AWS CLI リファレンス:
その他のリファレンス:
-
および AWS CLI コード例を表示して貢献するには AWS SDK、 のAWS コード例リポジトリ
を参照してくださいGitHub。