7 reasons you should be hosted on AWS
Amazon Web Services is one of the leading hosting providers, here’s why.
Here are 7 reasons you should pick AWS over the rest whether you’re building your next side project or deciding where to deploy your startup’s product.
These points apply both to an AWS to VPS providers or Platform as a Service (eg. Heroku) comparison and to an AWS to other infrastructure providers.
1. Breadth of services
AWS has best in class services across the board. File storage (S3), standard VPS offering (EC2), load balancers (ELB), databases (RDS, DynamoDB), caching (ElastiCache), CDN (CloudFront), the list goes on.
It also has services you may not find everywhere else. EC2 Container Service (which allows you to deploy Docker containers), Lambda (on demand functions) or AWS IoT (orchestration layer between IoT devices and other AWS services) are not all part of competitors’ offerings.
In addition to a VPS the majority of web applications need some of these other services (CDN for assets, database).
Best of all it’s all managed from a single dashboard where you get the breakdown of all your costs and where they originate from. Centralising your deployments on AWS mean that you won’t have to figure out what that cryptic recurring charge on your bank statement is. You don’t need the extra complexity and friction of your database, application and worker processes being hosted on different services, one central place that can provide all of them will be worth it in the long run.
2. Depth of services
Services like IAM (Identity and Access Management) allow you to easily create users with variable levels of access rights.
Some users may only need read access to very particular instances of a service eg. QAs who need to grab media from an S3 bucket. Some users may not need logon credentials at all eg. automation users only require an AWS id and secret. IAM allows you to do all of the above.
The AWS dashboard is terribly complex but that complexity is due to all the options at the user’s disposal, EC2 instances can be part of a VPS or they can be public. They can be automatically or manually deployed and scaled in multiple different configurations.
3. Fast transfer and cohesion between AWS components
If you’re hosted on Linode/DigitalOcean/Vultr and you want to fetch a large S3 file, your latency can be a coupe of seconds on a good day and closer to 30s on a bad one.
From an EC2 instance, since you’re in the same physical data centres, that fetch will take under a second.
The same goes for writing to S3, interacting with databases. There are simply less things that can fail between where you need to use some data and where the data is stored. Common use cases for AWS (that are actually quite complex if you think about it) are usually well documented although the documentation itself is a bit cryptic and unwieldy at times.
4. Performance and flexibility
Amazon has multiple data centres on each continent and makes it stupidly easy to deploy in multiple availability zones. This means that even if one data centre floods or physically disappears your application will still be online.
There are subtle differences between some services and even in the offerings within a service. For example EC2 has “General Purpose”, “Compute Optimized”, “Memory Optimized”, “Accelerated Computing” and “Storage Optimized” instances. This is all within the VPS offering whereas Linode and DigitalOcean simply offer boxes with more RAM, larger disks and faster CPUs.
This variety can be daunting when starting out but comes in handy when it comes to fine-tuning the deployment.
5. Pay for what you use + free tier
You get a whole year of selected AWS services for free. A whole year, of multiple services as opposed to $5–10/month for a single server.
On AWS you only pay for what you use. This means that you can, for example switch off the whole staging/development environment out of business hours (to save on costs). This also means that scaling services up and down makes a whole lot more sense. You can now handle large amounts of traffic and small amounts of traffic for the right price.
6. No one gets fired for buying IBM
Netflix is hosted on AWS. This is the same Netflix that is competing with Amazon in the streaming space. If Netflix believes it makes sense to be hosted on AWS, it probably makes sense for you to be hosted there too.
The truth is, unless you’re going to host your application in a dedicated data centre, some part of your application will eventually be hosted on AWS, too many of the services you’re integrating with are hosted there (see point about transfer speed between AWS services, it also applies to services you are not paying for). If you will have to move to AWS “at some point” you may as begin there and save yourself the hassle.
7. Ridiculously complicated naming
Read the following for a quick introduction to AWS’ services and what their names should have been:
AWS in Plain English
But with 50 plus opaquely named services, we decided that enough was enough and that some plain english descriptions…
The last reason you should use AWS is that once you become familiar with the service names you will sound like you’re speaking a foreign language when you talk about your deployment: “My ELB was having trouble distributing to the EC2s due to some Route53/CloudFront issue.”
Frankly, who doesn’t want to be part of the cool crew?
The next time you’re wondering whether or not to deploy to AWS, save yourself the trouble and just do it.