5. 워드프레스 DB분리
목차 구성
이번 글을 읽으면 얻을 점
1. 서버와 데이터베이스를 다른 컴퓨터로 분리할 수 있다.
2. 사이트의 속도개선이 있을 수 있다.
3. AWS 프리티어로 wordpress 페이지를 구동할 수 있다.
누구를 위한 글인가
- Nas 와 같이 24시간 운영중인 컴퓨터를 보유한분
- AWS 데이터베이스를 사용하여 안정적인 구조를 만들고 싶은 분
- 데이터베이스 한 스키마에 여러개의 워드프레스를 구현할 수 있다.
1. 도커를 통해 기본 개념을 구상
2. AWS 프리티어로 DB분리워드프레스 구성
AWS 프리티어 사양
[1CPU 1GB Ram]
MYSQL이 400mb의 램을 차지
동일한 환경에 apache2를 통한 구동시
블로그 접속시 적은 접속만으로도
서버가 이를 안정적으로 감당하지 못하며
EC2 인스턴스에 접근하지 못하였습니다.
그렇다면 AWS 인스턴스를 그대로 두며
데이터베이스를 따로두어 부담을 줄여줍니다.
간단 요약
- MYSQL(혹은 Mariadb)이 작동하는 컴퓨터를 만들어줍니다.
- wordpress의 wp-config.php의 수정해줍니다.
- DB서버의 포트를 열어줍니다.
도커를 통해 [구성 예시] 만들어보기
개념적인 부분으로 AWS 프리티어에는 권장하지 않습니다.
wordpress 이미지 다운로드
docker pull wordpress
컨테이너에 접속하여 apache2 & mariadb 설치
컨테이너에 접속하기
docker exec -it [컨테이너 이름] bash
apache2와 mariadb-clinet 설치하기
apt-get install apache2 mariadb-client
wordpress 이미지 실행
docker run --name wordpress-container -p 8080:80 -d wordpress
wordpress-container는 컨테이너 이름을 나타냅니다.
맨 마지막 wordpress로 이미지를 컨테이너에서 실행시킵니다.
웹브라우저 localhost:8080을 실행하여
초기 설정에서 DB위치를 기본 설정을 해주어야합니다.
데이터베이스 이름
생성한 스키마 이름을 입력해줍니다.
사용자명
데이터베이스의 계정 ID를 입력해줍니다.
비밀번호
데이터베이스의 계정 PW를 입력해줍니다.
데이터베이스 호스트
이 부분을 데이터베이스 컴퓨터의 IPv4 외부 아이피를 입력해줍니다.
ex) 111.222.333.444:3306
테이블 접두어
한 스키마에 여러 워드프레스를 운영하지 않는다면 기본(_wp)으로 두시면 됩니다.
여기까지 설정을 완료하셨다면
docker를 통해 DB분리를 하셨다고 할 수 있습니다.
AWS EC2 프리티어 인스턴스로 이전한 경우
EC2 프리티어 인스턴스를 생성합니다.
[생성에 관하여 설치할 것들은 이전 포스팅과 동일합니다.]ssh 연결을 통해 EC2 인스턴스에 접속합니다.
ssh -i [로컬 key 위치.pem] ubuntu@[EC2 IPv4 공개주소]
예시) ssh -i /User/it/Documents/key/wordpress.pem ubuntu@111.222.333.444
WordPress 폴더를 /var/www/html폴더로 이동
mv -r /User/ubuntu/[wordpress 폴더이름] /var/www/html/[wordpress 폴더이름]
[Wordpress 폴더로 이동합니다]
cd /var/www/html/[wordpress 폴더 이름]
wp-config.php 파일 수정을 통해
DB 주소와 정보를 입력합니다.
sudo vim wp-config.php
영어 i를 눌러서 INSERT 모드로 진입 후
DB_NAME 옆의 database_name_here을 실제 스키마 이름으로 수정해줍니다.
DB_USER 옆의 username_here을 실제 데이터베이스 유저 이름으로 수정해줍니다.
DB_PASSWORD 옆의 password_herer을 실제 데이터베이스 유저의 비밀번호를 입력해줍니다.
DB_HOST 옆의 localhost를 데이터베이스 컴퓨터의 IP주소:3306 형태로 입력해줍니다. ex) 111.222.333.444:3306
esc를 누르고 :wq로 저장후 종료해줍니다.
이를 통해 DB분리를 완료합니다.