Eight tips to roll a service or app into an AWS deployment
While public cloud providers guarantee certain levels of availability in their service-level agreements, workloads can never be too resilient. Application architects should use a variety of services in an AWS deployment to ensure workload resilience.
Deploy important applications across two or more Elastic Compute Cloud instances, assembled into a cluster, and manage them through the Elastic Load Balancing service. That way, if one instance fails, the application will remain available -- albeit with somewhat lower performance.
Similarly, Auto Scaling can dynamically detect and replace troubled instances, as well as scale to accommodate traffic behaviors or other performance metrics. IT teams can also distribute mission-critical workloads across two more availability zones (AZs) to bolster redundancy and application response times for distant users.
But other issues can affect AWS resiliency. When replicating workloads across AZs, remember to also replicate and synchronize data.
It's equally important to protect storage instances. For example, sysops should regularly back up Elastic Block Store volumes as snapshots. Also, be sure to use persistent storage for workload data rather than instance stores that delete when an instance terminates -- unless you cluster instances for redundancy.
In addition, test workloads and AWS resiliency on a regular basis to ensure everything works as expected, and verify that cloud admins can recover instances and storage volumes when needed.