나만의 워드프레스 사이트를 소유하려면 먼저 어딘가의 서버 상에 워드프레스가 실행되고 있어야 합니다. 그 서버는 흔히 웹 호스팅(Web Hosting)일 수 있고 우리 집에 있는 개인 서버(Private Server)일 수 있습니다. 이 글에서는 아마존 라이트세일(Amazon Lightsail)이라는 가상사설서버(VPS, Virtual Private Server)를 활용해 워드프레스를 구성하는 방법을 소개해 드립니다.
구축 과정을 바로 확인하고 싶으신 분들은 “여기“를 클릭하시면 됩니다.
아마존 라이트세일 이란
아마존 라이트세일은 아마존에서 제공하는 클라우드 컴퓨팅 서비스(Cloud Computing Service)입니다. 하나의 물리적 서버를 가상으로 나누어 개별 사용자에게 제공하는 “가상사설서버”는 공통의 자원을 여러 사용자가 공유하는 “웹 호스팅”에 비해 가격적으로 부담이 큰 서비스입니다. 하지만 아마존에서 라이트세일이란 비교적 저렴한 가상사설서버 서비스를 출시하며 사용자들은 손쉽고 간편하게 나만의 서버를 가질 수 있게 되었습니다.
웹 호스팅이 아닌 아마존 라이트세일을 사용하는 이유
웹 호스팅과 가상사설서버의 가장 큰 차이점은 서버 자원에 대한 분할 여부입니다. 웹 호스팅(Web Hosting)은 하나의 서버 자원을 여러 사용자들이 나누어 사용하기 때문에 서버에 대한 권한도 제한적이고 특정 사용자가 과도한 자원을 점유 시 전체적인 성능이 제한되기도 합니다. 반면 가상사설서버(VPS, Virtual Private Server)는 가상화 기술로 자원을 분할해 각 자원을 사용자들에게 독립적으로 제공하기 때문에 다른 사용자들의 자원 점유와는 상관없이 안정적인 서비스를 운영할 수 있습니다.
또한 아마존 라이트세일은 국내 대표적인 웹 호스팅 업체인 “카페24″와 “가비아”에 비해 저렴한 가격 체계를 제공하고 있습니다.
월 5천원 수준의 요금제로 비교해 보면 스토리지는 라이트세일이 40GB, 카페24가 4GB로 10배 정도 차이가 나고 트래픽은 라이트세일은 2TB, 카페24는 6.5GB(..)로 비교할 수 없는 차이가 납니다. 카페24는 트래픽 1GB 추가 당 12,000원의 비용을 받습니다.
그리고 웹 호스팅 업체에서는 초기 구축 시 설치비 명목으로 1만원 상당의 비용이 들지만 라이트세일에서는 클릭 몇번으로 간편하게 인스턴스를 생성 또는 삭제 할 수 있습니다. 보안을 위한 SSL인증서 등록도 국내 업체에서는 연 간 최소 3-4만원의 비용이 발생하지만 라이트세일에서는 Let’s Encrypt SSL을 활용해 무료로 등록할 수 있습니다.
아마존 라이트세일 단점
라이트세일은 많은 장점이 있지만 단점도 존재합니다. 무엇보다 서버를 통째로 빌리는 개념이다 보니 서버에 대한 관리도 사용자가 직접 해야 합니다. 보안이나 백업, 권한 설정 등 서버적 이슈에 대해, 웹 호스팅을 하는 경우에는 업체에 문의를 넣을 수 있지만 라이트세일과 같은 가상사설서버 서비스의 경우 사용자가 직접 방법을 찾아 처리해야 합니다.
따라서 라이트세일의 경우 서버 지식이 어느정도 있거나 저처럼 열심히 구글링을 할 각오가 된 분들이 사용하시는게 좋습니다. 서버 관련 지식이 전혀 없는 분들은 웹 호스팅을 이용하시는게 스트레스도 덜 받고, 금액에 합당한 서비스를 받으실 수 있습니다.
워드프레스를 아마존 라이트세일로 구축해보자
이 글에서는 워드프레스를 아마존 라이트세일로 구축하려 합니다. 워드프레스인 이유는 제가 워드프레스 사이트를 만드는 김에 이 글을 정리했기 때문입니다. 라이트세일에 다른 서비스를 올려보지는 않았지만 어떤 서비스를 올리더라도 라이트세일의 장점은 동일하게 적용됩니다.
아마존 라이트세일 접속 및 인스턴스 생성
라이트세일을 이용하려면 아마존 웹 서비스 계정이 있어야 합니다. 없다면 먼저 AWS 계정을 만들고 다음 링크에 접속합니다.
- 아마존 라이트세일 Home : https://lightsail.aws.amazon.com/ls/webapp/home/
아마존 라이트세일에 접속하면 서버 인스턴스의 목록을 볼 수 있는 화면이 나옵니다. “인스턴스 생성” 버튼을 누릅니다.
인스턴스 생성 화면으로 들어가면 “인스턴스 위치”, 사전에 세팅되어 있는 “인스턴스 이미지” 등 여러 기본 설정을 선택할 수 있습니다. 라이트세일은 AWS(Amazon Web Service)의 서비스다보니 “서울”을 포함한 다양한 리전의 서버를 선택할 수 있습니다. 대한민국 사람이니 “서울” 리전을 선택하고, 인스턴스 이미지는 “Linux / LAMP“를 선택해 줍니다.
사실 라이트세일에서는 Bitnami 워드프레스 패키지가 설치되어 있는 인스턴스 이미지를 선택해 설치할 수 있습니다. 하지만 모든게 자동으로 세팅되고 숟가락만 올리는 걸 싫어하는 저의 이해할 수 없는 성향으로 워드프레스 기반 환경인 LAMP(Linux, Apache, Maria/MySQL DB, PHP) 만 세팅되어 있는 LAMP 이미지를 설치하도록 하겠습니다.
이제 “요금제(인스턴스 플랜)”와 “명칭”만 입력하면 인스턴스를 만들 수 있습니다. 클릭 몇 번으로 나만의 서버를 가질 수 있게 되었습니다. 요금제는 초반이므로 “3.5달러” 혹은 “5달러” 요금제를 선택하고 인스턴스 명칭은 서버의 명칭을 적당히 작성해 입력해줍니다. (인스턴스 명칭은 수정할 수 없습니다.) 요금제는 라이트세일의 백업 기능인 “스냅샷”을 활용해 추후에 올릴 수 있지만 내릴 수는 없습니다. 높은 요금제를 선택하시는 경우 신중히 선택하시기 바랍니다.
2022년 2월 기준으로 현재 첫 3개월은 무료이므로 적은 부담으로 라이트세일 서비스를 이용하실 수 있습니다. 이 3개월은 절대적 기간의 3개월이 아니라 개별 인스턴스의 사용 시간을 분 단위로 합산한 3개월으로 알고 있습니다. 따라서 2개의 인스턴스를 이용하시는 경우 3개월이 아닌 1.5개월을 무료로 이용하실 수 있습니다. 확실치는 않으니 복수 개의 인스턴스 사용하시는 경우 참고만 하시기 바랍니다.
라이트세일 인스턴스 고정 IP 설정
인스턴스를 생성하면 다음과 같이 생성된 인스턴스가 메인 화면에 표기됩니다. 이제 고정된 IP로 서버에 접속할 수 있도록 “고정 IP“를 생성해줍니다. 인스턴스를 클릭해 관리 화면으로 들어간 후 “네트워크” 탭을 보면 외부에서 접속할 수 있는 퍼블릭 IP 하단에 “고정 IP 생성” 버튼이 있습니다. 클릭해 고정 IP를 생성해줍니다. 연결할 인스턴스와 고정 IP 명칭을 입력해주면 고정 IP를 생성해 인스턴스와 연결할 수 있습니다.
서버에 “WORDPRESS_INST_STATIC_IP”라는 명칭을 가진 고정 IP가 설정 되었습니다. 이제 서버에 접속할 수 있는 고정적인 주소가 생겼습니다.
키 파일 생성해 파일질라로 SFTP 접속하기
워드프레스를 설치하려면 원격 서버 접속 프로그램인 PuTTY와
파일 전송 프로그램인 파일질라를 통해 서버에 접속할 수 있어야 합니다.
라이트세일은 보안적인 이유로 별도 SSH 키 파일을 제공하고 이를 통해서만 서버에 접속할 수 있도록 제한하는데, 이 키 파일은 pem 확장자의 파일이므로 이를 각 프로그램에서 활용하기 위해선 ppk 확장자로 파일을 변환해 주어야 합니다.
이 변환은 PuTTY와 함께 설치되는 PuTTYgen 프로그램을 통해 할 수 있습니다.
PuTTY의 설치와 키 파일의 확장자 변경은 다음 글 참고하시기 바랍니다.
ppk 확장자로 변환된 키 파일이 있다면 그것을 활용해 PuTTY와 파일질라를 통해 서버에 접속할 수 있습니다.
DB 사용자 및 데이터베이스 생성하기
워드프레스를 설치하기 앞서 워드프레스가 사용할 DB에 대한 세팅을 해주어야 합니다. 라이트세일에는 현재 LAMP 인스턴스를 생성하며 구성품으로 MariaDB가 설치되어 있습니다.
DB에 대한 세팅을 하려면 MySQL 및 MariaDB의 웹 GUI 관리툴인 phpMyAdmin에 접속해야 합니다. 라이트세일의 phpMyAdmin은 “127.0.0.1” IP로만 접속할 수 있습니다. 따라서 PuTTY를 활용해서 “127.0.0.1”로도 서버에 접속할 있도록 터널링을 해주어야 합니다.
다음과 같이 터널링 세팅을 한 후, PuTTy로 접속하면 “127.0.0.1” IP로 phpMyAdmin에 접속할 수 있습니다. PuTTy에서 Bitnami Application Password를 확인한 후 root 계정으로 DB에 접속합니다. 다음 명령어로 확인한 비밀번호가 root 계정의 비밀번호 입니다.
cat bitnami_application_password
phpMyAdmin에 접속하면 다음 작업들을 해주어야 합니다.
- 워드프레스를 위한 “데이터베이스”를 생성합니다.
- 워드프레스를 위한 “사용자”를 추가한 후 새로 추가한 “데이터베이스”에 대한 권한을 부여합니다.
먼저 워드프레스를 위한 데이터베이스를 생성합니다. phpMyAdmin의 “데이터베이스”탭으로 들어가 데이터베이스 명을 입력한 후 “만들기”를 클릭합니다.
이제 사용자를 추가해 wordpress DB의 권한을 부여합니다. “사용자 계정”탭에 접속한 후 “사용자 추가”를 누릅니다. 로그인 정보에 사용자에 대한 계정 정보를 입력한 후 “실행”을 눌러 사용자를 생성해 줍니다.
사용자가 생성되면 좌측의 “권한 수정” 버튼으로 사용자에게 워드프레스 DB에 대한 권한을 부여합니다. 권한 수정 화면의 “데이터베이스”탭에서 wordpress DB를 선택한 후 실행 버튼을 누르고, 다음 화면에서 “데이터베이스에 관한 권한”을 모두 체크한 후 권한을 부여합니다.
이제 워드프레스를 위한 데이터베이스와 사용자 세팅이 완료되었습니다. phpMyAdmin 화면 상단의 서버 항목(127.0.0.1:3306)을 기억해둡니다.
워드프레스 설치하기
워드프레스를 설치하기 위해선 파일질라로 서버에 접속해야 합니다. bitnami 계정과 키 파일로 서버에 SFTP 접속을 합니다. 접속하면 보이는 htdocs 폴더는 서버에서 실행 중인 Apache 웹 서버의 Root 폴더입니다. 이 곳에 워드프레스를 설치합니다.
다음 사이트에 접속해 워드프레스 최신 버전을 다운 받습니다.
- 워드프레스 다운로드 : https://ko.wordpress.org/download/
압축을 풀면 wordpress 폴더 안에 다양한 워드프레스의 구성 파일들이 있습니다. 이 중 wp-config-sample.php 파일을 복사해 wp-config.php로 명칭을 수정해 줍니다.
wp-config.php에는 앞서 생성한 워드프레스 데이터베이스의 정보가 세팅됩니다. 각각의 define 항목에 다음 정보를 입력해 줍니다.
/** The name of the database for WordPress */
define( 'DB_NAME', '워드프레스 데이터베이스 명칭' );
/** Database username */
define( 'DB_USER', '워드프레스 데이터베이스 사용자명' );
/** Database password */
define( 'DB_PASSWORD', '워드프레스 데이터베이스 사용자 비밀번호' );
/** Database hostname */
define( 'DB_HOST', 'phpMyAdmin 상단의 서버 항목. Ex. 127.0.0.1:3306' );
wp-config.php 작성이 완료되면 이제 wordpress 폴더의 모든 내용을 서버의 htdocs 폴더로 업로드합니다. 기존의 index.html은 삭제해도 됩니다.
서버에 등록한 고정 IP로 서버에 접속하면 이제 워드프레스 설치 페이지가 뜹니다.
정보를 입력하고 “워드프레스 설치”를 누르면 설치가 완료됩니다. 이제 워드프레스에 접속해 원하시는 사이트를 만드시면 됩니다.
처음으로 워드프레스 사이트를 만들면 사이트에는 주소가 지정되어 있지 않습니다. 즉, 사이트에 접속하려면 jaytr.org 같은 도메인 주소가 아닌, xx.xx.xxx.xxx와 같이 라이트세일에 설정된 고정 IP 주소를 입력해야 접속할 수 있습니다.
도메인을 구매해 사이트에 제대로 된 주소를 부여하시려면 다음 글을 참고해주시기 바랍니다. – 아마존 라이트세일 사이트에 도메인 지정하기
참고 글
- 아마존 라이트세일의 특징과 장점 (웹호스팅 vs. VPS)
- Lightsail : 라이트세일(Lightsail)이란?
- AWS 가이드 : 라이트세일에서 워드프레스 청사진을 사용하지 않고 워드프레스 설치하는 법