Bird
Raised Fist0
AWScloud~5 mins

Stack drift detection in AWS - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Stack drift detection
O(n)
Understanding Time Complexity

Stack drift detection checks if your cloud setup has changed outside your control.

We want to know how the time to detect drift grows as your stack gets bigger.

Scenario Under Consideration

Analyze the time complexity of the following operation sequence.


aws cloudformation detect-stack-drift --stack-name MyStack
aws cloudformation describe-stack-drift-detection-status --stack-drift-detection-id detectionId
aws cloudformation describe-stack-resource-drifts --stack-name MyStack
    

This sequence starts drift detection, checks its status, and then lists resource drifts in the stack.

Identify Repeating Operations

Identify the API calls, resource provisioning, data transfers that repeat.

  • Primary operation: Checking drift status and listing resource drifts for each resource in the stack.
  • How many times: Once to start detection, then once to list all resource drifts (not once per resource).
How Execution Grows With Input

As the number of resources in the stack grows, the number of drift checks grows too.

Input Size (n)Approx. Api Calls/Operations
10About 10 resource drift checks plus detection start and status calls
100About 100 resource drift checks plus detection start and status calls
1000About 1000 resource drift checks plus detection start and status calls

Pattern observation: The number of operations grows roughly in direct proportion to the number of resources.

Final Time Complexity

Time Complexity: O(n)

This means the time to detect drift grows linearly with the number of resources in your stack.

Common Mistake

[X] Wrong: "Drift detection time stays the same no matter how many resources are in the stack."

[OK] Correct: Each resource must be checked, so more resources mean more work and longer time.

Interview Connect

Understanding how drift detection scales helps you design stacks that stay manageable and predictable.

Self-Check

"What if drift detection only checked changed resources instead of all resources? How would the time complexity change?"

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