What is our primary use case?
I am an AWS Certified Solution Architect Associate as well as a Certified Cloud Practitioner, and I am currently pursuing the development specialty. I mainly use AWS to develop cloud solutions for clients.
As a Solution Architect Associate with focus on development, my clients typically ask me to help them personalize AWS services as they pertain to the client's business. For example, I will often work with AWS SQS queues, ETL jobs, APIs and storage, and other services offered by AWS in the cloud.
Generally, my work has more to do with development rather than architecture, and other AWS services that I use include EC2, S3, Lambda, API Gateway, Amazon Connect, Alexa, DynamoDB, ECS, and EKS.
My daily activities are essentially focused around implementing AWS services for clients who want to migrate their existing computing infrastructure to the cloud. For example, if a data center is on-premise, our solution is to bring that data center to the cloud. This kind of migration includes moving all the applications that a company uses to the cloud in progressive steps. We also work to enhance their applications with extra code and the advanced features that the AWS cloud offers, like Lambda for instance.
The clients that I work with — which include large organizations like universities — also use cloud providers other than AWS, including 3Cloud, Google Cloud Platform, and Microsoft Azure. I, however, specialize only in AWS and Azure.
How has it helped my organization?
Here is an example of how AWS has helped one of our clients: With Amazon Connect, we can track all activity in the past and in real-time, so we can know how many calls are in progress and if there are any problems. With a student payment system, for example, if a student has a problem because their credit card was rejected, we're able to trigger an SMS notification to somebody so they can contact the student to make a payment with a different form.
The university is thus able to offer a streamlined payment service with automatic fallback options (e.g. receiving payments with a card reader in person) and all of this is automated thanks to AWS Lambda, which lets us handle customized metrics automatically and in real time.
What is most valuable?
The AWS feature that I most enjoy is Lambda functions. I primarily use serverless components because they allow you to process things without having to compromise on resources like when running EC2 instances or virtual machines. With minimal effort, you can scale up an unlimited number of processes, even concurrently, to process things. I frequently work with web APIs, so I use Lambda a lot in this area.
What needs improvement?
Recently we had a long conversation about functionality that is missing in Alexa — in Mexico, specifically. Alexa for Business is a service and platform that Americans can use to make a call to an Amazon Echo device or a telephone via the app. But in Mexico, we are not allowed to use that technology. This is a significant disadvantage of AWS for those living in Mexico.
I also think that Amazon Rekognition could be improved. For example, I have used Rekognition to label things like trucks, buses, etc. Then we put a camera in front of a bus, so that we can send notifications if the bus driver overtakes another car on the wrong side of the road. However, it seems that Rekognition's machine learning doesn't yet have the capabilities needed to make this kind of labeling and recognition system work properly. Thus, we've had to resort to alternative solutions.
And in terms of how easy it is to learn, Amazon doesn't have the most friendly educational platform. It is very obtuse, in fact. I have wasted a lot of time and effort studying through the official channels, so now I mostly use Udemy courses instead. They are very practical and much simpler, but I would still prefer to learn from the official educational platform if it were improved.
For how long have I used the solution?
I have been using AWS for about five years now.
What do I think about the stability of the solution?
The stability of AWS is very good.
What do I think about the scalability of the solution?
I work with AWS Lambda all the time and I never have any problems with scaling. Recently, Lambda launched a new billing system, which is cost per millisecond. Before, we would get cost per hundred milliseconds, as the minimum, and now if we use only 10 milliseconds, then the cost for 10 milliseconds is exactly how much we have to pay. So that's great, because now I can scale my functions with a precise cost calculation.
How are customer service and technical support?
I currently have several issues with Amazon Connect because we can only obtain two telephone numbers by default. With this scenario, there was a very difficult process to let Amazon know that we are not working for ourselves in our console, and that we offer our services as a third party, in terms of SaaS and IaaS, to our customers.
I'm not directly involved in the creation of accounts, and I just use them once they are created on the company or client's side. But in Amazon Connect, when we needed to add more users, the time response from Amazon was two or three days. We are subscribed to the developer support plan, and I think two or three days is a lot of time.
How was the initial setup?
Either my company or the clients usually have the console already set up when I start work on it, so there's not much in the way of setup that I can comment on.
What about the implementation team?
With the AWS projects that I lead for clients, it's basically just me that works on deployment, implementation, and maintenance.
What's my experience with pricing, setup cost, and licensing?
When it comes to professional certification in AWS, I implore others to study hard before your exams because $300 is a painful waste of money if you fail.
With AWS products, there is a steep learning curve and I think there are so many aspects because it is really an ecosystem. If you are committed to reducing costs, or increasing performance, or optimizing in any manner, you have to know the solution really well.
I think the best way to achieve this is by experience, but if you don't have any experience, studying hard is the next best thing to do.
Which other solutions did I evaluate?
The two alternatives I've considered are Microsoft Azure and Google Cloud Platform. However, because I am only certified in AWS, I don't know the difference between, for example, Microsoft functions in Azure and AWS Lambda functions in a commercial sense.
In a technical sense, though, AWS seems to be more comprehensive in the programming languages that it supports. For example, with AWS Lambda functions I can program in Python, PHP, Go, and many others, but with functions in Azure, you are limited to fewer options.
To our client, it's neither here nor there, because they're typically not involved in the actual development, but if you use Azure architecture then you're going to be limited to the programming languages that Microsoft supports.
What other advice do I have?
If you want to take advantage of all the benefits that AWS offers, then it's best to take the time to learn how the entire ecosystem, and each part of it, works.
I would rate Amazon AWS a nine out of ten.
Which deployment model are you using for this solution?
If public cloud, private cloud, or hybrid cloud, which cloud provider do you use?
Amazon Web Services (AWS)