개발용 Docker vs rails 서버 + ember

개발 환경에 discourse를 설정하는 방법에 대한 다음 스레드를 읽었습니다.
meta discourse org/t/install-discourse-on-macos-for-development/15772

그러나 discourse를 docker에 포함하는 방법에 대해서는 언급되어 있지 않습니다.

하지만 프로덕션 가이드에는 "docker"에 대한 언급이 있습니다.
github com/discourse/discourse/blob/main/docs/INSTALL-cloud.md#5-install-discourse

저는 AWS(아마존)에서 사이트를 호스팅할 계획입니다.

또한 docker 자체를 위한 git 저장소가 있다는 것을 알게 되었습니다.
github com/docker/compose

그리고 git에 docker용 discourse 이미지도 있습니다.
github com/discourse/discourse_docker

저는 이미 discourse의 git 저장소를 클론하여 rails 서버와 ember CLI에서 실행함으로써 macOS에 discourse를 설치했고, 정상적으로 작동하고 있습니다. 하지만 "docker"는 사용하지 않았습니다.

제 질문은 다음과 같습니다:

  1. AWS 서버에서 https://github.com/docker/compose에서 docker를 설치한 후, discourse 이미지 https://github.com/discourse/discourse_docker를 그 docker 안에 배치할 수 있나요? 그렇게 하는 것이 괜찮은가요? 다른 적절한 방법이 있나요?

  2. 로컬 서버의 데이터베이스를 사용하려고 합니다. 따라서 로컬호스트 서버에서 생성된 백업(게시물/스레드)을 프로덕션 환경(실제 AWS 서버)으로 복사할 때 문제가 발생하나요?

현재 사이트가 공개될 때 비어 있지 않도록 로컬호스트 서버에서 몇 개의 더미 게시물(적절한 내용으로)을 생성하고 있습니다.
이것이 올바른 방법인가요? 아니면 실제 AWS 서버에서도 사이트를 “공사 중” 모드로 설정하거나 유사한 방식으로 처리하여 사람들이 빈 사이트를 보지 못하게 하고, 실제 서버에서 몇 개의 기본 게시물을 생성할 수 있을까요?

커뮤니티에서 최상의 지원을 받으려면 프로덕션 환경에는 표준 설치를 사용하세요. 이 방식은 Docker 컨테이너와 DB를 자동으로 설정하므로 별도로 신경 쓸 필요가 없습니다.

네, AWS에 배포할 수 있습니다.

Discourse에 익숙해져서 스스로 문제를 해결할 수 있을 때까지는 이 방식을 사용하는 것을 권장합니다. :slight_smile:

처음에는 사이트 설정에서 로그인 필요로 설정하여 사이트를 비공개로 유지할 수 있습니다. 특정 “공사 중” 모드는 제공되지 않습니다.

그리고 여러분이 지켜보고 있지 않을 때 누군가가 가입하는 경우를 대비해 사용자 승인 필수도 설정하는 것이 좋습니다.

로버트가 말했듯이, 플러그인 개발을 원하지 않고 단순히 사이트를 구축해 실행하는 것이 목표라면 표준 설치(Standard Install)를 수행해야 합니다. 가장 쉬운 방법은 RAM 2GB와 디스크 40GB가 포함된 EC2 인스턴스를 실행하는 것입니다. 더 적은 사양으로도 가능하지만, 저는 이를 권장하지 않습니다. 이렇게 하면 DNS, 소셜 로그인 등을 설정할 수 있는데, 개발용 설치에서는 이를 수행할 수 없습니다.

다만, 개발 사이트의 백업을 만들어 프로덕션 환경에 복원할 수는 있습니다.

답변 주셔서 감사합니다.
포스트그레SQL 데이터베이스를 백업한다는 말씀이신가요? 맞나요? 아니면 디스코urs 관리자 도구 패널의 백업 버튼을 클릭하는 것만인가요?

이미 2GB RAM과 100GB 디스크를 구매했는데, 실제로 필요하게 될지는 모르겠습니다. 여러 사이트를 호스팅할 수도 있거든요. 어차피 RAM은 두 개 이상의 사이트를 돌리기에는 부족할 것 같은데?

어떤 경우에도 Dev 설치 환경에서 프로덕션으로 콘텐츠를 복사하는 것은 매우 비정상적입니다.

프로덕션에서 콘텐츠를 준비하면 되지 않나요? 비공개라면 시간이 얼마든지 있으니까요.

네, 그렇게 하겠습니다. 검색 엔진 크롤러가 이를 감지해서 “접근 불가” 사이트 등으로 등록할까 봐 그랬던 건데, 정확히는 잘 모르겠어요.

그럼 가능한 한 빨리 공개하는 것이 좋겠군요. Google Search Console(관할 지역에 따라 다름) 등을 통해 상황을 모니터링할 수 있습니다.

좋아요. 그럼 사이트를 온라인에서 바로 프로덕션 환경으로 구축하겠습니다. 그렇게 하면 덜 번거로울 것 같습니다. 감사합니다.

네, 훨씬 수고롭지 않을 것 같아요. 표준 설치의 경우 배포에 20분 정도밖에 걸리지 않습니다.

원하시면 나중에 개발용 사이트에서 플러그인 개발을 시도해 볼 수도 있습니다.

그렇긴 하지만, 개발 인스턴스에서 가져오기 작업을 수행할 때 그렇게 한 적이 있습니다.

저 역시 여전히 이것이 제 추천 방법입니다.