Assigning Roles to EC2 Kubernetes Nodes at Boot 
In this post we'll describe how to leverage EC2 user data to assign labels to EKS worker nodes at boot. This will allow us to assign Kubernetes services and pods to specific instance types.
Improving Angular SEO with Angular Universal for Bots, Angular SPA for Visitors 
In this article we will look at why Single Page Applications (SPAs) are terrible for SEO, why you still want to use SPAs, and how to achieve great SEO with Angular SSR.
Separating Search Engine Crawler Traffic with Lambda@Edge 
Search engines use crawlers to scan websites for content. What these crawlers 'see' determines how well your website can be found. In some cases you might want to serve separate, crawler optimized content to the search engines. In this blog post, we will demonstrate how to achieve traffic separation with Lambda@Edge.
Recursively Concatenating Lists of Strings 
In this blog post: how to recursively concatenate every element in an undefined number of lists.
Architecture Series: Caching AWS Pricing with Lambda and S3 
In the second installment of the Architecture Series, we will look at how the AWS pricing data for EC2 and RDS is periodically retrieved and stored.
Defining a Scheduled Lambda in CloudFormation 
AWS Lambda is a super powerful Function as a Service (FaaS) technology provided by Amazon. It's quite easy to set up a scheduled Lambda function in the AWS Console, but in CloudFormation you might run into some issues. This blog post offers a quick copy-and-pastable example.
Retrieving all Region Codes and Names with Boto3 
For the CloudBanshee pricing tools we need to always have an up-to-date list of regions available. To this end, we have a periodically running lambda that fetches the regions and their names from SSM.
AWS Transit Gateway, VPC Flow Logs and Data Visualization with Kibana 
I recently held a talk about peering multiple VPCs with Transit Gateway, storing the network traffic in VPC Flow Logs, and visualizing the data with Kibana. The video for this presentation is now available online!
Connecting to a Private API Gateway over VPN or VPC Peering 
The Private API Gateway is a very secure solution for internal API deployments. When deployed in your account, it can only be reached trough a VPC Endpoint. But this means you can't connect to the API over VPN or VPC Peering. In this blog post we will solve this issue using an ALB.
The Ideal SSH Config for Instances Behind a Bastion Host 
If you're working with public cloud environments, you're most likely familiar with bastion hosts (or jump boxes). If you're managing multiple environments, you probably also know that keeping track of keys, ports and usernames can quickly become very hard. This blog post will help you clear the clutter.
Using the EC2 Price List API 
The CloudBanshee EC2 comparison page uses data from the AWS EC2 Pricing API. In this blog posts we will explain how to query and parse this data. We will look at available filters, the data structure, and how to retrieve the pricing options you're looking for.
A Custom Omgrofl Lambda Runtime 
This Re:Invent, Amazon Web Services introduced a number of very powerful new features to Lambda. These include layers, custom runtimes and the ability to execute Lambdas through an ALB. Now what could be a better way to demonstrate these functions then by deploying a custom Omgrofl runtime?
Integrating EKS with other AWS Services 
EKS offers developers an easy way to run Kubernetes workloads at AWS. But what if you need to integrate your EKS based app with other services like CloudFront, API Gateway or Web Application Firewall?
Amazon API Gateway types, use cases and performance 
API Gateway is a service that allows you to manage access to all sorts of backend systems. Since its release in 2015, many new features and variants have been added. In this post we'll explore the differences, use cases and performance of the Edge Optimized, Regional and Private API Gateway.
Testing AWS VPN connections with EC2 
Many of our customers use VPNs to set up secure connections to their AWS environments. A few common use cases for VPNs are hybrid clouds, remote backups, and federated user management. This article will describe how to test VPN connections without requiring access to the remote end.
Building a Slack Bot with Serverless Framework 
In this blog post we will explore how to build a Slack Bot utilizing Lambda, API Gateway and DynamoDB serverless technologies. We will define the environment using Serverless Framework.
Managing EC2 SSH users with IAM 
Servers in the cloud are supposed to be immutable and stateless. But what if the users allowed on a system are dynamic? You need a management system for your users!
Architecture Series: Static Website 
In the first installment of the Architecture Series, we will look at how the static part of this website is hosted.
This is the first post on, the cloud focused website of Luc van Donkersgoed. I have a few things planned for CloudBanshee, which I will outline in this blog post.