Rails on AWS: Do you need nginx between Puma and ALB?
When I set up Rails on AWS, I usually use the following pattern: (CloudFront) → ALB → Puma I was wondering: Is it always necessary to put nginx between the ALB and Puma server?...
When I set up Rails on AWS, I usually use the following pattern: (CloudFront) → ALB → Puma I was wondering: Is it always necessary to put nginx between the ALB and Puma server?...
While working on a Ruby project, I often find myself referring to the code of various libraries when it's easier than looking up the documentation. For this, I used to use code...
I've been using Git at work for around 10 years now. I started using Git with a GUI ( Tower \-\- back when I was eligible for the student discount!), but now I use the CLI for e...
I'm a big fan of AWS ECS Fargate. I've written in the past about managing ECS clusters, and with Fargate -- all of that work disappears and is managed by AWS instead. I like to...
I've written about how to host a single page application (SPA) on AWS using CloudFront and S3 before, using the CloudFront "rewrite not found errors as a 200 response with index...
Update 2020/07/29: AWS recently announced EFS support for Lambda, which makes running WordPress in Lambda easier, with fewer limitations. Here's the new article about how to run...
Throughout these past 4 years since AWS ECS became generally available, I've had the opportunity to manage 4 major ECS cluster deployments. Across these deployments, I've built...
The bots should announce, “I’m not a person, or if I am, I’m not allowed to act like one.” Or, if there’s no room or time for that sentence, perhaps a simple bot at the top of t...
Update : Target tracking scaling is now available for ECS services. I've been working on setting up autoscaling settings for ECS services recently, and here are a couple notes f...
I'm currently working on migrating a Rails application to ECS at work. The current system uses a heavily customized Capistrano setup that's showing its signs, especially when de...
A few years ago when I was doing client work, we would regularly host clients' sites and apps for them. During this time, I was responsible for both development and keeping them...
We use fluentd to process and route log events from our various applications. It's simple, safe, and flexible. With at-least-once delivery by default, log events are buffered at...
Don't forget to update the KMS Key Policy, too. I spent a bit of time trying to figure out why it wasn't working, until CloudTrail helpfully told me that the kms:GenerateDataKey...
I've been working on infrastructure of a fleet of a few dozen Amazon EC2 instances for the past week, and with a rapidly-growing team, we decided it was appropriate to make a ce...
I recently started using Ubuntu Linux on my main development machine. That means that my PostgreSQL database is running under Ubuntu, as well. I've written guides to upgrading P...
Here are the headline features of Sierra, and my thoughts about them. Siri Don't use it on the phone, won't use it on the Mac. It would be nice if I could use it by typing, thou...
I stumbled upon Convox a couple weeks ago, and found it pretty interesting. It's led by a few people formerly from Heroku, and it certainly feels like it. A simple command-line...
It's been a bit over a month since I installed Linux as my main desktop OS on a PC I built to replace OS X on a (cylinder) Mac Pro. I installed Ubuntu MATE 16.04. Here are my ge...
Elixir's Getting Started guides go over the &Module.function/arity and &(...) anonymous function shorthand, but there are a couple neat tricks that are not immediately apparent...
In the beginning of 2015, I wrote a blog post about how my then-current programming language of choice (Ruby) was showing itself to not be as future-proof as I would have liked...