Category: aws

Should you minify Lambda code?

I thought minimizing Lambda function code was a best practice for Lambda optimization - it's even recommended by AWS in a not-so-old blog post. Turns out, I was wrong.
April 12, 2024
Read more

Next-Level Integration Testing with ServerlessSpy

Integration testing for serverless Event-Driven Architecture is as necessary as it is time-consuming. Boilerplate code to write, long waiting for tests completion, tedious debugging. But no more.
March 26, 2024
Read more

25 Good and Bad Serverless (and other) Announcements from re:Invent 2023

AWS re:Invent 2023 ended, so let's look at the most interesting announcements for serverless and more. There are exciting features to try and, maybe more importantly, features to avoid!
December 4, 2023
Read more

Dynamic Content with Lambda Response Streaming

With some creativity, we can use Lambda Response Streaming to dynamically show status updates, like the progress of long-running processes. And with proper TypeScript types and generator functions, we can write clean, dynamic content streaming Lambda with composable payload enrichers that will impress your work colleagues (if they are into this stuff).
November 22, 2023
Read more

Forcing Lambda Response Streaming to Flush Content

Lambda Response Streaming allows sending incremental responses, but those response chunks can arrive long after you write them. They are buffered in a rather unexpected way, delaying all messages you stream. But there is a workaround to force the stream to flush.
September 19, 2023
Read more

Building a CDK Construct Library: thoughts and tips

I recently created a CDK library provisioning a CI/CD pipeline for serverless apps on AWS. Having finished the "regular" JS library, it took me a day to convert it to a "proper" CDK Construct library. Not long, and I learned a lot. Here are my thoughts and tips.
June 14, 2023
Read more

AWS Lambda - Node.js vs. Python for serverless

After tabs vs. spaces, vi vs. emacs, let's fight over this: which is better, Node.js or Python for AWS Lambda and serverless in general? I have my opinion on this, and the fact I prefer TypeScript over Python makes me only slightly biased.
March 15, 2023
Read more

Understanding Logical IDs in CDK and CloudFormation

CDK generates Logical IDs used by the CloudFormation to track and identify resources. In this post, I'll explain what Logical IDs are, how they're generated, and why they're important. Understanding this will help you avoid unexpected resource deletions and baffling "resource already exists" errors during deployment.
January 17, 2023
Read more

Top 12 Serverless Announcements from re:Invent 2022

re:Invent 2022, the annual AWS conference in Las Vegas, is now behind us. I did not attend in person, but that gave me time to consolidate this list of top new serverless features while everyone else is sleeping off the intense 5-day conference. And I envy them just a little.
December 6, 2022
Read more

How to pass AWS Certification exams

I've never cared too much about certificates, apart from the SSL ones (haha). And yet I passed 7 AWS exams. Why? How to prepare? How to pass? How to pay only 50% for the exam? I answer all this and more in this post.
November 23, 2022
Read more

Running Serverless ML on AWS Lambda

Yes, you can run Machine Learning models on serverless, directly with AWS Lambda. I know because I built and productionized such solutions. It's not complicated, but there are a few things to be aware of. I explain them in this in-depth tutorial, where we build a serverless ML pipeline.
November 10, 2022
Read more

Least deployment privilege with CDK Bootstrap

Security is not convenient. That's probably why the CDK, by default, uses AdministratorAccess Policy to deploy resources. But we can easily change it and increase the security of our AWS account, following the least privilege principle with a minimal additional burden.
August 30, 2022
Read more

The AWS CDK, Or Why I Stopped Being a CDK Skeptic

Until recently, I was skeptical about the AWS CDK. I believe in Infrastructure as Code (IaC), but with the "code" being YAML. But after using CDK in real projects, the amount of heavy lifting it does and the vast reduction of a boilerplate code changed my view.
June 29, 2022
Read more

Decision Tree: choose the right AWS messaging service

