Overall Satisfaction with AWS Lambda
We are building a system for log and data processing in AWS Lambda, S3, DynamoDB and Redshift. Data is collected and uploaded to S3 and a Lambda will be invoked to do the main processing function. It extracts and analyzes data, then puts metadata into DynamoDB and main data into Redshift. With Lambda, we are able to spin up thousands of the instances to process input S3 objects in a very short time and then remove them when finished, all with the same pattern and high performance. It saves on our development cost as implementing and deploying AWS Lambda is quite simple compared with EC2 or other services.
- Simple implementation and deployment.
- Quickly scale up and down on demand.
- High performance and high availability.
- Well integrated with other AWS services like S3, SQS, IAM, and SNS.
- Save costs as we only pay for our Lambda function when it is triggered.
- Have a limit on accessing underline VM.
- Lack of name and documentation for Lambda function.
- Not well integrated with VPC, which will face an issue when Lambda function needs to access the resource both inside and outside VPC.
- Save cost on both AWS infrastructure and development effort.
- Improve speed on data processing.
- Simple to maintain and manage processes.
We considered using application deploy in EC2 with Auto Scale but ended up with AWS Lambda as it helps us to simplify our development and deployment process. It allows us to quickly create instances in a short time for processing data when the source application uploads data into S3.