LoginSignup
17
8

More than 5 years have passed since last update.

AWS CLI 〜CloudFormation編①〜

Posted at

はじめに

備忘録として、自分がよく使う&使ったaws-cliコマンドを書きます。
今回はCloudFormation編です。長めになりそうなので、一旦create-stackのみでわけました。

注意

スタック作成

①テンプレートがローカルにあるバージョン

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

②テンプレートがS3にあるバージョン

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

上記①、もしくは②に、いろいろオプション指定していきます。

IAMリソースが含まれる場合

--capabilities CAPABILITY_NAMED_IAM

マネコンから操作する時に、作成確認のチェックボックスみたいなのが出るかと思うのですが、そのチェックを入れるのと同等かと認識しております。
以下リソース作成時に出るそうです。

  • AWS::IAM::AccessKey
  • AWS::IAM::Group
  • AWS::IAM::InstanceProfile
  • AWS::IAM::Policy
  • AWS::IAM::Role
  • AWS::IAM::User
  • AWS::IAM::UserToGroupAddition

※custom nameを持たないIAMリソースは「CAPABILITY_IAM」でもよいそうです。

削除保護有効化

--enable-termination-protection

スタックにタグつける時

--tags Key=キー,Value=値

ちなみに個々リソースに同一Keyのタグが指定してあると、そっちが優先されます。
同一Keyタグ指定をしてないと、ここで指定した値が個々リソースにも付与されます。

パラメータをjsonで渡す時

--cli-input-json file://パス

そもそもパラメータを指定する時は別途オプションがあるのですが(後述)

  • より操作ミス発生の可能性を減らしたい
  • パラメータがいっぱいある

ということで、あらかじめjsonファイルを作り、それを渡す方式をとることになりました。
タグなどほかオプションも、この方式で指定することができます。

パラメータ指定

--parameters ParameterKey=string,ParameterValue=string,UsePreviousValue=boolean,ResolvedValue=string ...

前述の通りパラメータ指定はjson渡してやってましたが、こんな感じのようです。

おわりに

CloudFormationの検証をしていたので、いちばん馴染み深いのがおそらくCloudFormationのコマンドかな〜と思い、これから書いてみました。
(Qiita投稿初めてなので、何か不手際があったらごめんなさい。)

17
8
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
17
8