Welcome to Day 9 of the "How to AWS" series: Deployment
In this blog post we will be discussing the deployment of your environments and workloads in AWS. If you missed the introduction and drivers behind this series, check it out here.
Today we’ll address deploying your workload. We will be leveraging the deployment pipelines and automation you created as discussed in the previous blog post in this series.
When deploying your workloads into AWS, it is all about determining and following your “order of operations”. You can best determine this order by looking at the layers of your workload and determining the order of dependencies. For example, an EC2 instance depends upon your network (VPC, Subnets etc), and also needs a security group. These resources need to be in place prior to the EC2 instance and therein lies our order of operations.
Lay the Groundwork
It is time to get your groundwork implemented via the Infrastructure as Code templates and Automation pipelines we’ve discussed in this series. When laying the groundwork, consider the supporting services you need to get your workload up and running!
Go ahead and deploy your:
- Networks - VPC, Subnet, Route Tables
- VPN Connections (as required)
- DNS Zones - Protip: if you use Route53, it’s easy for your application deployments to automatically populate your DNS records at deploy time.
- + anything else that makes sense…
Now that the groundwork has been deployed, let’s move onto deploying your workload.
Thanks to our automation pipeline, we’re ready to proceed and deploy our workload. Depending upon your implementation you may need to supply some additional values/parameters from the groundwork we deployed to your code (e.g. which subnets to deploy into).
Time to run your deployment pipelines and deploy your workload into your development or test environments! Most deployments typically follow the following process (just consider your workload’s dependency chain - x needs y, and y needs z - so let's deploy z first).
- Infrastructure - Get your AWS resources deployed and in place.
- Application - Install and configure your applications
- Data - Make sure all requisite data is populated and ready for your workload.
The deployment may take some time, or very little depending upon the complexity of your workload and the level of automation you’ve setup.
Congrats, you’ve just deployed your first workload on AWS!
Validate your deployment!
Now that you’ve deployed something, it’s definitely worth reviewing and validating that your deployment succeeded. Initially this may be manual checks across the workload, but you should look towards implementing automated checks which can automate and confirm your workload is operating as expected.
In this blog post we talked through the considerations of deploying your first workload, and made sure to lay the foundational groundwork first.
In our next post we’ll start considering our Production planning and all of the ongoing operational concerns that you should consider!