2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

AWS CLI 〜CloudFormation編②〜

Posted at

はじめに

備忘録として、自分がよく使う&使ったaws-cliコマンドを書きます。
今回はCloudFormation編その2で、スタック更新関係です。

注意

スタック更新その1 update-stack

①テンプレートがローカルにある時

aws cloudformation update-stack --stack-name スタック名 --template-body file://テンプレートのパス

②テンプレートがS3バケットにある時

aws cloudformation update-stack --stack-name スタック名 --template-url テンプレートのURL

create-stackと考え方は一緒ですね。
上記①、②に各種オプションを指定していきます。

スタック更新その2 change set作成→execute

①テンプレートがローカルにある時

aws cloudformation create-change-set --stack-name スタック名 --template-body file://テンプレートのパス --change-set-name change setの名前

②テンプレートがS3バケットにある時

aws cloudformation create-change-set --stack-name スタック名 --template-url テンプレートのURL --change-set-name change setの名前

こちらに関しても、create-stack、update-stackと同様です。

いきなりupdate-stackではなく、change setで「意図している変更以外の変更が加わらないこと」の確認のため、利用しました。
change setは細かい変更内容まで出してくれないので、結局テンプレート自体&コマンド実行内容が大事ということで、まあ保険でしょうか。

1ケースとして何かの参考になればですが、↓の使い方をしました。

  • change setをcliで作成
  • マネコンでchange set確認
  • 問題なかったらマネコンでchange set実行
  • あったらテンプレート見直し→修正して、初めからやり直し

ということで使ったことないのですが、change set確認&実行コマンドは↓のようです。

change set確認(list)

aws cloudformation list-change-sets --stack-name スタック名

change set確認(個々のchange set詳細)

aws cloudformation describe-change-set --stack-name スタック名 --change-set-name change set名

失念しましたが、運用担当の方にはマネコンの方がわかりやすいから、とかの理由でマネコンで確認、になった気がします。
cliでやるとjsonが返ってきます。

change set実行

aws cloudformation execute-change-set --stack-name スタック名 --change-set-name change set名

change setは、実行すると消えるので、わざわざ削除しなくてよいです。
いらない時は↓で消します。

change set削除

aws cloudformation delete-change-set --stack-name スタック名 --change-set-name change set名

スタックのステータス確認

aws cloudformation describe-stacks --stack-name スタック名 --query "Stacks[0].StackStatus" 

describe-stackで各種情報がjsonで返ってくるので、そこからstatus部分をとってきます。
IAMロールのIDなんかも、jsonに--queryしてます。(IAMロールIDはマネコンではわからない……)

ステータス確認までがスタック更新ということで ^^
なんでかわからないですが、スタックで構築したリソースはなめるように確認&ステータスは確認しない、という方が結構いらっしゃいました。

前者についてはやるやらないはケースバイケースだと思いますが、個人的には、まあ最初の1回くらいやればよいと考えております。(awsの機能だし)
後者については、やりましょう。

おわりに

ステータス確認についてですが、代表サーバからprofile指定して100個強のアカウントでコマンド打ちまくっていたので、

  • マネコンはアカウント変えるのが面倒
  • jsonでstatus部分を見ればいいものの、目が滑る

ということでcliで確認してました。
運用時にはどうしてもGUIの方が可読性高い、となることは多いかもしれませんが、検証時にはぜひdescribe-stackをおすすめしたい次第です。

2
2
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
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?