On our last ReeTalk, we had the pleasure to learn about AWS Amplify. We all love the cloud, the innovation happening at AWS, and use their services on a daily basis. So, we were excited about learning more about this, what many call, a “hot topic”. To make things more interesting, this informative talk came straight from the AWS source itself - Darko Mesaros. Darko works for AWS as a senior developer advocate. Indeed, Darko was the ideal authority to demonstrate the benefits of using AWS Amplify.
So what is AWS Amplify?
In short, AWS Amplify is a set of tools to speed up building and deploying mobile or web apps. As Darko has demonstrated during the live session of using the AWS Amplify command line, we can use this service to build and deploy applications within minutes. Darko successfully built an application and deployed it literally within minutes. This included also authentication logic (with AWS Cognito), storage space (with S3), and database (MongoDB), all using simple command-line commands to enable this extra functionality without much effort.
To put this in perspective, just imagine how long it would take an engineer or team of engineers to manually:
- Configure storage space for the application, e.g. S3.
- Install and configure databases, e.g. MongoDB.
- Create an authentication system.
- Integrate the application with the storage, database, and authentication system.
- Create a pipeline for compiling the application.
- Configure a server that can host the application, i.e. provision the infrastructure, configure the load balancer, networks, Nginx, SSL certificates, etc...
- Process to deploy the application.
- For any additional environment, e.g. test or staging environment, repeat some of the steps from above.
- There are a lot more steps involved in releasing an application, but you do get the picture hopefully.
Our guess to accomplish the above is around one to a few days for a skilled engineer. Seeing this done in minutes made us realize that this indeed is a solution for some of our more “agile” projects. This comes especially handy when you are experimenting with some ideas or are racing to release that MVP. In those circumstances, you generally do not wish to spend time on setting up the build and deployment process, but rather on application development. And, this is exactly what AWS Amplify has to offer.
Also, another good aspect of AWS Amplify is, when you wish to scrap the application, it’s a single command line to delete and release all resources used. This makes it ideal for experimentation purposes as not to worry about leaving some resources behind that would incur unnecessary cost.
AWS Amplify is nothing new, it has been around for more than two years. We have visited a few workshops on AWS Amplify on our last visit at the AWS re:Invent conference in Las Vegas in 2019. Although the technology looked promising, it was still immature and lacking much of the functionality it has today. It is impressive how far AWS Amplify has come in two years, and given its popularity, things will only get better, with more support for different languages, frameworks, and other functionalities that help us to be more productive.
On another note, AWS Amplify is opinionated, which is what allows it to be a great tool to boost one’s productivity as long as you conform to its design decisions. On the downside, this means that you have to adhere to those design decisions, like it or not, its functionality, and stick with using AWS Amplify in a way that it was intended to be used. In case you wish to extend its functionality with plugins, have some fine-tuned customizations, or just like the flexibility and do not like conforming to a particular toolset or framework, then you should perhaps look into other services, e.g. AWS CDK. Being familiar with both allows choosing the right tool for your next project.
Please follow us for more ReeTalks in the future. Also, follow Darko on Twitch and other social media for cool, geeky, and intriguing projects and streams, e.g. connecting a Commodore 64 to the internet and AWS - it’s the geeky stuff we just love and live for.