본문 바로가기

GCP

구글 클라우드를 이용하여 워드프레스 배포


Compute Engine과 Google Cloud SQL을 이용하여 워드프레스를 배포해보자

1. 기본 설정   2. DB 생성 및 사용자 생성  3. 워드프레스 설치 및 배포


 

 

사전사항

  • SDK 사용자 인증과 프로젝트 연결이 되어 있어야 한다

  • 워드프레스 서버로 이용할 VM 1개를 만든다

  • Cloud SQL 인스턴스(MySQL엔진) 1개를 만든다

 

 

 

1. 기본 설정

 

 

VM 리스트 확인 

gcloud compute instances list

 

 

 

SQL 인스턴스 리스트 확인

gcloud sql instances list

 

 

 

SQL 인스턴스 비밀번호 변경(SDK를 이용한 변경)

gcloud sql users  set-password root  --host "%" --password "change password" --instance "your instance name"

 

주의) 인스턴스 이름이 올바르지 않은 경우 아래와 같은 오류메세지가 출력된다

 

 

 

SQL 인스턴스 비밀번호 변경(콘솔을 이용한 변경)

 

SQL 메뉴에서 사용자 탭을 선택한 다음 점3개를 클릭하면 비밀번호를 변경할 수 있다 

 

 

 

Google Cloud SQL 접속 전 네트워크 설정


네트워크 추가를 선택하고 (0.0.0.0/0) 모든ip를 허용한다

 

 

 

 

주의) 완료를 누르고 저장을 클릭한 다음 "업데이트 완료"라는 문구가 떠야 정상적으로 변경된 것이다

 

 

 

 

SSL을 이용하여 연결 암호화 순서(이 단계는 넘어가도 상관없다)

 

SSL을 이용하여 데이터베이스 연결을 암호화하기 위해서는 1) 서버의 CA인증서  2) 클라이언트 인증서  3) 클라이언트 개인키가 필요하다. 3가지만 준비된다면 MySQL 클라이언트는 보안 연결을 알아서 해주기 때문에 많은 작업이 필요하지 않다

 

 

1) 새 인증서 만들기를 클릭하여 인증서를 새로 생성

2) 클라이언트 인증서 만들기를 클릭하여 인증서의 이름을 지정하여 생성

3) 클라이언트 인증서 생성 후 클라이언트 인증서와 개인키 그리고 서버의 CA인증서를 보여주는 팝업이 뜬다

4) 각각의 인증서와 키를 다운로드 한다

 

주의) client-key.pem은 분실하면 재발급이 불가하므로 잘 보관해놓는다

 

5) 3가지 파일(server-ca.pem, client-cert.pem, client-key.pem을 모두 다운로드 했으면 아래와 같은 명령어를 실행하여 연결을 암호화할 수 있다

 

 

 

Cloud SQL 인스턴스에 연결하기

 

데이터베이스에 접속하기 위해서는 클라이언트를 먼저 설치해줘야 한다

sudo apt install -y mysql-client

 

아래의 명령어를 실행하면 데이터베이스에 접속한 것을 확인할 수 있다

(패스워드는 SQL 인스턴스 생성 시 설정한 루트 비밀번호)

mysql -h IP주소 -u root -p   

 

 

2. DB생성 및 사용자 생성

 

워드프레스용으로 사용할 데이터베이스를 만든다

mysql> CREATE DATABASE wordpress;

 

 

DB에 접속할 wordpress라는 사용자를 생성하고 사용권한을 부여한다

mysql> CREATE USER wordpress IDENTIFIED BY '패스워드';
mysql> GRANT ALL PRIVILEGES ON wordpress.* TO wordpress;

 

 

부여한 권한을 바로 사용할 수 있게 사용자 및 권한 목록을 다시 로드한다

mysql> FLUSH PRIVILEGES;

 

 

 

3. 워드프레스 설치 및 배포

 

SSH를 통해 VM에 연결한다

gcloud compute ssh --zone us-central1-c wordpress 

 

 

VM이 웹서버의 역할을 할 수 있도록 패키지들을 설치한다(패키지 설치에 앞서 설치되어 있는 패키지들을 모두 새버전으로 업그레이드 한다)

sudo  apt  install  apache2  mariadb-client  php-mysql   php   libapache2-mod-php   php-gd

 

wordpress.org에서 최신버전의 워드프레스를 다운로드한다(+ 압축해제)

wget http://wordpress.org/latest.tar.gz
tar xzvf latest.tar.gz

 

워드프레스가 데이터를 저장하는 위치, 인증하는 방법과 관련된 몇 가지 구성을 설정한다

cd wordpress
cp wp-config-sample.php wp-config.php

 

 

'DB_NAME'과 'DB_USER'란에는 방금 생성한 DB와 사용자명을 입력한다

'DB_HOST'에는 VM IP주소가 아닌 SQL 인스턴스 IP주소를 입력한다

vim wp-config.php

 

 

 

Apache의 기본 페이지인 index.html을 제거한다

sudo rm /var/www/html/index.html

 

 

Apache가 서비스할 수 있도록 모든 관련 파일을 홈 디렉터리에서 /var/www/html로 이동한다

sudo rsync -avP ~/wordpress/ /var/www/html

 

주의) 워드프레스 접속 시 "Error establishing a database connection" 에러가 발생한다면

1) wp-config.php에 적은 DB이름이  SQL에 접속해서 'show databases' 명령어를 통해 출력된 DB목록에 DB가 있는지 확인

2) 만약 없으면 'CREATE DATABASE [만들DB명]'을 해서 만들어주고 사용자에게 권한부여하고

3) wp-config.php파일의 DB이름 적는칸에 만든 DB명을 ,  sudo rsync -avP ~/wordpress/ /var/www/html 싱크를 맞춰주고 접속을 한다

 

 

 

웹서버 접속

 

브라우저에서 vm ip 주소를 입력하면 워드프레스에 접속할 수 있다

'GCP' 카테고리의 다른 글

GCP-Cloud Datastore  (0) 2021.02.07
GCP-로드밸런싱  (0) 2021.02.05
GCP-영구디스크 생성 및 사용 / 스냅샷  (0) 2021.02.04
Cloud Spanner  (0) 2021.02.03
GCP SDK 설치 및 사용자 인증  (0) 2021.01.29