[배포] AWS RDS를 생성하고 EC2와 연결하기

이진규·2023년 3월 29일
1

이 글에서는 AWS의 RDS를 생성하고 연결하는 과정을 작성할려고 합니다.

0. RDS 사용 이유

0-1 AWS EC2 프리티어 용량이 작음

AWS EC2 프리티어는 ec2를 최대 1개, 그마저도 용량은 RAM 1GB까지만 지원해줍니다.

따라서 서버 배포용 ec2 외에 별도로 DB 인스턴스를 생성할 수가 없고, 스토리지 용량은 30Gib 까지 지원해준다 하더라도, mysql이 기본적으로 차지하는 RAM 용량이 좀 크기 때문에 RDS를 사용할려고 합니다.

0-2 DB 관리가 자동

RDS 데이터베이스를 생성할 때 백업, 로그 관리, 유지 관리 및 버전 업그레이드 사용 유무를 설정할 수 있습니다.

0-3 현업에서 많이 사용

많은 기업들이 RDS를 이용하는데 저는 RDS 경험이 없기 때문에 학습용으로 RDS 경험을 쌓기 위해서 사용합니다.

1. RDS 생성

1-1 RDS 이동

검색창에 RDS를 입력해서 RDS 서비스로 접근

1-2 RDS 생성 버튼 클릭

1-3 RDS 세팅

저는 프로젝트에서 MySQL를 사용하였기 때문에 MySQL를 선택하였습니다.

템플릿은 프리 티어, 아래 설정에서는 DB 인스턴스 식별자와 자격 증명 설정을 설정합니다. 이때 설정하는 사용자 정보로 실제 DB에 접근하니 잘 기억해두거나 메모하는게 좋습니다.

DB 인스턴스 클래스는 프리티어에서 사용할 수 있는 항목만 활성화 되므로 그 중에서 선택 하시면 됩니다. 스토리지 자동 조정은 과금 방지를 위해 체크 해제 하였습니다.

VPC(Virtual Private Cloud)는 DB 인스턴스에 대한 가상 네트워킹 환경으로 서브넷 그룹까지 모두 기본적으로 되어있는 설정을 유지합니다.

퍼블릭 엑세스는 '아니요'를 설정하면 VPC 내부에서만 DB 인스턴스에 접근이 가능합니다. 본인의 EC2에서만 연결해서 사용한다면 '아니요'를 선택해도 되지만, 툴을 통해 접근하거나 로컬의 개발환경 등에서 사용하려면 '예'를 선택해야합니다.

VPC 보안그룹에는 제가 이미 생성해놓은 DB 보안그룹을 추가해주었습니다.

DB에 관련된 보안그룹이 없는 경우 새로 생성을 클릭하셔서 다음과 같이 설정하시면 됩니다.

  • DB 보안그룹 내용

    이 설정을 하지 않으면 처음 데이터베이스를 생성한 IP에서만 접속이 가능하게 됩니다. 어디에서든 DB에 접속할 수 있도록 0.0.0.0/0 으로 세팅

마지막으로 데이터베이스 포트는 MySQL의 기본 포트은 3306으로 기본 설정 되어있습니다.

추가구성에서 초기 데이터베이스 이름을 설정해줍니다. 백업은 자동백업을 활성화 시켰고, 보존 기간은 차지할 용량을 고려하여 7일로 설정했습니다.

모니터링과 로그 보내기, 유지관리는 설정을 꺼주었고, 삭제 방지는 혹시 모를 경우를 대비하여 활성화 시켜주었습니다.

마지막으로 다시한번 프리티어의 조건을 확인한 뒤 우측 하단에 데이터베이스 생성 버튼을 클릭합니다.

버튼을 누르고 몇 분 기다리다 보면 데이터베이스가 생성 됩니다.

2. 파라미터 그룹 설정

파라미터 그룹은 DB timezone을 Asia/Seoul, character set을 utf4mb4로 바꿔주는 설정입니다.
한국 시간 기준으로 DB 시간을 세팅해주고 utfmb4로 캐릭터셋을 설정하여 이모지까지 db에 저장될 수 있도록 해주는 것입니다.

2-1 파라미터 그룹 생성

화면 좌측 메뉴에서 파라미터 그룹으로 들어와서 우측에 파라미터 그룹 생성 버튼을 클릭합니다.

파라미터 그룹 패밀리는 방금전에 생성했던 MySQL 버전과 같은 버전으로 맞춰줍니다.
그룹 이름과 설명은 본인이 식별하기 쉽게 적어준 뒤 우측 하단에 생성 버튼을 클릭해 새로운 파라미터 그룹을 생성합니다.

2-2 파라미터 그룹 설정

다시 돌아온 파라미터 그룹 화면에서 방금 생성한 파라미터 그룹을 선택하고 우측 상단에 파라미터 그룹 작업에서 편집을 선택합니다.

검색창에 time_zone을 검색한 뒤 값을 Asia/Seoul로 변경합니다.

그리고 character을 검색한 뒤 6개 항목에 대해 값을 utf8mb4로 변경합니다.

character_set_client
character_set_connection
character_set_database
character_set_filesystem
character_set_results
character_set_server

그 다음 collation을 검색한 뒤 아래 항목에 대해 값을 utf8mb4_general_ci로 변경하고 역시 재설정 합니다.

collation_connection
collation_server
utf8mb4는 utf8에서 😀나 😍와 같은 이모지 저장이 가능해진 Character Set입니다.

모든 설정을 완료 했으면 우측 상단에 변경사항저장을 클릭합니다.

2-3 DB에 파라미터 그룹 연결하기

다시 데이터베이스 메뉴로 돌아와서 DB를 선택하고 우측 상단에 수정 버튼을 선택합니다.

수정 페이지에서 추가 구성 탭의 DB 파라미터 그룹을 방금 생성하고 수정한 새 파라미터 그룹으로 변경해준 뒤 페이지 하단에 계속 버튼을 선택하여 다음 화면으로 넘어갑니다.

해당 수정 사항을 언제 적용할지 선택할 수 있는데, 지금 갓 만든 데이터베이스이고 운영중인 서비스와 연결되어있지 않으므로 즉시 적용을 선택했습니다. 만약 운영중인 서비스에 연결된 DB를 수정할 경우에는 새벽시간에 진행하는 것이 좋을 것 입니다.

3. RDS 데이터베이스 접속

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

3-1 로컬 또는 EC2에서 접속 확인

저는 로컬에서 다음과 같이 정보를 입력하여 접속에 성공함을 확인하였고, EC2 서버에서도 정상 동작함을 확인했습니다.

참고자료

RDS 생성 관련 자료
RDS 생성 관련 자료2

profile
항상 궁금해하고 공부하고 기록하자.

0개의 댓글