Programming/Practice

고스트 블로그 설치 방법 및 만들기 (feat. Digital Ocean)

재은초 2023. 8. 21. 15:54
반응형

고스트 블로그는 호스팅과 도메인을 따로 구해서 ① 셀프 호스팅하는 방법과 ② 고스트 자체 호스팅 서비스를 사용하는 방법이 있다.
고스트 자체 호스팅은 가격이 조금 비싼 편이라 보통 셀프 호스팅을 많이 하는 데,
그 중에서도 거의 원클릭 방식으로 고스트와 연동되는 Digital Ocean을 많이들 사용하는 같다.
 
나의 경우 무료 호스팅과 도메인 지원이 되는 깃허브 페이지로 고스트 블로그를 만들었는데,
이러나 저러나 너무나 귀찮아서 결국 호스팅과 도메인 주소를 각각 사서 셀프 호스팅을 하기로 했다. 역시 돈이 쵝오...

 

호스팅 사이트 회원가입하기

  • 디지털 오션은 호스팅 서버 업체로, 클라우드 서비스 중에서도 개발자들을 위해 좀 더 특화된 곳이라고 한다.
  • 아래 배너를 클릭하고 가입하면 $200 크레딧이 부과된다. 참고로 저 링크로 가입하시고 $25 달러를 쓰시면 저에게도 $25의 크레딧이 부과된다.
  • 나는 저 버튼을 알기 전에 먼저 가입해버려서 따로 크레딧 혜택을 받지 못해 너무 아쉬웠는데, 그러니 미가입자라면 꼭 제 배너가 아니더라도 다른 추천 배너로 가입해서 혜택 받으시기를 추천드린다.
  • 참고로 가입 절차 중에 카드 정보 입력 창이 뜨면서 카드 확인용으로 $1가 결제되고 보통 바로 다시 환급된다.

 

Digital Ocean 프로젝트 및 드롭렛 설정하기

  • 로그인 후 프로젝트를 새로 생성한다. 나의 경우는 프로젝트 이름을 myblog라고 지정하였고, 사용 목적으로 website or blog로 설정했다.
  • 참고로 위의 해당 목록들은 대시보드 왼쪽 Projects 탭에 해당 프로젝트 이름을 누르고 들어가서 수정할 수 있다.
  • 프로젝트가 생성되면 대시보드 왼쪽 Manage 탭에서 드롭릿을 클릭하고 Create Droplet 버튼을 눌러 만들 수 있다.
  • 먼저 데이터센터 지역을 선택해야 하는데, 내 위치에서 가장 가까운 곳에 위치한 곳을 선택하는게 속도면에서 좋다고 한다. 그래서 나는 한국에서 제일 가까운 싱가포르를 선택했다.
  • 그리고 이미지 선택 부분에서 Marketplace 메뉴를 선택해 ghost를 검색하고 지정해준다.
  • 사이즈 선택 부분에서 Basic 타입을 선택하고 CPU를 Regular 옵션으로 설정한다. 그리고 가격은 가장 낮은 $6으로 선택했는데, 보통 개발자 블로그 방문자가 많지 않아서 이 정도는 큰 문제가 안 된다고 한다.
  • 그런데 내가 한달간 사용해보니 고스트 자체 Mysql이 생각보다 메모리를 많이 잡아 먹어서 1GB RAM이 많이 부족했다. 그래서 일단 야매로 버퍼인지 스왑인지로 1GB 더 끌어와서 쓰는 중인데, 이건 어떻게해야 메모리를 효율적으로 쓸 수 있을지 좀 더 생각해봐야 할 것 같다.

 

Digital Ocean SSH 설정하기

  • 인증 방법에는 SSH Key 방법과 비밀번호 방식이 있다. 처음에는 비밀번호 방식이 더 쉽지 않을까했는데, 매번 서버에 접속할 때마다 임시 비밀번호를 메일로 전달받아 입력하는 과정이 번거롭고 또 보안적인 문제 때문에 보통 SSH 인증 방식을 많이 사용한다고 한다.
  • 참고로 SSH(Secure SHell)는 네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해주는 응용 프로그램 또는 그 프로토콜을 가리킨다.
SSH(Secure SHell)란?
   SSH는 여러 대의 컴퓨터가 네트워크를 통해 데이터 전송과 원격 제어등의 통신을 할 때 사용되는 네트워크 프로토콜 중 하나다. AWS와 Digital Ocean 같은 클라우드 서비스는 인스턴스 서버에 접속하여 해당 머신에 명령을 내리기 위해서 SSH을 통해 접속한다.
   SSH는 다른 컴퓨터와 통신할 때 일반적으로 사용하는 비밀번호 입력을 통해 접속하지 않고, 한 쌍의 Public Key과 Private Key를 통해 접속하려는 컴퓨터와 인증 과정을 거쳐 통신하기에 보안적인 면에서 뛰어나다.
   Public Key란 단어 뜻 그대로 공개되어도 비교적 안전한 키 값으로, 이 키를 통해 메세지를 전송하기 전 암호화한다. 반대로 Private Key란 절대로 외부에 노출되어서는 안되는 키 값으로, 본인의 컴퓨터 내부에 저장하게 되어있으며 암호화된 메세지를 복호화 할 수 있다.
   먼저 통신 응답하는 Server 컴퓨터에 Public Key를 복사하여 저장해 놓는다. 그리고 접속 요청을 하는 Client 컴퓨터에 해당하는 Public Key와 쌍을 이루는 Private Key를 비교하여 서로 한 쌍의 Key인지 검사한다. 이렇게 서로 관계를 맺고 있는 Key 라는 것이 증명되면 비로소 두 컴퓨터 사이에 암호화된 채널이 형성되어 Key를 활용해 메시지를 암호화하고 복호화하며 데이터를 주고 받을 수 있다.
  • SSH를 설정하기 전에 먼저 우리 컴퓨터에 키를 만들어 줘야 하는데, 터미널을 열고 ls -al ~/.ssh 명령어를 입력해 .ssh폴더 내 SSH 키 목록을 확인한다.
  • 나의 경우 SSH를 생성한 적이 없어서 해당 경로 자체가 존재하지 않아 아예 처음부터 SSH 키를 생성했는데, 기존에 키가 있으신 분은 아래 내용은 넘어가면 된다.
