본문 바로가기

AWS

AWS EC2에 MYSQL을 깔아서 개발에 활용해보기

현재 스프링 부트 공부도 할 겸 활용을 해보려고 토이 프로젝트를 진행하고 있습니다!

음 서버는 EC2를 사용해서 그 안에 MYSQL을 설치해서 사용해보겠습니다.

RDS를 사용해 봤는데 돈이 너무 많이 나가더라고요 ㅎ.. 편하긴 한데 ㅎㅎ

 

1. EC2 인스턴스 시작하기~

EC2란 쉽게 말해서 AWS라는 업체에서 컴퓨터를 하나 임대해서 사용하는 거라고 생각하면 됩니다.

컴퓨터의 사양, 운영체제, 리전 등 여러가지를 선택해서 빌릴 수 있습니다. ㅎㅎ

AWS에서 EC2 인스턴스를 시작하기 위해 아래와 같은 인스턴스 시작 버튼을 눌러줍니다.

 

 

그러면 아래와 같은 선택을 진행할 수 있습니다.

 

저는 Ubuntu Server 18.04를 선택해보겠습니다.

선택을 하게 되면 아래와 같은 사양들을 선택할 수 있고 시작을 누르고 다음 단계 들을 진행하면 ec2 생성 완료!

2. Putty를 활용한 EC2 컴퓨터 접속

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/putty.html?icmpid=docs_ec2_console

 

Connecting to Your Linux Instance from Windows Using PuTTY - Amazon Elastic Compute Cloud

A passphrase on a private key is an extra layer of protection. Even if your private key is discovered, it can't be used without the passphrase. The downside to using a passphrase is that it makes automation harder because human intervention is needed to lo

docs.aws.amazon.com

Puuty는 ec2 컴퓨터를 접속할 수 있게 도와주는 서비스입니다. 위의 링크를 접속해서 따라 하면 Putty를 활용해서 ec2 ubuntu에 접속할 수 있습니다.

3. EC2 컴퓨터에 MySQL을 설치해보자.

Putty를 통해 터미널에 접속하여 리눅스 명령어를 활용해 설치합니다.

(1) sudo su (루트 계정으로 전환)

(2) apt-get update (설치된 패키지 업그레이드)

(3) apt-get install mysql-server (우분투의 패키지 관리 툴을 활용한 mysql 설치)

(4) mysql -u root -p (접속)

설치 완료! 간단하죠? ㅎㅎ

그러나 이렇게 설치한 후에 스프링 부트에서 mysql에 연결하려고 하면 연결은 당연히 안 됩니다~

왜냐면 EC2에는 보안 그룹이라는 자체 방화벽(?)을 가지고 있거든요

4. 보안 그룹에서 MYSQL 포트 허용

방금 MYSQL을 설치했던 EC2 인스턴의 보안 그룹에 접속하여 인바운드 규칙을 변경해줍니다!

MYSQL은 3306 포트를 사용하니까 아래와 같이 3306 포트를 허용해주고 위치 무관으로 설정하면 됩니다.

 

 

인바운드 설정 완료~ 이제는 연결할 수 있을까 싶지만 한 가지가 더 추가적으로 필요합니다.

5. MYSQL 외부 접속 허용

MYSQL에서도 외부 접속을 허용해주어야 합니다.

먼저! mysql 설정 변경을 위해

sudo vi /etc/mysql/my.cnf를 입력합니다.

그 후 bind-address = 127.0.0.1이라는 코드를 찾아 #을 맨 앞에 작성해 주석처리를 해주시거나 0.0.0.0으로 변경해주세요 ㅎㅎ

bind-address는 127.0.0.1에서만 접속을 허용한다는 의미인데 이거를 해제해주어야 외부에서 접속이 가능합니다~

이제는 mysql을 다시 실행해주세요 service mysql restart

그 후에로 다시 접속합니다. mysql -u root -p

마지막입니다!

mysql은 사용자에 대한 원격지 접속 권한을 부여해주어야만 원격지에서 접속이 가능합니다.

grant all privileges on *.* to root@'%' identified by '루트 계정 비밀번호';를 입력하게 되면 종료!

이제는 mysql을 원격지에서도 이용할 수 있습니다~ 

앞으로는 스프링 부트를 활용하여 프로젝트를 진행할 수 있겠네요.

 

혹시 틀린 점이나 궁금하신 사항이 있으시면 댓글 달아주세요