1. 程式人生 > >AWS學習筆記(二)--CLI管理Image,Instance,Snapshot,S3

AWS學習筆記(二)--CLI管理Image,Instance,Snapshot,S3

vol com files star ces ack ever this strong

1. Image

create-image

$ aws ec2 create-image --instance-id i-825465ba --name "Prod Template" --description "Prod Template" --no-reboot

執行成功後會輸出ImageId.

create-tags
通過EC2 Management Console查看AMIs時,列表中的第一項是Name,執行create-image命令後,這項是空的,還需執行:

$ aws ec2 create-tags --resources ami-19af7b74 --tags "Key=Name,Value=Prod Template"

modify-image-attribute
To make an AMI public

$ aws ec2 modify-image-attribute --image-id ami-19af7b74 --launch-permission "{\"Add\": [{\"Group\":\"all\"}]}"

To make an AMI private

$ aws ec2 modify-image-attribute --image-id ami-19af7b74 --launch-permission "{\"Remove\": [{\"Group\":\"all\"}]}"

To grant launch permission to an AWS account

$ aws ec2 modify-image-attribute --image-id ami-19af7b74 --launch-permission "{\"Add\": [{\"UserId\":\"123456789012\"}]}"

To removes launch permission from an AWS account

$ aws ec2 modify-image-attribute --image-id ami-19af7b74 --launch-permission "{\"Remove\": [{\"UserId\":\"123456789012\"}]}"

deregister-image


After you deregister an AMI, it can‘t be used to launch new instances. This command does not delete the AMI.

$ aws ec2 deregister-image --image-id ami-19af7b74

Delete Image
創建image時會創建一個snapshot,要刪除image,先執行deregister-image,再執行delete-snapshot即可。
查詢SnapshotId:

$ aws ec2 describe-snapshots --query Snapshots[*].[SnapshotId] --filter Name=description,Values=*ami-19af7b74*

刪除snapshot

$ aws ec2 delete-snapshot --snapshot-id snap-8e2718bd

describe-images
查看所有image,包含public的(會顯示很多AWS public image)

$ aws ec2 describe-images

查看自己帳號創建的image

$ aws ec2 describe-images --owners self --query Images[*].[Name,ImageId]

查看private image

$ aws ec2 describe-images --query Images[*].[Name,ImageId,OwnerId] --filter "Name=is-public,Values=false"

2. Instance

run-instances
Launches the specified number of instances using an AMI for which you have permissions.

To launch an instance in EC2-Classic

$ aws ec2 run-instances --image-id ami-1a2b3c4d --count 1 --instance-type t1.micro --key-name MyKeyPair --security-groups MySecurityGroup

To launch an instance in EC2-VPC

$ aws ec2 run-instances --image-id ami-abc12345 --count 1 --instance-type t2.micro --key-name MyKeyPair --security-group-ids sg-903004f8 --subnet-id subnet-6e7f829e

註意: 必須使用--security-group-ids

start-instances

$ aws ec2 start-instances --instance-ids i-1234567890abcdef0

stop-instances

$ aws ec2 stop-instances --instance-ids i-1234567890abcdef0

reboot-instances

$ aws ec2 reboot-instances --instance-ids i-1234567890abcdef5

terminate-instances

$ aws ec2 terminate-instances --instance-ids i-1234567890abcdef0

describe-instances
To describe all instances with a Name=A000 tag

$ aws ec2 describe-instances --filters "Name=tag:Name,Values=A000"

To describe all EC2 instances that have an instance type of m1.small or m1.medium that are also in the us-west-2c Availability Zone

$ aws ec2 describe-instances --filters "Name=instance-type,Values=m1.small,m1.medium" "Name=availability-zone,Values=us-west-2c"

monitor-instances
By default, Amazon EC2 sends metric data to CloudWatch in 5-minute periods. To send metric data for your instance to CloudWatch in 1-minute periods, you can enable detailed monitoring on the instance.

To enable detailed monitoring for an existing instance

$ aws ec2 monitor-instances --instance-ids i-1234567890abcdef0

To enable detailed monitoring when launching an instance

$ aws ec2 run-instances --image-id ami-09092360 --monitoring Enabled=true...

To disable detailed monitoring

$ aws ec2 unmonitor-instances --instance-ids i-1234567890abcdef0

3. Snapshot & Volume

create-snapshot
Creates a snapshot of an EBS volume and stores it in Amazon S3. You can use snapshots for backups, to make copies of EBS volumes, and to save data before shutting down an instance.

$ aws ec2 create-snapshot --volume-id vol-1234567890abcdef0 --description "This is my root volume snapshot."

create-volum
To create a new volume

$ aws ec2 create-volume --size 80 --region us-east-1 --availability-zone us-east-1a --volume-type gp2

To create a new Provisioned IOPS (SSD) volume from a snapshot

$ aws ec2 create-volume --region us-east-1 --availability-zone us-east-1a --snapshot-id snap-066877671789bd71b --volume-type io1 --iops 1000

attach-volume
Attaches an EBS volume to a running or stopped instance and exposes it to the instance with the specified device name.

$ aws ec2 attach-volume --volume-id vol-1234567890abcdef0 --instance-id i-01474ef662b89480 --device /dev/sdf

Available Device Names

delete-volume
Deletes the specified EBS volume. The volume must be in the available state (not attached to an instance).

$ aws ec2 delete-volume --volume-id vol-049df61146c4d7901

4. S3

mb
Creates an S3 bucket.

$ aws s3 mb s3://mybucket

cp
將一個對象從S3 復制到本地

$ aws s3 cp s3://my_bucket/my_folder/my_file.ext my_copied_file.ext

將一個對象復制到S3

$ aws s3 cp my_copied_file.ext s3://my_bucket/my_folder/my_file.ext

將一個對象從S3復制到另一個S3

$ aws s3 cp s3://my_bucket/my_folder/my_file.ext s3://my_bucket/my_folder/my_file2.ext

sync
Syncs directories and S3 prefixes. Recursively copies new and updated files from the source directory to the destination.
同步本地文件到S3

$ aws s3 sync . s3://mybucket

將整個S3 存儲桶下載到本地目錄

$ aws s3 sync s3://remote_S3_bucket local_directory

S3間的同步

$ aws s3 sync s3://mybucket s3://mybucket2

rb
Deletes an empty S3 bucket. A bucket must be completely empty of objects and versioned objects before it can be deleted. However, the --force parameter can be used to delete the non-versioned objects in the bucket before the bucket is deleted.

$ aws s3 rb s3://mybucket --force

AWS學習筆記(二)--CLI管理Image,Instance,Snapshot,S3