Most deployment advice starts with architecture. Draw the boxes, pick the services, ship it. I believed that was the whole job until a client project showed me otherwise.
Two projects can have the same architecture diagram and still need very different deployments. What decides it is the features of the app and the shape of its traffic. This post is about the project that made that clear to me, and how I ended up on EC2 with Ansible instead of the more fashionable options.
The client
I took over a project and moved it onto EC2 first. The brief was short: keep it secure, and don't let it fall over when traffic jumps.
Traffic was not large, about 3K users a day.…