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

  • 0
    Like
  • 0
    Comment
    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}
    
    結果
    (戻り値なし)
    

    完了