Not so long ago, my project moved from DigitalOcean to AWS. Part of the reason was increased workloads, and a $5 droplet was not enough. However, the main reason is that I want to play around with a serious technology stack, and the best way to do this is by implementing some kind of pet-project. Django, PostGIS, SPARQL, WebSockets and React have already been tested, it's up to the deployment and creation of the infrastructure. I had a choice of 3 platforms: Microsoft Azure, Google Cloud Platform and Amazon Web Services. All of them provide a certain amount of resources in a trial period that lasts a year. Since I use AWS at work, and have been working with it for more than a year, I settled on the last option. Also learn more about the Benefits of AWS Solutions for Startups.
Before moving to AWS, I would like to understand why. To do this, I will make a list of pro and contra. Pros:
- virtual machine with 1 Gb RAM, a separate database, storage for files, and even with a CDN for a year - FREE OF CHARGE!
- now you don't have to worry about setting up postgres or redis
- AWS CLI - you can deploy servers directly from the console
- pay only for what you use
- you pay for everything you use
- maintenance becomes expensive after the trial period
- creepy vendor-lock
- hardware sometimes dies, and technical support can only advise you to restore from a backup
AWS is designed primarily for medium to large businesses. I want to show how it can be useful to an individual developer. Firstly, the prices… They just skyrocket. If virtual machines cost about the same as DO, then you have to pay $ 13 / mo for the weakest database. I want to meet this sum . BUT! This is if you do not care about costs. AWS provides a big discount when renting servers for a long time, up to 50%. For example, you can rent a car similar to $10/mo from DO for only $69/1ye or $124/3ye. But there are also some nuances, which I will discuss in more detail in future articles. For now, it’s enough to remember that you can save a lot on renting resources for a long time.
Secondly, you will pay for all resources. You need a place on a virtual machine - pay, upload it to the database from home - pay for traffic, look at the list of files in the S3 directory - pay too. By the way, there is usually a free quota, which, in principle, is enough ... but uploading a 100 Gb photo archive to S3 can cost $ 11.36 ($8.91 data transfer + $0.15 for 30k save requests + $2.3/mo for storage). So keep in mind that traffic and requests here are not always free.
Thirdly, if you intend to use something other than virtual machines, databases, caches and storage, then you risk staying on AWS forever. It is not at all necessary that Google or Microsoft will have analogues of services. So be careful! Nevertheless, if you fit into the framework of the free annual service , then nothing prevents you from opening a new account after the first year and moving there 🙂 Yes, there are nuances, but this is quite a working scheme.
Fourth, iron dies. A couple of times the car was simply not reachable. Technical support suggested killing the virtual machine and restoring it from the backup, and for a very long time wondered how we don’t have a backup 🙂 Just kidding, always make backups. Fortunately, for some services they are free and are done automatically.
In general, if you know the features of the platform, then the content of the project can be even cheaper than on DigitalOcean, and certainly cheaper than Heroku. There will be a separate article on pricing policy.
SO DO I NEED IT OR NOT?
Perhaps the most important question 🙂 So, my recommendations:
- you are a programmer and want to learn cloud architecture - definitely worth it! It seems that 2⁄3 companies in the west are on AWS, and the rest on Google Cloud.
- you are a small startup - worth it, but don't get carried away. Consider that the first year you will be hosted for free, but after that you will either buy out the rent at least a year in advance, or move to a new account, or move out completely. So don't fall for vendor-lock.
- you are a small company - already in question. Redeem several virtual machines for 3 years in advance and deploy the environment yourself. It is unlikely that you will need a separate redis for $12/mo, but your own virtual machine with it will cost only $3.
- you are a web studio - similar to the previous paragraph. If there is a pool of clients, then all of them can be hosted by making shared hosting. The load increases - transfer the client to a separate machine and take more money. That's all for now