아마존 라이트세일 하나의 인스턴스에 워드프레스 멀티블로그 올리기

아마존 라이트세일 워드프레스 마이그레이션 후기에 이어, 워드프레스 멀티사이트 구성 후기 남겨봅니다.

아마존 라이트세일의 은혜

저는 현재 이 블로그 운영을 위해 아마존 라이트세일 월 5달러 플랜을 쓰고 있는데, 512MB 메모리 + 1TB 트랜스퍼가 너무 아깝다는 생각이 듭니다. 사실 CAFE24에도 아직 쓰고 있는 워드프레스용 호스팅 계정이 있지만 귀찮아서 통합할 생각은 안 하고 있었던 참에, 사이트를 하나 더 개설할 필요를 느끼면서 새로 지을 집터를 아마존 라이트세일 안으로 들여 시도해보기로 했습니다.

시도하기 전에 조금 망설여졌던 것도 사실입니다. 서버 마스터도 아니고, 기존에 디지털오션DigitalOcean 에서 아파치 버츄얼 호스트 설정을 통해 두 개의 도메인에 각각 할당되는 워드프레스 블로그를 복수로 개설한 경험이 있었고 … 결과적으로는 이유는 모르겠지만 사이트가 계속 뻗어서 호스팅 하나에 여러 사이트 운영하는 건 최적화하기 어렵다는 기억을 가지고 있었거든요. 사람들이 다들 좋다는 디지털오션을 관두게 된 결정적 이유이기도 합니다.

그러다가, 워드프레스 대시보드에서 바로 멀티사이트 개설이 가능하다는 걸 알게 되었습니다.

워드프레스 멀티사이트란?

워드프레스 블로그를 만들고 싶을 때, 집을 지을 공간이 되는 호스팅 서비스에 가입하여 서버 공간을 임대?하고, 거기에 워드프레스 블로그를 올려서 운영하게 되는데요. 자기 블로그를 wordpress 라는 폴더 안에 설치하고 mydomain.com에 블로그를 연결해서 운영하고 있다가, 갑자기 블로그를 하나 더 하고 싶을 때가 있습니다.

이 때 멀티사이트 기능을 이용하면 관리자 아이디 하나 치고 들어가서 여러 사이트를 관리할 수 있게 됩니다.

site1.mydomain.com 하나랑, site2.mydomain.com 이렇게 두 개로 서브도메인 나누어서 관리할 수도 있고, mydomain.com 과 example.com 과 같이 다른 주소를 각각 연결하는 것도 가능합니다.

멀티사이트는 워드프레스의 엔진을 공유한다고 생각하면 됩니다. 집이 있는데, 화장실과 주방은 공용으로 쓰면서 주소는 두 개로 나누어서 서로 세금도 따로 내는 별개의 집처럼 운영하는 것이지요. 장점은 집에 무조건 지어야 하는 화장실이나 배관시설을 한 번 더 만들지 않아도 되니까 자원도 절약되고, 집에 들어오는 키도 하나만 있으면 사실 두 집 살림을 쉽게 관리할 수 있습니다.

단점은 관리의 복잡성입니다. 냉장고를 같이 쓰면 하나 더 안 사서 좋기는 한데, 서로 칸도 나눠야 하고 옆집은 뭘 안 쓰기로 했고, 나는 싱크대를 바꾸고 싶은데 같이 사는 집은 그걸 없애는 게 곤란하고 등등 …

그래도 저는 장점이 더 많다고 생각했습니다. 일단 FTP나 SSH 만지지 않고 대시보드 상에서 관리가 가능하다는 장점이 있고, 내가 직접 유지보수하는 느낌이 아니라 워드프레스 업데이트와 함께 향후 여러 기능들의 유지보수 업데이트가 같이 간다는 느낌이 들어 초보자 입장에서 더 안심이 되더군요. 가상 호스트 설정을 통해서 마치 두 개의 사이트가 있는 것처럼 속여서? 두 개의 사이트를 별개의 폴더에 개설하고, 데이터베이스도 두 개로 테이블을 생성하든지 해서 나눠서 관리할 수도 있지만 .. 제게는 번거로운 작업으로 보였습니다.

오늘의 목표

  1. 아마존 라이트세일에 워드프레스 설치된 인스턴스가 하나 이미 있고,
  2. Letsencrypt 를 통해 SSL 설치까지 마친 상황에서
  3. 워드프레스 멀티사이트 기능을 통해 사이트를 하나 더 생성하고,
  4. 새로 생성된 사이트를 별도의 도메인에 연결한다.
  5. 새로 생성된 사이트에도 Letsencrypt SSL 인증서를 적용한다.

 

