7월 17, 2021

Ghost 설치준비 on AWS

Ghost 설치준비 on AWS

[도메인 구매]

오늘은 도메인을 구입했습니다. 저는 호스팅과 이메일 모두 AWS를 이용할 계획이므로 도메인도 아마존에서 구입을 했습니다.

우선 AWS에서 회원가입을 진행하시고, Route53 메뉴로 들어가세요.

Route53 왼쪽 메뉴 중 등록된 도메인을 선택 > [도메인 등록] 버튼을 클릭하세요.

[그림1] Route53 > 등록된 도메인

그럼 도메인을 입력할 수 있는 입력란이 나옵니다.

[그림2] 원하는 도메인명을 입력하세요.

저는 도메인명에 제 애칭인 myongi(묭이)를 입력하고 .net 도메인을 선택하였습니다. .net 이 .com 보다 저렴하더라구요;; 다행이 myongi 라는 도메인명은 사용하는 사람이 없어 고민없이 구입할 수 있었습니다. (요 도메인명을 정하면서 제 블로그 이름도 힘내라 서씨!에서 힘내라 묭이!로 변경했습니다. )

화면 맨 아래 있는 [계속] 버튼을 클릭하여 이름, 주소 등등을 입력하고 끝났습니다.

아래 화면은 웃겨서 한번 캡쳐해 봤는데요, 제일 비싼 도메인은 뭔가 하고 찾아보니.. sucks 1년 사용료 282달러. 이거 뭔가요. ㅋ

[그림3] 독보적 도메인

도메인을 구매하면 등록되기까지 3일까지는 기다리라고 안내하는데, 2시간 후에 등록되었다고 메일이 왔습니다. (아, 읽기 싫게 자꾸 영어로 메일이 오네요)


[Lightsail 인스턴스 생성]

그럼 이제 AWS Lightsail 에 호스팅 서버도 하나 만들어 보겠습니다. 예전에 EC2를 사용했다가 거의 사용하지도 않았는데 요금이 술술 털린 슬픈 추억이 있어서 이번에는 Lightsail에 컨테이너를 만들겁니다.

사실 AWS Lightsail을 선택하기 전에 GhostPro, DigitalOcean에서 2주~1달 무료제공 옵션이 있어 사용해 보았습니다.

  • GhostPro: 클릭 몇 번만 하면 설치 끝. 고스트 설치가 세상 편합니다. 그러나 관리자 화면을 통해서만 컨트롤이 가능하고 커맨드 창으로는 접속이 불가능합니다. 사용자 자유도가 제한되어 있어 저에게는 맞지 않다고 생각되었습니다.
  • DigitalOcean: 고스트 설치 이미지를 제공하고 있어서 클릭 하나로 최신 고스트 + Node.js, MySQL 등이 자동으로 설치됩니다. 자유도도 있고, 설치도 간편하고, 사용하기에도 좋았으나 사용 이틀째, 이유를 알 수 없는 행이 걸렸습니다. 사이트에 접속했더니 로딩바만 빙글빙글하다가 그 날 저녁부터 또 괜찮아졌네요. 어느 분 블로그에 디지털오션을 사용하다가 서버에 문제가 생겨 데이터가 날아갔는데, 백업해두지 않은 네 잘못이다!라고 얘기들었다는 간증글이 있어 디지털오션에서는 마음을 접었습니다.

물론 AWS에서도 서버를 두세개 사용해라, 데이터 백업해라, 늘 이런 얘기를 하지만요. 그래도 AWS는 워낙 큰 업체이고, 또 데이터센터가 한국에도 있으니 AWS를 선택해봅니다.

카페24 같은 국내 호스팅 업체도 찾아보았으나 아직은 고스트 설치에 필요한 버전의 Node.js를 제공해주지 않고 있네요.

자, 그럼 AWS Lightsail 메뉴로 들어가봅니다.

리전은 자동으로 한국으로 잡혀있구요, 플랫폼은 Linux/Unix 선택. 아래 [Apps + OS] 탭에서 Ghost 블루프린트도 제공하고 있습니다만, 버전이 3.41.5입니다.

[그림4] Apps+OS 탭에는 Ghost 설치 이미지도 있습니다.

저는 [OS Only] 탭을 선택하여 제가 하나하나 설치해보겠습니다. OS는 Ubuntu 20.04 LTS를 선택하였습니다. 고스트 문서에는 16.04, 18.04, 20.04 LTS에 설치 가능하다고 안내되어 있습니다.

[그림5] OS Only 탭 화면

아래 옵션에서 백업 이미지 스냅샷을 만들도록 설정할 수도 있으나 이건 우선 패스했습니다. 나중에 가격을 찾아보고 추가 결정을 하겠습니다.

저는 월 5달러 요금제를 선택하였습니다. 3.5달러짜리는 첫달 무료라고 써있는데 메모리가 512MB입니다. 고스트 문서에는 적어도 1GB 메모리가 필요하다고 적혀있습니다.

How to install & setup Ghost on Ubuntu 16.04, 18.04 and 20.04
A full production install guide for how to install the Ghost professional publishing platform on a production server running Ubuntu 16.04, 18.04 or 20.04.
고스트 설치 안내 문서 링크
[그림6] 고스트 설치 환경 안내

