AWS
EC2
aws-cli

[JAWS-UG CLI] EC2:#7 インスタンスの削除 (Oregon)

More than 1 year has passed since last update.

AWS CLIを利用して、EC2のインスタンスを削除してみます。

前提条件

  • [JAWS-UG CLI] 総合案内: http://qiita.com/tcsh/items/14c3278f69ab073afe0f を確認して、必要な手順を終えていること。
  • ハンズオンで利用したEC2インスタンス以外のインスタンスが稼動していないこと。

EC2への権限

  • EC2に対してフル権限があること。

AWS CLIのバージョン

以下のバージョンで動作確認済

  • AWS CLI 1.11.2
  • AWS CLI 1.7.39
コマンド
aws --version
結果(例)
aws-cli/1.7.39 Python/2.7.5 Darwin/13.4.0

0. 準備

0.1. リージョンの決定

変数の設定
export AWS_DEFAULT_REGION='us-west-2'

0.2. 変数の確認

変数の確認
aws configure list
結果(例)
            Name                    Value             Type    Location
            ----                    -----             ----    --------
         profile       ec2Full-prjZ-mbp13              env    AWS_DEFAULT_PROFILE
      access_key     ****************LOAQ shared-credentials-file
      secret_key     ****************I1O1 shared-credentials-file
          region           us-west-2              env    AWS_DEFAULT_REGION

profileが '<not set>' と表示される場合は、以下を実行してください。

コマンド
export AWS_DEFAULT_PROFILE=<IAMユーザ名>

0.3. 稼動インスタンスを確認

同一リージョンで稼動しているインスタンスのインスタンスIDを確認します。

コマンド
ARRAY_EC2_INSTANCE_ID=$( \
  aws ec2 describe-instances \
    --filters Name=instance-state-name,Values=running \
    --query 'Reservations[].Instances[].InstanceId' \
    --output text \
) \
  && echo ${ARRAY_EC2_INSTANCE_ID}
結果(例)
i-xxxxxxxx

2. EC2インスタンス削除

2.1. EC2インスタンス削除

変数の設定
EC2_INSTANCE_ID=$(echo ${ARRAY_EC2_INSTANCE_ID} | sed 's/ .*$//') \
  && echo ${EC2_INSTANCE_ID}
変数の確認
cat << ETX

        EC2_INSTANCE_ID: ${EC2_INSTANCE_ID}

ETX
コマンド
aws ec2 terminate-instances \
  --instance-ids ${EC2_INSTANCE_ID}
結果(例)
      {
        "TerminatingInstances": [
          {
              "InstanceId": "i-xxxxxxxx",
              "CurrentState": {
                  "Code": 32,
                  "Name": "shutting-down"
              },
              "PreviousState": {
                  "Code": 16,
                  "Name": "running"
              }
          }
        ]
      }

2.2. EC2インスタンスの状態確認

コマンド
EC2_INSTANCE_STATE=$( \
  aws ec2 describe-instances \
    --instance-ids ${EC2_INSTANCE_ID} \
    --query 'Reservations[].Instances[].State.Name' \
    --output text \
) \
  && echo ${EC2_INSTANCE_STATE}
結果
terminated

同一リージョンでインスタンスが起動していないことを確認します。

コマンド
ARRAY_EC2_INSTANCE_ID=$( \
  aws ec2 describe-instances \
    --filters Name=instance-state-name,Values=running \
    --query 'Reservations[].Instances[].InstanceId' \
    --output text \
) \
  && echo ${ARRAY_EC2_INSTANCE_ID}
結果
(戻り値なし)

完了