Amazon EC2 Auto Scaling helps users maintain application availability and allows users to automatically add or remove EC2 instances according to definable conditions.
N/A
AWS Lambda
Score 8.5 out of 10
N/A
AWS Lambda is a serverless computing platform that lets users run code without provisioning or managing servers. With Lambda, users can run code for virtually any type of app or backend service—all with zero administration. It takes of requirements to run and scale code with high availability.
The main reason is our total infra is created on AWS and we tend to use the natural service by AWS rather than third party tools, which has more advantages when the auto scaling interacts with other AWS services and its way easy to configure when we compare it with counter …
If you need to establish a system right away, in the past it took weeks or months to request a quote from the vendor and receive the equipment. Now, with Amazon EC2 in less than tens of minutes or hours, you can create a test environment and test it without any inconvenience.
Lambda excels at event-driven, short-lived tasks, such as processing files or building simple APIs. However, it's less ideal for long-running, computationally intensive, or applications that rely on carrying the state between jobs. Cold starts and constant load can easily balloon the costs.
Developing test cases for Lambda functions can be difficult. For functions that require some sort of input it can be tough to develop the proper payload and event for a test.
For the uninitiated, deploying functions with Infrastructure as Code tools can be a challenging undertaking.
Logging the output of a function feels disjointed from running the function in the console. A tighter integration with operational logging would be appreciated, perhaps being able to view function logs from the Lambda console instead of having to navigate over to CloudWatch.
Sometimes its difficult to determine the correct permissions needed for Lambda execution from other AWS services.
Usability is good since we already know how AWS works. For those that are new it might be a little bit confusing at the beginning but they are improving it at a fast pace. Even though AWS keeps changing the user interface constantly, it is still powerful, understandable and easy to use. For technical people, they still offer the CLI.
I give it a seven is usability because it's AWS. Their UI's are always clunkier than the competition and their documentation is rather cumbersome. There's SO MUCH to dig through and it's a gamble if you actually end up finding the corresponding info if it will actually help. Like I said before, going to google with a specific problem is likely a better route because AWS is quite ubiquitous and chances are you're not the first to encounter the problem. That being said, using SAM (Serverless application model) and it's SAM Local environment makes running local instances of your Lambdas in dev environments painless and quite fun. Using Nodejs + Lambda + SAM Local + VS Code debugger = AWESOME.
The platform works as is. The help and tutorials on the help page can help you to setup the entire platform without problems, and also provides help on a huge variety of problems. Amazon also provides support plans. We have the basic support plan, but Amazon offers three support tiers, and we know that it works perfect.
Amazon consistently provides comprehensive and easy-to-parse documentation of all AWS features and services. Most development team members find what they need with a quick internet search of the AWS documentation available online. If you need advanced support, though, you might need to engage an AWS engineer, and that could be an unexpected (or unwelcome) expense.
The main reason is our total infra is created on AWS and we tend to use the natural service by AWS rather than third party tools, which has more advantages when the auto scaling interacts with other AWS services and its way easy to configure when we compare it with counter parts like Autoscale from Microsoft Azure.
AWS Lambda is good for short running functions, and ideally in response to events within AWS. Google App Engine is a more robust environment which can have complex code running for long periods of time, and across more than one instance of hardware. Google App Engine allows for both front-end and back-end infrastructure, while AWS Lambda is only for small back-end functions
We will devote more time to development than server administration, but we will require additional time if you migrate from another ecosystem.
Fault detection and reporting are automated in the old server, and bandwidth is fixed per month, but everything is manageable automatically. We only pay for the resources we use.
After some months, we met our return on investment (ROI).
Positive - Only paying for when code is run, unlike virtual machines where you pay always regardless of processing power usage.
Positive - Scalability and accommodating larger amounts of demand is much cheaper. Instead of scaling up virtual machines and increasing the prices you pay for that, you are just increasing the number of times your lambda function is run.
Negative - Debugging/troubleshooting, and developing for lambda functions take a bit more time to get used to, and migrating code from virtual machines and normal processes to Lambda functions can take a bit of time.