CEO에게 무료 버전의 Discourse를 사용하도록 설득하고 있습니다

조직의 자체 서버에 오픈소스 포럼을 설치하고 싶습니다.

이를 위해 CEO에게 Docker 리소스를 배정하도록 설득해야 합니다.

그를 쉽게 설득할 수 있도록 몇 가지 질문을 드립니다:

  1. 오픈소스 포럼을 설치하는 데 어떤 Amazon 서비스가 필요한가요?
  2. 오픈소스 버전에는 직원만 등록할 수 있는 옵션(이메일 도메인 확인 + 인증)이 있나요? (비공개 유지 목적)
  3. 자체 테마와 로고를 추가할 수 있나요?
  4. 무료 오픈소스 버전을 설치했을 때 민감한 데이터가 제3자에게 노출되지 않도록 어떻게 보장할 수 있나요?

감사합니다

제가 더 제공할 수 있는 지식은 많지만…

  1. 없습니다. CDN이나 S3와 같은 외부 파일 스토리지는 선택 사항입니다.
  2. 네. 도메인별로 가입을 제한할 수도 있고, 초대만 허용하도록 설정할 수도 있습니다.
  3. 물론, 이건 마스토돈(Mastodon)이 아니죠 :winking_face_with_tongue:
  4. 디스코URS(Discourse)는 오픈소스이므로 직접 확인하거나, CDCK와 관련이 없는 다른 사용자들의 말을 믿으셔도 됩니다. 하지만 디스코URS는 이런 일을 할 수 있는 제3자 서비스가 필요하지 않습니다. 다만 제3자 서비스를 사용하신다면, 그 서비스가 이상한 짓을 하지 않는지 반드시 확인하셔야 합니다.

정말 감사합니다!

CDN 또는 외부 파일 저장소에 대해 좀 더 명확히 설명해 주실 수 있을까요?

포럼 설치에 실행 중인 서버(머신)가 필요한가요, 아니면 Amazon S3 같은 저장 장치만 있으면 되나요?

이론적으로 직원의 노트북에 설치하고, 노트북을 끄지만 않는다면 관리에 신경 쓸 필요가 없는 건가요? 라즈베리 파이(Raspberry Pi)나 노트북에 설치해 두고 항상 실행 상태를 유지해야 하나요?

설치에 "도메인"이 필요하다고 읽었습니다. 그렇다면 추가 비용이 발생하나요, 아니면 로컬 네트워크 내에서 포함되는 건가요?

GPT에게 AWS와 DigitalOcean의 비용 비교를 요청하여 비용을 보여주고자 합니다.

여러분의 생각으로는 이 추정치가 얼마나 현실적인가요?

GPT 출력:

DigitalOcean과 AWS EC2에서 100명 사용자를 위한 Discourse 포럼을 1년 동안 운영하는 비용을 추정해 보겠습니다.

가정 사항:

  1. 서버 유형: 100명 사용자를 위해 중급 서버가 충분할 것으로 가정합니다. DigitalOcean의 경우 월 $20 Droplet을, AWS의 경우 t3.medium EC2 인스턴스를 고려하겠습니다.
  2. 저장 공간: Discourse는 최소 10GB의 공간을 권장합니다. 성장과 백업을 고려하여 20GB를 가정합니다.
  3. 데이터 전송량: 수신 및 송신 트래픽을 모두 고려하여 월 500GB로 추정합니다.
  4. 백업: 매주 백업을 수행하고 한 달간 보관한다고 가정하면, 특정 시점에 4개의 백업이 저장되어 있는 상태가 됩니다.
  5. 데이터베이스: Discourse의 내장 PostgreSQL을 사용하므로 추가 비용은 없습니다.

비용 추정:

비용 항목 DigitalOcean AWS EC2
서버 월 $20 x 12개월 = $240 t3.medium 온디맨드 가격은 시간당 약 $0.0416입니다. 따라서 $0.0416 x 24시간 x 30일 x 12개월 = $359.55
저장 공간 Droplet에 포함됨 EBS 일반 목적 SSD(gp2) 볼륨은 GB-당 월 $0.10입니다. 따라서 20GB x $0.10 x 12개월 = $24
데이터 전송 월 1TB까지 무료, 이후 GB당 $0.01. 500GB 사용 시 무료. 첫 1GB는 무료, 이후 월 9.999TB까지는 GB당 $0.09. 따라서 500GB x $0.09 = 월 $45. 1년 기준 $45 x 12 = $540
백업 월 $4(Droplet 가격의 20%) x 12개월 = $48 스냅샷 비용은 GB-당 월 $0.05입니다. 월 20GB 백업 4개 가정 시: 80GB x $0.05 = 월 $4. 1년 기준 $4 x 12 = $48
합계 연 $288 연 $971.55

