기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
에서 Amazon EC2 인스턴스 시작, 나열 및 종료 AWS CLI
AWS Command Line Interface (AWS CLI)를 사용하여 Amazon Elastic Compute Cloud(AmazonEC2) 인스턴스를 시작, 나열 및 종료할 수 있습니다. AWS 프리 티어 내에 있지 않은 인스턴스를 시작하는 경우 인스턴스를 시작한 후 요금이 청구되고 유휴 상태로 유지되더라도 인스턴스가 실행 중인 시간에 대한 요금이 청구됩니다.
참고
추가 명령 예제는 AWS CLI 참조 가이드
사전 조건
이 주제의 ec2
명령을 실행하려면 다음을 수행해야 합니다.
AWS CLI를 설치하고 구성합니다. 자세한 내용은 의 최신 버전으로 설치 또는 업데이트 AWS CLI 및 에 대한 인증 및 액세스 자격 증명 AWS CLI 단원을 참조하세요.
-
Amazon EC2 액세스를 허용하도록 IAM 권한을 설정합니다. Amazon 에 대한 IAM 권한에 대한 자세한 내용은 Amazon EC2 사용 설명서의 Amazon 정책을 EC2참조하세요. IAM EC2
-
Amazon Machine Image(AMI)를 선택하고 AMI ID를 기록합니다. 자세한 내용은 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(AmazonEBS) 볼륨 또는 인스턴스 스토어 볼륨을 지정하여 인스턴스가 시작될 때 인스턴스에 연결할 수 있습니다.
인스턴스에 블록 디바이스를 추가하려면 run-instances
를 사용할 때 --block-device-mappings
옵션을 지정합니다.
다음 예제 파라미터는 크기가 20GB인 표준 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 사용 설명서의 디바이스 매핑 차단을 참조하세요.
인스턴스에 태그 추가
태그는 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
"
다음 명령은 ami-x0123456
, AMIs및 중 하나를 사용하여 시작된 인스턴스를 나열합니다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.