The Cloud Storage Survival Guide: How to Weather Any Outage Storm
The cloud is a limitless and magical-like place where most of our data gets stored 99.999999999% of the time uninterrupted. It’s often quiet just before the storm though. Cloud storage is cheap and scalable, services like AWS Simple Storage Service (S3) and Google Cloud Storage provide users with attractive and competitive on-demand options. So more and more businesses and bloggers have turned to the cloud for their storage needs. Now cloud reliability has become essential to the flow of the Internet itself. But what happens to your site if those services become unavailable for extended periods of time? Will your site keep working or evaporate the next time it storms?
According to SimilarTech, over 150,000 sites use Amazon S3 and many were affected by the S3 outage in the US East Virginia data center (over a typo) including DashBurst. So we put together a guide for how to better prevent, mitigate and recover from cloud storage outages.
1 Optimize Your Website Assets
Make sure your web files can be cached by browsers and content distribution networks before storing them in the cloud. Use proper expiration headers for static content, which are rules set by your server for how to treat static files like images, style sheets (CSS), scripts (JS) and other data using far away expiration headers to ensure maximum caching. This keeps your content alive on the Internet and user’s browser’s longer even if it isn’t actually available on your site during some type of outage. Tools like Google Pagespeed Insights and WebPagetest can help you analyze your website assets and provide optimization recommendations to ensure all your resources are minified and compressed. Platforms like DashBurst can help you host, scale and compress images and other media. The less you have to spend on storage the better chance your business has of surviving on the cloud no matter the weather.
2 Optimize Your Cloud Storage and Location
Optimally you should a choose a default cloud storage center close to the majority of your users and servers to limit transaction costs and delay time. Within your cloud storage permissions, you’ll want to set a CORS configuration that allows for the needed cross-origin resource sharing policy and headers to make sure your cloud storage allows your content to be visible and cached.
3 Backup Your Cloud
Things happen, be prepared for failure. AWS Glacier provides cheap backup options for S3 data-archiving and long-term backups. This is good for retrievals if your storage buckets are unavailable or corrupted and for moving storage around. This alone won’t help you in real-time though if you rely on one cloud data center that is down
4 Use Multiple Cloud Data Centers from the Same Provider
AWS, for example, provides S3 in 14 different data centers. Consider creating backup storage available to use at least one different location. The more availability zones and data centers your application is available at (ec2 compute and s3 storage), the less likely you will be affected by any single data center point of failure. Of course backing up or duplicating all your s3 content to another data center would essentially double your storage bill and require a bit more complicated load balancing but you should weigh the availability benefits versus additional costs. Either way having backup buckets setup at a different data location can bail your app out of a live storm if you can’t afford any downtime by quickly switching production endpoints for new content. Even some of the largest websites don’t operate at this level though as the shock wave of the recent Virginia data center outage demonstrated.
5 Use a CDN
A content delivery network is a distributed set of servers at different geographic locations around the world that improve the delivery speed of webpages and content. Some popular CDNs include Akamai, CloudFlare, Verizon Edgecast and Amazon Cloudfront providing dozens of server locations around the world. The closer a user on your site is to a CDN edge server, the faster your site will appear. Using a CDN improves speed, SEO and user experience, meanwhile reducing your server loads and making your site more crash resistant during outages. Older cached content will still be visible on your site even if your cloud storage is down so a CDN is crucial for any serious endeavor looking to navigate dark and cloudy weather.
6 Setup Multiple CDNs
For enterprises that require further fool-proofing their CDN and DNS lookup strategy for maximum availability, multiple CDNs and load balancing between them can further improve security, reliability and load times. A CDN and DNS manager solution is a good front-line against cloud outages and single-point of failures at any network level along with providing support for other types of issues like denial of service attacks.
7 Multiple Cloud Providers
If you’re really looking to step up your game (and complexity) you could try balancing between multiple cloud providers like AWS S3, Google Cloud Storage and Microsoft Azure Storage. This nearly ensures some cloud data center will be up for you short of the next zombie apocalypse. Plus you’ll be able to benefit from cherry-picking the best prices and resources among competitive services.
8 Cloud Management Services
There are also services that handle multiple cloud providers and deployment for you at various levels like Chef, Puppet and Docker. This can allow you to automatically scale your infrastructure and fallback to another cloud provider during performance outages.
9 Create Your Own Cloud
Sites like Dropbox have been able to reduce their storage costs by moving parts of their infrastructure from the cloud to dedicated servers. This usually requires dedicated DevOps engineers on-staff and Facebook-like server farms running, though, and should only be considered by larger companies or experienced server administrators.
10 Offsite Storage
Anyone who watched Mr. Robot knows that even offsite storage isn’t 100% safe but it’s damn hard to get to. Consider downloading backups from the cloud to store physically in another location. This can be a time consuming and expensive measure but could be worth it for mission-critical data being stored in the cloud needed for safe-keeping.
11 Practice Fire Storm Drills
You have to expect your cloud to eventually crash and have a plan of action in place based on your availability needs. Do you need to stay up at all costs? How long does a backup and redeployment take? Make sure you have a backup plan in place you’ve executed to be sure everything will work as expected.
12 Don’t Panic
When in doubt, first thing is to check your given cloud provider status pages:
AWS Service Health Dashboard
Google Cloud Status Dashboard
Microsot Azure Status
Figure out if the problem is in the cloud before you start chasing defects that aren’t on your end. With hundreds of thousands of businesses using the cloud, chances are you won’t be the only one affected. You should have your neighborhood cloud support representative on speed-dial in case of emergencies though.
13 Cloud Intelligence
Finally, make sure you have a cloud expert close or on-demand consultant to reach out too to setup your cloud storage reliably and help in times of crisis.
Cloud Developer Tools Mobile SEO Web
Featured image originally by Phil Koch