Amazon web services, being one of the largest cloud platforms, have come up with a new service called AWS Amplify in 2017. AWS Amplify is a set of tools and services designed to make it easy for developers to create and launch apps in AWS, including code libraries, ready-to-use components, and a built-in CLI. With Amplify, you can configure app backends and connect your app in minutes, deploy static web apps in a few clicks, and easily manage app content outside the AWS console. Amplify manages the entire application in 3 parts
- Front End: UX
- Backend: Auth, Business Logic, Data, Analytics
Benefits of AWS Amplify:
- Configure backends fast
Use the Amplify admin UI and CLI's intuitive workflows to set up scalable AWS backends with authentication, storage, data, and other common use cases.
- Seamlessly connect frontends
Use the Amplify libraries in your web, Android, and iOS apps to connect to new and existing AWS resources in just a few lines of code
- Deploy in a few clicks
Use the Amplify console to host static websites and single-page web apps with a Git-based workflow, simply by connecting your app's repository.
- Easily manage content
Use the Amplify admin UI to provide non-developers with administrative access to manage app users and app content without an AWS account.
AWS Amplify has components for:
- Data storage
- Keep your app data synced with the cloud, manage your distributed data, and handle subscriptions and messaging.
- Track user sessions and report on their behaviour. Set up custom attributes and analyze conversion funnels.
- Push notifications
- Easily manage your campaigns and send messages to your users across multiple channels, including text, email, and push.
- Access ready-to-use workflows for MFA, single sign-on, forgot password, etc.
What do we understand by serverless:
- No servers to provision or manage
- Scales with usage
- Never pay for idle
- Availability and fault tolerance built-in:
Significance of amplifying for serverless technology stack:
Traditional basic technology stack involves users accessing the APIs via API servers, having backend configured for those APIs and underlying datastore systems and databases. To implement the robust full-fledged architecture, we consider Failover, Load balancers, Web/application servers, Message buses, Workers, etc.
With a serverless technology stack, we do not have to worry about the deployment aspects of this, meaning failover, load balancers, web app servers, and all these are taken care of. That being said, all the code you will ever write is just the business logic.
Build a basic serverless application:
That being said, AWS Amplify is very useful in building a modern production-ready web application that entails many basic yet sophisticated requirements, including (but not limited to authentication) analytics, an API layer, storage, caching, offline functionality, CICD, and automated infrastructure deployments.
Sample Serverless Backend on AWS:
My experience in Aws amplify:
Recently I got the opportunity to work on AWS amplify in one of the projects for Building a Custom data platform for data engineers, data scientists, data administrators using AWS services. This platform was intended for flexible data analysis by using AWS services like lambda, glue, SageMaker, ECS, etc. All these will have a fully customized user interface to use AWS services, drag and drop features to use pre-built modules, etc. In the architecture of the project, AWS Amplify played a vital role in the automated deployment of the front end, backend, cloud services, automated CICD, data storage, etc.
AWS Amplify isn’t very robust yet. However, while working, it seemed useful in building a modern production-ready web application that entails many basic yet sophisticated requirements, including (but not limited to authentication) analytics, an API layer, storage, caching, offline functionality, CICD, and automated infrastructure deployments.