RDS

지금까지 EC2 인스턴스를 생성하고 이 인스턴스에서 서비스를 배포까지 하였다.

DB는 어떤 서비스든 필요할테니 이제 애플리케이션과 DB를 연동해야 한다.

스프링 서버와 동일한 EC2 인스턴스에서 인메모리로 데이터를 저장할 수도 있지만

이 경우 하나의 EC2 인스턴스가 죽을 경우 DB 데이터 또한 사라진다.

결국 여러 경우를 생각하면 DB는 따로 서버를 둬야한다는 결론이 나온다.

여기서 간단하게 생각하면 두 가지 선택지가 생긴다.

  • DB를 띄운 EC2 인스턴스를 DB 서버로 이용한다.
  • AWS RDS를 이용한다.

두 가지를 비교하자면 비용적인 측면에서는 EC2 인스턴스가 더 저렴하다.

반면 AWS RDS에서는 기본적인 설정은 AWS에서 마친 상태의 DB 서버를 제공해주므로 직접 설정해야하는 DB 설정이 많이 줄어든다.

매니지드(RDS) vs 언매니지드(EC2) 라고 할 수 있다.

프리티어로 RDS도 제공하므로 우선 RDS를 사용하고 추후 DB 설정 공부를 하고 EC2로 직접 DB 서버를 띄워보기로 했다.


1. RDS 인스턴스 생성

1-1. RDS 인스턴스 생성 페이지로 이동

1-2. DB 종류 선택

원하는 종류의 DB를 선택하면 된다.

본인은 써본게 이것 뿐이라 MySQL 8 버전을 선택하겠다.

1-3. 템플릿 선택

프리 티어를 선택하면 가용성 및 내구성은 설정할 수 없다.

1-4. DB 정보 설정

DB 이름, 마스터 이름, 비밀번호를 설정한다.

추후 애플리케이션이나 DBeaver에서 DB에 접근할 때 여기서 입력한 정보로 접속한다.

1-5. 인스턴스 구성 및 스토리지 설정

프리티어를 사용하므로 선택지는 거의 없다.

과금 가능성이 있는 설정만 주의하자.

1-6. 보안 그룹 설정 

EC2 컴퓨팅 리소스에 연결 안 함, 퍼블릭 액세스

로컬에서 DBeaver나 인텔리제이 등에서 MySQL로 DB를 직접 확인해보기 위해 퍼블릭 액세스를 열어두려 한다.

따라서 EC2 컴퓨팅 리소스에 연결 안 함, 퍼블릭 액세스를 허용하겠다.

 

VPC 보안 그룹

해당 보안 그룹을 통해 들어온 요청만 3306 포트로 받아주겠다는 의미다.

기존 항목을 선택해 내가 만든 EC2 인스턴스의 보안 그룹(여기서는 launch-wizard-1)을 선택하면 EC2 인스턴스의 요청을 받는다.

로컬에서도 DB에 접근하기 위해서는 default 보안 그룹을 추가하고 이 보안 그룹을 조금 수정할 것이다.

1-7. 추가 구성

그림에서 생략된 부분은 기본 설정을 따라가면 된다고 생각해서 굳이 추가하지 않았다.


2. RDS 인스턴스 생성 확인

위와 같이 설정하고 데이터베이스 생성을 하면 아래처럼 생성된 RDS 인스턴스를 확인할 수 있다.

인스턴스 생성까지 시간이 좀 걸린다.

RDS 인스턴스를 다시 만들어서 위 설정과는 DB 식별자가 조금 다를테지만 신경쓰지 않아도 된다.

 

참고 자료

 

AWS 2편: RDS 생성 후 EC2 와 연동

Overview 지난 포스팅에서는 AWS 에서 EC2 인스턴스를 생성하고 Spring Boot 서버를 띄워 외부에서 요청하는 것까지 해봤습니다. 이번에는 데이터베이스 연동을 위해 RDS 인스턴스를 생성하고 이전에 만

bcp0109.tistory.com

 

+ Recent posts