[aws-cli] EC2 関連で、よく使うコマンド の続きです。
今回は、AMI 関連で、よく使うコマンドのメモを記載します。
AMIを作成する
以下の例では、インスタンスIDを指定して、AMIを作成しています。
"--reboot" をつけているので、インスタンスが起動中であればリブートされます。
instance_id=i-xxxx ami_nm="AMI_node01_`date '+%Y%m%d'`" aws ec2 create-image --instance-id ${instance_id} \ --name "${ami_nm}" \ --description "system backup" \ --reboot \ --output table
AMI名でAMIを検索する
以下の例では、AMI名でAMIを探しています。
jqコマンドを使って、実行結果からイメージIDとスナップショットIDを取得しています。
aws ec2 describe-images \ --filters "Name=name,Values=${ami_nm}" \ --output json > ${TMP_DIR}/$$.ami_attr AMI_ID=`cat ${TMP_DIR}/$$.ami_attr|jq -r ".Images[0].ImageId"` SNAP_ID1=`cat ${TMP_DIR}/$$.ami_attr|jq -r ".Images[0].BlockDeviceMappings[0].Ebs.SnapshotId"` SNAP_ID2=`cat ${TMP_DIR}/$$.ami_attr|jq -r ".Images[0].BlockDeviceMappings[1].Ebs.SnapshotId"`
AMIにタグを設定する
以下の例では、AMIと、AMIに紐ついてるスナップショットにタグをつけています。
aws ec2 create-tags \ --resources ${AMI_ID} \ --tags "Key=Name,Value=${ami_nm}" "Key=System,Value=${TAG_SYSTEM}" "Key=Env,Value=${TAG_ENV}" aws ec2 create-tags \ --resources ${SNAP_ID1} \ --tags "Key=Name,Value=${ami_nm} sda" "Key=System,Value=${TAG_SYSTEM}" "Key=Env,Value=${TAG_ENV}" aws ec2 create-tags \ --resources ${SNAP_ID2} \ --tags "Key=Name,Value=${ami_nm} sdf" "Key=System,Value=${TAG_SYSTEM}" "Key=Env,Value=${TAG_ENV}"
AMIを削除する
以下の例では、AMIと、AMIに紐つくスナップショットを削除してます。
aws ec2 deregister-image --image-id ${AMI_ID} --output table aws ec2 delete-snapshot --snapshot-id ${SNAP_ID1} --output table aws ec2 delete-snapshot --snapshot-id ${SNAP_ID2} --output table