What server configurations do you use in your projects? Should you rely on Amazon Web Services for everything? EC2, S3, RDS and Cloudfront? Or is it better to use separate services, such as Amazon only for S3, while Digital Ocean for Discourse and maybe Fastly as a CDN?
I’d like to know how you manage this forum, but also other existing communities, to understand what should be done.
Running everything in a $5 droplet is great and enough for most hobby communities. There are very big Discourse sites running in a single machine, just scaling vertically as needed.
Enterprise and business sites may go for a more complex setup using public cloud services to achieve a strict SLA, or outsource the hosting to a professional hosting like Discourse pricing | Discourse - Civilized Discussion
I’m using a $20 DO droplet for my site, Cloudflare in front of that, and S3 storage on the back end. My site has about 400k total posts with about 10k sessions/day average according to Google Analytics.
I am new to this community but have had experiences in web development in the past. However, I am a person who loves to do things well and manage everything in the best possible way. I think very big! And I find that the idea of managing the database and uploads separately is really good. But I’m having a hard time deciding whether to manage everything with AWS using their products or not. For example, the Vendor Lock-In. Obviously, if using EC2 with a standard linux distribution such as Ubuntu and RDS for the database postgresql, there is no problem but with the S3 or maybe using other vendor standards and features such as Lambda, this could be a problem when you want to migrate to any other server hosting.
From what you have said, I would recommend that you start with a single EC2 to get things figured out. If you later want to move to RDS (and elasticache), and S3 then you can do that as your needs and budget require and allow.
Last question. To use the S3, you need a CDN right? But the same cdn used for the site or should another cdn be configured specifically for the data that is loaded on the S3?
I would use either Cloudfront or Fastly for both. Using multiple vendors for the exact same product in a single instance sounds needlessly complicated.
When we say “another CDN” we mean another “CDN distribuition” or “CDN instance”. Not literally another CDN company.
I don’t rely on Amazon for anything.
I would never use a solution that isn’t considered a standard and therefore can’t get migrated easily somewhere else.
A traditional virtual server does a great job. I can easily change providers in the future if I want to.
I’ve managed web apps on all three (AWS, Linode, & Digital Ocean). I prefer Linode & DO. I found them cheap, rock-solid, and most importantly, simpler to manage. I was the only tech person at a tiny little company, so those were really important factors to me.
It’s really not hard to move discourse to a different platform, even if you’re using all those aws tools, you can take a backup and restore it to any discourse installation.
DO and Linode (along with hundreds of similarly priced competing cloud service providers) are far more cost-effective (about 10% the cost, in my experience) than AWS or MS Azure for equivalent services, and far less likely to require you to build things using their proprietary APIs and interfaces which inhibits moving to another commodity hosting provider. I’d strongly recommend staying vendor neutral and staying away from AWS and MS Azure.