Bird
Raised Fist0
AWScloud~10 mins

Creating stacks in AWS - Visual Walkthrough

Choose your learning style10 modes available
Process Flow - Creating stacks
Write template file
↓
Use AWS CLI or Console
↓
Create stack command
↓
AWS CloudFormation validates template
↓
If valid
→Stack creation starts
↓
Resources are provisioned
↓
Stack status updates
↓
Stack creation complete
You write a template, then use AWS tools to create a stack. AWS checks the template, provisions resources, and updates the stack status until done.
Execution Sample
AWS
aws cloudformation create-stack --stack-name MyStack --template-body file://template.yaml
This command creates a stack named MyStack using the template.yaml file.
Process Table
StepActionInputAWS ResponseStack Status
1Run create-stack commandStackName=MyStack, Template=template.yamlTemplate validatedCREATE_IN_PROGRESS
2Provision resourcesResources from templateResources being createdCREATE_IN_PROGRESS
3Wait for resourcesN/AResources created successfullyCREATE_COMPLETE
💡 Stack creation completes successfully when all resources are provisioned.
Status Tracker
VariableStartAfter Step 1After Step 2Final
StackNameNoneMyStackMyStackMyStack
TemplateNonetemplate.yaml loadedtemplate.yaml loadedtemplate.yaml loaded
StackStatusNoneCREATE_IN_PROGRESSCREATE_IN_PROGRESSCREATE_COMPLETE
Key Moments - 2 Insights
Why does the stack status show CREATE_IN_PROGRESS after running the create command?
Because AWS starts provisioning resources after validating the template, the stack status updates to CREATE_IN_PROGRESS as shown in execution_table step 1 and 2.
What happens if the template file has errors?
AWS CloudFormation will reject the create-stack command during validation, so the stack will not be created and status will not move to CREATE_IN_PROGRESS.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the stack status immediately after the create-stack command is run?
ACREATE_COMPLETE
BCREATE_IN_PROGRESS
CDELETE_IN_PROGRESS
DROLLBACK_IN_PROGRESS
💡 Hint
Check the Stack Status column in execution_table row 1.
At which step are the resources actually provisioned?
AStep 1
BStep 3
CStep 2
DAfter Step 3
💡 Hint
Look at the Action and AWS Response columns in execution_table.
If the template file is missing, what will happen to the stack status?
AIt will stay None and no stack is created
BIt will become CREATE_COMPLETE
CIt will show DELETE_IN_PROGRESS
DIt will show ROLLBACK_COMPLETE
💡 Hint
Refer to key_moments about template validation failure.
Concept Snapshot
Creating stacks in AWS CloudFormation:
- Write a template file describing resources
- Run 'aws cloudformation create-stack' with stack name and template
- AWS validates the template
- If valid, stack status becomes CREATE_IN_PROGRESS
- AWS provisions resources
- When done, stack status becomes CREATE_COMPLETE
Full Transcript
To create a stack in AWS, you first write a template file that describes the resources you want. Then you run the AWS CLI command to create the stack, providing the stack name and template file. AWS CloudFormation checks the template for errors. If the template is valid, AWS starts creating the resources and the stack status changes to CREATE_IN_PROGRESS. Once all resources are created successfully, the stack status updates to CREATE_COMPLETE. If the template has errors, the stack creation does not start and no stack is created.

Practice

(1/5)
1. What is the main purpose of creating a stack in AWS CloudFormation?
easy
A. To group related cloud resources for easy management
B. To write code for AWS Lambda functions
C. To monitor AWS billing and usage
D. To create user accounts in AWS IAM

Solution

  1. Step 1: Understand what a stack represents

    A stack is a collection of AWS resources that you manage as a single unit.
  2. Step 2: Identify the purpose of grouping resources

    Grouping resources simplifies deployment, updates, and deletion.
  3. Final Answer:

    To group related cloud resources for easy management -> Option A
  4. Quick Check:

    Stack = Group resources [OK]
Hint: Stacks group resources to manage them together [OK]
Common Mistakes:
  • Confusing stacks with user accounts
  • Thinking stacks are for billing
  • Mixing stacks with Lambda code writing
2. Which AWS CLI command is used to create a stack from a template file named template.yaml?
easy
A. aws s3 create-bucket --template template.yaml
B. aws cloudformation create-stack --stack-name MyStack --template-body file://template.yaml
C. aws cloudformation deploy --stack-name MyStack --template-file file://template.yaml
D. aws ec2 create-stack --template-file template.yaml

