EC2로 워드프레스 이전하기

어제, 오랜 기간동안 고민하다가 갑자기 느낌이 확 와서 제 블로그를 시놀로지 NAS에서 아마존 EC2로 이전하였습니다. NAS 자체가 너무 느리기도 하고, 이사를 하면서 겪었던 많은 불편함을 해소하고자 결국 클라우드 환경을 선택하게 되었네요. 게다가 최근 클라우드 환경에서 많은 작업들을 하다 보니까 그 편리함에 눈을 뜨게 되었습니다.

처음에는 굉장히 거창한 시스템을 구축해볼까 하였으나, 가만히 생각해보니 모든 서비스 하나하나가 결국 돈을 지불해야 하여서 기존 도메인 연결만 EC2로 바꾸고, EC2에서 워드프레스를 기동하기로 결정하였습니다. EC2의 워드프레스는 손수 구축하지는 않았고, Bitnami에서 제공하는 이미지를 선택하였습니다. 이제부터 제가 이전한 방법과 EC2 설정을 나열해보도록 하겠습니다.

이전 준비

먼저 기존 워드프레스 사이트의 백업을 진행해야 합니다. 직접 DB와 파일들을 이동할 수도 있지만, 여간 번거로운 것이 아니라서 간단히 플러그인을 통해 백업 및 이전을 진행하게 되었습니다. 제가 이용한 플러그인은 UpdraftPlus Backup/Restore 플러그인 입니다.

플러그인의 설정에서 백업 경로를 지정하고 백업 진행하면 됩니다. 저는 개인 드롭박스로 백업을 진행하도록 설정하였습니다. 백업 내용은 DB를 포함한 워드프레스 파일과 플러그인, 테마, 첨부 파일 등등을 모두 진행할 수 있습니다.

백업이 정상 진행되었으면 백업된 파일을 별도 보관하시고 이제 EC2에 워드프레스를 설치하면 됩니다.

EC2에 워드프레스 설치

앞서 말했듯이, 제가 EC2에 설치하기로 선택한 워드프레스 이미지는 Bitnami에서 제공하는 WordPress with NGINX and SSL Certified by Bitnami and Automattic 입니다.

해당 이미지를 선택하면 구독 안내가 나타납니다. 이미지 자체의 구독료는 따로 발생하지 않기 때문에 그냥 사용하시면 됩니다. 그 이후에 인스턴스의 크기를 결정합니다. 저는 딱히 트래픽이 없으므로, t2.micro를 사용하여 무료 티어로 진행하였습니다. 개인 계정에서 설정하는 것이므로 vpc나 subnet은 모두 기본으로 진행하고 추후 보안 그룹만 ssh를 본인의 아이피로 지정하면 됩니다. 키페어 설정 후에 키 파일은 다운받아서 잘 보관해두시기 바랍니다.

설정이 완료되었으므로 EC2가 바로 실행되고 곧 접속이 가능해집니다.

워드프레스 셋팅

처음 Bitnami의 워드프레스를 설치하게 되면, 여러 작업들을 진행해줘야 합니다. 설치는 되었지만 로그인 암호를 모르기 때문에 워드프레스의 관리자 암호를 알아야 할 필요가 있습니다. 생성된 EC2의 설정에서 시스템 로그를 확인합니다.

시스템 로그 끝에서 좀 전에 암호를 확인할 수 있습니다.

[   13.105018] bitnami[1199]:                                                                        
[   13.122087] bitnami[1199]:         Setting Bitnami application password to 'TNClGwRKodE9'         
[   13.144322] bitnami[1199]:         (the default application username is 'user')                   
[   13.158543] bitnami[1199]:                                                                        

여기에 적힌 것처럼 워드프레스의 관리자 이름은 user, 암호는 TNClGwRKodE9 입니다. 이것은 생성할 때마다 달라지는 값이므로 본인의 인스턴스에서 직접 확인해야 합니다. 이제 관리자 정보를 알았으므로, 워드프레스에 로그인을 해야 합니다. 인스턴스 정보에서 퍼블릭 IP를 이용하여 <public ip>/wp-admin/ 으로 접근을 하게 되면 관리자 로그인 화면이 나타납니다. 위에서 알아낸 정보를 입력하면 접속이 됩니다.

워드프레스 이전

관리자 화면에 로그인을 했으면, 플러그인 항목으로 들어가서 UpdraftPlus Backup/Restore 플러그인을 설치합니다. 설치가 되면 백업 화면의 하단에서 Upload Backup Files를 눌러 기존에 백업했던 모든 백업 파일을 올려주면 됩니다.