ssh-keygen                        // ssh 키값 생성 명령어
Enter file in whicn ....          // 해당 위치에 키값 생성하려면 엔터를 눌러준다
Enter passphrase ...              // 비밀번호 2번 입력해주면 끝
  • SSH 설정을 완료하고 다시 ls -al ~/.ssh 명령어를 입력해 .ssh폴더 내 SSH 키 목록을 확인하면 아까와 달리, id_rsa 파일이 생성된 것을 볼 수 있다.
  • 그러면 아래 명령어를 입력해 해당 파일 내용을 확인하면 키값이 보이는데 해당 부분을 복사한다.
1s -al ~/.ssh                             // 확인하기
cat ~/.ssh/id_rsa.pub                     // id_rsa.pub 파일 내용 확인
  • 그런데 이 때 만약 SSH 공개키 값 마지막에 있는 이메일 주소가 Digital Ocean의 이메일 계정과 다른지 확인해보고 다르면 이 이메일 값들을 맞춰줘야 한다.
  • 참고로 나의 경우 SSH 설정을 처음하다보니 기본적으로 계정@시스템정보 이 키 값 마지막에 들어가 있어서 아래 명령어로 이메일 계정을 변경해 주었다.
ssh-keygen -t rsa -C "user@email.com<이메일 계정>"
  • 복사한 키값 내용을 Digital Ocean의 Add SHH Key에 넣어주고 추가해주면 된다.
  • 해당 키를 설정하고 Metrics 모니터링 Enable만 해주고 별다른 수정 사항 없이 Create 버튼을 누르면 드디어 드롭릿이 완성된다! 그리고 IP 주소를 들어가면 'Please log into your Droplet with SSH'라는 문구가 뜨는데 그러면 잘 설치된거다. :)

 

도메인 주소 설정하기

도메인 주소 만들기

  • 일단 먼저 숫자로만 된 서버 Ip 주소와 연결할 네임 주소인 도메인이 필요한데 나의 경우 GoDaddy에서 만들었다.
  • 가격은 첫 해에만 50% 할인받아서 1만원 정도이고, 매년 2만 8천원이 부가되서 조금 비싼감이 없지 않아 있다. 하지만 godaddy의 경우, 전세계에서 가장 많이 사용하는 도메인 회사라 신뢰성이 좋아 그냥 사용하기로 했다.
  • 그런데 참고로 한국어 고객 센터가 없어서 해지하려면 영어로 전화해야 한다는 단점이 있다... 알고 싶지 않았는데 도메인 하나 잘못 만들어서 취소하려고 보니 죄다 미국 본사랑 연결하는 방법밖에 없었음.... 그래서 앞으로 godaddy말고 더 저렴하고 고객센터 좋은 namecheap으로 쓸 꺼다.. 부들부들
  • 위에서 도메인을 만들었다면 DigitalOcean 프로젝트로 돌아와 http://를 제외한 해당 도메인을 추가해준다.
  • 그리고 다시 Godaddy로 돌아와서 My product 페이지 내 나의 도메인의 DNS 설정을 클릭해서 위의 페이지로 들어간다.
  • 그리고 A 타입의 Value값에 DigitalOcean에서 생성한 Ip 주소를 넣고 저장해주면, 보통 1시간 이내에 IP와 도메인 주소가 연결된다.

 

가상 서버에 고스트 설치하기

  • 이제는 만들어진 가상 서버인 Droplet에 고스트를 설치하면 끝이다.
  • 먼저 터미널을 열고 ssh root@ip주소 명령어를 입력한다.
  • 연결을 계속 진행하시겠냐는 메시지가 나오면 yes 라고 입력하면 비밀번호를 입력한 후 자동으로 고스트가 다운로드 된다.
  • 이후에 블로그 URL 입력하라고 나오면 블로그 도메인 주소를 입력한다. 그리고 이메일 주소까지 입력하라고 하면 DigitalOcean 이메일 계정을 적어주면 된다.
  • 이후에 터미널 창에 Starting Ghost라는 문자가 뜨면 고스트 다운로드가 완료된 것이다. 인터넷 창에 IP 주소를 치면 다운로드 된 고스트 블로그가 뜬다. 그럼 관리자 계정 만들어주면 끄으읕 ~

 

Reference

 
반응형