2 hour mini project: deployment methods

Natasha Ong
This is some text inside of a div block.
4 min read

Students should come out of this exercise knowing how to answer these questions:

  • The strengths and limitations of different deployment models and methods
  • How to use the components, features, tools and services
  • When would you use the Management Console vs SDKs, or the Command Line Interface vs CloudFormation?
  • What benefits do you see in accessing a service like Amazon S3 in the console or running the commands in the CLI?
  • Would applications working together between your local data centre and AWS be considered an on-premises or hybrid deployment?
  • Why would you choose to keep certain resources on-premises instead of moving everything directly into AWS?


Let's demystify AWS deployment methods, unlock their potential, and uncover when to use each. We'll also dive into the world of on-premises and hybrid deployments.


Step 1: Understanding deployment methods

  • Let's recap the different AWS deployment methods, such as AWS Management Console, SDKs (Software Development Kits), Command Line Interface (CLI), AWS CloudFormation.
  • What are the primary AWS deployment methods, and when is each method typically used?
  • How do these deployment methods contribute to the flexibility and scalability of AWS services?

Step 2: The AWS Management Console

  • Log in to your AWS Management Console
  • Choose an AWS service (e.g., Amazon S3) from the list of services.
  • What AWS service did you choose to create a resource with in the Management Console, and what did you observe about the user interface and available configurations?
  • In what scenarios is the Management Console a preferred method for resource deployment?
  • Reflect on your experience with the Management Console and how it compares to other deployment methods.

Step 3: SDKs and development tools

  • Research and find the official documentation for the AWS SDK for your preferred programming language (e.g., Boto3 for Python).
  • Install the SDK on your local machine if you haven't already.
  • Create a script using the SDK to perform tasks like creating an EC2 instance or managing an S3 bucket. The official AWS SDK documentation typically provides examples.
  • What AWS SDK did you use for scripting, and what specific tasks did you perform?
  • How can SDKs and development tools enhance automation and customisation of AWS resources?
  • Reflect on your coding experience with SDKs and how it differs from other methods.

Step 4: The command line interface (CLI)

  • Install the AWS CLI on your local machine if you haven't already.
  • Use the CLI to perform actions like creating, configuring, or managing AWS resources (e.g., creating an S3 bucket or an EC2 instance).
  • Pay attention to the syntax and commands required for various actions.
  • Describe your experience using the AWS CLI to create and manage resources.
  • When is the CLI advantageous, and what types of tasks does it excel at automating?
  • Reflect on the command-line experience and compare it to other deployment methods.

Step 5: Infrastructure as code (IaC) with AWS CloudFormation

  • Explore AWS CloudFormation and find documentation on creating templates.
  • Create a CloudFormation template to define and deploy a multi-resource environment (e.g., a VPC, subnets, EC2 instances, and security groups).
  • What type of multi-resource environment did you create using CloudFormation, and how did this experience compare to other deployment methods?
  • How does CloudFormation contribute to maintaining infrastructure as code and ensuring consistency in deployments?
  • Reflect on your CloudFormation template creation and deployment experience.

Step 6: On-premises vs. hybrid deployments

  • Provide examples of situations where hybrid deployments make more sense.
  • Provide examples of scenarios where applications interact between a local data centre and AWS. When are these scenarios considered on-premises, hybrid, or fully cloud deployments?
  • What are the key considerations in determining the suitability of hybrid deployments?

Step 7: Resource placement decisions

  • When might you choose to keep certain resources on-premises rather than migrating them to AWS? Consider factors such as data governance, compliance, and specific use cases.
  • What challenges and trade-offs are associated with maintaining resources on-premises?

Step 8: Documentation and reflection

  • Reflect on your observations from each step and answer the following questions:
  • What are the primary strengths and limitations of different deployment methods?
  • When would you choose to use the Management Console vs. SDKs, or the CLI vs. CloudFormation?
  • What are the benefits of accessing AWS services via the console or running commands in the CLI?
  • Under what conditions do applications working between a local data centre and AWS fall into on-premises or hybrid deployment categories?
  • Why might you decide to keep certain resources on-premises instead of moving them directly into AWS?