[AWS] 서버 환경 구축 EC2, S3, Aurora Mysql 설정 - 3 (Aurora Mysql)

 

서버 환경 구축 순서

 

  1. [AWS] 서버 환경 구축 EC2, S3, Aurora Mysql 설정 - 1 (EC2)
  2. [AWS] 서버 환경 구축 EC2, S3, Aurora Mysql 설정 - 2 (S3)
  3. 현재글

 

 

RDS란

보통은 우리가 DB를 사용할 때는 서버에 직접 설치된 DB를 사용하는데,

RDS는 이미 설치된 DB서버를 제공해 주는 역할을 한다.

다만, 그 서버에 접속할 수는 없고 DB 자체만 서비스로 제공하게 받게 된다.

장점은 서버에 DB를 직접 설치할 경우 둘 다 관리해야 되는

반면 RDS를 사용하게 되면 DB만 관리하면 되기 때문에 관리적인 측면에서 공수를 아낄 수 있다.

하지만 서버 설정을 바꿔주면서 DB를 좀 더 세세하게 다루고 싶을 때는 RDS를 사용하는 게 단점이 될 수 있다. 

 

 

Aurora에 대해서

AWS에서는 mysql과 postgre를 이미 제공하고 있는데, 여기에 추가로 Aurora라고 하는 DB를 제공한다.

이는 mysql과 흡사한데 내부적인 엔진 개선을 통해 mysql보다 5배 빠르고, postgre보다는 20배 빠르다고 한다.

(대신 가격이 살짝 비쌉니다.)

 

 

시작에 앞서

RDS를 생성하는 이 부분은 내가 선택한 RDS생성 옵션을 뒤에 적을 내용의 흐름이 끊기지 않게만 간단히 적고

필요한 부분만 캡처와 함께 설명을 덧붙이고 넘어가려 한다.
모두가 생성하고 싶은 유형은 각기 다를 거라 생각해 불 필요한 부분인 것 같다.

 

또, RDS 생성 전 몇 가지 사전에 등록을 해줘야 한다.

아래 내용을 먼저 생성 한 뒤 RDS를 생성해보자.

  1. DB 서브넷 그룹 생성
  2. 보안 그룹
  3. 파라미터 그룹 2개 생성(DB 클러스터, DB)

 

DB 서브넷 그룹 생성

 

RDS 대시보드 > 왼쪽 메뉴 서브넷 그룹 > 'DB 서브넷 그룹 생성' 클릭

 

 

가용 영역: 위의 Private Subnet이 속한 가용영역을 선택한다.

서브넷: RDS를 위치시킬 곳을 정하면 된다. 단, private Subnet으로 설정해 주자.

나의 경우 미리 사전에 생성해 둔,
Private Subnet(my-private-db-subnet-2a, my-private-db-subnet-2b) 2개를 선택해 줬다.
서브넷을 선택할 땐 이름이 안 보이니 서브넷을 만들 때 지정해 둔 CIDR값을 보고 판별하면 편하다.

 

 

보안 그룹 생성

 

EC2 대시보드 > 보안그룹 > '보안 그룹 생성' 클릭

 

 

인바운드 규칙은 Aurora DB에 접속 허용할 IP를 지정해 주면 된다.

나의 경우 외부에서는 web-server를 통해, 내부에서는 was-server가 db를 이용할 것이기 때문에

인스턴스 2개의 private ip로 인바운드 규칙을 생성해 주었다.

 

 

DB 클러스터 파라미터 그룹 생성

 

RDS 대시보드 > 왼쪽 메뉴 파라미터 그룹 > '파라미터 그룹 생성' 클릭

 

생성 한 뒤 상세 페이지에 들어가 우측 상단 '편집' 클릭

 

하위 총 3개의 카테고리를 수정해야 한다.

  1. character => utf8mb4
  2. time_zone => Asia/Seoul
  3. collation => utf8mb4_general_ci
  • character 변경

 

  • time_zone 변경

 

  • collation 변경

 

위 모두 수정 후 각각 '변경 사항 저장' 클릭

 

 

DB 파라미터 그룹 생성

 

RDS 대시보드 > 왼쪽 메뉴 파라미터 그룹 > '파라미터 그룹 생성' 클릭

 

DB 파라미터 그룹은 따로 설정해줄 것이 없다.

 

 

RDS 생성

 

RDS 대시보드 > '데이터베이스 생성' 클릭

 

데이터베이스 생성 방식 선택: 표준 생성
엔진 유형: Aurora MySQL
엔진 버전: Aurora MySQL 3.05.2 (compatible with MySQL 8.0.32)
템플릿: 개발/테스트
설정: (아래 캡처 참조)
클러스터 스토리지: Aurora Standard
인스턴스 구성: 버스터블 클래스 (db.t4g.medium)
가용성 및 내구성: Aurora 복제본 생성하지 않음
연결: (아래 캡처 참조)
모니터링: off
추가 구성: (아래 캡처 참조)
(나머지는 기본값)

 

설정

 

DB 클러스터 식별자: my-db-cluster-1

자격 증명 관리: 자체관리

마스터 사용자 이름: admin

마스터 암호: 원하는 암호로 설정

 

연결

 

미리 생성해 둔 VPC, 서브넷 그룹, VPC 보안 그룹을 선택한다.

가용 영역은 RDS를 생성하려 미리 만들어둔 프라이빗 서브넷이 위치한 AZ를 선택한다.

 

추가 구성

초기 데이터베이스 이름은 입력해 두면 db 인스턴스가 생길 때 sys같은 스키마를 생성해준다.

DB 클러스터 파라미터 그룹, DB 파라미터 그룹은 위에서 미리 생성해 둔 것을 사용하자.

그 외는 전부 기본값으로 둔다.

 

'데이터베이스 생성' 클릭!

 

생성이 완료되었으면 이제 연결 테스트를 해보자!

 

 

WAS 서버와 연결 확인

 

was에 접속해서 아래 명령어를 실행해 보자.

curl -v <rds 엔드포인트>:3306

위처럼 Connected 되었다면 연결 성공 된 것이다.

 

외부(local)에서의 연결 확인

 

DBeaver 기준

 

 

Main탭에서 Server Host는 RDS 엔트포인트를 입력하고

username, password는 rds 생성할 때 기입한 것을 똑같이 입력하면 된다.

 

SSH탭에서 Host/IP는 web-server의 퍼블릭 IP를 입력하고

User Name과 password는 web-server의 사용자 정보를 넣어주자

ec2-user는 EC2 초기 생성 당시 디폴트 사용자라 있겠지만

비밀번호는 추가로 설정해줘야 한다.

 

이로서 서버 환경 구축은 모두 완료되었다.

 

 

이제 다음글에서 Nginx, Tomcat, Java를 EC2에 설치해보고 연동해 보자.

[AWS] 서버 구축 EC2(WEB, WAS) - Nginx, Tomcat, Java 설치 및 연동

 

 


 

참고 사이트

https://cholol.tistory.com/538