Github Action을 활용한 배포 자동화 CI/CD - (2) RDS 생성하기

유아 Yooa·2023년 1월 7일
0

CI/CD

목록 보기
2/9
post-thumbnail
post-custom-banner

Overview

지난 글에서는 AWS EC2 인스턴스를 생성하는 것까지 해봤으니 이제 데이터베이스 연동을 위해 RDS 인스턴스를 생성해보자


1. RDS 인스턴스 생성

RDS란 AWS에서 관계형 데이터베이스를 더 쉽게 설치, 운영 및 확장할 수 있는 웹서비스이다.

  • Amazon Aurora(MySQL 호환), Amazon Aurora(PostgreSQL 호환), MySQL, MariaDB, PostgreSQL, Oracle 등 7가지 엔진을 제공한다.
  • 인프라 프로비저닝, 데이터베이스 설정, 백업, 장애 탐지, 복구 등의 작업을 자동화하여 비용과 시간을 감소시키고, 효율적인 데이터베이스 관리가 가능하다.

1-1. RDS 메뉴로 이동하기

EC2와 마찬가지로 즐겨찾기를 해두면 편리하다.

1-2. 데이터베이스 생성

생성한 데이터베이스가 없다면 대쉬보드에서 바로 생성 버튼으로 접근 가능하다. 좌측 데이터베이스 메뉴를 클릭해 데이터베이스 생성 버튼으로도 접근 가능하다.

✅ 데이터베이스 엔진 옵션 선택하기


사용할 데이터베이스 엔진을 선택한다. 필자는 MySQL을 선택했다.

템플릿은 프리 티어를 선택한다. 자동으로 가용성 및 내구성 필드가 비활성화된다.

✅ 데이터베이스 설정 입력하기


데이터베이스 이름, 마스터 이름, 마스터 암호를 입력한다.
데이터베이스에 접근할 때 사용할 정보이므로 따로 메모를 해두었다.

✅ 인스턴스 구성/스토리지 설정하기


프리 티어는 대부분 기본 설정을 사용하면 된다.

스토리지 자동 조정 활성화는 체크 해제해놔야 한다. 체크를 해제하지 않으면 임계값이 초과되었을 때 자동으로 스토리지가 늘어나서 과금될 가능성이 있다.

✅ VPC 보안 그룹 설정하기

EC2랑 연결하는 옵션을 선택해서 생성하면 외부접속이 불가능하다. 그렇기에 연결을 안하는 옵션을 선택해줬다.

서브넷 그룹을 새로 생성해줄 것이기 때문에 새 VPC 생성을 선택해준다.

퍼블릭 액세는 로 해주어야 외부에서 접속할 수 있다. 보안 그룹도 새로 생성해준다.

✅ 추가 설정


데이터베이스 이름을 설정하고, 자동 백업을 비활성화한다.

프리티어 요금에 대한 안내를 읽고, 데이터베이스 생성을 눌러 생성을 완료한다.

RDS > 데이터베이스 에서 성공적으로 생성된 것을 확인할 수 있다.

사용 가능 상태까지는 시간이 조금 걸린다.


2. 보안그룹 설정

RDS 인스턴스를 생성할 때 보안그룹을 생성해주었다. 데이터베이스는 서버에서 접근 가능해야 하기 때문에 보안 그룹 설정이 추가로 필요하다.

이때 서버는 탄력적 IP를 뜻한다.

2-1. 보안 그룹 확인하기

RDS 인스턴스 정보에서 보안 그룹 규칙을 확인할 수 있다. 기본 설정은 로컬 IP만 인바운드 규칙에 추가되어 있다.
아웃바운드는 모든 트래픽에 대해 열려있다.

RDS 보안 그룹은 EC2 보안 그룹이랑 별도로 관리하지 않고 같은 곳에서 관리한다. 보안 그룹을 편집하기 위해서는 EC2 대시보드로 이동하거나 저 보안 그룹 이름을 클릭해 페이지를 열어야 한다.

2-2. 보안 그룹 편집하기


ec2 인스턴스의 탄력적 IP를 추가해준다.


3. RDS 접속 테스트

이제 RDS 인스턴스 생성 및 보안 그룹 설정이 완료되었으니 테스트를 해보자.

3-1. 엔드포인트와 포트 확인하기


RDS 인스턴스 정보에서 엔드포인트와 포트 번호를 확인하자. 해당 정보와 마스터 이름, 암호를 이용해 RDS에 접속할 수 있다.

3-2. datagrip으로 접속하기

데이터베이스 GUI 툴은 많은데 필자는 그 중 datagrip을 사용하고 있다. 접속을 해보자.

생성 > 데이터 소스 > MySQL을 클릭한다.

  • 호스트: RDS 엔드포인트
  • 사용자: RDS 생성 시 입력했던 정보
  • 비밀번호: RDS 생성 시 입력했던 정보
  • 데이터베이스 : RDS 생성 시 입력했던 초기 데이터베이스명


성공적으로 연결했다.

4. RDS 파라미터 그룹 설정하기

이제 추가적으로 파라미터 그룹 설정을 해볼 것이다.

초기 AWS RDS를 셋팅할 때 파라미터 그룹을 하나 생성하여 character set과 collation 그리고 Amazon RDS MySQL DB 인스턴스의 함수, 절차 및 트리거를 활성화 하기 위한 log_bin_trust_function_creators 설정이 필요하다.

4-1. 파라미터 그룹 생성하기

RDS 좌측 메뉴의 파라미터 그룹을 클릭해 생성으로 접근한다.

파라미터 그룹 패밀리는 RDS에서 생성한 DB 인스턴스와 맞게 선택해주고 이름과 설명을 입력해 생성한다.

생성한 파라미터 그룹을 클릭해 편집하자.

이제부터는 파라미터 편집 내의 검색창을 활용해야 쉽게 찾을 수 있다.

설정에서 허용된 값 필터링을 빼주면 더 쉽게 확인할 수 있다.

✅ Time Zone

time_zone 검색한 후에 Asia/Seoul로 변경한다.

✅ Character Set

character_set 검색한 후에 나오는 값을 모두 utf8mb4로 변경한다.

utf8mb4는 이모지까지 지원해주는 utf8이다.

collation 검색한 후에 나오는 값을 utf8mb4_general_ci로 변경해준다.

✅ Max Connection

max_connections 검색한 후에 값을 150으로 수정해준다.

✅ 최종 변경사항 확인하기

4-2. RDS 파라미터 그룹 변경하기


RDS 인스턴스 수정을 통해 추가 구성에서 DB 파라미터 그룹을 변경한다.

즉시 적용을 선택해 수정한다.


참고
https://bcp0109.tistory.com/357
https://velog.io/@kyj311/AWS-RDS-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0

profile
기록이 주는 즐거움
post-custom-banner

3개의 댓글

comment-user-thumbnail
2023년 3월 2일

안녕하세요. 작성해주신 포스팅 보고 편하게 서버를 배포해보고 있습니다! 🫡
RDS 생성시 VPC 설정에 대해 궁금한게 있는데요.
'EC2랑 연결하는 옵션을 선택해서 생성하면 외부접속이 불가능하다. 그렇기에 연결을 안하는 옵션을 선택해줬다.'
이 문장을 보면 외부 접속을 불가능하게 RDS를 설정하고자 하시는 거 같은데 왜 퍼블릭 액세스를 '아니오'가 아닌 '예'로 설정하는 건가요??

2개의 답글