Why Sentry events silently vanished from our Fargate Node app

Sentry events vanished from a Fargate Node app because Happy Eyeballs stalls on IPv6 with no route. Forcing IPv4 in the transport fixes it.

Bypassing AWS Lambda's 4 KB env var limit

Lambda caps environment variables at 4 KB. An AWS_LAMBDA_EXEC_WRAPPER binary that pulls SSM params at cold start gets around it.

CloudFront Anycast IP

AWS charges $3,000 a month for CloudFront Anycast IP. Testing shows it is a small static IP set, not anycast in any meaningful sense.

CloudFront Functions with Dynamic Origin Pointing to Another CloudFront

Using CloudFront Functions to dynamically change the origin to another CloudFront distribution via updateRequestOrigin.

Lookup CMK for a test in CDK

CDK findResources cannot match a KMS key by alias. Tag the key policy statement with an sid and assert on that instead.

fargate container healthcheck

Fargate images have no curl, so the task definition health check uses wget, plus the jsonencode catch in Terraform templates.

AWS TGW VPN using Unify UDM

Attaching a UniFi UDM to an AWS Transit Gateway over VPN, using static routing because the UDM does not speak BGP.

Amazon SES with Postfix in Ubuntu

Relaying mail through Amazon SES from Postfix on Ubuntu, filling in the steps the AWS documentation leaves out.

Salesforce CLI with Docker in AWS

Running the Salesforce CLI in Docker on AWS, with the browser-based auth replaced by an auth URL kept in SSM Parameter Store.

AWS KMS - two liners

Two-line AWS CLI recipes for encrypting and decrypting with KMS, for both binary and base64 ciphertext.

Curl net performance test

Curl scripts that log the CloudFront X-Amz-Cf-Id whenever a response is slower than a threshold, plus a full connection timing breakdown.

MongoDB to DynamoDB

Moving a large MongoDB dump into DynamoDB with dyngodb2, including the sed passes and file splitting needed to survive the JSON format.