AWS RDS로 데이터베이스 만들기
이 포스팅은 "스프링 부트와 AWS로 혼자 구현하는 웹 서비스" 책을 보고 정리한 내용입니다. 이번 포스팅에서는 AWS에서 제공하는 클라우드 기반 관계형 데이터베이스 서비스인 RDS를 구축하고 설정해보겠습니다.
RDS란?
- AWS에서 제공하는 클라우드 기반의 관계형 데이터베이스 서비스이다.
- 서버 컴퓨터에 직접 MySQL이나 MariaDB같은 관계형 데이터베이스를 설치하지않고 데이터베이스를 사용할 수 있다.
- 조정 가능한 용량을 지원하여 추가 비용을 내고 확장시킬 수 있다.
1. RDS 인스턴스 생성
- AWS 사이트 상단에 있는 검색창에서 RDS를 검색한다.
- RDS 대시보드에서 데이터베이스 생성을 선택한다.
- 여러 가지 데이터베이스 엔진이 있다. 이 중에 프리 티어가 제공되는 MariaDB를 선택한다. MySQL기반이므로 MySQL과 유사하게 사용할 수 있다.
- 프리 티어를 선택하고 DB 인스턴스 식별자와 마스터 사용자 정보를 등록한다. 마스터 사용자 정보로 데이터베이스에 접근한다.
- 스토리지 용량을 설정한다. 프리 티어에서는 20GiB까지 이용할 수 있다.
- 퍼블릭 액세스를 "예"로 선택한다. 추후 보안 그룹에서 지정된 IP만 접근하도록 설정한다. "아니요"로 선택하면 EC2에서만 데이터베이스에 접근가능하므로 개인PC에서 데이터베이스에 접근이 불가능하다. 보안 그룹을 새로 생성하고 이름을 입력해준다.
- 초기 데이터베이스 이름을 설정한다.
- 프리티어 조건을 확인하고 데이터베이스 생성을 선택한다.
2. RDS 설정
- RDS를 생성하였을 때 필수로 설정해야하는 타임존, Character Set, Max Connection을 설정한다.
- 왼쪽 메뉴에서 파라미터 그룹을 선택한다.
- 파라미터 그룹 생성을 선택한다.
- 이전에 생성한 MariaDB와 같은 버전을 선택하고, 파라미터 그룹 이름을 입력하여 파라미터 그룹을 생성한다.
- 생성된 파라미터 그룹을 확인하고 해당 그룹을 클릭한다.
- 파라미터 편집을 선택한다.
- 파라미터 검색창에 time_zone을 검색한다. time_zone 파라미터의 값을 Asia/Seoul로 선택한다.
- 파라미터 검색창에 char을 검색한다. 아래 그림에 보이는 6개의 파라미터들의 값을 utf8mb4로 선택한다.
- 파라미터 검색창에 collation을 검색한다. 아래 그림에 보이는 2개의 파라미터들(collation_connection, collation_server)의 값을 utf8mb4_general_ci로 선택한다. utf8mb4과 utf8의 차이는 이모지 저장 가능 여부이다. utf8mb4는 이모지를 저장할 수 있다.
- 파라미터 검색창에 lower_case_table_names를 검색한다. 해당 파라미터의 값을 1로 설정한다. 해당 값이 1일 경우 테이블명의 대소문자를 구분하지 않는다.
- 파라미터 검색창에 max_connection을 검색한다. max_connections는 인스턴스 사양에 따라 자동으로 정해진다. 프리티어에서는 약 60개의 커넥션만 가능하다고 한다. 책에서는 넉넉하게 150으로 지정하였으나 그냥 기본 값으로 놔두었다. 변경 사항 저장을 선택하여 파라미터 변경 내용을 저장한다.
- 생성된 파라미터 그룹을 데이터베이스에 연결한다. 생성한 데이터베이스 인스턴스를 선택하고 수정을 선택한다.
- 추가 구성의 데이터베이스 옵션의 DB 파라미터 그룹을 방금전 생성한 파라미터 그룹으로 변경한다.
- 저장을 진행하면 수정 사항을 볼 수 있다. 수정 사항 적용 시간을 즉시 적용으로 선택한다. 아직은 데이터베이스를 사용한 서비스가 운영중이 아니기 때문에 즉시 적용한다. 추후에 서비스가 운영중이라면 새벽 시간대에 진행한다.
- 데이터베이스 재부팅을 진행한다.
3. 로컬 PC에서 RDS 접속
- 로컬 PC 및 EC2에서 RDS에 접근하기 위해 RDS의 보안 그룹에 IP를 등록해야한다.
- 데이터베이스 세부 정보에서 VPC 보안 그룹을 선택한다.
- 보안 그룹 리스트에서 이전에 생성한 EC2 인스턴스의 보안 그룹 ID를 미리 복사해둔다. 그리고 데이터베이스의 보안 그룹을 선택하고 인바운드 규칙 편집을 선택한다.
- 인바운드 규칙에서 내IP와 복사한 EC2 인스턴스의 보안 그룹 ID를 등록한다.
- 로컬 PC에서 데이터베이스에 접근하기 위한 클라이언트 프로그램으로 MySQL Workbench를 사용한다. 해당 프로그램을 설치한다.
- 상단 메뉴의 Database -> Manage Connections를 선택하여 데이터 베이스 커넥션 정보를 입력한다. Hostname에는 RDS의 엔드포인트를 입력한다. 엔드포인트는 RDS 상세 정보 페이지에 나와있다. Username, Password에는 RDS 생성시 설정한 마스터 사용자 이름과 암호를 입력한다.
- 데이터베이스에 접속하면 아래와 같이 RDS 생성시에 입력한 "초기 데이터베이스 이름" 으로 데이터베이스가 생성되어있다.
- 콘솔창에서 SQL을 입력하고 Command + Enter를 입력하여 쿼리를 실행한다. 아래와 같이 데이터베이스를 선택한다.
- 데이터베이스가 선택된 상태에서 현재의 caracter_set, collation 설정을 확인한다. 일부 항목이 제대로 설정되어 있지 않으므로 직접 변경한다.
- 아래와 같이 쿼리를 실행하고 다시 확인한다.
- 아래와 같이 타임존 설정도 확인한다.
- 테이블명 대소문자 구분 설정도 확인한다.
4. EC2에서 RDS 접속
- 우선 EC2에 SSH 접속을 진행한다.
ssh todo-app-backend
- MySQL에 접근하기 위해 MySQL CLI를 설치한다.
sudo yum install mysql
- 아래 명령어를 통해 RDS에 접속한다.
mysql -u 계정 -p -h Host주소
- 아래와 같이 접속이 되는 것을 확인한다.
지금까지 AWS RDS를 생성하고 기본적인 설정을 하였다. 다음 포스팅에서는 스프링 부트 프로젝트를 EC2에 배포하고 RDS에 연동하도록 진행한다.
Author And Source
이 문제에 관하여(AWS RDS로 데이터베이스 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@nefertiri/AWS-RDS로-데이터베이스-만들기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)