LoginSignup
2
0

More than 5 years have passed since last update.

[JAWS-UG CLI] CloudFormation:#6 スタックの削除

Posted at

.. 後始末. CloudFormation スタックの削除

この手順の目的

CloudFormationスタック"BasicWebServerInVPC"を削除します。

作業対象

  • CloudFormationサービス

標準時間

8分

前提条件

作業権限

CloudFormationへの権限 ]-

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

作業環境

AWS CLIのバージョン ]-

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

  • AWS CLI 1.11.14
コマンド
aws --version

結果(例):

  aws-cli/1.11.97 Python/2.7.12 Linux/4.4.11-23.53.amzn1.x86_64 botocore/1.5.60

バージョンが古い場合は最新版に更新しましょう。

コマンド
sudo -H pip install -U awscli

開始条件

作業に必要なモノ・情報

作業開始には、以下が全て揃っていることが必要です。

  • CloudFormationスタック名

    • 削除するCloudFormationスタックの名称です。
    • 今回は"BasicWebServerInVPC"とします。

0. 準備

まず変数の確認をします。

変数の確認
cat << ETX

        AWS_DEFAULT_PROFILE: (0.1) ${AWS_DEFAULT_PROFILE}
        AWS_DEFAULT_REGION:  (0.2) ${AWS_DEFAULT_REGION}
        CF_STACK_NAME:       (0.4) ${CF_STACK_NAME}

ETX

結果(例):

  AWS_DEFAULT_PROFILE: (0.1) <CloudFormationのフル権限が許可されているプロファイル>
  AWS_DEFAULT_REGION:  (0.2) ap-northeast-1
  CF_STACK_NAME:       (0.4) BasicWebServerInVPC

変数が入っていない、適切でない場合は、それぞれの手順番号について作業を行います。

0.1. プロファイルの指定

プロファイルの一覧を確認します。

コマンド
cat ~/.aws/credentials \
       | grep '\[' \
       | sed 's/\[//g' | sed 's/\]//g'

結果(例):

  iamFull-prjz-mbpr13
  <CloudFormationのフル権限が許可されているプロファイル>
変数の設定
export AWS_DEFAULT_PROFILE='<CloudFormationのフル権限が許可されているプロファイル>'

0.2. リージョンの決定

変数の設定
export AWS_DEFAULT_REGION='ap-northeast-1'

0.3. スタック名の指定

変数の設定
CF_STACK_NAME='BasicWebServerInVPC'

再確認

設定されている変数の内容を再確認します。

変数の確認
cat << ETX

        AWS_DEFAULT_PROFILE: (0.1) ${AWS_DEFAULT_PROFILE}
        AWS_DEFAULT_REGION:  (0.2) ${AWS_DEFAULT_REGION}
        CF_STACK_NAME:       (0.4) ${CF_STACK_NAME}

ETX

結果(例):

  AWS_DEFAULT_PROFILE: (0.1) <CloudFormationのフル権限が許可されているプロファイル>
  AWS_DEFAULT_REGION:  (0.2) ap-northeast-1
  CF_STACK_NAME:       (0.4) BasicWebServerInVPC

1. 事前作業

1.1. 作業対象の状態確認

削除しようとしているCloudFormationスタック"BasicWebServerInVPC"は存在することを確認します。

コマンド
CF_STACK_STATUS=$( \
        aws cloudformation describe-stacks \
          --stack-name ${CF_STACK_NAME} \
          --query "Stacks[?StackName == \`${CF_STACK_NAME}\`].StackStatus" \
          --output text \
) \
        && echo ${CF_STACK_STATUS}

結果(例):

  CREATE_COMPLETE

2. 本作業

2.1. スタックの削除

変数の確認
cat << ETX

        CF_STACK_NAME: ${CF_STACK_NAME}

ETX
コマンド
aws cloudformation delete-stack \
        --stack-name ${CF_STACK_NAME}

結果:

  (戻り値なし)

2.2. ステータスの確認

コマンド
CF_STACK_STATUS=$( \
        aws cloudformation describe-stacks \
          --stack-name ${CF_STACK_NAME} \
          --query "Stacks[?StackName == \`${CF_STACK_NAME}\`].StackStatus" \
          --output text \
) \
        && echo ${CF_STACK_STATUS}

結果(例):

  DELETE_IN_PROGRESS

2.3. イベントの確認

ステータスがROLLBUCKになった場合は、イベントを確認して原因を特定します。

コマンド
aws cloudformation describe-stack-events \
        --stack-name ${CF_STACK_NAME}

結果(例):

  (省略)

3. 事後作業

3.1. 完了条件の確認

削除したCloudFormationスタック"BasicWebServerInVPC"が存在しないことを確認します。

コマンド
aws cloudformation describe-stacks \
        --stack-name ${CF_STACK_NAME}

結果(例):

  An error occurred (ValidationError) when calling the DescribeStacks operation: Stack with id BasicWebServerInVPC does not exist

完了

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0