Going serverless with AWS Amplify

Posted by Pooja Shinde on Sep 15, 2021 3:22:08 PM

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
  • CI/CD

777

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.

888

AWS Amplify has components for:
  • Data storage
  • Keep your app data synced with the cloud, manage your distributed data, and handle subscriptions and messaging.
  • Analytics
  • 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.
  • Authentication
  • 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:

A very basic and simple serverless architecture can be designed using AWS Lambda, Amazon API Gateway, Amazon DynamoDB, Amazon Cognito, and AWS Amplify Console. Amplify Console provides continuous deployment and hosting of the static web resources, including HTML, CSS, JavaScript, and image files which are loaded in the user's browser. JavaScript executed in the browser sends and receives data from a public backend API built using Lambda and API Gateway. Amazon Cognito provides user management and authentication functions to secure the backend API. Finally, DynamoDB provides a persistence layer where data can be stored by the API's Lambda function.

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:

999

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.

Concluding Thoughts:

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.

References: