서버 하나로 디스코스 커뮤니티 2개를 운영할 수 있나요?

DigitalOcean 같은 서비스보다 낫기 때문에, 네, 좋은 일입니다.

괜찮았지만, 제약 사항도 강조했습니다. 해당 사이트들은 트래픽과 활동량이 정말 낮았기 때문입니다. 이러한 사이트에서 상당한 활동량을 기대한다면 더 많은 리소스가 필요하며, 활동량이 증가할수록 Discourse의 리소스 사용량도 늘어납니다.

이는 일부 사이트를 다른 사이트와 격리할 필요가 있는지 여부에 따라 결정됩니다. 상용 Discourse 호스팅은 대개 결제 시스템 등을 처리하기 위해 특수 기능이 추가된 대규모 멀티사이트 클러스터입니다.

고급 설정이 적용되어 있지 않은 한, 모든 사이트는 부모 사이트의 자격 증명을 공유합니다. 즉, 고급 설정이 적용되어 있지 않은 경우 부모 사이트의 noreply 이메일이 noreply@example.com으로 설정되어 있다면, 모든 자식 사이트에서도 이 이메일이 사용됩니다. 사이트별로 고유한 이메일을 사용하려면 추가 설정이 필요합니다.

주로 "문제"를 어떻게 정의하느냐에 따라 달라집니다.

멀티사이트에 단일 app.yml을 사용하는 것은 가능하지만, 멀티사이트의 경우 웹과 데이터를 분리한 2개의 컨테이너 설치 방식을 권장합니다.

일련의 과제들을 극복해야 하며, yml 파일의 경로를 변경한 후 각각을 실행해야 합니다. 기본적으로 /var/discourse-a에는 자체 구성이 있고, /var/discourse-b에는 별도의 구성이 있는 것과 같습니다.

참고로, 이는 상당히 기술적으로 복잡한 개념입니다. 멀티사이트를 호스팅하려면 디스커스(Discourse)와 그 내부 작동 방식에 대한 상당한 경험이 필요합니다. 부담이 된다면, 디스커스를 위한 매니지드 호스팅을 이용하거나 전문가에게 설정을 맡기는 것을 고려해 보세요. 시간이 지날수록 많은 문제를 예방할 수 있습니다. 예산이 있다면 Marketplace 채널에 게시물을 올리는 것도 방법입니다.

네, 그렇지만 시간이 지나면 리소스가 더 많은 상위 플랜으로 언제든지 업그레이드할 수 있다는 것이 제가 말하고자 했던 점입니다. 처음부터 그… 플랜…에 오래 머물러 있을 계획은 아니었습니다. 단순히 초기 테스트 단계에서 불필요한 비용을 피하고 싶은 것뿐입니다, 아시죠?

서버 리소스 외적으로 사이트를 분리하고 싶은 이유가 몇 가지 있을까요? 현재로서는 별도의 서버에 두어야 할 명확한 이유가 보이지 않지만, 아직 모르는 부분에 대해 다른 관점을 배우는 것은 항상 기꺼이 받아들입니다.

아직 몰랐던 매우 흥미로운 지점입니다. 그렇다면 실제로 그렇게 하고 있고 잘 작동한다는 뜻이네요. 좋은 정보입니다.

부모 사이트라는 것은 무슨 뜻인가요? 각 설치 환경은 독립적이지 않나요? 어느 것이 부모로 간주되나요?

조금 혼란스럽습니다. app.yaml 파일을 보면 Brevo 이메일과 자격 증명을 위한 전용 부분이 따로 있거든요. 커뮤니티별로 개별 app.yaml 파일을 사용할 수 있다고 하셨는데, 그렇다면 각 커뮤니티가 Brevo 자격 증명, 알림 이메일을 포함하여 각각 자체 것을 가지게 되는 것 아닌가요?

적절하게 백업하지 못하게 하거나, 알림 이메일이 올바르게 전송되지 않는 것 같은 문제들입니다. 다시 말하지만, 비전문가이고 아직 Discourse에 새로운 입장에서 보면, 다른 사람들이 문제로 보는 것들이 있지만 저는 아직 그것이 문제로 보이지 않는 부분들이 있습니다.

네, 그것이 제 생각입니다. 공유되는 것은 서버 자체뿐입니다. 나머지는 모두 별도의 설치 환경처럼 작동하므로, 위에서도 이메일에 대해 질문한 것입니다.

제게 가장 도전적인 단계는 이미 거쳤다고 생각합니다. 그것은 몇 달 전 Discourse 설치에 깊이 들어간 것이었거든요. 처음에는 아무것도 몰랐습니다. "docker"가 무엇인지도 몰랐습니다. 이 시점에서 훨씬 더 명확한 시각을 갖게 되었지만, 셀프 호스팅 측면에서는 여전히 "기본적인 Discourse 사용자"라고 생각합니다. 이 커뮤니티와 ChatGPT/Claude의 도움으로 조금 더 배우고, 시스템이 어떻게 작동하고 설치되는지에 대해 메모를 해왔습니다. 도전은 괜찮습니다. 솔직히 말하면: 이것은 단순히 소프트웨어를 설치하는 것입니다. 핵폭탄을 만드는 것이 아니잖아요 :laughing: 만약 무언가 잘못되면 모든 것을 삭제하고 서버당 단일 설치로 돌아가면 됩니다. 괜찮습니다 :slight_smile:

언급했듯이 이미 제 커뮤니티를 설치해 두었으므로, 가장 어려운 부분은 이미 지나갔다고 생각합니다. 지시를 따르고 질문하는 데 능숙하므로, 시도하는 동안 언제든지 멈추고 조사하거나 메모 등을 할 수 있습니다.

지금 제 목표는 더 이상 메커니즘을 이해하고, 장단점, 무엇이 가능하고 무엇이 불가능한지 파악하여 나중에 후회하지 않고 수정하는 데 너무 많은 시간을 쓰지 않아도 되는 좋은 결정을 내리는 것입니다, 아시죠?

따라서 오늘 여러분이 공유해 주신 모든 정보는 매우 가치 있습니다. 왜냐하면 그것은 무엇을 고려해야 하는지에 대해 좋은 아이디어를 주었기 때문입니다. 특히 Discourse 팀이 제공하는 관리형 호스팅이 멀티사이트라는 점을 언급해 주셨을 때, 이것이 가능하다는 것을 정말로 깨달았습니다. 몇 가지 단계가 더 필요할 수 있지만, 모든 것이 가능하다는 것을 알았습니다.

피드백에 진심으로 감사드립니다 :raising_hands:

먼저 단일 멀티사이트를 사용할지, 아니면 여러 개의 독립 사이트를 하나의 서버에서 호스팅할지 결정해야 합니다. 두 옵션 중 하나를 결정하기 전까지는 위에서 질문하신 내용에 대해 답변을 보류하겠습니다. 이해해야 할 부분이 많습니다. 예를 들어, VM에 discourse를 설치하는 것만으로 자동으로 멀티사이트의 번거로움에서 벗어나는 것은 아니며, 제 경우에도 멀티사이트 설치 환경을 완벽하게 갖추는 데 3년이 걸렸습니다. 물론 문서가 많은 부분에서 명확하지 않았고, 제대로 설정하기 위해 많은 것을 직접 찾아야만 했습니다. 저는 2016~2017년부터 discourse를 사용해 왔는데, 이 시점까지 거의 9~10년째입니다.

그러니 한 발 물러서서 자신이 이루고자 하는 목표를 다시 한번 생각해 보시고, 그 목표에 집중할 수 있도록 도와드리겠습니다.

다시 한번 강조하지만, discourse 설치 자체가 가장 큰 장벽은 아닙니다. 배워야 할 것이 여전히 많으며, 9년간 discourse를 사용하고 배포해 온 저조차도 매일 새로운 것을 배우고 있다고 생각합니다.

이것이 늘 제 목표였습니다. 제가 만들고 있는 것을 고려할 때, 단일 멀티사이트를 사용하는 데는 이점이 없다고 봅니다. 제 목표는 독립적인 설치 환경을 하나의 서버에서 사용함으로써 비용을 절감하는 것입니다.

그리고 복잡하다는 말씀의 뜻을 이해합니다. 그래서 설치와 관련하여 저는 스스로를 기본 사용자라고 생각하고 있습니다. 설치는 할 수 있었고, 이제 일부 개념도 이해할 수 있게 되었지만요.

거의 35년 동안 음악을 해온 저에게도 매일 새로운 것을 배우는 것은 당연한 일입니다. 매일 배우는 것에 익숙하고, 배우지 않는 날을 기대하지도 않습니다. :slight_smile: 그래서 저는 이 커뮤니티에 있습니다. 여러분과 함께 새로운 것을 배우기 위해서요.

같은 서버에 여러 Discourse 사이트를 코드나 컨테이너를 공유하지 않고 운영하려면 다음을 시도해 볼 수 있습니다.

app.yml 파일을 주의 깊게 읽고 마운트(mounts) 섹션을 이해해야 합니다. 각 사이트마다 서로 다르고 예측 가능한 마운트 경로가 필요하며, 최소한 해당 디렉토리를 수동으로 편집해야 합니다.

이 방법을 실제로 적용해 본 경험(아마도 가장 비효율적인 방식으로 시도했을 것입니다)에 따르면, Discourse 코드를 두 개의 서로 다른 디렉토리에 복제했습니다. 이것이 반드시 필요한지는 불분명하며, 제가 직접 테스트해 보지 않아 확신할 수 없습니다.

각 디렉토리에서 연결성 검사 및 재빌드를 건너뛰기 위한 플래그를 사용해 ./discourse-setup를 실행했습니다. 이를 통해 기본 app.yml 파일이 생성되었습니다. 다음 단계로 두 파일을 수동으로 편집했는데, 마운트 경로를 변경하고 포트 노출 섹션을 주석 처리했으며, 외부 nginx가 SSL 처리와 내부 포워딩을 담당하도록 web.socketed 템플릿을 추가했습니다.

이후 각 디렉토리에서 ./launcher rebuild app을 실행하기만 하면 되었습니다.

솔직히 이 구성에 크게 만족하지 못해 몇 달간 실험한 후 중단했습니다. 하지만 여러분이 시도하려는 작업이 실제로는 가능하다는 것을 보여줍니다. 다만, 스스로 알아내야 할 부분이 있다는 점도 함께 말입니다.

초기 기반이 마련된 후를 위해, 모든 사이트가 자원을 공평하게 사용할 수 있도록 워커(worker) 수 등을 줄이는 것도 고려해 볼 수 있습니다.

상세한 정보 감사합니다!
아직 최선의 옵션을 고민 중이고, 이 옵션을 사용하게 되더라도 몇 가지 알아야 할 부분이 있습니다.

이걸 말씀하시는 건가요? 'mount’라는 단어를 검색해 봤는데 아무것도 나오지 않았거든요. 그래서 볼륨(volumes)과 관련이 있는 것 같다고 추측했습니다.

그렇다면 여기에서 다음과 같은 서로 다른 경로들을 생성하는 건가요?
var/discourse/shared/website1
var/discourse/shared/website2
등등
?

즉, 기본적으로 한 경로(예: var/discourse/shared/website1)에 일반적인 설치를 수행한 후, 그 파일들을
var/discourse/shared/website2
로 복사한 건가요?

만약 그렇다면, 왜 ./discourse-setup을 실행하는 건가요? 그러면 파일들이 덮어써지지 않나요?
두 경로 모두에 일반적인 설치를 수행하는 것이 더 나을 것 같습니다. 마치 완전히 분리된 두 개의 설치처럼요. 저처럼 ‘flags’ 같은 것을 언급할 때, 신경 써야 할 일이 더 많아지니까요. 아마도 일반적인 설치를 수행한 후 각 경로에서 app.yaml 파일을 수동으로 편집하는 것이 더 나을 것 같습니다.

수정: 아니요. 조사해 보니 이 맥락에서 말씀하시는 'clone’의 의미를 이해했습니다. 저장소 파일을 클론하신 거군요. 모든 것을 한 '경로’에 설치한 후 그 파일들을 다른 '경로’로 복사하신 줄 알았습니다.

이미 실행 중인 Discourse 인스턴스가 있으신가요? 이 포럼에 꽤 오래 계셨네요. 이미 하나의 인스턴스가 실행 중인 서버에서 두 번째 인스턴스를 실행하려고 하시는 건가요?

가장 좋은 학습 방법은 직접 해보는 것입니다. 저렴한 VPS를 설정해 보세요. 아직 인스턴스를 실행하지 않으셨다면, 일반적인 자체 호스팅 지원 설치를 진행해서 익숙해지는 것이 좋습니다. 실제 방문자가 없고 저장할 이유도 없으니, 설치 환경을 지우고 반복적으로 시도할 수 있습니다. 하나의 VPS에서 두 개 또는 세 개의 인스턴스를 실행하더라도 트래픽이 (거의) 제로라면, 가장 저렴한 VPS로도 충분히 구동할 수 있을 것입니다.

