티스토리 뷰

반응형

Cloud Foundry 와 같은 PaaS(Platform as a Service)는 대부분 XpressEngine(https://www.xpressengine.com/)이나 WordPress(https://ko.wordpress.org/)을 IaaS(Infrastructure as a Service)나 Hosting서비스에 배포하는 것과는 차이가 있다. IaaS나 Hosting 서비스, Dedication 서버 등 환경에서는 웹서비스를 위한 가상 환경이 아닌 웹서비스와 동일한 서버 내에서 데이터를 유지하는 방식으로 대부분 사용한다.

Cloud Foundry와 같은 웹컨테이너 방식의 웹 배포 환경에서는 데이터 저장에 대한 고민이 필요해진다. 기본 설정으로 로컬데이터에 저장하기 때문에 컨테이너 환경에 올라간 서비스가 유지되는 상황에서는 데이터가 유지되지만, 재기동하거나 재배포 등을 하게 되면 모든 정보는 초기화 된다.

그래서 Cloud Foundry의 환경의 이해 없이 위 언급된 서비스를 바로 사용하게 되면 첨부파일 등이 사라지는 다소 당황스러운 경험을 하게 될 것이다.


Cloud Foundry 환경에서 배포하는 방식에 대한 부분을 검색하는 중에 발급한 소스는 다음 주소에서 확인할 수 있다.

https://github.com/dmikusa-pivotal/cf-ex-wordpress


S3을 사용하기 위해 오랜만에 접속한 AWS에서 신용카드 정보를 등록하고 바로 사용하려고 보니 24시간 기다리라고 합니다.

위 과정을 거치고 wordpress를 배포하려고 합니다. manifest.yml에 배포 파일을 수정합니다.


---

applications:

- name: wordpress

  memory: 512M

  path: .

  host: wordpress-zzon3

  random-route: true

  services:

  - hs-db


wordpress을 사용하기 위해서는 db가 필요하다. 기존에 존재한 DB 서버를 services 에 추가하여 별도 빌드 없이 cf push 로 배포를 한다.


배포를 하고 글을 작성하고..첨부파일도 추가하고 ㅎㅎㅎ 글이 잘 등록된 것 같지만, cf push 로 재배포하거나 재시작하면 아래와 같이 사라진다.


위 파일은 경로 : https://wordpress-zzon3.devpack.co.kr/wp-content/uploads/2016/09/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA-2016-09-06-%E1%84%8B%E1%85%A9%E1%84%8C%E1%85%A5%E1%86%AB-10.46.38.png


배포된 주소의 wp-content/uploads 경로로 저장된 상태이나 재배포 과정에서 해당 경로가 깨진다.



음..그래서 해야 하는 작업이 외부 환경에 첨부파일을 등록하도록 연결해줘야 한다. Wordpress의 플러그인에서 aws을 검색해 보니 93개의 플러그인이 조회된다. 아래로 스크롤해야 하니 'amazone web service' 라고 검색하면 바로 찾을 수 있다.




첫번째 검색된 것을 설치해야 하는데 amazon의 백업서비스를 사용하지 않는다면 로컬소스에 다운로드 받아 재 배포해줘야 한다.


오른쪽 중간에 "WordPress.org Plugin Page"로 이동(https://wordpress.org/plugins/amazon-web-services/)하여  최신 버젼을 다운로드 받아 Wordpress 디렉토리의 ~/wp-content/plugins 밑에 복사 후 압축해제하여 관리해야 한다.


Amazon Web Service을 설치하고 관리자메뉴에서 보면 아래와 같이 AWS 설정 메뉴가 생성된다. 첨부 이미지에는 이미 설치한 S3 플러그인도 포함된 상태이다.

Amazon의 IAM 서버스에 사용자 중 S3에 접근권한(쓰기&읽기)이 있는  사용자의 ACCESS_KEY_ID, SECRET_ACCESS_KEY을 등록해줘야 한다.

아래 Wordpress의 wp-config.php 내용 중 아래 내용을 추가하고 별표(*) 부분을 자신의 Key을 수정하면 된다.


define( 'AWS_ACCESS_KEY_ID', '*****************************');

define( 'AWS_SECRET_ACCESS_KEY','**********************************************************');


define( 'DBI_AWS_ACCESS_KEY_ID', '*****************************' );

define( 'DBI_AWS_SECRET_ACCESS_KEY', '**********************************************************' );


위와 같이 플러그인을 설정하는 과정을 거치고 부가적으로 'WP Offload S3 Lite' 을 설치하면 첨부파일 등록시 s3로 업로드하면 첨부파일의 경로를 s3의 경로로 수정해준다.


재 배포를 하여도 s3을 저장된 정보이기 때문에 소실되지 않아 게시판의 글&첨부파일을 유지할 수 있다.


위 파일의 경로 : https://s3-ap-northeast-2.amazonaws.com/hscho-bucket/wp-content/uploads/2016/09/06110420/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA-2016-09-06-%E1%84%8B%E1%85%A9%E1%84%8C%E1%85%A5%E1%86%AB-10.46.381.png


첨부파일이 자동으로 s3로 교체된다^^..이런 플러그인이 있어야 좋단 말이죠!!


참고로 s3가격 정보는 아래와 같습니다.

링크 : https://aws.amazon.com/ko/s3/pricing/



반응형

'Say! 머니곰 > IT' 카테고리의 다른 글

Cloudfoundry에 Spring music 배포하기  (0) 2016.09.04
Cloud Foundry에 phpmyadmin 올리기  (0) 2016.07.18
Java Design Pattern  (0) 2015.12.14
Mac 에서 Chm 파일 보기  (0) 2011.11.01
Protocols  (0) 2011.09.20
댓글