Have you ever been stuck deciding between SQS, SNS, Kinesis Streams, and EventBridge? Struggled to pick the right one for your use case? If the answer is "yes", I've got you covered with a simple decision tree to help you make the right decision.
April 12, 2022
Read more

Personal backup to Amazon S3 - cheap and easy

In need to backup my personal files in the cloud, I wrote a script that archives the data into the Amazon S3 bucket. After some fine-tuning and solving a bunch of edge-cases, it's limited mainly by the disk read and my internet upload speed. And it costs me only $3.70 per TiB per month.
March 9, 2022
Read more

6 Common Pitfalls of AWS Lambda with Kinesis Trigger

The simplicity of setting up a Kinesis trigger for a Lambda function may be deceptive. There are pitfalls that can cause problems we will spot only later, in the production environment. I learned about some of them the hard way, so let's say I speak from the experience.
December 21, 2021
Read more

Headless CMS with Gatsby on AWS for $0.00 per month

Can you have a website with a CMS on AWS and not pay just for its existence? I looked at Amazon Lightsail, headless WordPress, and Webiny CMS but found none of those suitable. So I choose Prismic – a SaaS headless CMS, and Gatsby to create the site. Yes, I needed to make a pipeline to build my website after content changes. But when I did it, I got a website with CMS hosted at no cost.
October 13, 2021
Read more

Choosing between SQS, SNS, Kinesis, and EventBridge

AWS can overwhelm with the number of services. Especially if multiple services seem to do a very similar job. Let's look at the cloud-native AWS messaging services – the SQS, SNS, Kinesis, and EventBridge. What are the differences and when to use which one?
August 5, 2021
Read more

AWS Lambda Performance Optimization

There are two reasons to optimize AWS Lambda functions performance. First is money – you pay for the Lambda execution duration. The quicker you do the job, the less you pay. The second is latency – the quicker you do the job, the shorter your client waits for the result. It's a known fact that the decrease of latency improves sales, user engagement, and client satisfaction – so we could argue it's also the money, in the end.
April 26, 2021
Read more

AWS JavaScript SDK v3 - usage, problems, testing

The new version of AWS SDK for JavaScript / TypeScript / Node.js came with a few significant improvements. But does "General Availability" mean "ready for the production"? How to use it? And how to unit test our code using it? Let's take a look at it.
March 22, 2021
Read more

AWS Lambda logging best practices

Logging in AWS Lambda functions is simple. You just print the message, and it's sent to the CloudWatch Logs. And everything is fine until you get a surprisingly big bill for the CloudWatch usage, or you need to actually debug some live system. Here are my tips for logging in AWS Lambda, based on my experience with real-live, big-scale functions running on production.
March 1, 2021
Read more

Three ways to create Amazon Athena tables

Here I show three ways to create Amazon Athena tables. More importantly, I show when to use which one (and when don't) depending on the case, with comparison and tips, and a sample data flow architecture implementation. Also, I have a short rant over redundant AWS Glue features. All in a single article. Enjoy.
January 12, 2021
Read more

Auto-generated website environment parameters

There are multiple articles on how to host a static website or Single Page Application (SPA) on AWS. But they rarely go into the topic of setting up the environment variables for the frontend application.
November 16, 2020
Read more

My AWS toolbox - tools, plugins and applications

Developers, like all specialists, discover and collect their favorite tools over time. Having a good, proven set of tools makes the work easier and more pleasant. We can focus on getting the job done. Sometimes eliminating minor inconveniences or improving a small element of everyday activity makes the greatest impact on the comfort of work.
October 22, 2020
Read more

Serverless Swagger UI for API Gateway

Amazon API Gateway provides an option to export the API schema as an OpenAPI Specification. With it, we can display our REST API as an interactive website. But we do not get a public URL to that specification file which we could use as a source for an interactive page like Swagger. Instead, we can only get the file from the AWS Console, CLI, or SDK.
October 13, 2020
Read more