37Signals (the company behind Basecamp and HEY) just released a detailed breakdown of their cloud spend for 2022 – Our cloud spend in 2022. DHH (co-founder of 37Signals and founder of Ruby of Rails) reignited a discussion of cloud repatriation last October with a blog post titled Why we're leaving the cloud. While 37Signals is an atypical company in many ways, the rationale and data provide an interesting data point for a mature company at mid-scale.
It's a good addition to Vantage's AWS Cost Leaderboard.
Data is the largest cost at almost 30% spent on S3. This might be a side-effect of their business with HEY – there are a lot of large attachments that get sent over email, not to mention photos and other media. They are storing 8 petabytes of files and replicating them dual-region. Closely related is Cloudfront, at an extra 2%. This is probably a little low on average because of Basecamp and HEY's architecture based on Hotwire, which does server-side rendered HTML instead of sending large JavaScript bundles over the wire.
Next is the second-order data services – RDS and OpenSearch at around 15% each. Here I wonder how the bill would be impacted by the recently announced serverless solutions (Aurora v2, April 2022, and OpenSearch Serverless, December 2022). Elasticache (Redis) is only around 5% of spend. All in, data and data services make up about 70% of the spend, which makes for a tough repatriation case – these services are often the toughest to migrate because of data gravity. For what it's worth, it sounds like OpenSearch is used for both application search and logging pipelines.
Finally, compute is around 20% – a combination of EC2, Kubernetes, and most likely some other related things (load balancers, etc.). Granted, this could probably be even lower since most of the codebase is probably Rails, which is not the most cloud-native framework (but of course, the developer productivity from getting to market with Rails pays for itself).
37Signals plans to build out a lot of this infrastructure themselves in 2023 – a great undertaking. We don't know the whole story, but it sounds like they have a fairly sane set of generic services they use at AWS – making it easier (but certainly not easy) to migrate to their own data centers or other alternatives. Data gravity is still important, especially with the majority of the spend on services with high data gravity.