솔직히 말씀드리면, 저희가 자체 호스팅한 Discourse 설치 환경에 수동으로 유지보수를 한 지가 아주 오래되었고, 처음 세팅을 한 사람은 다른 사람이었습니다.
SendGrid가 기본 인증(basic auth)에서 API 키로 전환을 요구하기 때문에 SMTP 인증 정보를 변경해야 했습니다.
다음 문서를 찾았습니다: Discourse에 권장되는 이메일 제공업체
해당 문서에는 다음과 같이 적혀 있습니다:
현재 이메일 서비스를 변경하려면
./discourse-setup명령도 실행해야 합니다(이 과정에서 포럼이 재빌드되는 동안 몇 분간 오프라인 상태가 됩니다).
해당 명령을 실행하고 예상대로 질문에 답변한 결과, 표준 출력(stdout)으로 약 2,000줄의 출력이 발생했으며, 마지막에는 다음과 같은 내용이 표시되었습니다:
Upgrade Complete
----------------
Optimizer statistics are not transferred by pg_upgrade so,
once you start the new server, consider running:
./analyze_new_cluster.sh
Running this script will delete the old cluster's data files:
./delete_old_cluster.sh
-------------------------------------------------------------------------------------
UPGRADE OF POSTGRES COMPLETE
Old 10 database is stored at /shared/postgres_data_old
To complete the upgrade, rebuild again using:
./launcher rebuild app
-------------------------------------------------------------------------------------
cfd4df26701b4b4cd4a4202f30a9c8165a1ba609c921bffc25f250f52fee6cbe
솔직히 이 과정이 소프트웨어를 "업그레이드"할 것이라고는 기대하지 않았습니다. 단순히 SMTP 인증 정보만 변경하려 했을 뿐입니다. 하지만 사이트가 자동으로 다시 시작되지 않아, 텍스트에 "업그레이드를 완료하려면"이라고 적힌 대로 다음 명령을 실행했습니다:
./launcher rebuild app
이로 인해 표준 출력으로 약 8,000줄의 출력이 더 발생했습니다. 결국 사이트는 다시 올라왔지만, 이전과 같은 모습이 아닙니다:
- 로고가 사라지고 “Discourse” 기본 로고로 대체되었습니다.
- 사용자 아바타 이미지가 깨져 있었습니다. 나중에 다시 정상 작동하기 시작했습니다.
- 게시글 내 이미지와 카테고리 로고가 깨져 있습니다. 여전히 작동하지 않습니다.
./discourse/share디렉터리와 S3 버킷(URL이 이미지를 찾도록 설정된 곳)에서 파일명이 일치하는 이미지를 찾아보았지만 존재하지 않습니다. - “latest” 페이지에서 숨겨두었던 “support” 카테고리의 게시글이 다시 해당 페이지에 표시되고 있습니다.
- “support” 카테고리가 “categories” 페이지에 더 이상 표시되지 않습니다.
- “categories” 페이지가 이제 2열 레이아웃으로 바뀌었습니다. 왼쪽에 카테고리, 오른쪽에 "latest"가 표시되는데, 이전에는 단순히 카테고리 목록만 있었던 것 같습니다.
+ New Topic버튼의+기호 색상이 흰색에서 회색으로 변경되었습니다.
이 시점에서 일부 설정이 손실된 것으로 의심됩니다. 하지만 모든 게시글은 온전히 남아 있습니다. 또한 Discourse가 자체적으로 업그레이드되었을 것(어떤 버전에서인지 모르지만, 아마도 아주 많은 버전이 건너뛰었을 것입니다)이라고 추정하며, 이로 인해 기본 설정, CSS, 템플릿 등이 변경되어 위에서 나열된 문제들이 발생했을 것으로 보입니다.
소스 코드를 확인해보니 현재 버전은 2.6.0.beta6으로, apparently 7일 전에만 출시된 버전이었습니다.
따라서 제 질문은 다음과 같습니다:
- SMTP 인증 정보와 같은 단순한 설정 변경을 적용하기 위해 소프트웨어를 이렇게 완전히 업그레이드해야 하는 것이 정상적인가요?
- 소프트웨어 전체를 업그레이드하지 않고 설정을 변경하거나 보안 업데이트를 적용하는 방법이 있나요?
- 제 이미지는 어디에 있으며, 왜 URL이 변경되어 더 이상 접근할 수 없게 되었나요?
- 이 일어난 일 이후에 작성된 새 게시글을 잃지 않고 롤백할 방법이 있나요? 이전에 어떤 버전을 사용했는지조차 알지 못합니다. S3에 Discourse 백업(gzipped SQL 덤프)은 가지고 있습니다.
+ New Topic버튼 색상, 숨김/표시 설정된 “support” 카테고리 같은 것들을 수정하려면 모든 설정과 커스터마이징을 수동으로 다시 확인해야 하나요?
Discourse가 호스팅된 EC2 볼륨의 EBS 스냅샷을 유지하고 있다고 생각했지만, 실제로는 그렇지 않았습니다. 이후로 스냅샷을 활성화하여, 향후 필요 시 해당 방식으로 롤백할 수 있도록 조치했습니다.
도와주셔서 감사합니다.