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