1) 아마존 라이트세일에 워드프레스 올리고 SSL 인증서 적용하기

위 과정과 관련해서는 이전에 작성한 아마존 라이트세일 워드프레스 마이그레이션 후기를 참고해주시기 바랍니다. 댓글을 포함해서 읽어보시면 처음 생성하시는 경우는 백업/복원 과정만 생략하시면 바로 성공하실 겁니다.

스위프트코딩님의 훌륭한 안내글 또한 무척 친절합니다. 추천합니다.

 

2) 워드프레스 멀티사이트 기능 시작하기

저는 기본적으로 워드크랙커 블로그의 워드프레스 멀티사이트 설치하기 가이드를 참고하였습니다.

2017년 9월 24일 현재 최신 워드프레스 버전을 기준으로, 제가 직접 진행해서 성공한 흐름은 아래와 같습니다.

첫 번째로, 일단 무조건 백업을 반드시! 하고 시작하세요. 플러그인을 사용해도 좋고 어떤 식으로든 돌아갈 수 있는 방법을 마련해둡니다.

두 번째, 설정 > 고유주소에서 기본 주소 형식을 사용하지 말고 다른 주소 형식으로 일단 변경합니다. 저는 애초에 기본주소 형식을 사용하지 않고 있어서 패스했습니다.

세 번째로, wp-config.php 파일에서 /* That’s all, stop editing! Happy blogging. */ 를 찾아서 그 바로 위에 아래 문구를 붙여넣습니다.

/* Multisite */
define( 'WP_ALLOW_MULTISITE', true );

네 번째, 관리자 페이지를 새로고침하면, 도구 메뉴 아래에 네트워크 설치 메뉴가 보입니다. 그 메뉴로 가보면 일단 모든 플러그인을 비활성화라는 메시지가 나오는데, 귀찮아도 모두 비활성화해주세요. 특히 캐시 플러그인을 꺼주시기를.

다섯 번째, “워드프레스 사이트의 네트워크 생성” 화면이 나옵니다. 네트워크 = 사이트1 + 사이트2 + .. 이렇게 여러 사이트를 관리하는 전체 집의 이름이 됩니다. 기존에는 사이트가 하나 뿐이어서 대시보드로 들어오면 바로 우리집이었지만, 이제는 대문 열고 로그인해서 들어오면 네트워크로 입장한 것이고 거기서 사이트1이나 사이트2의 관리자 화면으로 각각 갈라져서 들어갈 수 있게 됩니다. 네트워크 제목을 적당히 지어주시고, 네트워크 관리자 이메일은 본인이 혼자 관리하는 거면 보통 사이트1을 관리하던 메일 주소를 적어주면 되겠습니다.

참고로 서브도메인 설치에 대한 안내가 보이는데, “새로운 설치가 아니므로 사이트는 서브 도메인을 사용해야 한다”고 안내되어 있습니다. 물론 이를 무시하고 서브 디렉토리를 사용하는 방법도 있다고 하더라고요. 그러나 특별한 경우가 아니라면 site1.mydomain.com 과 같은 서브 도메인 형식이 mydomain.com/site1 과 같은 서브 폴더 형식보다 안정적입니다. 서브 도메인 형식은 기존에 있던 퍼머링크랑 얽히는 문제 등등 조심해야 될 부분이 좀 있습니다. 게다가~ 저는 어차피 새로 개설하는 사이트를 별도의 도메인에 연결할 것이므로 굳이 서브 디렉토리 방식을 적용할 필요가 없다는 거죠.

이제 ‘설치’를 눌러 진행합니다.

 

여섯 번째, wp-config.php 파일에 추가할 내용이 언급됩니다. FTP 등으로 접속해서 그대로 따라해주시면 됩니다. .htaccess/opt/bitnami/apps/wordpress/htdocs/에 있는 걸 수정하시면 되고, 전체를 지우고 새로 붙여넣기 하세요. 지우기 전에!!! 꼭 이전 파일을 백업해두는 것 잊지 마세요. 다 했으면 대시보드 나갔다가 다시 로그인합니다.

일곱 번째, 대시보드에 맨 위 막대기 보면, 내 사이트 버튼 있고, 누르면 ‘네트워크 관리자’의 알림판에 접속할 수 있게 되었습니다. 사이트 > 사이트 추가를 클릭하여 이제 두 집 살림을 시작할 수 있습니다. 사이트 주소는 site1.mydomain.com 과 같은 부분에서 앞 서브도메인 부분(site1)만 써주시면 됩니다. 전체 쓰는 거 아닙니다. 사이트 제목 정해주고, 언어 확인하고, 관리 이메일 넣어주세요. 혹시 새로 만드는 사이트를 관리할 다른 사람이 있다고 하더라도 기본 메일은 일단 본인의 걸로 넣어두고 나중에 사용자 추가하면 됩니다. 이제 사이트를 추가하면 됩니다.

 