성공적으로 실행하게 되면, 다른 사람들이 배울 수 있도록 튜토리얼을 올려주세요!

네, 있습니다. 추가 인스턴스를 설치하려고 합니다.

이 설치 환경은 아직 새로 만들어졌고 가입한 사용자가 없으므로 문제될 것이 없습니다. 먼저 백업을 한 후 이 서버에서 모든 것을 시도해 볼 것입니다. 아직은 실질적인 위험이 없습니다.

반드시 그렇게 하겠습니다. 다른 사람들에게 도움이 되길 바랍니다.

@itsbhanusharma 저는 현재 인스턴스의 경로를 "discourse"에서 웹사이트 이름과 같은 "website-name"으로 변경하고 싶어서 ChatGPT와 Claude에게 더 많은 질문을 던졌습니다. 두 모델 모두 몇 가지 좋은 점을 지적해 주었습니다. 그중 하나는 각 설치에 2GB의 RAM이 필요하므로, 예를 들어 총 5개를 설치하려면 10GB가 필요하다는 것이 맞다는 것이었습니다.

만약 그렇다면, 이 플랜이 아마 더 나을 것입니다:

CX43Intel ® / AMD
8 VCPU
16 GB RAM
160 GB NVMe SSD
20 TB 트래픽 포함
€ 9.49 / 월

$5 x 5 = $25 대신 5개의 인스턴스에 대해 여전히 매우 좋은 가격입니다.

인스턴스당 2GB가 필요하다는 필요성에 대해 어떻게 생각하시나요? 이 시나리오에서 정확한가요? 제가 공유한 이 플랜이 좋은 선택이라고 생각하시나요?

그렇게 하지 마세요!

ChatGPT의 조언을 맹목적으로 따랐다가 오히려 자신의 discourse 사이트에 더 큰 피해를 입힌 고객들의 사례가 여러 건 있었습니다.

이 부분은 좀 더 복잡하며, 2+2를 더하는 것처럼 단순하지 않습니다. 그리고 이것이 바로 멀티사이트(multisite) 방식을 사용하는 것이 더 나은 아이디어인 주요 이유입니다.

다시 한번 말씀드리지만, 멈추고, 잠시 휴식을 취하고, 한 발 물러서서 본인의 필요를 다시 한번 생각해 보시기 바랍니다. 여기 메타(meta)에는 좋은 자료들이 많이 있으며, discourse 관련 조언을 믿을 수 있는 AI 봇은 https://ask.discourse.org 하나뿐입니다.

동의합니다. 하지만 봇이 제공하는 출처를 직접 읽어보며 정보를 확인해 보세요. 이렇게 하면 봇이 링크를 지어낸 것(실제로 그런 일이 있습니다!)이 아닌지도 확인할 수 있습니다.

그건 좀 과한 표현인 것 같네요… 아무도 ChatGPT의 조언을 맹목적으로 따르는 사람은 없어요 (적어도 저는요). 그래서 저는 지금 이 자리에 있는 여러분 모두와 이런 대화를 나누고 있는 겁니다. :slight_smile:

저는 그 도구들을 도구로서 사용합니다. 그것들은 제가 다른 관점을 볼 수 있게 해주는 것들을 언급해주고, 그 후 저는 온라인에서 조사를 하거나 이 커뮤니티에서 질문을 합니다. 그 과정에서 Discourse와 직접적인 관련은 없지만 다른 개념들도 보여주는데, 이것도 좋은 점입니다. 도구는 그것을 사용하는 사람만큼만 좋습니다.

그리고 저는 ChatGPT와 Claude의 팁을 활용해서 많은 일을 해왔습니다. 그들이 말하는 모든 것을 무시할 수는 없죠… 맹목적으로요 :wink:

이 부분에 대해 좀 더 자세히 공유해 주실 수 있을까요? 만약 ChatGPT / Claude의 정보가 부정확하다면, 미래에 이것을 읽을 다른 사람들을 위해 저에게도 알려주실 수 있을까요?

