블로그 정비 건

  • Post author:
  • Post category:칼럼
  • Post comments:0 Comments
  • Post last modified:January 17, 2022

비용 절감해보려고 시작한 일이 큰 성과도 없이 열심히 삽질하다 끝났다.

WordPress

CDN 지원

S3 호환 Object Storage 와 스토리지에 연계된 CDN을 지원하는 플러그인은 크게 두 가지이다.

Media Cloud를 줄곧 써왔고 이것만 믿었는데 한마디로 망했다. DigitalOcean의 CDN에 커스텀 도메인을 붙이는 작업하다 되려 CDN 전체를 떼어버리고 말았다.

CloudFlare와 DigitalOcean Space

Custom Domain with Digital Ocean Spaces using Cloudflare for DNS 을 참고해서 DO Space CDN에 CloudFlare 에서 받은 도메인 인증서를 붙여 넣었다.

Discourse

CDN 이전

Migrate_to_s3 for Digital Ocean Spaces woes의 논의가 거의 맞는데 DISCOURSE_S3_ENDPOINT 환경변수도 추가해야 한다.

export DISCOURSE_S3_BUCKET="MY_BUCKET/ds"
export DISCOURSE_S3_REGION="us-west-2"
export DISCOURSE_S3_CDN_URL="https://content.andromedarabbit.net"
export DISCOURSE_S3_ENDPOINT="https://sgp1.digitaloceanspaces.com"
export DISCOURSE_S3_ACCESS_KEY_ID="" 
export DISCOURSE_S3_SECRET_ACCESS_KEY=""

cd /var/www/discourse

DRY_RUN=1 rake uploads:migrate_to_s3

CDN 주소 변경

Discourse Settings 에서 S3 및 CDN 관련 설정을 바꾼 후 rebake한다.

cd /var/www/discourse

rake posts:rebake

백업

Synchronizer-base for any backup provider – plugin / broken-plugin – Discourse Meta로 Object Storage 대신 Google Drive, DropBox에 백업을 저장할 수 있다. 에 기대가 컸으나 4~5년 동안 업데이트가 없고 패키지 충돌이 나는 듯 하다.

설정 바꾸기

사용자의 Trust level을 일괄 수정하려면

rails c

User.where(trust_level: [0, 1, 2, 3]).find_each do |user|
   user.change_trust_level!(TrustLevel[4])
end

기본 Trust level로 일괄 수정하려면

rails c
User.all.find_each do |user|
  Promotion.recalculate(user)
end

Group.ensure_consistency!

참고

좌충우돌

Object Storage 경로 변경

aws s3 sync 명령으로 버킷의 특정 폴더를 다른 곳에 복사하기는 쉽다. 단지 각 파일의 권한(Permission)은 복사되지 않는다. 복사본의 권한을 일괄설정하는 것만 가능하다.

워드프레스 호스팅 서비스 검토

DigitalOcean의 VPS/Kubernetes 서비스를 벗어나 워드프레스 전문 서비스로 넘어가면 비용이 크게 줄지 않을까 했다. 결과적으론 이전하지 않고 DigitalOcean 내에서 최적화하고 끝냈다.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.