3) 멀티사이트 도메인 연결

새로운 사이트가 site1.mydomain.com 에 만들어졌다고 그 주소를 치면 바로 사이트가 열리지는 않습니다. 라이트세일의 도메인 설정에서 연결 작업을 해주셔야 하는데요. 라이트세일의 DNS 존으로 가서, 서브 도메인이 본인의 블로그(인스턴스)를 가리키도록 추가해줍니다.

만약, 새로운 도멘인을 새로 만든 워드프레스 멀티사이트에 연결하고자 한다면? 사실 별로 할 것도 없습니다. 예전에는 플러그인을 많이 썼지만 이제는 바로 관리자화면에서 해결 가능합니다.

우선, 라이트세일의 DNS 존에 접속하여, Create DNS zone을 클릭하여 새로운 도메인 존을 만들어주세요. 가령, 새로 연결한 도메인이 example.com이라면, 아래와 같이 처음 라이트세일 DNS zone 설정할 때처럼 해주시면 됩니다.

A 타입의 example.com 이 가리키는 도착지는 기존 멀티사이트 이전부터 있었던 블로그 인스턴스의 정적 아이피 내지는 해당 인스턴스를 지정해서 연결해주시면 됩니다. CNAME으로 www.example.com 을 example.com 으로 보내주는 걸 추천합니다.

다음으로, 새로 만든 DNS zone 의 아래에 보면 네임서버가 나열되어 있습니다. 도메인 구입한 관리업체의 관리페이지에서 해당 네임서버를 도메인에 연결해주면 되겠습니다. 그럼 주소창에 example.com 을 입력하면 아마존으로 연결되어 아마존에서 example.com 을 기존 인스턴스로 보내겠지요. 그런데 기존 인스턴스에는 블로그 두 개가 있는데 두 번째 블로그로 어떻게 연결하는 걸까요? 이것은 대시보드 수준에서 처리해주시면 됩니다.

대시보드 > 사이트 > 모든 사이트 메뉴에서, 새로 추가하여 개설한 사이트 이름에 마우스를 올리고, ‘편집’을 눌러 들어간 뒤에, 사이트 주소(URL)를 site1.domain.com과 같이 되어 있는 걸 새로 연결한 도메인 자체, 즉 example.com과 같이 바꿔주세요.

이제 새로운 도메인을 주소창에 입력하면 블로그 첫 화면이 뜨는지 봅니다. 네임서버 전파에 시간이 걸리기 때문에 시간이 좀 필요할 수 있고, 안정화되기 전까지는 접속이 끊겼다가 되었다가 할 수 있습니다. 하루 정도는 기다려주세요.

 

4) 멀티사이트 SSL 인증서 적용하기

기존에 mydomain.com 으로 도메인을 워드프레스에 연결하고 인증서까지 받아 잘 운영하다가, 멀티사이트로 하나를 더 개설한 상황인데 라이트세일 서버에는 새로 개설되어 연결된 example.com 에 대한 인증서는 없는 상황이므로 https 주소가 나타나지 않습니다.

저는 처음 라이트세일에 워드프레스 올리면서 [Using Let’s Encrypt certificates with WordPress on Amazon Lightsail]http://www.alondiamant.com/2016-12-20-using-lets-encrypt-certificates-with-wordpress-on-amazon-lightsail) 블로그 게시물을 구글링해서 찾아 따라하면서 인증서를 적용한 바 있는데요. 이것은 bitnami에서 기본적으로 사용하는 인증서 위치를 무시하고, Letsencrypt에서 인증서를 받아 적용하는 방법을 쉽게 안내하고 있습니다.

만약 이미 SSL 인증서를 적용하고 첫 번째 사이트를 잘 운영하고 있었다면, 기존의 인증서를 삭제하거나 처음부터 다시 시작할 필요는 없고 기존 인증서에서 다루는 도메인을 추가하여 갱신하는 방식으로 덮어쓰면 됩니다. 여기서는 이미 위 가이드라인을 통해서 서버에 인증서를 가지고 있는 분의 경우를 가정하고 설명합니다.

라이트세일 리소스 에 접속 후, 본인의 인스턴스 > SSH로 접속합니다.

sudo su

와 같이 스스로 권한을 취득 후,