참고 사항:

  • AWS에는 리저브드 인스턴스(Reserved Instances)와 세이빙스 플랜(Savings Plans)을 포함한 여러 가격 모델이 있어 비용을 크게 절감할 수 있습니다. 위 추정치는 가장 비싼 옵션인 온디맨드(On-Demand) 가격에 기반합니다.
  • 이는 기본적인 추정치이며, 잠재적인 추가 서비스나 예상치 못한 비용을 고려하지 않았습니다. 사용량을 모니터링하고 필요에 따라 리소스를 조정하는 것이 항상 좋습니다.
  • 가격은 리전과 특정 구성에 따라 달라질 수 있습니다. 가장 정확하고 최신 정보를 위해 해당 플랫폼의 공식 가격 문서를 항상 참조하세요.

결론적으로, 위 추정치에 따르면 100명 사용자를 위한 Discourse 포럼을 1년 동안 호스팅하는 데 DigitalOcean이 더 비용 효율적인 것으로 보입니다. 그러나 AWS는 더 넓은 범위의 서비스와 확장성 옵션을 제공하므로, 더 복잡하거나 성장하는 프로젝트에는 유리할 수 있습니다.

얼마 전 AWS에서 Discourse를 설치해서 약 2개월간 사용하다가 개인 서버로 옮겼습니다. 그 정도 비용은 아니었고, 한 달에 50달러 정도였던 것 같습니다.

(기억이 잘 나지 않으므로 가볍게 받아들이세요)

두 가지 모두 선택 사항입니다. 하지만

  • 전 세계 사용자를 대상으로 한 더 빠른 로딩 시간을 원한다면(최소한 이론적으로는) CDN을 사용할 수 있습니다 (CDN을 언제, 어디에서 사용해야 하는지는 더 넓은 주제이므로)
  • S3, DigitalOcean Space 등 외부 저장소를 업로드에 사용할 수 있습니다. 이러한 서비스는 로컬 공간을 절약할 수 있을 뿐만 아니라 일반적으로 비용이 조금 더 저렴하기 때문입니다.

원하는 대로 하셔도 되지만, 무엇을 하는지 매우 잘 알고 있지 않는 한 Discourse 자체를 Amazon에 설치하지 마세요.

Discourse에 필요한 VPS 크기는 정말로 어려운 질문입니다. 처리해야 하는 호출/방문/사용자 수에 따라 달라지므로요.

그리고 비용은 또 다른 상대적인 문제입니다. 비즈니스의 경우 이러한 비용은 취미 수준으로 운영할 때와는 다른 문제입니다. 또한 포럼이 얼마나 중요한지에 따라 다릅니다. 98%의 가동률이 충분한지, 아니면 99.9%가 필요한지 (필요한 것과 원하는 것은 다른 문제이며, 원하는 것은 실제로 매우 비싼 경우가 많습니다).

이 자료를 준비하기 전에 실제 가격표를 ChatGPT에 입력해 보셨나요?

만약 그렇지 않다면, 설득력 있어 보일지 모르지만 대부분이 허구이거나 최신 정보가 아닐 가능성이 높습니다.

DO의 가격 구조를 간단히 살펴봤는데, 확실히 어색하고 지나치게 단순화된 느낌이 듭니다.

ChatGPT를 비즈니스 의사결정에 활용할 때는 매우 주의하세요!!

좋은 설명 감사합니다!

솔직히 아직은 좀 막막합니다.

Discourse에는 RAM 1~2GB와 10GB의 저장 용량이 필요한 것 같습니다.

일단 같은 국가의 사용자만 사용하게 될 것이므로, 노트북이라면 쉽게 할당할 수 있을 것 같습니다.

해당 회사에는 AWS S3 같은 외부 서비스 대신 자체 서버가 몇 대 있는 것 같습니다.

이 서버에 설치한다면 좋겠지만, 테스트 용도로는 먼저 노트북에서 시도해 보는 것이 더 나을 것 같습니다. 도메인도 여전히 비용을 지불해야 하나요?

  • 다른 사용자와 함께 사용하려면 도메인이 필요합니다. Discourse는 도메인 없이 작동하도록 설계되지 않았습니다.
  • 가정용 인터넷에서 인터넷 서버를 실행하는 것은 권장되지 않으며, 인터넷 서비스 제공업체의 약관에 위배될 수 있습니다.
  • 가엾은 노트북을 24시간/365일 켜서 두시겠습니까?!
  • 클라우드 VPS에 설정하는 데는 거의 시간이 걸리지 않습니다.
  • 처음에 커뮤니티를 비공개로 설정하여 무단 사용자를 차단할 수 있습니다.

월 5달러짜리 Linode 서버(다른 회사들도 비슷한 요금제를 제공하지만, 저는 Linode에 익숙합니다)에서 Discourse를 쉽게 실행할 수 있습니다. 처음에는 그런 수준으로 시작하다가 정말로 더 큰 환경이 필요할 때만 더 큰 옵션을 고려해 보세요.

(물론 서버를 관리하는 데 드는 시간은 계산에 포함되지 않았습니다. 설정이 완료된 후에는 많은 시간이 들지 않지만, 리눅스 서버 관리 경험이 없다면 관리형 호스팅 옵션을 선택하는 것이 더 나을 수 있습니다. Discourse 자체에서도 호스팅을 제공하지만, 다른 회사들도 마찬가지입니다.)

