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?
Objective
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.
Instructions
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?