Bird
Raised Fist0
AWScloud~5 mins

Stack drift detection in AWS - Commands & Configuration

Choose your learning style10 modes available
Introduction
Sometimes, the resources in your cloud setup change without updating your main setup files. Stack drift detection helps find these unexpected changes so you can fix them and keep everything working well.
When you want to check if someone changed your cloud resources directly instead of using your setup files.
When you notice your app behaves differently but you are not sure if the cloud setup changed.
Before updating your cloud setup to avoid conflicts caused by hidden changes.
After a team member made manual changes in the cloud console and you want to confirm what changed.
When you want to keep your cloud setup clean and consistent with your setup files.
Commands
This command starts checking the stack named 'example-stack' for any changes made outside the setup files.
Terminal
aws cloudformation detect-stack-drift --stack-name example-stack
Expected OutputExpected
{"StackDriftDetectionId": "1234abcd-12ab-34cd-56ef-1234567890ab"}
→
--stack-name - Specifies the name of the stack to check for drift.
This command checks the status of the drift detection process using the ID returned from the previous command.
Terminal
aws cloudformation describe-stack-drift-detection-status --stack-drift-detection-id 1234abcd-12ab-34cd-56ef-1234567890ab
Expected OutputExpected
{"StackDriftDetectionStatus": "DETECTION_COMPLETE", "DriftStatus": "DRIFTED"}
→
--stack-drift-detection-id - Uses the ID from the drift detection start command to get the current status.
This command lists all resources in the stack that have drifted, showing what changed compared to the setup files.
Terminal
aws cloudformation describe-stack-resource-drifts --stack-name example-stack
Expected OutputExpected
{"StackResourceDrifts": [{"LogicalResourceId": "MyInstance", "PhysicalResourceId": "i-0abcd1234efgh5678", "ResourceType": "AWS::EC2::Instance", "PropertyDifferences": [{"PropertyPath": "/Properties/InstanceType", "ExpectedValue": "t2.micro", "ActualValue": "t2.small"}]}]}
→
--stack-name - Specifies which stack's resources to check for drift details.
Key Concept

If you remember nothing else from this pattern, remember: drift detection finds hidden changes in your cloud setup so you can keep your setup files and real resources in sync.

Common Mistakes
Running drift detection without waiting for the detection process to complete before checking status.
The status command may show incomplete or no results if the detection is still running.
Wait a few seconds after starting drift detection, then check the status until it shows complete.
Not specifying the correct stack name when running commands.
Commands will fail or check the wrong stack, giving misleading results.
Always double-check the stack name matches exactly the stack you want to check.
Summary
Start drift detection on a stack to find changes made outside your setup files.
Check the detection status to know when the process is complete and if drift exists.
List the specific resources that have drifted and see what properties changed.

Practice

(1/5)
1.

What is the main purpose of stack drift detection in AWS CloudFormation?

easy
A. To find manual changes made outside of CloudFormation templates
B. To automatically fix errors in CloudFormation templates
C. To create new stacks from existing templates
D. To monitor network traffic between AWS resources

Solution

  1. Step 1: Understand stack drift detection concept

    Stack drift detection checks if resources in a stack have been changed manually or outside CloudFormation management.
  2. Step 2: Identify the main purpose

    The main goal is to find these manual or unexpected changes to keep infrastructure consistent.
  3. Final Answer:

    To find manual changes made outside of CloudFormation templates -> Option A
  4. Quick Check:

    Stack drift detection = find manual changes [OK]
Hint: Stack drift detection finds changes outside CloudFormation [OK]
Common Mistakes:
  • Thinking it fixes errors automatically
  • Confusing it with stack creation
  • Assuming it monitors network traffic
2.

Which AWS CLI command starts drift detection for a CloudFormation stack named MyAppStack?

easy
A. aws cloudformation begin-drift-check --name MyAppStack
B. aws cloudformation detect-stack-drift --stack-name MyAppStack
C. aws cloudformation start-drift-detection --stack MyAppStack
D. aws cloudformation check-drift --stack-name MyAppStack

