brunch

You can make anything
by writing

C.S.Lewis

by Mario Oct 28. 2016

[GCP] GCE에 MySQL 설치하기

Toad for MySQL로 연결해보자!

오늘은 GCP(Google Cloud Platform)에 생성한 GCE(Google Compute Engine)에 MySQL을 설치하고 외부에서 연결할 수 있도록 설정해보려고 합니다. 개발용 DB 설정이기 때문에 대부분의 설정은 기본값을 사용할 것 이므로 각각에 대한 상세 설정은 참고자료의 링크를 활용하시기 바랍니다.


설치할 소프트웨어

MySQL
Apache2
PHP
phpMyAdmin


설치순서

1. GCE 인스턴스 생성
2. Apache2 설치
3. MySQL 설치
4. MySQL 설정
5. PHP 설치
6. phpMyAdmin 설치
7. GCP 방화벽 설정



step 1. GCE 인스턴스 생성

GCE 인스턴스 생성

Machine type : 자신의 용도 맞게 선택한다.

Zone: northeast1으로 설정합니다. 

"northeast1"이 얼마전 일본에 추가된 데이터센터인 듯 합니다. 그리고 "east1"이 대만에 있으니 구글은 지진이 발생하는 지역을 좋아하는 것 같습니다.

Boot disk: 선호하는 배포판을 선택하도록 합니다. 저는 기본 설정으로 되어있는 debian 8로 설정했습니다.

Firewall: phpMyAdmin을 사용하기 위해 http 연결을 선택합니다.

Toad for mysql을 쓸거지만 혹시 모르니 phpMyAdmin도 설치합니다.



step 2. Apache2 설치

콘솔의 SSH 버튼을 클릭하면 웹에서 바로 터미널 연결이 가능하다. 진짜 편하다 구글 만세!

GCP 콘솔에서 SSH 터미널 연결하기
SSH 터미널 연결
$ sudo apt-get update && sudo apt-get upgrade
$ sudo apt-get install apache2
$ sudo nano /etc/apache2/apache2.conf



step3. MySQL 설치

$ sudo apt-get install mysql-server
$ sudo mysql_secure_installation



step4. MySQL 설정

'create user' 메뉴얼과 'grant'의 메뉴얼을 참고하자. user_id와 password는 각자 설정하고 remotehost에 원격접속할 클라이언트의 주소를 적는다. '%'을 사용하면 모든 IP에서의 접근을 허용하게 된다.

$ mysql --user=root -p

mysql> create database dbname;
mysql> create user 'user_id'@'localhost' identified by 'password';
mysql> create user 'user_id'@'remotehost' identified by 'password';
mysql> grant all privileges on dbname.* to 'userid'@'localhost' identified by 'password';
mysql> grant all privileges on dbname.* to 'userid'@'remotehost' identified by 'password';



step5. PHP 설치

$ sudo apt-get install php5 php-pear
$ sudo apt-get install php5-mysql
$ sudo systemctl restart apache2

GCE 인스턴스에 할당된 External IP를 사용해 웹 브라우저에서 연결하면 아래와 같은 결과를 볼 수 있다.

Apache와 php는 phpMyAdmin을 사용하기 위해서 설치한 것이므로 기본 설정을 사용한다. APM 설치는 잘 설명되어있는 이 곳을 참고하도록 하자!



step 6. phpMyAdmin 설치하기

$ sudo apt-get install mcrypt
$ sudo systemctl restart apache2
$ sudo apt-get install phpmyadmin
phpMyAdmin 설치는 이 곳을 참고하도록 하자!



step 7. GCP 방화벽 설정하기

좀더 편한 개발을 위해 Toad for MySQL을 사용해보자. MySQL 버전은 무료니 안써볼 이유가 없다.

연결을 시도하면 'Unable to connect to any of the specified MySQL hosts.'이라는 메시지를 볼 수 있다.  TCP 3306 포트에 대한 연결이 GCE 인스턴스에 허용되지 않았기 때문이다.


7.1 방화벽 규칙 추가

구글 클라우드 콘솔의 [Networking]-[Firewall rules]를 선택한다.


[CREATE FIREWALL RULE]를 실행하고 아래와 같이 입력한다. 가변 IP를 사용하는 여러 장소에서 접근하는 관계로 모든 원격지에서의 연결을 허용했지만 보안상 문제가 발생할 수 있다면 IP Range 옵션을 사용하도록 한다.


7.2 GCE 인스턴스에 방화벽 규칙을 등록

MySQL을 설치한 인스턴스의 편집 화면에서 [Tags] 항목에 'mysql-server'를 추가하면 해당 인스턴스의 tcp 3306에 대한 연결이 허용된다.


7.3 my.cnf 수정

'bind-address = 127.0.0.1'을 찾아 주석 처리하고 mysql을 재시작한다.

$ sudo nano /etc/mysql/my.cnf
$ sudo /etc/init.d/mysql restart

이제 Toad에서 연결할 수 있다.


떡 본김에 제사 지낸다고 오랜만에 MySQL을 쓸일이 생겨 정리 해봤습니다. 앞으로 구글의 클라우드 플랫폼과 안드로이드 앱을 개발하며 알게되는 내용을 이 곳에 기록할 예정이니 잘못 된 정보를 발견하시는 분께서 바로 잡아주시면 감사하겠습니다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari