A Simple Approach to Complicated Database Defaults

Database tables rarely stay the same over the course of a project. We often need to add tables, add or rename columns, or break up a table to support evolving project demands or updated domain modeling. Migrating existing data correctly is not always trivial. Here are two scenarios I ran into recently on a project […]

Best Practices for Managing AWS Configuration with Multiple Sets of Credentials

There are many reasons why you might have multiple sets of AWS credentials. Perhaps you have a personal account and a work account. Maybe you’re managing AWS accounts for different clients, or you just have several IAM users in a single account. You might be working across different regions as well, which adds more confusion […]

AWS Cloudwatch and PagerDuty Integration

I use AWS Cloudwatch and PagerDuty together on a daily basis. Cloudwatch monitors your infrastructure in the AWS cloud environment. PagerDuty is a SaaS tool that specializes in incident response; it’s great for setting up monitoring alerts and notifying the correct person when something goes wrong in your infrastructure. If you’re already using AWS Cloudwatch, […]

Migrating Data Structures in DynamoDB

DynamoDB provides a flexible storage solution for web applications. As an application evolves, the data structures stored in DynamoDB change to fit the needs of the system. Managing these data structure changes can be easy with the right patterns in place. I created a small example of how my team migrates user data in DynamoDB. […]

How to Encrypt Your Existing AWS S3 Objects

Amazon’s S3 service comes with some pretty handy server-side encryption features. In fact, the S3 web app provides a single control to automatically encrypt all new objects in a bucket with SSE-S3 or SSE-KMS. Unfortunately, these controls only affect new objects. If your bucket already contains 10,000 unencrypted objects, then turning on automatic encryption does […]