I started off with offloading Postgres to RDS and using Elasticache. It definitely worked. However, I ended up running into a couple of things:
- The costs really did start to add up. Your most cost effective option is going to be a 3-year, all up front RI and I wasn’t ready to make that commitment yet. In hindsight, I’m glad I didn’t.
- I ran into an issue while importing 13 years of MailMan archives. It was all my fault, but I decided that I needed to re-import what I had already imported to get rid of the [Listname] subject lines. Long story short, because I copied my app.yml file as a template for the importer, it too was using the same RDS instance and it really threw me for a loop after following the instructions on how to re-import items again without the script telling me “skipping already imported items”.
Now, I’ve moved to just having a T2 Micro with Postgres and Redis all in the container. Discourse gets updated often enough that I’m not worried about the automatic patching that RDS or Elasticache does.
I do make sure and back up my data to S3 periodically, and that is a very nice feature.
TL;DR It is more complex and expensive to do it the “right” AWS way. Just run it all in the container and save backups to S3 and you’ll be fine. If you need more horsepower, shut down your instance and start it back up as an M5 or something.