aws-cliとcloudformationで、AWS環境を作ってみる。
参考URL
https://dev.classmethod.jp/articles/cloudformation-tiny-step/
yamlファイル = cloudformatinテンプレート(設計図)
スタック = テンプレートから生成されたAWSリソース群
1, validate-templateで、yamlファイルの構文チェック
2, create-stackでスタック生成(アップロード&awsリソース生成)
3, describe-stacksで、存在&詳細確認
4, update-stackで、新しいyamlファイルでスタックを更新
5, delete-stackで、スタックを削除
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
#cloudformationテンプレートファイルの構文チェック # エラーがでなければOK! aws cloudformation validate-template --template-body file://C:\aws/aws.yaml { "Parameters": [] } # AWSリソースの生成 aws cloudformation create-stack --template-body file://C:\aws/aws.yaml --stack-name test-stack { "StackId": "arn:aws:cloudformation:ap-northeast-1:xxxxxxxxxxxxxxxxx:stack/hands-on/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" } # スタック名で存在を確認 aws cloudformation describe-stacks --stack-name test-stack { "Stacks": [ { "StackId": "arn:aws:cloudformation:ap-northeast-1:xxxxxxxxxxxxxxxxx:stack/hands-on/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "StackName": "test-stack", "Description": "sample", "CreationTime": "2020-07-07T09:56:26.057Z", "RollbackConfiguration": {}, "StackStatus": "CREATE_COMPLETE", "DisableRollback": false, "NotificationARNs": [], "Tags": [], "EnableTerminationProtection": false } ] } # yamlファイルを修正して、スタックを更新 aws cloudformation update-stack --stack-name test-stack --template-body file://C:\aws/aws.yaml # スタック名で削除 aws cloudformation delete-stack --stack-name test-stack # 何も返ってこないので、存在確認 aws cloudformation describe-stacks --stack-name test-stack An error occurred (ValidationError) when calling the DescribeStacks operation: Stack with id test-stack does not exist |
実際には、aws cloudformation deployコマンドでcreate/updateが実行できるので、deployで実行すべき
1 2 3 4 5 |
aws cloudformation deploy --template-file C:\aws/aws.yaml --stack-name test-stack Waiting for changeset to be created.. Waiting for stack create/update to complete Successfully created/updated stack - test-stack |
cloudformationのコマンドだけでも結構あるのね。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
aws cloudformation help Available Commands ****************** * cancel-update-stack * continue-update-rollback * create-change-set * create-stack * create-stack-instances * create-stack-set * delete-change-set * delete-stack * delete-stack-instances * delete-stack-set * deploy * deregister-type * describe-account-limits * describe-change-set * describe-stack-drift-detection-status * describe-stack-events * describe-stack-instance * describe-stack-resource * describe-stack-resource-drifts * describe-stack-resources * describe-stack-set * describe-stack-set-operation * describe-stacks * describe-type * describe-type-registration * detect-stack-drift * detect-stack-resource-drift * detect-stack-set-drift * estimate-template-cost * execute-change-set * get-stack-policy * get-template * get-template-summary * help * list-change-sets * list-exports * list-imports * list-stack-instances * list-stack-resources * list-stack-set-operation-results * list-stack-set-operations * list-stack-sets * list-stacks * list-type-registrations * list-type-versions * list-types * package * record-handler-progress * register-type * set-stack-policy * set-type-default-version * signal-resource * stop-stack-set-operation * update-stack * update-stack-instances * update-stack-set * update-termination-protection * validate-template * wait |