제 경우에는 그렇지 않은데, 몇 가지 이유가 있습니다 (제가 무언가를 놓치고 있지 않다면, 그 이유는 다음과 같습니다):

  • 필요할 때 다른 인스턴스에 영향을 주지 않고 각 인스턴스에 대해 사용자 정의 변경 사항을 할 수 있기를 원합니다. 제가 반드시 그렇게 하겠다는 것은 아니지만, 원할 경우 할 수 있다는 것을 알고 싶습니다.
  • 멀티사이트에서 부모 인스턴스가 충돌하면 모든 인스턴스가 충돌하는 것이 맞나요?
  • 저는 그냥 모든 것이 독립적인 것을 좋아합니다. 4~5개의 인스턴스가 언젠가 실패할 수 있는 무언가에 모두 연결되어 있다는 생각이 신경 쓰입니다.

다시 한번 말하지만, 멀티사이트가 어떻게 작동하는지에 대한 제 관점이 틀렸을 수도 있지만, 제 이해 범위 내에서는 저에게 좋은 선택지는 아닌 것 같습니다.

현재 제 필요는 다음과 같습니다:

  • 제가 필요한 모든 커뮤니티를 구축하기
  • 장기적으로 그 커뮤니티 구축 결정이 좋은 것인지 모르기 때문에, 가능한 한 적은 돈을 쓰기 (과거에 "실험"에 너무 많은 돈을 쓴 적이 여러 번 있습니다).

이 도구를 몰랐습니다. 공유해 주셔서 감사합니다. 북마크를 해뒀습니다.
다만, Discourse AI 봇이 해당 주제에 대해 많은 콘텐츠가 이용 가능하므로 더 많은 지식을 가지고 있다고 믿지만, ChatGPT나 Claude가 말하는 모든 것을 맹목적으로 (미안합니다, 또 하게 됐네요 haha) 폐기해서는 안 된다고 생각합니다. 저는 ChatGPT와 Claude도 사용하는데, 때로는 특정 사항이 Discourse와만 관련이 있는 것이 아니라 다른 것들에 대해서도 조금 더 배우고 싶기 때문입니다.

어쨌든, 여러분의 피드백과 시간을 소중히 생각합니다. 이미 저에게 큰 도움이 되었습니다.

제가 파악한 바로는, 현재 시스템 설정에 대해 지나치게 깊이 고민하고 있는 것 같습니다.

본질적으로, 1,000개의 뛰어난 새로운 커뮤니티 아이디어를 모두 동시에 추진하기 위해 수많은 새로운 discourse(그리고 확장하여 다른 소프트웨어) 인스턴스를 생성하는 것은 피해야 합니다.

커뮤니티 구축은 반복적인 과정이며 집중이 필요합니다. 한 번에 여러 커뮤니티에 주의를 분산시키면 감당할 수 없을 정도로 부담이 커질 것입니다.

제가 드린 제안은 앞서 언급했듯이 단순한 참고 자료였습니다. 제가 이러한 실험을 했을 때 그것은 그저 할 수 있으니 해보는 것일 뿐이었으니까요.

이러한 방식이 일반적인 관행이 아닌 데에는 이유가 있습니다(하나 또는 두 가지). 상당한 유지보수 및 관리 오버헤드가 수반되며, 앞으로 많은 번거로움과 불면을 초래할 것입니다. 미리 경고해 드립니다.

귀하의 목표를 고려할 때, 다음과 같은 문장으로 제 의견을 정리하겠습니다: 여러분이 이루고자 하는 것은 불가능한 것이 아닙니다. 하지만 오늘이 모든 것을 실현할 날은 아닙니다. 손에 있는 것에 집중하여 첫 번째 커뮤니티를 구축하세요. 나머지는 때가 되면 따라올 것입니다.

실험을 통해 배우는 것에 관해서는, 비용 절감이 최우선 목표라면 여러 사이트(multisite) 방식이 적합합니다. 물론 그에 따른 타협점이 존재한다는 점은 감안해야 합니다.

피드백을 주셔서 다시 한번 감사합니다.

말씀하시는 뜻을 잘 이해하고 있으며, 제게 필요한 모든 것을 위해 커뮤니티를 모두 직접 구축하려 한다면 4~5개가 아니라 15개 정도가 될 거라고 확신합니다.

결국 지금은 정말 중요하고 즉시 구축해야 할 3개로 정리할 수 있었습니다. 이 시점에서 이 3개 모두 사용자가 제가 보유하거나 구축 중인 제품과 서비스에 대한 경험을 논의할 수 있는 독립적인 공간이 필요합니다.

앞서 말씀드렸듯이, 서로 의존하는 멀티사이트 구조는 저에게 적합하지 않게 느껴집니다. 솔직히 말씀드리자면, 질문자님께서 언급하신 두통과 불면증 같은 문제는 그런 경우(적어도 저와 제가 다른 영역에서 경험했던 상호 의존적인 상황들을 고려할 때) 멀티사이트 구성에서 더 발생할 가능성이 높을 것입니다. 모르겠습니다… 제 직관이 "그렇게 하지 마"라고 말하는 경우 중 하나라서, 일단 직관을 따르기로 했습니다. 틀렸을 수도 있고, 앞으로 진행하면서 그 사실이 드러날 수도 있지만, 우선은 제 직신을 믿어보겠습니다.

어쨌든 시간 내어 도와주셔서 다시 한번 감사합니다. 정말 감사드립니다. :raising_hands:

그럼 행운을 빕니다, 선생님! 새로운 모험에 좋은 일만 있길 바랍니다.

안녕하세요, 여러분. 새해 복 많이 받으세요!

저는 최근 시간과 비용을 절약하기 위해 제 환경을 조정하는 중이라 이 주제가 제게 매우 적시적회입니다. 저는 트래픽이 매우 적지만 저에게는 모두 중요한 개인 사이트 3개를 운영하고 있습니다. 또한 새로운 아이디어를 테스트하기 위해 더 많은 사이트를 쉽게 만들어 보고 싶습니다. 그래서 멀티사이트(Multisite) 방식이 제게 흥미로울 것 같습니다.

그런데 최근 DigitalOcean에서 Hetzner로 사이트를 하나 이전했는데, 비용 절감 폭에 놀랐습니다. Hetzner의 가장 작은 cx23 플랜은 월 3.49달러로, 작은 사이트 하나를 위한 거의 이상적인 구성입니다. 비슷한 구성으로 DigitalOcean에서는 15.60달러를 지불하고 있었거든요.

이 주제와 관련된 다른 글들을 읽으면서, 멀티사이트 방식에 대한 제 주요 고민은 모든 사이트에서 직접 전송 이메일(Direct Delivery Email)을 사용하되, 사이트의 도메인 이름을 이메일 도메인 이름으로 사용하여 사이트 회원들이 쉽게 인식하고 신뢰할 수 있게 하려는 점입니다. 이를 설정하는 방법이 매우 직관적이지 않은 것 같습니다.

따라서 현재로서는 멀티사이트 대신 독립 사이트(Standalone sites) 방식을 유지하고 모두 Hetzner로 이전하는 것이 저에게 가장 좋을 것 같다는 결론을 내렸습니다. 이렇게 하면 비용은 절약되겠지만, 독립 사이트를 설정할 때 발생하는 반복적인 설정 작업으로 인해 시간 절약 효과는 크지 않을 것 같습니다.

그렇게 할 수는 있지만, 모든 사이트가 동일한 SMTP 자격 증명을 사용하는 경우에만 가능합니다.

새로운 Hetzner가 훨씬 저렴하므로, 이전 요금으로 하나만 운영하는 것보다 세 개의 사이트를 운영하는 것이 여전히 유리합니다.

RAM이 1GB인 환경에서는 멀티사이트(multisite)를 권장하지 않으며, 설정하는 것도 더 번거롭습니다. 다만 새로운 호스트네임 별칭(hostname aliases) 환경 설정이 가장 큰 문제 중 하나를 해결해 줍니다.

cx23에는 4GB의 램이 있습니다. 나머지 두 사이트를 각각 별도의 cx23 서버로 옮기려고 하니 어떻게 될지 지켜보겠지만, 제 생각에는 괜찮을 것 같습니다.

메일 수신기(mail-receiver)는 이메일 수신에만 관련이 있고 SMTP 자격 증명이 없기 때문에 이 부분이 이해가 되지 않습니다.

수신 이메일에 대해 말씀하시는 건가요? 아니면 발신 이메일인가요? 발신 이메일의 경우, 각 사이트마다 app.yml에 자체 SMTP 자격 증명이 설정되어 있지 않나요?

아니요. 메일 수신기는 별개입니다. 멀티사이트(multisite)를 사용하는 경우 YML 파일은 하나이며, SMTP 발신 자격 증명은 바로 그 파일에서 설정됩니다. 메일 수신기를 사용하는 경우, 각 사이트에 대해 메일 수신기가 필요하므로 다른 문제가 발생합니다(적어도 제가 찾은 유일한 해결책은 이것입니다).