Many advantages of running your application in the cloud are well known:
- Scalability: you can have a new server with a few clicks
- Availability: setting up proper backups and running virtual machines in multiple physical locations is pretty easy)
- Cost savings: you don’t have to maintain your servers or buy hardware and the economics of scale and the competition in this market is causing prices to drop
As you launch virtual machines in the cloud, you won’t have to manage the hardware which is a great advantage. However, you still have to manage and your operating systems and the software running on it, which can be quite a bit of work. When using Amazon Web Services for your cloud applications, you can use several services where much of this work is automatically done, reducing your maintenance effort to almost zero. Note that Microsoft Azure also has similar functionality.
The amazon services:
Databases with Amazon RDS
Amazon RDS allows you to launch MySQL, PostgreSQL, Oracle and SQL Server databases.
- You won’t have to manage the operating system
- Serving your databases from multiple availability zones for very high availability is a matter of pressing 1 click
- It automatically makes weekly backups (configurable)
- It automatically upgrades your database to the latest minor version (configurable)
Webapps with Elastic Beanstalk
Elastic Beanstalk makes it very easy to deploy a webapp of one of the following platforms: PHP, Node.js, IIS, Tomcat, Python, Ruby, Glassfish and Go. It is compatible with Docker, and with it you can do advanced deployments with any platform. It has similar advantages to Amazon RDS:
- You won’t have to manage the operating system here as well
- Using a loadbalancer and multiple webservices is a matter of selecting the appropriate checkboxes in a wizard
- The instances are deployed across multiple availability zones by default, resulting in very high availability
- By default, instances will automatically be created and destroyed depending on how much your webapp is used
- A list of all previous versions of your webapp is maintained and there’s functionality to easily switch to an older version
- Deploying a new version of a webapp can be done with only a limited of instances at a time enabling you to upgrade your webapp without any downtime.
By using Amazon RDS and Amazon Elastic Beanstalk, we no longer have to worry about keeping my operating system, webserver and database up-to-date. Therefore, if you are planning on launching a virtual machine, I strongly suggest looking at these services first.
In case you want to try these services, please look at my next blog as I’ll talk you through setting it up.