씁씁한 마음을 뒤로 하고 5달러짜리 선택 후 제 인스턴스 이름을 정해주고 [Create instance] 버튼을 눌렀습니다.

[그림7] 요금 플랜 선택 및 인스턴스 이름 지정

Good afternoon!이라는 기분좋은 인사와 함께 열심히 제 인스턴스를 만들고 있습니다. Pending, Not available 이라고 표시되어 있네요.

[그림8] 요청하신 인스턴스 생성 중입니다.

잠깐(1~3분) 기다리시면 Running 표시와 함께 터미널 접속 버튼이 생깁니다.

[그림9] 준비 완료

이 터미널을 통해서

Node.js
MySQL
NginX
Ghost
SSL 인증서

설치를 해 줄 겁니다.


[도메인과 Lightsail 인스턴스 연결]

잠깐! 여기서 도메인과 Lightsail DNS 연결이 필요합니다. 저는 도메인 연결을 빼놓고 진행했다가 SSL 인증서 설치 과정에서 도메인에 연결된 IP가 없다고 오류 먹고 도메인 연결을 진행했습니다;;

Lightsail 홈 > 네트워킹 탭으로 들어가세요. Lightsail DNS 영역을 만들어 사용할 겁니다. 먼저 고정 IP 생성을 클릭하세요. (저는 이때서야 우측 하단에서 한글 서비스를 발견해서 화면이 한글로 바뀌었습니다. 속이 후련합니다.)

[그림10] Lightsail 홈 > 네트워킹 탭 화면

우리가 만든 Lightsail 인스턴스는 껐다가 키면 IP 주소가 변경되기 때문에 고정 IP를 만들어 할당해줍니다. 고정 IP에 이름도 지정해주시구요, 생성을 클릭합니다.

[그림11] 고정 IP를 생성합니다.

그리고 이번에는 DNS 영역 생성을 클릭하여 만들어줍니다.

[그림12] 우측 상단 DNS 영역 생성 버튼을 눌러주세요.

이렇게 만든 DNS 영역에 들어가보시면 DNS 레코드 부분이 있습니다. 레코드 추가를 클릭하시고, A 레코드 선택 > 하위 도메인 입력란에 @ 입력, 확인 부분에 내 고정 아이피를 선택하여 추가하세요.

[그림13] A 레코드를 추가하였습니다.

이제 아래에 있는 이름 서버 부분을 봐주세요. 그곳에 4개의 서버 주소가 있습니다. 이 주소들을 도메인 구입처에서 연결해 줄 겁니다.

카페24에서 도메인을 구입하신 분은 카페24로, 가비아에서 도메인을 구입하신 분은 가비아로 가셔서 DNS 관리 메뉴에 위의 4개 주소를 등록해주시면 됩니다.

저는 AWS Route53에서 도메인을 구입하였으므로 Route53 메뉴로 들어갑니다.

AWS Route53 메뉴 > 등록된 도메인 > 내 도메인을 클릭하시면, 도메인에 대한 설명이 나옵니다. 이 중 오른쪽에 [이름 서버] 라는 부분이 있는데 이 부분에 있는 이름 서버 추가 또는 편집을 클릭합니다.

[그림14] 등록된 도메인 > 이름 서버 부분을 수정하세요.

그럼 편집 팝업이 뜨는데, 원래 있던 주소들은 필요없으니 다 지우시고 아까 Lightsail 네트워크 탭 > 이름 서버 부분에서 확인하신 4개 주소를 하나씩 등록해주세요. 업데이트 버튼을 클릭하시고 조금 기다리시면 업데이트가 완료됩니다.

[그림15] 도메인 서버 주소가 업데이트 되기까지 시간이 걸립니다.

이제 Route53 왼쪽 메뉴 중 상단에 있는 호스팅 영역으로 이동합니다. 아마 도메인을 만들 때 주의 깊게 보신 분들은 기억하실거예요. 도메인을 구입하면 자동으로 호스팅 영역이 생성된다고 안내가 나옵니다. 그 때 만들어진 영역이 바로 이겁니다. 그런데 저는 Lightsail을 사용하고 그곳에서 DNS를 제공해주기때문에 굳이 유료인 Route53의 이 호스팅 영역이 필요없습니다. 과감하게 오른쪽 상단에 있는 [영역 삭제] 버튼을 눌러 삭제해주겠습니다.

[그림16] 도메인 구입시 생성된 호스팅 영역은 삭제하겠습니다.

이제 Lightsail 인스턴스에 도메인이 연결되었습니다.


[방화벽 443 포트 오픈]

저는 https 를 사용할 것이므로 외부에서 접속할 수 있도록 443 포트를 열어줘야 합니다. Lightsail 홈에서 인스턴스 선택 > 네트워킹 탭 선택 > IPv4 방화벽 영역에서 규칙 추가 > HTTPS 선택

[그림17] HTTPS 접속을 위하여 포트를 개방합니다.

어익후. AWS에 고스트 설치하는 것까지 여기에 다 적으려고 했는데 글이 너무 길어지네요. 고스트 설치는 다음 글로 이동합니다.