What is our primary use case?
I use AWS Amplify along with AWS EC2, AWS Lambda, Amazon Pinpoint, and others. AWS Amplify, in particular, has been quite straightforward to use.
We've used AWS Amplify for several applications. Initially, it was for a specific project that required integration with third-party services and managing backend services. AWS Amplify was instrumental in managing AWS services like Amazon DynamoDB and others for us.
How has it helped my organization?
We use Amplify with our frontend (product) and backend (basically AWS). Amplify manages various AWS services for us, like DynamoDB, CloudFormation, and others. We customize it for our use case, of course. But let's say I want to add functionalities like antivirus or another database, or manage Lambda functions from the CLI or code. In those cases, we use the AWS console for those specific things. But Amplify is our main point of contact for backend changes through code, and it applies those changes seamlessly.
We have different environments like Dev, NetEnv, and UAT, so we need to change our configuration file depending on where we're deploying. The CLI handles this easily.
Typically, whenever we make changes and need to switch environments (e.g., dev to production), it's easy for our developers to maintain the state of each environment and make customizations as needed. They don't necessarily need to involve the cloud team for basic management.
For anything deeply related to settings, we involve them. But at the developer level, for common functionalities like setting up the initial tech stack (database, Lambda functions, notifications), Amplify with the CLI pretty much handles everything.
What is most valuable?
The Amplify CLI acts as a single source of truth. You install the SDK from there, and using the Amplify API, you can talk to and manage AWS services directly from your code. You don't need to go to the GUI and click through menus - everything is manageable through the Amplify API at the code level.
AWS Amplify integrates seamlessly with other services through AWS CloudFormation. Amplify first connects to the cloud for me. Whenever we write down the SDK, it's managed by CloudFormation. CloudFormation still happens on our cloud for your application because everything is updated with the help of cloud automation.
Anything we need to change, we just add it to Amplify, and Amplify triggers the CloudFormation templates. Then it logs permission, updates the whole thing, or whatever you need it to ask.
What needs improvement?
AWS can implement multiple web applications, and cross-platform applications, like iOS (AWS currently supports Android). They have Node.js, but they can also maybe integrate with cross-platform functionalities.
For how long have I used the solution?
I have been using it for two years.
What do I think about the stability of the solution?
I would rate the stability an eight out of ten. If we face any issues, they can be addressed directly with AWS support.
There are no big issues with Amplify itself. You just need to properly follow the documentation and set up everything for it to run smoothly. It can be a bit tricky initially.
What do I think about the scalability of the solution?
Amplify manages app users and containers automatically. It scales similarly to other services, meaning you can scale properly depending on certain parameters like user upload and request access.
However, Amplify doesn't directly manage application load balancing. You might need an Application Load Balancer in between to manage user load.
How are customer service and support?
The customer service and support are fantastic. AWS depends on your plan and urgency. If you're in production and need support at that critical level, they'll support you quickly, digging deep into the main problem and how they can resolve it.
They also try to resolve it from their end as well as with their main back-end team. They also implement a safe environment to test things if there's an AWS use case where nothing seems to work. Then, they'll guide you based on your criticality or priority.
How would you rate customer service and support?
Which solution did I use previously and why did I switch?
In software development, we might use Flutter or any local front-end application. Then, we connect to services at AWS via the AWS SDK or various AWS APIs to manage the app.
But Amplify simplifies everything by maintaining and managing AWS services with the application. It eliminates the need to install and manage third-party tools.
How was the initial setup?
The initial setup can be a bit tricky at times, but it's pretty good overall. But sometimes, because we initially set up with your local Android Studio, your local service, it can take some time.
If you've read the programming documentation and have enough resources, then it's easy for you. Or if you have an AWS subscription plan to get help from AWS, then, the setup is easy.
Otherwise, you might need more clarity on simplification of how you set up with Amplify and how you can do so. Then, if you need other guidance at each step, how can you set it up, that is also a way to go.
What's my experience with pricing, setup cost, and licensing?
The pricing depends on what your use case is and whether you're an existing AWS customer. It's a pay-as-you-go model, so not expensive.
And for the free tier, you get 1,000 builds per minute, up to 5 gigabytes of storage on CDN, and no cost up to 15 gigabytes per month of data transfer.
You can also get discounts for pushing 5 lakhs logs per month and one hundred million request durations per month. These offers are for the first month or year, and then their regular pricing kicks in.
There are no charges below one dollar, but above one dollar, the cost depends on your specific requests and application usage.
What other advice do I have?
Overall, I would rate the solution an eight out of ten. I would definitely recommend using this solution.