블로그

PHP 유지보수

[워드프레스]AWS-Aurora DB 를 이용하여 사이트 속도를 5배 빠르게 전환하기

안녕하세요 ?
국내 유일의 무료 워드프레스 쇼핑몰 교육 모임인 “우커머스 교실”에서 아마존 웹서비스 AWS에 제공하는 AURORA-DB과 연계한 웹 호스팅 서비스를 지원하게 되었습니다. Amazon Auroa-DB는 MySQL과 호환되는 관계형 데이터베이스 엔진으로 Oracle 등과 같은 정도의 상용 데이터 베이스의 성능과 가용성을 제공하는 동시에 오픈소스 데이터베이스가 가지는 효율성과 비용 절감 효과를 얻을 수 있는 획기적인 제품입니다. 즉 오라클의 10의 1 가격 이하로 MySQL 보다 최고 5배 정도 뛰어난 Access속도를 자랑하며 백업과 미러링까지 겸할 수 있는 기능 을 제공하고 있습니다. Aurora는 사용 무료이나 AWS에서 관계형 데이터 베이스 서버로만 제공된다는 점이 제한 사항입니다. 이것은 해당 웹호스팅이 AWS기반이여야만 한다는 전제입니다. 다보리에서는 모든 웹호스팅 기반이 AWS기반으로 구성되어 있으므로 AURORA DB를 아주 용이하게 확장하여 사용할 수 있으며 기존의 모든 고객의 웹사이트의 DB를 AURORA 기반으로 옮기고 있습니다. 그것은 한 웹페이지의 구성시 약 80~150개의 SQL 쿼리문을 실행해서 데이터를 가져와야할 워드프레스 웹사이트, 그리고 좀 더 무거워진 우커머스 기반에서는 웹사이트 속도 증대를 위해서 필수 불가결한 선택입니다.


AWS-RDS 설정에서 Aurora DB로 선택하여 설치시의 착안점
Amazon Relational Database Service(Amazon RDS)는 클라우드에서 관계형 데이터베이스를 더욱 쉽게 설정, 운영 및 확장할 수 있도록 지원하는 웹 서비스입니다. 이 서비스는 산업 표준 관계형 데이터베이스를 위한 경제적이고 크기 조절이 가능한 용량을 제공하고 공통 데이터베이스 관리 작업을 관리합니다.
RDS를 추가로 설치하는 것은 이 블로그의 설명 범위를 벋어나므로 아마존 웹서비스에서 제공하는 메뉴얼이나 구글 검색으로 통하여 알아보시기 바랍니다. 일단 RDS 설치되면 Cluster Endpoint 라는 것이 제공됩니다. 이것은 데이터베이스와 웹서버를 동일하게 사용하는 경우의 localhost 라는 것에 대응하는 개념으로서 DB Server 와 Web Server 가 동일한 물리적 서버에서 제공되지 않으므로 DB 서버의 주소를 지정하여 주는 것을 말합니다. 예를 들면 wp-config.php 의 DB_HOST 항목의 value를 Cluster Endpoint 로 바꾸어 주므로써 DB 연결의 종점을 변동시키는 것입니다.

[root@xxx:1 parks]# vi wp-config.php
/** MySQL hostname */
define('DB_HOST', 'xxxx-aurora-new-cluster.cluster-xxxxxx.ap-northeast-3.rds.amazonaws.com');

즉, 워드프레스 웹사이트의 wp-config.php 에서 ‘DB_HOST’ 항목만 연결시켜주면 됩니다.
!주의 : 실제로는 FTP로 연결해서 변경된 wp-config.php를 업로드하거나 에디터로 직접 수정하시면 됩니다.

localhost 의 MySQL DB를 미리 백업하기
만약 localhost 의 MySQL 과 AWS-RDS의 Aurora-DB에 동일한 이름의 db명이 존재하면 DB 복원 관련된 모든 shell 프로그램은 Aurora-DB에 있는 것을 우선하게 됩니다. 즉 localhost에 해당 DB가 있더라고 백업이나 복원이 되지 않습니다. 따라서 Aurora-RDS 에 DB를 생성하기 전에 미리 localhost의 DB를 백업받아야 그것을 이용하여 Aurora-RDS에 DB 설치가 가능합니다.
phpMyAdmin 을 사용하여 Aurora DB 생성하고 관리하기
이제까지 My SQL DB 생성과 삭제를 Kloxo-MR 패널에서 하셨다면 Kloxo-MR 패널에서는 Aurora DB를 직접 연결해서 관리할 수 없으므로 부득히 Kloxo-MR에 연결되어 있는 phpMyAdmin으로 들어가서 직접 사용자와 DB를 생성, 변경 수정을 해주셔야 합니다. 따라서 가장 간단한 phpMyadmin 사용법을 알려드려야 합니다.
1. Kloxo-MR panel 에서 phpMyadmin으로 로그인
사용자 아이디와 패스워드는 이미 전달된 정보를 이용하시면 됩니다.
2. 오른쪽 상단의 [현재서버] 의 콤보박스를 클릭하여 하단의 aurora endpoint 로 DB 전환
 이때 [일반설정]의 서버 연결 콜레이션(언어)를 눈여겨 보십시요. 일반적으로 [utf8mb4_unicode_ci]로 되어 있습니다.
이것을 새로운 DB 생성시 적용되는 기본값으로 지정하시면 됩니다.
[외관설정]도 DB 생성시 동일하게 적용하시면 됩니다.
3. 사용자와 DB 동시 생성
[로그인 정보] 상단 메뉴의 [사용자] – New[사용자 추가]를 하면
사용자명: [사용자 ID]_db (예: mytest_db)
호스트 : 현재 호스트
암호생성 과 재입력: 기존의 암호를 사용하십시요.
* 만약 암호를 바꿀 계획이라면 *
[암호생성]버튼을 누르면 자동으로 생성되어 [암호]와 [재입력] 자리에 들어갑니다.
이때 암호는 저장해두었다가 반드 wp-config.php 수정시 해당 [DB_PASSWORD] 항목과 일치시키셔야 합니다.
[유저전용 데이터 베이터] 동명의 데이터베이스를 생성하고 모든 권한을 부여 : checked
Grant all privileges on wildcard name : checked
[전체적인 권한] : check 하지말고 그냥 둡니다.
* 최종적으로 맨 하단의 [실행] 버튼을 클릭하면 사용자와 DB가 동시에 생성됩니다.
4. 사용자와 DB 동시 삭제
[좌측상단-new] 클릭
상단 메뉴의 [사용자] – 사용자 리스트에서 해당 사용자를 클릭
[선택한 사용자를 삭제] 사용자명과 같은 이름의 데이터베이스를 삭제합니다: checked
최종적으로 맨 하단의 [실행] 버튼을 클릭하면 사용자와 DB가 동시에 삭제됩니다.
DB 삭제시는 사용자와 DB 내용이 삭제되므로 백업여부를 반드시 확인하고 실행하여 주시기 바랍니다. 한 번 삭제된 DB는 백업된 내용으로만 복구가 가능합니다.
이후는 기존의 MySQL 복원과 동일합니다.

Leave a Reply

Your email address will not be published. Required fields are marked *