블로그의 목적
- 내가 삽질했던 경험을 공유함으로써 더이상의 희생자(?)를 막고, 그 분들의 소중한 시간을 지켜주자 (나의 기억력은 절대 좋지 않으므로 삽질했던 경험은 반드시 정리하여 다시 삽질하지 않도록 한다.).
- 내가 공부한 개념들을 정리하여 사람들과 공유하고, 피드백을 받아 나의 잘못된 개념들을 수정하자.
- 설치법, 사용법을 정리하여 반복되는 작업의 시간을 줄인다.
블로그를 이전한 이유
기존의 개발 블로그로 Tistory를 이용하다가 최근에 Ghost라는 블로그 플랫폼을 사용하여 지금의 블로그로 바꾸게 되었다.
Tistory를 바꾸게 된 이유는 다음과 같다.
- 코드들이 별로 안 이쁘고, 보기 불편하다.
- 코드를 넣을 때, html 태그를 직접 넣어야된다.
- 이미지 크기가 작게 올라가서, 이미지에 있는 조그만 텍스트들은 잘 보이지 않는다.
- 안수찬 강사님의 개발 블로그가 너무 예뻤다.
나도 사실 도메인을 jupiny.io로 하고 싶었지만, 생각보다 가격이 너무 비싸 그냥 jupiny.com으로 하였다.
그런 문제점들을 Ghost가 가진 장점을 통해 해결할 수 있었다.
- markdown으로 글을 작성할 수 있다.
- markdown의 코드 블록과 Prism.js와 함께 사용하면 각각의 언어에 맞는 코드들을 이쁘게 넣을 수 있다.
개인적으로 Tistory보다 훨씬 이쁜 것 같다. - 이미지도 Tistory보다 크게 올라간다.
- Disqus, Slack 등 다양한 툴들과 연동 가능하다.
- 설치형으로 블로그를 만들게 되면, Programmable하기 때문에 블로그를 입맛에 맞게 프로그래밍할 수 있다.
하지만 현재 Node.js를 못하는 건 함정.
Ghost를 설치하면서
Ghost는 WordPress처럼 설치형과 가입형을 둘 다 지원한다. 가입형은 유료이고 처음 2주동안은 무료로 사용할 수 있다. 설치형은 무료지만 서버를 별도로 구축하여야 되므로 결과적으로 역시 유료라고 볼 수 있다.
가입형으로 했을 때의 가격은 (2016.10.08 기준)
한 달에 최소 $19(2013년도에 작성된 글들을 보면 한 달에 최소 $5였다는데 그 사이 가격이 상당히 오른 듯 하다.)이므로 설치형으로 하여 AWS EC2 인스턴스 요금를 내는 것이 더 경제적이다.
또 설치형으로 하게 되면, 설치 과정은 좀 힘들더라도 자유롭게 서버의 수정이 가능하다는 장점이 있다. 다시 한번 말하지만, 하지만 나는 아직 Node.js를 할 줄 모른다.
나는 Amazon EC2 인스턴스에 ubuntu 환경에 Ghost를 설치하였다. 아래의 링크들에 설치법이 친절하게 나와있어, 순서대로 따라하여 Ghost 서버를 구동할 수 있었다.
- How To Install Ghost On Ubuntu
- How to Proxy Port 80 to 2368 for Ghost with Nginx
- Keep Ghost running with PM2
HTTPS에 대한 설정은 예전에 내 GitHub에 따로 정리해놓은 것을 참고하였다.
마지막으로 블로그에 업로드한 이미지를 기존의 웹 어플리케이션이 아닌, S3에 따로 저장한 후, CloudFront를 이용하여 클라이언트에게 CDN으로 전송하고자 하였다.
"ghost s3"로 구글링하면 가장 상단에 뜨는 ghost-s3-storage
라는 node 패키지가 있어 별 문제없이 끝날거라 생각했지만, 분명히 문서에 나와있는대로 따라했음에도 불구하고 계속 에러가 발생하며 실패했다.
아무리 구글링해도 나와 같은 에러가 발생한 사람은 없었고, 해결하기 위해 며칠동안 의미없는 삽질만 반복했다. 패키지 개발자에게 직접 메일도 보냈지만, 나의 부족한 영어때문인지 씹혔다.
그러다가 우연히 ghost-storage-adapter-s3라는 다른 node 패키지를 알게 되었고, 여기 문서에 적혀있는 대로 설정했더니 드디어 성공하였다.
위의 그림처럼 이쁘게 이미지 경로 부분에 CloudFront 주소가 들어가였다.