맞아요! 답변해 주셔서 감사합니다.

하하, 가엾은 노트북이네요.

만약 제가 노트북에 설치만 해서 2~4시간 정도 작동시킨다면, 인터넷 서비스 제공업체 입장에서는 전혀 이상하지 않지 않나요? (전기 회사가 전기를 소비하는 데 무엇을 가동하는지는 알 수 없고, 소비한 양만 알 수 있는 것과 같은 이치죠)

아니면 다른 메커니즘으로 쉽게 추적할 수 있는 건가요?

클라우드 VPS는 앞서 S3, DigitalOcean, 심지어 Lindoe에 대해 이야기했던 그거를 말씀하시는 건가요?

지금 제 계획은 노트북에 로컬로 설치한 뒤, 회사 인프라 담당자에게 제가 얼마나 쉽게 설치했는지 보여준 다음, 그가 책임지고 있는 회사 서버에 설치해 달라고 요청하는 것입니다.

참고로, ChatGPT에 대한 의견도 감사합니다. 물론 ChatGPT 자체는 per se(본질적으로) 신뢰할 수 없기 때문에, 제가 공유했던 이유는 가격 책정이 적절히 이루어지는지 확인하기 위해서였죠 - 실제 투자는 ChatGPT 밖에서 더 구체적으로 재평가될 것입니다.

이것을 데모로만 사용하신다면, 여기 나열된 개발용 설치 가이드 중 하나를 따라 해보시는 것을 권장합니다: https://meta.discourse.org/docs?tags=dev-install

하드웨어/소프트웨어 요구 사항에 대한 가이드로 이 문서를 안내해 주세요: discourse/docs/INSTALL.md at main · discourse/discourse · GitHub.

이 가이드는 프로덕션 Discourse 사이트를 생성하고 설치하는 방법에 대한 지침을 제공합니다: discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub.

여기서 확인해 보았습니다:
https://meta.discourse.org/docs?topic=182882

로컬에서 테스트하기 위해 Windows에 설치해야 하는 것이 이 내용인가요?

해당 주제는 다음 주제를 가리킵니다: https://meta.discourse.org/docs?tags=dev-install

Windows의 경우, 먼저 Docker 가이드를 시도해 보시는 것을 추천합니다: Install Discourse for development using Docker - Developer Guides - Discourse Meta. Install Discourse on Windows for development - Developer Guides - Discourse Meta 를 따르는 것보다 실행 속도가 느릴 수 있지만, Docker 설치 방식이 특히 Windows에서는 더 쉬울 수 있습니다.

또 다른 고려 사항은 Discourse의 호스팅을 이용해 무료 체험판을 만들어 보는 것입니다: Discourse pricing | Discourse - Civilized Discussion. 10~20분 만에 사이트를 설정하고 실행할 수 있습니다.

Docker를 통해 설치하려고 하는데 작동하지 않습니다.

아래 오류에서 막혔는데, 어떻게 수정해야 하나요?

3.0" has incorrect peer dependency "@uppy/core@^3.2.1".
[4/4] Building fresh packages...
$ ../run-patch-package
patch-package 8.0.0
Applying patches...
@ember/jquery@2.0.0 ✔
babel-plugin-debug-macros@0.3.4 ✔
content-tag@1.1.1 ✔
ember-source@3.28.12 ✔
ember-this-fallback@0.3.1 (1 initial) ✔
ember-this-fallback@0.3.1 (2 themes) ✔
virtual-dom@2.1.1 ✔
Done in 101.54s.
Migrating database...
rake aborted!
Discourse::Utils::CommandError: /src/lib/discourse.rb:138:in `exec': node:internal/modules/cjs/loader:1080
  throw err;
  ^

Error: Cannot find module 'esbuild'
Require stack:
- /src/app/assets/javascripts/theme-transpiler/build.js
    at Module._resolveFilename (node:internal/modules/cjs/loader:1077:15)
    at Module._load (node:internal/modules/cjs/loader:922:27)
    at Module.require (node:internal/modules/cjs/loader:1143:19)
    at require (node:internal/modules/cjs/helpers:121:18)
    at Object.<anonymous> (/src/app/assets/javascripts/theme-transpiler/build.js:3:17)
    at Module._compile (node:internal/modules/cjs/loader:1256:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
    at Module.load (node:internal/modules/cjs/loader:1119:32)
    at Module._load (node:internal/modules/cjs/loader:960:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [ '/src/app/assets/javascripts/theme-transpiler/build.js' ]
}

Node.js v18.17.1
/src/lib/discourse.rb:172:in `execute_command'
/src/lib/discourse.rb:138:in `exec'
/src/lib/discourse.rb:34:in `execute_command'
/src/lib/discourse_js_processor.rb:119:in `build_theme_transpiler'
/src/lib/tasks/assets.rake:313:in `block in <main>'
Tasks: TOP => db:migrate => assets:precompile:theme_transpiler
(See full trace by running task with --trace)