서버 구성은 어떻게 되나요?

프로젝트에서 어떤 서버 구성을 사용하시나요? 모든 것을 Amazon Web Services에 의존해야 할까요? EC2, S3, RDS, CloudFront를 사용할까요? 아니면 Amazon은 S3에만 사용하고, Discourse는 Digital Ocean, CDN은 Fastly처럼 개별 서비스를 활용하는 것이 더 나을까요?

이 포럼을 어떻게 관리하고 있는지, 그리고 다른 기존 커뮤니티들은 어떻게 운영되고 있는지를 알고 싶습니다. 그래야 어떤 방향으로 나아가야 할지 이해할 수 있을 것 같아서요.

미리 감사드립니다!

정말 목표와 요구사항에 따라 다릅니다.

$5짜리 드롭렛으로 모든 것을 실행하는 것은 대부분의 취미 커뮤니티에게는 훌륭하고 충분합니다. 단일 머신에서 수직으로 확장하면서 운영되는 매우 큰 Discourse 사이트들도 있습니다.

엔터프라이즈 및 비즈니스 사이트는 엄격한 SLA를 달성하기 위해 공개 클라우드 서비스를 사용하는 더 복잡한 구성을 선택하거나, Discourse pricing | Discourse - Civilized Discussion 와 같은 전문 호스팅 업체에 호스팅을 아웃소싱할 수 있습니다.

저는 제 사이트를 위해 $20짜리 DigitalOcean 드롭렛을 사용 중이며, 그 앞에 Cloudflare를 배치하고 백엔드에는 S3 스토리지를 활용하고 있습니다. Google Analytics에 따르면 제 사이트는 총 게시물이 약 40만 개이며, 하루 평균 세션 수는 약 1만 건입니다.

저는 이 커뮤니티에 처음 오게 되었지만, 과거 웹 개발 경험을 가지고 있습니다. 저는 일을 완벽하게 처리하고 모든 것을 최선의 방식으로 관리하는 것을 좋아하는 사람입니다. 아주 큰 그림을 그리고 있습니다! 그리고 데이터베이스와 업로드를 별도로 관리한다는 아이디어가 정말 좋다고 생각합니다. 하지만 AWS의 제품들을 사용하여 모든 것을 관리할지, 아니면 그렇게 하지 않을지 결정하는 데 어려움을 겪고 있습니다. 예를 들어, 벤더 락인(Vendor Lock-In) 문제가 있습니다. 물론 EC2에 Ubuntu와 같은 표준 리눅스 배포판과 데이터베이스로 PostgreSQL을 사용하는 RDS를 함께 사용하면 문제가 없지만, S3나 Lambda와 같은 다른 벤더 표준 및 기능을 사용하면 나중에 다른 서버 호스팅으로 마이그레이션하려고 할 때 문제가 될 수 있습니다.

다른 지원되는 S3 제공업체도 있습니다: 업로드용 객체 저장소 사용 (S3 & 클론).

말씀하신 내용을 바탕으로, 처음에는 단일 EC2를 사용하여 환경을 설정해 보시는 것을 추천합니다. 나중에 필요와 예산에 따라 RDS(및 elasticache) 및 S3로 전환할 수 있습니다.

마지막 질문입니다. S3를 사용하려면 CDN이 필요하죠? 그런데 웹사이트에 사용하는 것과 동일한 CDN을 사용해야 하나요, 아니면 S3에 로드되는 데이터를 위해 별도의 CDN을 구성해야 하나요?

후자입니다. 사이트 CDN과 S3 CDN의 "Origin"이 서로 다릅니다.

예를 들어, 포럼에는 Fastly를, S3에는 Amazon CloudFront를 사용하는 것입니다. 맞습니까?

두 경우 모두 CloudFront 또는 Fastly 중 하나를 사용하는 것이 좋습니다. 동일한 인스턴스에서 동일한 제품에 대해 여러 벤더를 사용하는 것은 불필요하게 복잡해 보입니다.

여기서 "다른 CDN"이라고 할 때, 우리는 문자 그대로 다른 CDN 회사를 의미하는 것이 아니라, 다른 “CDN 배포” 또는 "CDN 인스턴스"를 의미합니다.

아, 알겠습니다. 설명해 주셔서 감사합니다.

저는 아무것도 아마존에 의존하지 않습니다.
표준으로 인정받지 못한 솔루션은 어디로든 쉽게 이전할 수 없으므로 절대 사용하지 않습니다.
전통적인 가상 서버는 아주 잘 작동합니다. 원할 경우 나중에 쉽게 제공업체를 변경할 수도 있습니다.

EC2, S3, RDS, Elasticache의 대안으로 무엇을 추천하시나요? 말씀하신 대로 벤더 락인(Vendor Lock-In) 문제를 피하기 위해 표준 솔루션을 말씀하시는 거죠.

예를 들어 Linode나 Digital Ocean 같은 서비스는 어떨까요?

저는 AWS, Linode, Digital Ocean 세 곳 모두에서 웹 앱을 운영해 본 경험이 있습니다. Linode와 Digital Ocean을 더 선호합니다. 이 두 서비스는 저렴하고, 안정적이며, 가장 중요한 점은 관리가 훨씬 더 쉬웠기 때문입니다. 저는 작은 회사에서 유일한 기술 담당자였기 때문에, 이런 요소들이 저에게는 정말 중요했습니다.

Discourse를 다른 플랫폼으로 옮기는 것은 사실 그리 어렵지 않습니다. AWS 도구를 모두 사용하더라도 백업을 받아서 어떤 Discourse 설치 환경에든 복원할 수 있습니다.

DO와 Linode(수백 개의 유사 가격 경쟁 클라우드 서비스 제공업체 포함)는 AWS나 MS Azure와 동일한 서비스를 제공할 때 훨씬 더 비용 효율적이며(제 경험상 약 10%의 비용), 독점적인 API와 인터페이스를 사용하여 시스템을 구축하도록 요구할 가능성이 훨씬 낮아 다른 일반 호스팅 제공업체로의 이동을 방해하지 않습니다. 벤더 중립성을 유지하고 AWS와 MS Azure를 피하는 것을 강력히 권장합니다.