Bitnami 기본 설정에서 nginx가 업로드 가능한 최대 파일 크기를 2MB로 제한하고 있습니다. 이를 해제하기 위해서는 ssh로 EC2에 접근하여 이를 수정해야 합니다. putty 프로그램을 이용하여 인스턴스로 ssh 연결을 진행합니다.

    • 호스트 : bitnami@<public ip>
    • 포트 : 22

앞서 받은 .pem 키 파일을 puttygen을 통해 .ppk 파일로 private key 저장을 하고, 이를 putty의 Connection > SSH > Auth 항목 하단에서 불러와 연결해줍니다. 다시 Session 항목으로 돌아와서 접속 정보를 저장하고 Open 버튼을 눌러 ssh 연결을 진행해 봅니다.

잘 연결되는군요. Nginx 파일 하단에 업로드 용량을 늘려주는 옵션을 추가합니다. 저는 넉넉하게 1024MB를 설정하였습니다.

sudo vi /opt/bitnami/nginx/conf/nginx.conf

[추가]
client_max_body_size 1024m;

php.ini 파일에서도 php를 통해 업로드 가능한 용량을 늘려줍니다.

sudo vi /opt/bitnami/php/etc/php.ini

[변경]
; Maximum size of POST data that PHP will accept.
post_max_size = 400M

; Maximum allowed size for uploaded files.
upload_max_filesize = 1024M

역시 넉넉한 값을 설정하였습니다. 그리고 Bitnami 배너가 워드프레스 관리자 화면 우측 하단에 나타나는데, 이를 제거합니다.

sudo /opt/bitnami/apps/wordpress/bnconfig --disable_banner 1

여기까지 진행했으면, 한 번쯤은 서비스를 재시작 해줘야 합니다.

sudo /opt/bitnami/ctlscript.sh restart

그러면 백업 파일을 올리는데 문제가 없을 겁니다. 파일들을 모조리 올린 다음에 복원을 눌러 복원 진행합니다. 모든 복원이 완료되면 새로고침하고 데이터베이스 업데이트 과정이 진행됩니다. 그리고 관리자 로그인 화면에서 기존에 사용하던 워드프레스의 관리자 계정과 암호로 로그인하면 됩니다.

설정 마무리

워드프레스 이전이 완료되었습니다! 이제 사용하던 도메인 이전을 실시합니다. EC2는 기본적으로 아이피가 지속적으로 변경되기 때문에 도메인을 연결하기가 까다롭습니다. 그래서 탄력적 IP 서비스에서 공인 아이피를 하나 발급받아 EC2에 연결시켜 줍니다.

새 주소 할당을 눌러 IP를 할당받고, 할당 받은 IP를 우클릭하여 주소 연결을 하면 됩니다. 주소 연결할 때는 워드프레스가 설치된 인스턴스를 찾아서 눌러주면 됩니다.

이제, 위에서 할당받은 IP로 도메인의 DNS 레코드 설정을 업데이트 해줍니다.

도메인이 새로운 DNS 레코드로 연결되려면 충분한 시간이 필요합니다. 윈도우의 cmd에서 nslookup <내 도메인> 을 입력하면 어디로 호스팅이 되는지 확인이 가능합니다.

C:\Users\laman>nslookup lamanus.kr
서버:    google-public-dns-a.google.com
Address:  8.8.8.8

권한 없는 응답:
이름:    lamanus.kr
Address:  52.*.*.*

주소 부분에 새로 설정한 IP가 나타나면 이제 ssl을 위한 Let’s Encrypt 인증서를 추가합니다. 이는 앞서 연결했던 EC2의 ssh 연결을 통해 진행할 수 있습니다.

sudo /opt/bitnami/letsencrypt/scripts/generate-certificate.sh -m <example@example.com> -d <sub1.example.com> -d <sub2.example.com>

ssl 적용을 위해서는 워드프레스의 ssl 플러그인을 해제했다가 다시 활성화 시켜야 제대로 적용이 될 수 있습니다.

마치며…

앞에서 시스템적인 모든 설정은 완료되었습니다. 이제는 모든 데이터가 정상인지 열심히 확인해보고 잘못된 부분 또는 호환이 되지 않는 플러그인들을 삭제해주면 됩니다. Bitnami는 기본적으로 높은 버전의 워드프레스가 기본 설치되기 때문에 이전하기 전에 플러그인 호환성을 살펴보시기 바랍니다.

사이트가 빨라져서 너무 좋아요!