# 보조/대기용 Discourse를 배포하는 방법?

**URL:** https://meta.discourse.org/t/how-to-deploy-secondary-stand-by-discourse/274896
**Category:** Self-hosting
**Created:** [8월 12, 2023, 12:23오후 UTC](https://meta.discourse.org/t/how-to-deploy-secondary-stand-by-discourse/274896 "2023-08-12T12:23:54Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![lejeczek](https://avatars.discourse-cdn.com/v4/letter/l/edb3f5/32.png) [@lejeczek](https://meta.discourse.org/u/lejeczek)
#### Post date: [8월 12, 2023, 12:23오후 UTC](https://meta.discourse.org/t/how-to-deploy-secondary-stand-by-discourse/274896/1 "2023-08-12T12:23:54Z")

</div>

안녕하세요.  
세컨더리/스탠드바이 Discourse를 어떻게 배포하나요?  
상당히 흔한 주제라고 생각했는데 관련 자료를 찾지 못했습니다.

이러한 스탠드바이 **Discourse** 는 — 제 생각에는 당연히 그렇게 설정해야 하므로 — 슬레이브/읽기 전용 노드에서 실행되며, Redis와 pgSQL 모두 읽기 전용이어야 합니다. 하지만 **Discourse** 가 시작되지 않으면 다음과 같은 오류가 발생합니다:

> Redis::CommandError: ERR Error running script (call to f\_bcec1d9b3bbcfb089dc0b7316771be9f011872b6): @user\_script:8: @user\_script: 8: -READONLY You can’t write against a read only replica.

**DISCOURSE\_SKIP\_BOOTSTRAP=yes** 를 설정해도 마찬가지입니다.

여러분은 어떻게 하시나요 — 이건 모두 컨테이너와 관련된 문제인데 — 제가 시도하는 방식이나 다른 접근 방식으로든, 이러한 스탠드바이 Discourse, 즉 HA(고가용성) 설정이 가능한가요?

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [8월 12, 2023, 12:34오후 UTC](https://meta.discourse.org/t/how-to-deploy-secondary-stand-by-discourse/274896/2 "2023-08-12T12:34:47Z")

</div>

HA를 원하신다면 Postgres를 복제하도록 설정하고, Redis도 마찬가지로 설정할 수 있습니다. 다만 Redis는 새로 시작하는 것이 큰 문제가 되지 않으므로 굳이 복제하지 않아도 됩니다.

Postgres 복제 설정에 대한 가이드는 다른 곳에서 찾아보실 수 있습니다. 아니면 RDS를 통해 자동으로 처리하도록 할 수도 있습니다.

이후 web\_only 컨테이너를 두 개 구성해야 합니다. ([스탠드얼론 컨테이너에서 웹 및 데이터 컨테이너로 분리하기](https://meta.discourse.org/t/move-from-standalone-container-to-separate-web-and-data-containers/29413))

그리고 전환을 처리하기 위해 haproxy 또는 유사한 도구가 필요합니다.

Discourse 관련 부분이 아닌 한, 여기서 도움을 받을 수 있는 범위를 벗어난 문제입니다.

---

<div class="post-metadata">

### Author: ![lejeczek](https://avatars.discourse-cdn.com/v4/letter/l/edb3f5/32.png) [@lejeczek](https://meta.discourse.org/u/lejeczek)
#### Post date: [8월 12, 2023, 12:44오후 UTC](https://meta.discourse.org/t/how-to-deploy-secondary-stand-by-discourse/274896/3 "2023-08-12T12:44:59Z")

</div>

제가 이해한 바로는, 멀티마스터 pgSQL을 처리하는 공식적인 제3자 기술이 없으며, Redis의 경우에도 더더욱 그렇지 않습니다.

**Discourse** 에 이러한 환경을 알리고, 신경 쓰지 말라고(또는 무시하라고) 지시하는 것이 정말 불가능한가요?  
만약 **그렇지 않다면** @devel 님이 이 글을 보신다면, "강화"를 제안합니다. 많은 분들이 이를 높이 평가하실 거라고 생각합니다. 즉, **Discourse** 가 필요한 모든 검사는 수행하되, 실패하지 않고 이러한 읽기 전용 “데이터” 환경에서 시작되어 실행되도록 하는 것입니다.
