18/05/05 · AWS Ghost

ghost on AWS - 번외편 ghost에 포스팅하는 이미지 저장소를 S3로 변경하기

ghost에서 이미지를 다루는 법

ghost에서 포스팅을 할 때 이미지를 첨부하면 기본적으로 ./content/images/ 경로에 이미지를 저장한다. 그리고 포스트에서 이미지를 보여주기 위해 마크다운 문법에 따라 ![alt text](이미지경로 "title 생략가능") 의 형태로 사용된다.
이대로 사용해도 큰 문제는 없지만 이왕 AWS를 사용해보는김에 S3스토리지를 사용해보기로 했다.

AWS S3 버킷 만들기

디폴트 설정값으로 버킷을 만든다.
FireShot-Capture-036---S3-Management-Console_---https___s3.console.aws.amazon.com_s3_home

IAM 설정

ghost에서 S3 버킷에 접근하기위해 IAM 사용자를 만들어 AmazonS3FullAccess 권한을 준다.
FireShot-Capture-037---IAM-Management-Console_---https___console.aws.amazon.com_iam
FireShot-Capture-038---IAM-Management-Console_---https___console.aws.amazon.com_iam
사용자가 만들어지면 액세스 키 ID와 비밀 엑세스 키가 나오는데 이를 복사해둔다.
FireShot-Capture-039---IAM-Management-Console_---https___console.aws.amazon.com_iam

ghost와 S3 연동하기

ghost의 공식 문서에 custom storage를 연동하는 방법이 잘 나와있지만 이미 만들어져 있는 ghost-storage-adapter-s3 모듈을 사용하면 좀 더 쉽게 연동할 수 있다.

1. ghost-storage-adapter-s3 설치

$ cd /var/www/ghost
$ sudo npm install -g ghost-storage-adapter-s3
$ sudo mkdir -p /var/www/ghost/content/adapters/storage
$ sudo cp -r /usr/lib/node_modules/ghost-storage-adapter-s3 /var/www/ghost/content/adapters/storage/s3

2. config.production.json 수정

$ vim config.production.json
{
  "url": "http://midnightrad.io",
  "server": {
    "port": 2368,
    "host": "127.0.0.1"
  },
  "database": {
    "client": "mysql",
    "connection": {
      "host": "ghost-midnightrad-io.ctq5osxt6jsq.ap-northeast-2.rds.amazonaws.com",
      "user": "ghostmaster",
      "password": "a17300317",
      "database": "ghost_prod"
    }
  },
  "mail": {
    "transport": "Direct"
  },
  "logging": {
    "transports": [
      "file",
      "stdout"
    ]
  },
  "process": "systemd",
  "paths": {
    "contentPath": "/var/www/ghost/content"
  },
  
  # 아래 storage 설정을 추가한다.
  "storage": {
  "active": "s3",
  "s3": {
    "accessKeyId": "YOUR_ACCESS_KEY_ID",
    "secretAccessKey": "YOUR_SECRET_ACCESS_KEY",
    "region": "YOUR_REGION_SLUG(서울리전 ap-northeast-2)",
    "bucket": "YOUR_BUCKET_NAME"
  }
}

3. ghost restart

$ ghost restart

4. 포스트에 이미지 첨부

포스트에 이미지를 첨부해보고 지정한 버킷에서 이미지를 불러오는지 확인한다.
FireShot-Capture-040---Editor---temp_blog_---http___midnightrad.io_ghost_-_edit

  • LinkedIn
  • Tumblr
  • Reddit
  • Google+
  • Pinterest
  • Pocket
Comments powered by Disqus