[Server/AWS] AWS를 이용한 Spring Boot 서버 배포 - RDS 생성 및 연결

HAEN·2023년 3월 5일
0

1. 데이터베이스 생성

아마존 홈페이지에서 RDS 메뉴에 접속한 후 '데이터베이스 생성' 선택

데이터베이스 생성방식은 표준 생성으로 설정하고, 엔진은 MySQL을 선택하겠다
버전은 기본으로 선택된 버전으로 진행한다
기회가 된다면 PostgreSQL도 공부해야겠다

템플릿은 프리 티어를 선택한다
왜냐하면 프리 티어이니까...

이어서 DB 인스턴스 이름, 마스터 사용자 ID, 마스터 암호를 입력해준다
이를 통해 DB에 접근하니 기억해놓도록 하자

인스턴스 구성은 건들지 않고, 스토리지는 프리 티어 용량을 잘 보고 용도에 맞게 설정해준다

위의 사진과 같이 설정해준다
이후 추가 구성에서 초기 데이터베이스 이름만 설정해주고 '데이터베이스 생성' 버튼을 누른다

잠시 기다리면 사용 가능 상태가 되면서 데이터베이스 생성이 완료된다


2. 파라미터 설정

RDS 생성 후 필수적인 설정을 해보자

(1) 파라미터 그룹 생성

RDS 메뉴 -> 파라미터 그룹 -> 파라미터 그룹 생성
만든 RDS DB 버전과 맞춰주어야 하므로 mysql8.0으로 생성하겠다

(2) 파라미터 그룹 편집

파라미터 그룹을 생성했으면 '파라미터 그룹 작업'에서 '편집'으로 들어간다
해야할 설정은 두 가지이다

  • timezone 설정
  • character set 설정

우선 timezone 설정을 변경해보겠다

파라미터 검색창에 time_zone을 검색하고 Asia/Seoul로 바꿔준다

다음은 character를 검색하여 아래 6개 항목들의 인코딩 방식을 utf8mb4로 변경한다 utf8과 utf8mb4는 이모지 저장 가능 여부의 차이라고 한다 utf8은 이모지를 저장할 수 없지만, utf8mb4는 이모지를 저장할 수 있다

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

max_connections에서 연결 가능한 DB 수를 설정할 수 있으나, 인스턴스 사양에 따라 자동으로 정해진다
따라서 필요하면 바꿀 수 있다
여기까지 설정이 끝났으면 오른 쪽 위의 '변경 사항 저장'을 누른다

파라미터의 자세한 설정을 원하면 다음 링크를 참고하도록 하자
Amazon RDS for MySQL의 파라미터 구성 모범 사례

(3) 데이터베이스와 연결

생성한 파라미터 그룹을 데이터베이스에 연결해야한다
RDS 메뉴 -> 데이터베이스 -> 데이터베이스 선택 -> 수정

밑의 '추가 구성' 설정에서 DB 파라미터 그룹을 생성한 파라미터 그룹으로 변경해주고 '계속'을 누른다

이미 파라미터 그룹을 변경해놓았기 때문에 수정 사항이 뜨지 않지만, 요약 확인 후 제대로 변경 되었다면 '즉시 적용'을 선택하고 'DB 인스턴스 수정'을 누른다
'예약된 다음 유지 관리 기간에 적용'은 운영 중인 서비스의 사항을 수정할 때 필요한 옵션이다

이후 데이터베이스 재부팅을 하면 파라미터 그룹이 잘 적용된 것을 확인할 수 있다


3. EC2에서 RDS 접속하기

(1) RDS 보안 그룹 수정

EC2에서 RDS로 접근하기 위해서 RDS의 보안 그룹을 설정해야한다

RDS의 세부정보 페이지에서 '연결&보안'을 선택한다

'보안' 항목에서 'VPC 보안 그룹'의 default 보안 그룹을 선택하면 모든 보안 그룹 목록을 볼 수 있는데, 여기서 생성해놓은 EC2의 보안 그룹 ID를 복사하여 RDS 보안 그룹의 인바운드로 추가하면 된다

다음과 같이 추가한다

(2) EC2에서 RDS 접속

터미널에서 EC2 서버를 열고, MySQL이 설치되어있지 않다면 아래 명령어로 MySQL을 설치한다

sudo yum install mysql

다음으로 명령어를 아래 명령어를 통해 MySQL에 접속한다

mysql -u '마스터 사용자 ID' -p -h 'RDS 인스턴스 엔드포인트'

MySQL WorkBench와도 연결할 수 있으나 이 포스팅에서는 다루지 않겠다



profile
핸수

0개의 댓글