Amazon Web Services (AWS) is without a doubt a useful and easy to engage cloud. However, there are pitfalls associated with using the platform if you don’t 100% know what you’re doing. Here’s a top 5 considerations for how you build your Amazon cloud.
Build for HA from the get-go
Multiple region redundancy is important, especially with AWS. Not architecting applications to survive the failure of an availability zone, or multiple AZs has been the downfall of many companies. As we’ve seen with Amazon, these failures, while not regular, are often enough to merit building in a fault tolerant way.
Amazon is not a VPS
Don’t utilize Amazon like a virtual private server. If you try to apply the same principles as when running on VMware or another VPS provider, you’re missing the whole reason of going to AWS. Taking advantage of the multiple well integrated components to copy data across regions, to fail over from one region to another are key values to moving to amazon.
Autoscale to success
What if your app doesn’t require much horsepower in the beginning, taking what is a small usage with some small instances, maybe RDS instance or maybe an S3 bucket? Even if you expect to scale, or move a workload from one region to another, you need to already be planning as though you are developing a distributed, complex system. You must build in automation at the deployment level, and even single instances should be placed in autoscaling groups. This will give you the HA you need because as part of an autoscaling group it will redeploy. If that instance goes down, it can be reestablished just as it was.
Once you have your app working, don’t leave it there
Build a cloud formation template out of it. Test that template, redeploying it to different regions as a test so you can see what hiccups are involved with fail overs and disaster planning. Let’s say there’s a problem in US East entirely (a realistic proposition as we saw this most recent Christmas Eve), if your app was built with a cloud formation template, matched with automated deployment, you can redeploy that template in Portland or California and that process becomes a powerful DR failsafe.
Copying data from region to region
AWS just enabled the region-to-region transfer of EBS snapshots which is something many people would be wise to take advantage of immediately. This will enable data to exist in different regions and be ready for access if there is a problem in the region local to your business.
In a nut shell, no matter how seemingly small or easy your infrastructure is to manage, you should already be thinking about integrating all the tools being used by the much larger companies. The point of public cloud isn’t simply to think small. If you apply these principles early, they work equally well with a small number of instances as much as a large number of instances, so you might as well put the work in at the beginning as you are architecting your cloud to take full advantage of it as your business scales.
Unfortunately, it’s not a simple or straightforward thing to get off the ground for anybody without a strong DevOps or cloud deployment background. Part of knowing what to do is also getting an accurate cost assessment. The pricing tool available through AWS is great, but in a public cloud environment where you are being charged for every write and read from the disk of an EBS volume, it’s hard to know exactly what a reasonable cost looks like. Perhaps your company is better suited to a private cloud environment, since your company doesn’t have the time and resources to research and tailor your staff skill set to accurately predict and plan for the variability in costs associated with public cloud usage. These are important considerations as well.
Ultimately, it is often useful to outsource the management of your AWS cloud, so all costs and modeling can be done in a logical and experienced way, which in turn can help you take full advantage of the tools and benefits of the cloud you want to be paying for. Utilizing a managed service provider that has a managed Amazon service can also be a good way to understand if you company is better suited for a private cloud, or perhaps even a hybrid cloud that takes advantage of AWS’ scalability while providing a dedicated, compliant back end infrastructure to support your mission critical applications and data.
By Jake Gardner