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?