Introduction to the top 4 AWS services
In order to build and launch your MVP, you’ll likely need to rely on cloud services. Amazon Web Services (AWS) is the way to go these days, and despite the fact that it seems difficult to learn about all the different cloud services it provides, you should start by understanding only a few of them. Below are the top 4 AWS services you’ll need to rely on.
AWS CloudFront is a content delivery network (CDN). Content delivery networks provide a globally-distributed network of proxy servers that cache content, such as images or documents, more locally to consumers, thus improving access speed for downloading the content.
You configure CloudFront by choosing the distribution region and the AWS S3 bucket that has the contents to be delivered. CloudFront pricing is based on internet traffic and not on internal traffic (from S3).
AWS Simple Storage Service
AWS Simple Storage Service (or S3) provides object storage through web services interfaces. Typically, your backend that runs on Elastic Beanstalk web servers will store documents, dynamic images (such as user profile images), and so on, in S3. The main reason to use S3 is to decouple storage from web servers and prevent problems such as object replication (when you have multiple web servers) or running out of disk space.
And what if a web server “dies”? You’d lose all your document objects unless you have a backup. But that won’t happen if you design your system to use S3 which is very reliable and virtually unlimited. What if for compliance reasons you need to have your documents replicated in different geographical locations? With S3 you can configure that in a few clicks. Standard S3 storage is also very cheap at 2.3 cents per GB per month.
AWS Elastic Beanstalk
AWS Elastic Beanstalk is a service for deploying infrastructure which you can use to autoscale your AWS EC2 web servers while also providing Load Balancing and some DDoS (distributed denial of service) protection. It also takes care of the OS and platform maintenance so you can focus on writing code. To deploy into Elastic Beanstalk you just need to upload your code to AWS and, when you have multiple servers, you can also configure it for rolling updates so that you can have virtually zero downtime.
Need to scale up your processing power during daytime or based on traffic? No problem! That’s a few clicks on the Elastic Beanstalk console. Typically, Elastic Beanstalk can be used to host backends with an admin site and APIs that the front end will communicate with.
AWS Relational Database Service
AWS Relational Database Service (or Amazon RDS) is a distributed relational database service by AWS. It’s a service designed to simplify the setup, operation, and scaling of a relational database for use in applications. Complex administration processes, such as patching the database software, geo-replication, backing up databases and enabling point-in-time recovery, are managed automatically.
Scaling storage and compute resources can be performed by a single API call. RDS supports all the well-known database engines such as MySQL and PostgreSQL, and it’s the place where you store all your user and application data.
Using this scalable and reliable architecture, based on the top 4 AWS services, you can save a lot of money at the initial phases of your product launch. Depending on your domain, this could easily scale to thousands or millions of users, and the best part is that designing a system to use these technologies takes the same effort as a more traditional architecture.