📖 Scenario: You are managing cloud resources using AWS CloudFormation. You need to update an existing stack to change its configuration and then delete it when it is no longer needed.
🎯 Goal: Learn how to update an AWS CloudFormation stack by modifying its template and then delete the stack safely.
📋 What You'll Learn
Create an initial CloudFormation stack with a simple resource
Add a configuration parameter to the stack
Update the stack to change the resource configuration
Delete the stack cleanly
💡 Why This Matters
🌍 Real World
CloudFormation stacks are used to manage and automate cloud resources in AWS. Updating and deleting stacks is a common task when managing infrastructure as code.
💼 Career
Knowing how to update and delete CloudFormation stacks is essential for cloud engineers and DevOps professionals to maintain and evolve cloud infrastructure safely.
Progress0 / 4 steps
1
Create an initial CloudFormation stack
Create a CloudFormation template string variable called template_body with a simple AWS S3 bucket resource named MyBucket. Then create a stack named MyTestStack using the AWS CLI command aws cloudformation create-stack with the --stack-name MyTestStack and --template-body parameters using the template_body variable.
AWS
Hint
Define the template as a JSON string with one S3 bucket resource. Use the AWS CLI command to create the stack with the given name and template.
2
Add a configuration parameter to the stack template
Add a parameter named BucketName of type String to the template_body variable. Modify the MyBucket resource to use this parameter as its BucketName property.
AWS
Hint
Add a Parameters section with BucketName as a string. Reference this parameter in the bucket's BucketName property.
3
Update the stack with a new bucket name
Use the AWS CLI command aws cloudformation update-stack to update the stack named MyTestStack with the modified template_body. Pass the parameter BucketName with the value my-updated-bucket using the --parameters option.
AWS
Hint
Use the update-stack command with the same stack name and template file. Pass the new BucketName parameter value.
4
Delete the CloudFormation stack
Use the AWS CLI command aws cloudformation delete-stack to delete the stack named MyTestStack.
AWS
Hint
Use the delete-stack command with the stack name to remove the stack and its resources.
Practice
(1/5)
1. What is the primary purpose of the update-stack command in AWS CloudFormation?
easy
A. To create a new stack from a template
B. To safely change existing cloud resources managed by a stack
C. To delete all resources created by a stack
D. To list all stacks in your AWS account
Solution
Step 1: Understand the role of update-stack
The update-stack command is used to modify resources that are already managed by an existing CloudFormation stack.
Step 2: Differentiate from other commands
Unlike delete-stack which removes resources, update-stack changes them safely without deleting the stack.
Final Answer:
To safely change existing cloud resources managed by a stack -> Option B
Quick Check:
update-stack = change resources safely [OK]
Hint: Update-stack changes resources; delete-stack removes them [OK]
Common Mistakes:
Confusing update-stack with delete-stack
Thinking update-stack creates new stacks
Assuming update-stack lists stacks
2. Which AWS CLI command syntax correctly deletes a stack named MyAppStack?
easy
A. aws cloudformation delete-stack --stack-name MyAppStack
B. aws cloudformation update-stack --stack-name MyAppStack
C. aws cloudformation remove-stack --name MyAppStack
D. aws cloudformation destroy-stack --stack MyAppStack
Solution
Step 1: Identify the correct delete command
The correct AWS CLI command to delete a stack is delete-stack with the parameter --stack-name.
Step 2: Verify syntax correctness
aws cloudformation delete-stack --stack-name MyAppStack uses the exact syntax: aws cloudformation delete-stack --stack-name MyAppStack, which is valid and deployable.
Final Answer:
aws cloudformation delete-stack --stack-name MyAppStack -> Option A
Quick Check:
delete-stack + --stack-name = correct syntax [OK]
Hint: Delete stacks with 'delete-stack' and '--stack-name' [OK]
Common Mistakes:
Using update-stack instead of delete-stack
Wrong parameter names like --name or --stack
Using non-existent commands like remove-stack or destroy-stack
What is the expected behavior after running these commands?
medium
A. The stack TestStack is updated with the new template, and its status is shown
B. The stack TestStack is deleted, and no status is returned
C. A new stack named TestStack is created, and its details are displayed
D. The command fails because update-stack cannot be followed by describe-stacks
Solution
Step 1: Understand update-stack effect
The update-stack command modifies the existing stack named TestStack using the provided template.
Step 2: Describe-stacks shows current stack status
The describe-stacks command retrieves details about TestStack, including its updated status.
Final Answer:
The stack TestStack is updated with the new template, and its status is shown -> Option A
Quick Check:
update-stack changes stack + describe-stacks shows status [OK]
Hint: Update then describe shows updated stack status [OK]
Common Mistakes:
Thinking update-stack deletes the stack
Assuming describe-stacks creates a new stack
Believing update-stack and describe-stacks cannot be used sequentially
4. You run aws cloudformation update-stack --stack-name ProdStack --template-body file://newtemplate.json but get an error saying the stack is in UPDATE_IN_PROGRESS state. What should you do to fix this?
medium
A. Ignore the error and rerun update-stack multiple times
B. Run delete-stack immediately to remove the stack
C. Change the stack name and try update-stack again
D. Wait for the current update to finish before running update-stack again
Solution
Step 1: Understand stack states during update
When a stack is in UPDATE_IN_PROGRESS, it means an update is already running and must complete before another update starts.
Step 2: Choose the correct action
Waiting for the current update to finish avoids conflicts and errors. Deleting or renaming the stack is unnecessary and may cause data loss or confusion.
Final Answer:
Wait for the current update to finish before running update-stack again -> Option D
Quick Check:
UPDATE_IN_PROGRESS means wait before next update [OK]
Hint: Wait for update to finish before next update [OK]
Common Mistakes:
Trying to delete stack during update
Renaming stack instead of waiting
Ignoring error and retrying immediately
5. You want to update a stack but also ensure that if the update fails, the stack rolls back to its previous state automatically. Which AWS CloudFormation option should you avoid using with update-stack to achieve this?
hard
A. --rollback-configuration
B. --no-rollback
C. --disable-rollback
D. --enable-rollback
Solution
Step 1: Understand rollback behavior in update-stack
By default, CloudFormation rolls back stack updates on failure. The --disable-rollback option disables this behavior.
Step 2: Identify the correct option to keep rollback enabled
To ensure rollback happens automatically on failure, you should NOT disable rollback. Therefore, do not use --disable-rollback. The default behavior is rollback enabled, so omit this option or explicitly avoid disabling rollback.
Step 3: Analyze options
--rollback-configuration is for configuring alarms, --enable-rollback and --no-rollback are not valid AWS CLI options.
Final Answer:
--disable-rollback disables rollback; omit it to keep rollback enabled -> Option C
Quick Check:
Omit --disable-rollback to keep rollback on failure [OK]
Hint: Do not use --disable-rollback to keep rollback active [OK]
Common Mistakes:
Using non-existent --enable-rollback option
Confusing disable-rollback disables rollback
Assuming rollback is off by default
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.