홈서버에서 클라우드로 블로그 이사하기 (2)

2021. 7. 3. 20:37개발

이 글은 21.03.13일에 쓰여진 글로, 현재는 티스토리로 정착을 하였으니 지나간 일이 되었습니다.😎
Velog => 홈서버(워드프레스) => AWS(워드프레스) => 티스토리가 된 셈이네요.
 

홈서버에서 클라우드로 블로그 이사하기 (1) - 전기 염소는 안드로이드를 꿈꾸는가

홈서버에서 클라우드로 블로그 이사하기 (1) 홈서버에서 클라우드로 블로그 이사하기 (2) Contents1 불타는 금요일 밤에2 노인 학대는 이제 그만3 클라우드를 찾아 떠나는 여행 불타는 금요일 밤에

blog.gthd.app

클라우드를 찾아 떠나는 여행 (2)

오라클에서 500만번 시도한 끝에 결국 물을 먹고 다음으로 찾아본 클라우드는 GCP이다. 오라클하고 제공 리소스 차이는 나지만 여기도 Always Free Tier가 있었다.

설정도 간편하고 카드 자꾸 뱉어내는 오라클에 비하면 바로바로 신용카드 먹어준다. 물건 잘 팔아먹으려면 이렇게 빠릿빠릿 해야지...! GCP VM 생성법이야 매우 간단하고, 구글링해보면 다른 개발자분들 포스팅에도 상세히 나와있으니 여기서 더 적진 않겠다.

구분리소스

CPU 0.2 vCPU
RAM 600MB
저장소 30GB

GCP 무료로 제공되는 f1-micro의 스펙은 위와 같다. 이거로 워드프레스 돌릴 수 있나...? 그런데 구글링해보면 512MB짜리 호스팅 서비스로 워드프레스를 돌린단 이야기도 많다. 그럼 이 정도면 차고 넘치겠단 생각이 들어 곧바로 세팅을 시작했다.

사랑해요 Docker!

Docker로 워드프레스를 배포했기 때문에 해당 볼륨만 빼서 넣어주고 nginx 세팅 만지는 것으로 다른 절차 필요없이 마이그레이션 끝. 이 작업을 위해선 당연히 SFTP 접속이 필요한데, 그 부분은 구글 선생님께 물어보면 상세히 알려주시니 여기서 자세히 적진 않겠다.

그 외에 설정한 것들이라면...

sudo su
dd if=/dev/zero of=/var/swap bs=1M count=2048
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile

메모리가 적고 VM 인스턴스가 swap 영역이 안 잡힌 상태로 생성되기 때문에 swap 영역을 만들어서 사용해준다.

version: '3.1'
  services:
    wordpress:
      container_name: wordpress-web
      image: wordpress
      restart: always
      ports:
        - 11180:80
        - 11443:443
      environment:
        WORDPRESS_DB_HOST: db
        WORDPRESS_DB_USER:
        WORDPRESS_DB_PASSWORD:
        WORDPRESS_DB_NAME:
      volumes:
        - ./wordpress:/var/www/html
      privileged: true
    db:
      container_name: wordpress-db
      image: mysql:5.7
      restart: always
      environment:
        MYSQL_DATABASE:
        MYSQL_USER:
        MYSQL_PASSWORD:
        MYSQL_RANDOM_ROOT_PASSWORD:
      volumes: - ./db:/var/lib/mysql
      privileged: true

내 경우엔 도커로 올린 서비스들은 docker-compose로 관리하고 있어서 특별한 인자 설정 없이 바로 docker-compose up -d로 구동 성공. 방문자수가 많은 블로그도 아니니 이거로 클라우드 설정도 끝났고 이제 가용성 걱정 없이 쓸 수 있겠다!

그런 꿈을 꾸었다...

처음엔 잘 되는줄 알았는데 깔아놓은 플러그인들이 많아서 무거운지 불안정한게 눈에 띄웠다. 메모리는 상시 90%는 잡아먹고 스왑 영역도 500MB씩 차있다. 기본으로 주는 스토리지 성능이 좋을 리도 없으니 메모리 스왑 과정에서 손실이 막대할 것으로 보였는데...

세팅을 다 하고 나서 새로고침 10번에 1번 정도씩 무척 느린 응답과 상기 페이지를 보게 되니 정말 정신 나갈 것 같았다. 아무리 생각해도 이건 아닌 것 같다. n시간을 붙잡은 GCP 시행착오는 이쯤에서 포기하고 다른 길을 찾아야한다.

돌고 돌아 AWS로..

AWS는 학창 시절에 졸업 작품에 사용할 기술들 찾아볼 때 이후론 큰 관심은 없었다. 요새 IT 기업들에서 엔지니어에게 요구하는 자격 조건 중 하나다, 비용 절감 잘 못하면 요금 폭탄 제대로 맞는다 정도.

그런데 내가 원하는 사양이 눈에 딱 보이지가 않았다. 램 1GB 정도에 저렴하게 제공되는 클라우드면 쓸만할 것 같은데... 그러다가 발견한 게 AWS Lightsail이다.

월 5달러에 1GB 램, 40GB 스토리지면 지금 내 규모의 블로그를 돌리는데 오히려 남는 사양이란 생각이 들었고 곧바로 인스턴스를 설치해서 사용을 해봤다.

가입을 하고 인스턴스 생성을 누르면 친절한 UI가 반겨준다. 원래는 Arch Linux를 사용하고 싶었지만 따로 제공하고 있는 것 같지 않아 AWS용으로 아마존이 관리하는 Amazon Linux 2를 설치하였다.

준비가 완료되면 이렇게 홈에서 생성한 인스턴스를 볼 수 있는데, 터미널 모양 아이콘을 눌러 웹으로 SSH에 접속할 수 있다. 물론 개인적으로 사용하는 터미널 에뮬레이터가 있다면 구글 선생님이 알려주는 가이드를 찾아보고 해당 터미널을 이용할 수도 있다.

그 다음엔 GCP를 설정할 때 했던 것과 똑같은 절차로 설치. 잘 구동된다. 돈 내고 쓸 예정이라 살짝 애착이 가서 zsh, oh-my-zsh, powerlevel10k 설치도 따로 해놨다 ㅎㅎ

해외 가이드를 보니까 CloudflareWP Super Cache를 붙이는게 성능에 좋다고 이야기해서 해당 부분도 겸사겸사 같이 적용해놨는데 이 부분은 기회가 되면 따로 포스팅 할생각이다.