Solution

  1. Step 1: Identify the correct AWS service and command

    Creating stacks uses the AWS CloudFormation service and the command is create-stack.
  2. Step 2: Check the correct syntax for template file input

    The template file is specified with --template-body file://filename.
  3. Final Answer:

    aws cloudformation create-stack --stack-name MyStack --template-body file://template.yaml -> Option B
  4. Quick Check:

    Use create-stack with --template-body file:// [OK]
Hint: Use create-stack with --template-body file:// [OK]
Common Mistakes:
  • Using wrong AWS service like EC2 or S3
  • Using --template-file instead of --template-body
  • Confusing create-stack with deploy command
3. Given this AWS CLI command:
aws cloudformation create-stack --stack-name TestStack --template-body file://template.yaml --parameters ParameterKey=Env,ParameterValue=prod
What will happen when this command runs?
medium
A. The command will fail because parameters must be in JSON format
B. The stack will be created with default parameter values ignoring Env
C. The stack will be created but the Env parameter will be ignored
D. A stack named TestStack is created using the template with Env parameter set to prod

Solution

  1. Step 1: Understand parameter usage in create-stack command

    The --parameters option allows passing key-value pairs to customize the stack.
  2. Step 2: Check the syntax correctness

    The syntax ParameterKey=Env,ParameterValue=prod is valid for AWS CLI parameters.
  3. Final Answer:

    A stack named TestStack is created using the template with Env parameter set to prod -> Option D
  4. Quick Check:

    Parameters customize stack creation [OK]
Hint: Parameters use ParameterKey= and ParameterValue= pairs [OK]
Common Mistakes:
  • Thinking parameters must be JSON
  • Assuming parameters are ignored if passed
  • Confusing parameter syntax with other commands
4. You run this command to create a stack:
aws cloudformation create-stack --stack-name MyStack --template-body file://template.yaml
But you get an error: Template format error: YAML not well-formed.
What is the most likely cause?
medium
A. The template.yaml file has syntax errors in YAML formatting
B. The stack name MyStack is invalid
C. The AWS CLI command is missing the region parameter
D. The template file path is incorrect

Solution

  1. Step 1: Analyze the error message

    The error says "YAML not well-formed" which means the template file has syntax issues.
  2. Step 2: Check other possible causes

    Stack name and region issues cause different errors; file path errors cause file not found errors.
  3. Final Answer:

    The template.yaml file has syntax errors in YAML formatting -> Option A
  4. Quick Check:

    YAML errors cause template format error [OK]
Hint: Check YAML syntax carefully for formatting errors [OK]
Common Mistakes:
  • Assuming stack name causes YAML errors
  • Ignoring file path correctness
  • Forgetting to check template syntax
5. You want to create a stack that launches an EC2 instance with a parameter to choose the instance type. Your template uses a parameter named InstanceType. Which AWS CLI command correctly creates the stack with t3.micro as the instance type?
hard
A. aws cloudformation deploy --stack-name EC2Stack --template-file file://ec2.yaml --parameter-overrides InstanceType=t3.micro
B. aws cloudformation create-stack --stack-name EC2Stack --template-body file://ec2.yaml --parameters InstanceType=t3.micro
C. aws cloudformation create-stack --stack-name EC2Stack --template-body file://ec2.yaml --parameters ParameterKey=InstanceType,ParameterValue=t3.micro
D. aws ec2 run-instances --instance-type t3.micro --template-file ec2.yaml

Solution

  1. Step 1: Identify the correct command and syntax for stack creation with parameters

    The create-stack command uses --parameters ParameterKey=key,ParameterValue=value syntax.
  2. Step 2: Verify the parameter key and value match the template

    The parameter key is InstanceType and value is t3.micro, correctly formatted in aws cloudformation create-stack --stack-name EC2Stack --template-body file://ec2.yaml --parameters ParameterKey=InstanceType,ParameterValue=t3.micro.
  3. Final Answer:

    aws cloudformation create-stack --stack-name EC2Stack --template-body file://ec2.yaml --parameters ParameterKey=InstanceType,ParameterValue=t3.micro -> Option C
  4. Quick Check:

    Use ParameterKey= and ParameterValue= for parameters [OK]
Hint: Use ParameterKey= and ParameterValue= pairs for parameters [OK]
Common Mistakes:
  • Using wrong parameter syntax
  • Confusing deploy with create-stack
  • Using EC2 CLI instead of CloudFormation
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