[AWS] AWS EC2 에 mysql 서버 만들기(with. React, express)

wooreal·2021년 4월 30일
2

AWS

목록 보기
1/2

AWS RDS 라는 서비스를 사용하면 mysql 서버를 만들 수 있지만,
돈이 많이 들기 때문에 EC2 를 이용하여 서버를 만든다.

1. AWS EC2 인스턴스 생성

[AWS] React project(express)를 AWS EC2에서 배포하기(with. git, putty, nginx)

위 링크로 들어가서 순서 1번 (AWS EC2 인스턴스 생성) 의 내용을 따라 진행하는데,
1.1 Amazon Machine Image(AMI) 선택 에서 Ubuntu Server 18.04 LTS 를 선택한다.
다음으로 1.6 보안 그룹 구성 에서 유형을 MYSQL/Aurora, 포트 범위를 3306, 소스를 위치 무관 으로 인바운드 규칙을 추가한다.

2. Putty(ssh)로 인스턴스 접속

[AWS] React project(express)를 AWS EC2에서 배포하기(with. git, putty, nginx)

위 링크로 들어가서 순서 2번 (Putty(ssh)로 인스턴스 접속) 의 내용을 따라 진행하는데,
2.3 Putty 에서 ec2-user@{AWS의 Elastic IP 또는 IPv4 DNS}ubuntu@{AWS의 퍼블릭 IPv4 DNS} 로 변경하여 접속한다.

3. Ubuntu 에 mysql 설치

Putty를 통해 리눅스 명령어를 활용하여 설치한다.

3.1 루트 계정으로 전환

$ sudo su

3.2 package 업데이트

$ apt-get update

3.3 mysql 설치

$ apt-get install mysql-server

3.4 mysql start

$ sudo systemctl start mysql.service

3.5 mysql start 확인

$ ps -ef | grep mysql

3.6 외부(mysql workbench) 에서 mysql 접속 허용

mysql workbench 를 사용하여 테이블 생성 등의 작업을 하기 위해 mysqld.cnf 파일을 수정한다.

$ cd /etc/mysql/mysql.conf.d
$ sudo vi mysqld.cnf

파일로 진입하여 bind-address 가 127.0.0.1 로 되어 있는데 0.0.0.0 으로 수정한다.

3.7 root 계정으로 mysql 접속

$ mysql -u root -p

3.8 새 mysql 계정 생성

root 계정으로 보안 문제 등의 이유로 새 계정을 생성하여 사용한다.

create user '계정이름'@'%' identified by '비밀번호';

계정 생성 후 해당 유저가 DB 에 모든 접근 권한을 가질 수 있도록 설정한다.

grant all privileges on DB명.* to '계정이름'@'%';

그리고 설정한 접근 권한을 특정 DB 또는 모든 DB에 알린다.

flush privileges;

4. mysql Workbench

[MySQL] MySQL Workbench 사용법

위 링크로 들어가 mysql Workbench 를 이용하여 mysql server 환경을 만들어놓은 AWS EC2 에 연결하고, 테이블 생성 등의 프로세스를 따라서 진행한다.

5. 로컬 React 프로젝트 에서 AWS EC2 mysql 연결

로컬 DB 를 사용하지 않고 이전에 생성한 AWS EC2 mysql server 에 연결하려면
React 프로젝트에 mysql 모듈을 설치하고

yarn add mysql

아래와 같이 작성한다.

그리고 node 명령어로 서버를 실행하면 콘솔에서 응답을 확인할 수 있다.

참고

[AWS] AWS EC2 인스턴스 (Ubuntu) 에서 MySql 세팅하기
AWS EC2에 MYSQL을 깔아서 개발에 활용해보기
[MySQL] MySQL Workbench 사용법
[Node JS] Express 웹 서버 구축하기 4 : MySQL 연동하기
node.js MySQL ER_ACCESS_DENIED_ERROR : 네이버 블로그

profile
내가 쓰고, 내가 보고, 나만 보고

0개의 댓글