Solution

  1. Step 1: Recall AWS CLI syntax for drift detection

    The correct command to start drift detection is detect-stack-drift with the --stack-name option.
  2. Step 2: Match the command with the stack name

    aws cloudformation detect-stack-drift --stack-name MyAppStack uses the exact syntax and correct parameter for the stack name.
  3. Final Answer:

    aws cloudformation detect-stack-drift --stack-name MyAppStack -> Option B
  4. Quick Check:

    Detect drift command = detect-stack-drift [OK]
Hint: Use 'detect-stack-drift' with '--stack-name' to start detection [OK]
Common Mistakes:
  • Using incorrect command verbs like start or begin
  • Wrong parameter names like --stack or --name
  • Mixing up command order or syntax
3.

After running aws cloudformation detect-stack-drift --stack-name MyStack, which command shows the drift detection status and results?

medium
A. aws cloudformation show-drift-results --stack-name MyStack
B. aws cloudformation get-stack-drift-status --stack-name MyStack
C. aws cloudformation list-stack-drift-detection --stack-name MyStack
D. aws cloudformation describe-stack-drift-detection-status --stack-drift-detection-id

Solution

  1. Step 1: Identify the command to check drift detection status

    The AWS CLI command to check drift detection status is describe-stack-drift-detection-status.
  2. Step 2: Confirm the correct parameter usage

    It requires the --stack-drift-detection-id parameter to specify the detection ID, not --stack-name.
  3. Final Answer:

    aws cloudformation describe-stack-drift-detection-status --stack-drift-detection-id <detection-id> -> Option D
  4. Quick Check:

    Check drift status = describe-stack-drift-detection-status [OK]
Hint: Use 'describe-stack-drift-detection-status' with detection ID to get drift results [OK]
Common Mistakes:
  • Using non-existent commands like get-stack-drift-status
  • Confusing list commands with status commands
  • Wrong parameter names
4.

You ran aws cloudformation detect-stack-drift --stack-name TestStack but got an error: Stack with id TestStack does not exist. What is the most likely cause?

medium
A. The stack name is misspelled or the stack does not exist
B. Drift detection is not supported for this stack type
C. You need to add --region parameter to the command
D. The AWS CLI version is outdated and cannot run drift detection

Solution

  1. Step 1: Analyze the error message

    The error says the stack with the given name does not exist, indicating a wrong name or missing stack.
  2. Step 2: Consider other causes

    While region or CLI version issues can cause errors, this specific message points to a missing or misspelled stack name.
  3. Final Answer:

    The stack name is misspelled or the stack does not exist -> Option A
  4. Quick Check:

    Error about stack id means wrong or missing stack [OK]
Hint: Check stack name spelling and existence first [OK]
Common Mistakes:
  • Assuming region parameter is always required
  • Blaming CLI version without checking stack
  • Ignoring the exact error message
5.

You want to ensure your CloudFormation stack stays consistent with its template. Which approach best uses stack drift detection to maintain this?

A) Run drift detection regularly and update stack if drift is detected.
B) Disable drift detection and manually check resources.
C) Use drift detection only after stack deletion.
D) Ignore drift detection and rely on CloudWatch alarms.

hard
A. Use drift detection only after stack deletion
B. Disable drift detection and manually check resources
C. Run drift detection regularly and update stack if drift is detected
D. Ignore drift detection and rely on CloudWatch alarms

Solution

  1. Step 1: Understand drift detection best practice

    Regularly running drift detection helps find manual changes early and keeps the stack consistent.
  2. Step 2: Evaluate options

    Run drift detection regularly and update stack if drift is detected uses drift detection proactively. Options B, C, and D either ignore drift detection or use it incorrectly.
  3. Final Answer:

    Run drift detection regularly and update stack if drift is detected -> Option C
  4. Quick Check:

    Regular drift detection = best practice [OK]
Hint: Run drift detection regularly to catch changes early [OK]
Common Mistakes:
  • Ignoring drift detection completely
  • Checking drift only after deletion
  • Relying solely on CloudWatch for drift
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard