이 설명서는 의 버전 1 AWS CLI 전용입니다. 의 버전 2와 관련된 설명서는 버전 2 사용 설명서 를 AWS CLI참조하세요.
기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
다음을 위한 Amazon EC2 인스턴스를 시작, 나열 및 종료합니다. AWS CLI
AWS Command Line Interface (AWS CLI) 를 사용하여 Amazon Elastic Compute Cloud (AmazonEC2) 인스턴스를 시작, 나열 및 종료할 수 있습니다. AWS 프리 티어 범위에 속하지 않는 인스턴스를 시작하는 경우, 인스턴스를 시작한 후에 요금이 청구되며, 인스턴스가 유휴 상태로 남아 있더라도 실행 시간에 대한 요금이 부과됩니다.
참고
추가 명령 예제는 AWS CLI 참조 안내서 안내서를 참조하십시오.
사전 조건
이 주제의 ec2
명령을 실행하려면 다음을 수행해야 합니다.
AWS CLI를 설치하고 구성합니다. 자세한 내용은 AWS CLI 설치, 업데이트 및 제거 및 인증 및 액세스 보안 인증 단원을 참조하세요.
-
Amazon EC2 액세스를 허용하도록 IAM 권한을 설정합니다. Amazon IAM 권한에 대한 자세한 내용은 Amazon EC2 사용 EC2설명서의 Amazon IAM정책을 참조하십시오. EC2
-
Amazon 머신 이미지 (AMI) 를 선택하고 AMI ID를 기록해 둡니다. 자세한 내용은 Amazon EC2 사용 AMI 설명서에서 적합한 제품 찾기를 참조하십시오.
인스턴스 시작
선택한 방법을 사용하여 Amazon EC2 인스턴스를 시작하려면 aws ec2
run-instances
명령을 사용합니다. AMI 인스턴스를 가상 사설 클라우드 (VPC) 에서 시작할 수 있습니다.
처음에는 인스턴스가 pending
상태로 표시되지만 몇 분 후에 running
상태로 변경됩니다.
다음 예제는 a의 지정된 서브넷에서 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 (AmazonEBS) 볼륨 또는 인스턴스 스토어 볼륨을 추가로 지정할 수 있습니다.
인스턴스에 블록 디바이스를 추가하려면 run-instances
를 사용할 때 --block-device-mappings
옵션을 지정합니다.
다음 예제 파라미터는 크기가 20GB인 표준 Amazon EBS 볼륨을 프로비저닝하고 식별자를 사용하여 인스턴스에 /dev/sdf
매핑합니다.
--block-device-mappings "[{\"DeviceName\":\"
/dev/sdf
\",\"Ebs\":{\"VolumeSize\":20
,\"DeleteOnTermination\":false}}]"
다음 예제는 기존 스냅샷을 기반으로 매핑된 Amazon EBS 볼륨을 추가합니다. /dev/sdf
스냅샷은 볼륨에 로드되는 이미지를 나타냅니다. 스냅샷을 지정할 때 볼륨 크기를 지정할 필요가 없습니다. 이미지를 담을 만큼 충분히 큽니다. 그러나 크기를 지정하는 경우 스냅샷의 크기보다 크거나 같아야 합니다.
--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 사용 설명서의 블록 디바이스 매핑을 참조하십시오.
인스턴스에 태그 추가
태그는 AWS 리소스에 할당하는 레이블입니다. 이를 통해 다양한 용도로 사용할 수 있는 메타데이터를 리소스에 추가할 수 있습니다. 자세한 내용은 Amazon EC2 사용 설명서의 리소스 태그 지정을 참조하십시오.
다음 예제에서는 aws ec2
create-tags
명령을 사용하여 키 이름이 "Name
"이고 값이 "MyInstance
"인 태그를 지정된 인스턴스에 추가하는 방법을 보여줍니다.
$
aws ec2 create-tags --resources
i-5203422c
--tags Key=Name
,Value=MyInstance
인스턴스에 연결합니다
인스턴스가 실행될 때 실행 중인 인스턴스에 연결하여 바로 앞에 있는 컴퓨터를 사용하는 것처럼 인스턴스를 사용할 수 있습니다. 자세한 내용은 Amazon EC2사용 설명서의 Amazon 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
"
다음 명령은ami-x0123456
,ami-y0123456
, 및 중 하나를 사용하여 시작된 인스턴스를 ami-z0123456
나열합니다. AMIs
$
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 SDK 기여하고 AWS CLI 코드를 작성하려면 의 AWS 코드 예제 리포지토리를
참조하십시오 GitHub.