소통하는 개발자 Sean
article thumbnail

 

AWS에서 EC2 인스턴스를 사용할 때 DB도 사용해야 하는 경우도 있다.
서버를 배포하는 입장에서 DB는 거의 필수적인 요소이다.

AWS에서 DB의 역할을 어떤것이 하는지, 어떻게 활용하는지를 정리해 보았다.

 

 

RDS란?

아마존 RDS는 Amazon Relational Database Service의 약자로, AWS의 분산 관계형 데이터베이스 서비스이다.
AWS 클라우드에서 제공하는 데이터베이스로, RDS 내에서 운영 및 유지보수를 지원해준다.

AWS에서 DB를 사용할 때 RDS를 사용하는 방법도 있지만, EC2 인스턴스에 DB를 다운받아서 사용하는 방법도 있다.
비용적인 면에서는 EC2에 DB를 다운받아 쓰는 것이 더 저렴하다.
하지만 RDS를 쓰면 보다 더 빠른 배포가 가능하며, 유지보수 및 속도 측면에서는 더 우세하다.

 

JSVILL 프로젝트를 EC2 인스턴스의 DB를 사용했는데 RDS로 변경하려고 한다.

그 이유는

1. 계속 프리티어를 사용할것이기 때문에 비용을 부담을 덜 수 있었고

2. 경험적인 측면에서도 사용해보면 좋을것 같고

3. 실제로 운영하려는 서비스이기 때문에 백업 같은 기능도 중요시 되었기 때문이다.

 

RDS를 사용해보자

DB 인스턴스 식별자는 인스턴스가 생성이 되었을 때 목록에 표시될 이름이다.
생성한 후에 데이터베이스 화면으로 넘어갔을 때 확인할 수 있다.

마스터 사용자 이름은 DB에 접속할 때 필요한 username, 마스터 암호는 DB 접속에 필요한 비밀번호를 의미한다.

 

 

인스턴스의 크기를 지정할 수 있다.
db.t2.micro를 누르면 선택할 수 있는 인스턴스의 크기 리스트가 나오게 된다.

프리티어의 경우, db.t2.micro만 사용이 가능하다.

 

 

퍼블릭 엑세스는 YES로 설정해주었다. YES로 해주어야 외부(로컬 외의 다른 PC) 접속이 가능하다.

ec2 인스턴스 역시 로컬이 아닌 별도의 서버이기 때문에 서버 ec2에서 RDS에 접속하려면 퍼블릭 엑세스를 허용해주어야 한다.

 

이후에 추가설정에서 필요한게 있다면 체크를 해준다.

 

 

생성을 기다리면서 설정해줘야 하는것들이 많다!!

 


 

RDS 파라미터 그룹 생성 및 설정

아직 끝난 것이 아니다.

DB timezone을 Asia/Seoul, character set을 utf4mb4로 바꿔주는 작업을 해주어야 한다.

한국 시간 기준으로 DB 시간을 세팅해주고 utfmb4로 캐릭터셋을 설정하여 이모지까지 db에 저장될 수 있도록 해주는 것이다.

 

위에서 말한 DB timezone, character set 정보를 세팅하는 그룹이라 생각하면 된다.

그룹 이름은 자신이 알아볼 수 있게 잘 지어주면 된다.

 

time_zone Asia/Seoul로 세팅해주고,

아래 파라미터 정보들을 utf8mb4로 세팅해주자.

  • character_set_client
  • character_set_connection
  • character_set_database
  • character_set_filesystem
  • character_set_results
  • character_set_server

 

이제 다시 RDS 데이터베이스를 클릭하여 우리가 설정한 파라미터 그룹으로 적용하기 위해 데이터베이스를 수정해주자.

데이터베이스 수정을 클릭하여 밑으로 쭉 내리면 `추가 구성`에 DB 파라미터 그룹을 설정하는 부분이 있다.

거기서 우리가 설정한 파라미터 그룹으로 세팅해주고, 아래로 내려서 계속을 눌러주자.

 

즉시 적용을 눌러주어 DB 인스턴스를 수정하자.


RDS 인바운드 보안 그룹 규칙 설정

DB 생성은 무사히 끝이 났다.

이제 데이터베이스에 접속하기 위한 설정들만 하면 된다.

 

아래 설정을 하지 않으면 DB에 접속할 수 있는 IP가 한정되므로 꼭 유의하자.

VPC 보안 그룹을 클릭해주자.

여기서 우측 하단에 보이는 인바운드 규칙 편집을 클릭해주자.

이렇게 규칙을 추가해주고 저장하면 된다.

이 설정을 하지 않으면 처음 데이터베이스를 생성한 IP에서만 접속이 가능하게 된다.

어디에서든 DB에 접속할 수 있도록 0.0.0.0/0 으로 세팅해주었다.

 

IPv4만 세팅해주면 될 것 같긴 한데, 혹시나 해서 IPv6 CIDR에서도 ::/0으로 세팅해주었다.

 

이제 규칙 저장을 해주면 자동으로 해당 RDS DB에 인바운드 규칙이 적용된다.


RDS 데이터베이스 접속

이제 우리가 만든 RDS 데이터베이스에 접속해보자.

접속하기 위해선 DB 엔드포인트, 포트, RDS를 생성하면서 입력했던 마스터 계정 정보 (이름, password)가 필요하다.

엔드포인트는 여기서 볼 수 있다

datasource url이 엔드포인트와 포트로 구성되기 때문이다.

 

url은 아래와 같다.

jdbc:mysql://{엔드포인트}:{포트번호}/{데이터베이스}

접속 성공

엔드포인트, port를 설정해주고 루트계정 정보를 입력해주면 로컬 또는 EC2에서 접속이 가능하다.

 

 

글이 길어지는 관계로, RDS와 진행중인 프로젝트 연결과 HeidiSQL 연결은 다음 글에서 알아보자

 

2023.09.26 - [프로젝트 일지] - AWS RDS 스프링 부트와 HeidiSQL 연결

 

AWS RDS 스프링 부트와 HeidiSQL 연결

2023.09.26 - [프로젝트 일지] - [AWS] RDS 사용하기 (생성+설정+부트연결) [AWS] RDS 사용하기 (생성+설정+부트연결) AWS에서 EC2 인스턴스를 사용할 때 DB도 사용해야 하는 경우도 있다. 서버를 배포하는 입

sean-lets-go.tistory.com

 

profile

소통하는 개발자 Sean

@Sean-creative

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!