[AWS+배포] AWS RDS로 DB 구축(MySQL)

AWS RDS - MySQL DB 구축

AWS의 RDS(Relational Databases)를 통해 MySQL DB를 구축하고 접속해보자.

DB의 분리 (RDS의 이점)

지난번 AWS에서 환경을 구축한 서버단인 APM(Apache, PHP, MySQL)의 경우 서버 프로그램, 백엔드 언어, DB가 모두 ubuntu 서버 안에서 한 번에 관리되고 있었다.

이러한 경우,

  • 서버 프로그램이나 백엔드 언어로 인해 서버에 문제가 생겼을 때 DB도 영향을 받을 수도 있다.
  • 다른 서버에서는 해당 DB를 사용할 수 없다.
  • 서버의 보안적으로 공격당한다면 해당 DB도 공격받을 수 있다.

서버 프로그램이나 백엔드 언어의 영향을 덜 받고, 다른 서버도 이용할 수 있고, 보안적으로도 더 안정적으로 관리할 수 있도록 APM처럼 ubuntu 서버에서 패키지 명령어로 MySQL을 설치하는 것이 아닌, AWS의 RDS를 이용하여 서버를 따로 구축해보자.

RDS 생성

AWS 접속 후 서비스 검색창에 RDS를 검색 후 이동하여 데이터베이스 생성을 클릭한다.

1

표준 생성을 클릭한다.

2
MySQL로 설치할 것이므로, 엔진 유형은 MySQL로 설정해 준다.

3
버전은 8.0.23 버전으로 했고, 프리 티어를 이용할 것이므로 템플릿에서 다음과 같이 프리 티어를 선택해 준다.

4
DB 인스턴스 식별자는 사용자 본인이 알아볼 수 있도록 자유롭게 써주고 admin에 대한 암호를 설정해 준다.

5
외부에서 접속할 수 있게 퍼블릭 액세스 기능에 를 선택하고 VPC 보안 그룹을 새로 생성을 선택한 뒤 본인이 식별할 수 있는 보안 그룹 이름과 가용 영역은 리전과 일치시켜준다.
데이터베이스 포트는 MySQL의 포트인 3306으로 설정하자.

6
추가 구성을 누른 뒤 초기 데이터베이스 이름만 설정해 주고 나머지는 default로 두고 하단에 있는 데이터베이스 생성 버튼을 클릭하여 DB를 생성해 준다.
DB 생성까지 10분 정도의 시간이 소요된다.

보안그룹 설정

8

DB 생성이 완료되면 DB를 클릭한 뒤 하단의 연결 & 보안 클릭 후 VPC 보안 그룹에서 생성 때 명명했던 보안 그룹으로 들어간 뒤 다음과 같은 인바운드 규칙으로 편집해 준다.

7

외부에서 접속할 수 있도록 3306 포트는 IP에 무관하게 접속할 수 있도록 인바운드 규칙을 수정한 것이다.

MySQL Workbench로 접속

9

보안 그룹에 접속하기 전 지나갔던 연결 & 보안 탭에서 앤드 포인트가 있는데 그 주소를 복사한다.(위 사진에선 가려져있다.)

MySQL Workbench를 접속한 뒤 다음과 같이 입력한다.

10

Hostname에 방금 복사했던 앤드 포인트를 복사하고 포트 번호는 3306, DB 생성 시 입력했던 비밀번호를 Store in Keychain ... 클릭 후 입력해 준다.

11

성공적으로 접속되었으며, 보안을 위해 admin 계정으로 외부에서 접속하는 것은 지양해야 하므로 다음의 DCL 명령어로 새 계정을 만들고, 외부에선 이 계정으로 접속하도록 하는 것이 좋다.

CREATE USER '계정 아이디'@'%' IDENTIFIED BY '비밀번호';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *.* TO '계정 아이디'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;