같은 DNS 이름을 유지하면서 Discourse를 다른 서버로 이전하는 방법

고맙습니다. 분명히 리프트 앤 쉬프트(Lift and Shift)가 내가 생각했던 것만큼 깔끔하지는 않더군요. 원활한 리프트 앤 쉬프트 작업을 위해 이전과 이후에 몇 가지 점검을 수행해야 합니다. (Postgres를 12.0에서 13.0으로 업그레이드하는 과정에서 리프트 앤 쉬프트 절차에 대해 몇 가지 교훈을 얻었습니다.) Amazon LightSail 서버(1GB RAM)로 이전하려는 분들을 위해 향후 참고용으로 단계별 가이드를 공유합니다:

기존 서버

  • S3에 백업 생성
  • cd /var/discourse
  • ./launcher rebuild # 원활한 전환을 위해 최신 빌드 가져오기
  • ./launcher cleanup # 오래된 데이터를 제거하고 패키지 크기를 줄이기 위해 정리
  • ./launcher stop app # 이 단계를 건너뛰면 나중에 Postgres로 재빌드할 때 실패할 수 있습니다
  • tar -zcvf /var/discourse discourse.tar.gz

새로운 Amazon LightSail 서버

  • Amazon에서 Ubuntu 20.20 이미지 설치 (1GB RAM)
  • Docker 설치
  • 2GB 스왑 생성 # 이 단계를 건너뛰면 재빌드가 실패할 수 있습니다
  • vm.overcommit_memory=1 설정 # 이 단계를 건너뛰면 재빌드 중 Postgres에서 실패할 수 있습니다
  • 기존 서버에서 discourse.tar.gz를 FTPS/전송
  • tar -zxvf discourse.tar.gz -C /
  • cd /var/discourse
  • app.yml에서 UNICORN_WORKERS를 2로 설정 # 1GB RAM 환경에서 2보다 높게 설정하면 과도한 디스크 활동으로 인해 스왑 및 스로틀링이 발생할 위험이 있습니다
  • ./launcher rebuild
  • DNS를 변경하여 새로운 Amazon 서버를 가리키도록 설정

Discourse 설정 과정을 거치지 않고 서버를 이전(리프트 앤 쉬프트)하는 더 쉬운 방법이 있을까요?