./certbot-auto certonly --webroot -w /home/bitnami/apps/wordpress/htdocs/ -d example.com -d www.example.com

위와 같은 형식으로 입력을 시도할 건데, 가령 예전에 mydomain.com 도메인에 대한 인증서를 얻고자 했을 경우,

./certbot-auto certonly --webroot -w /home/bitnami/apps/wordpress/htdocs/ -d mydomain.com -d www.mydomain.com

와 같이 입력했을 겁니다. 그런데 이제 우리는 두 개의 도메인에 대한 인증을 모두 소유해야 하기 때문에, 기존에 mydomain.com 을 운영했고 멀티사이트 기능으로 추가 개설하여 연결할 도메인이 example.com 이라면, 아래와 같이 입력해주세요.

./certbot-auto certonly --webroot -w /home/bitnami/apps/wordpress/htdocs/ -d mydomain.com -d www.mydomain.com -d example.com -d www.example.com

이전에 이미 인증서가 있었고 확장(Expand)할 거냐고 물어보면 예스로 대답합니다. 그리고 메시지를 보면 인증서 저장 위치가 있을 거에요. 가령 /etc/letsencrypt/live/mydomain.com/ 위치에 인증서를 받았던 분은 그대로 그 위치에 인증서가 확장되더라고요. 그러니까 도메인을 추가하지만 인증서는 하나로 관리가 가능합니다.  /etc/letsencrypt/live/mydomain.com/ 에 있는 인증서가 example.com 도 다루게 됩니다.

이제 아파치서버 재시동합니다.

sudo /opt/bitnami/ctlscript.sh restart apache

다음으로 대시보드로 다시 가서 로그아웃 후 재접속. 그리고 example.com 으로 접속해서 안전한 사이트로 잘 표시되는지 검토합니다.

 

5) Really Simple SSL 플러그인 적용

SSL 이 잘 적용된 후에도, 가령 퍼머링크로 들어온 방문자가 리다이렉팅 안 되어서 게시물을 보지 못한다든가, 관리자 페이지에서는 SSL 적용이 안 된다거나 하는 문제를 겪기도 하는데 제 경우에는 Really Simple SSL](https://ko.wordpress.org/plugins/really-simple-ssl/) 플러그인 설치를 통해 대부분의 문제가 해결되더라고요.

멀티사이트도 잘 지원해주고 있어서 네트워크 수준에서 활성화하시고, 각 사이트의 설정 > SSL 화면을 통해 켜주시면 됩니다. 그다지 설정할 것도 없고 깔끔하게 잘 사용하고 있습니다.

 

나오며

라이트세일처럼 5달러에 아주 후한 자원을 제공하는 환경을 이미 갖추고 계시다면, 새로운 블로그 운영을 생각하실 때 멀티사이트 기능을 통해 각각 도메인을 연결해서 운영해보시기 바랍니다.

(2017년 9월)

7 thoughts on “아마존 라이트세일 하나의 인스턴스에 워드프레스 멀티블로그 올리기”

  1. 안녕하세요.
    http://blueinput.com/
    위와 같이 표시 되는데요. 도메인에서 네임서버는 변경없이
    DNS만 IP 고정아이피 할당받은것으로 수정했습니다.
    무엇이 문제일까요?? 2일째 삽질중인데 조언 구합니다.
    감사합니다.

    1. 블로그 홈 url 이 블로그 도메인이 아니라 아이피로 연결되어 있는 거 같은데요? 멀티사이트인 경우에는 이렇게 아이피 뜨고, 관리자 대시보드 네트워크 상위 관리자 화면에 접속했을 때 대시보드 보는 브라우저 url 이 아이피 숫자로 표시되면.. phpmyadmin 건드려서 바꿔주면 금방 해결될 거라 생각합니다.

      1. 이렇게 뜨는 원인이 DNS를 잘못잡아줘서 그런걸까요? 동일한 원인으로 계속나오는 원인을 알고 싶어서요.. 의심되는게 DNS 외에는 잘못한게 없는거 같아서요. ㅠㅠ

      2. 저도 잘 모르겠습니다. 그러나 서버 자체를 이사하면서 기존 컨텐츠를 완전 삭제했는데 화면이 깨지고 있으니 네임서버 이전 과정에서 에러 생긴 건 아닌 거 같아요. 여튼 저는 db 테이블 건드려서 문제 해결했었네요 ㅜㅜ

      1. 덕분에 해결했습니다. 댓글보고 했으면 금방될것을 pjpmyadmin 사용안해본것에 대한 두려움에 다른 방법 찾으려다가 결국 댓글대로 하고 해결했습니다. 다시한번 감사드립니다.

댓글 남기기