IT

[AWS RDS] AWS 프리티어 RDS MariaDB 구성하기

코딩하는 너구리 2023. 9. 6. 23:39
반응형

 
AWS RDS를 사용할 일이 간혹 있었지만 매번 생성할 때마다 진행 순서대로 요약된 글을 찾으며 시간 보내는게 아까워서 기록해두려고 한다.
 

AWS RDS 프리티어를 사용하는 이유?

- 토이프로젝트 혹은 개인 프로젝트를 진행하면서 DB 서버를 구성할 때, 수익화가 되지 않은 서비스를 유지하기 위해 서버비용을 지불하는것은 돈이 아깝다고 생각한다. 대부분의 개인 프로젝트의 경우 1년 이내에 서비스가 종료되기 때문에 무료에 가까운 비용으로 1,000명 이하가 사용하는 서비스의 DB 서버를 사용한다면 이보다 좋은 선택지는 없다고 생각한다.
 
최근 RDS를 이용해서 구성한 DB서버 유지비용은 월 약 3,000원 정도였다.
아직까지 이것보다 좋은 대안은 발견하지 못했다.
 

RDS단일 AZ db.t2.micro0프리티어
RDSDB 스토리지 20GB0프리티어
RDSDB 백업용 스토리지 20GB0프리티어
기타네트워크 통신 비용 등2,000원1년간 프리티어 적용

 

RDS 프리티어 지원내용

 
이제 차근차근 DB를 구성해보자. 2023년 9월 기준으로 AWS RDS를 생성하는 방법을 정리한 글입니다.
 

RDS 선택

 

데이터베이스 생성 버튼

 

MariaDB 선택

 
엔진은 MariaDB를 선택해줍니다.

MariaDB를 선택한 이유?

- 쿼리 문법이 동일하게 사용은 동일하지만 속도 및 성능, 안정성에서 더 최적화되었다고 합니다. AWS에 기재된 내용이니 자세한 내용은 아래 링크를 참고하길 바랍니다.
https://aws.amazon.com/ko/compare/the-difference-between-mariadb-vs-mysql/

MariaDB와 MySQL 비교 - 오픈 소스 관계형 데이터베이스 간의 차이점 - AWS

MySQL과 MariaDB는 모두 오픈 소스 데이터베이스 기술입니다. 이들 데이터베이스를 사용하여 행과 열이 있는 표 형식으로 데이터를 저장할 수 있습니다. MySQL은 가장 널리 채택된 오픈 소스 데이터

aws.amazon.com

MySQL vs MariaDB 비교

 

프리티어 설정

프리티어를 선택해줍니다. AWS 프리티어 서비스는 정말 최고의 서비스입니다. 👍👍
 

DB 기본계정 정보 설정
인스턴스 선택
스토리지 설정

스토리지는 20GB까지는 무료이므로 20GB로 선택해줍니다. 기본 최대 스토리지 임계값이 1000으로 되어있지만, 불필요 과금을 막기위해 저는 100GB로 설정했습니다. 개인프로젝트의 경우 스토리지 자동조절 기능도 보통 꺼두지만 저는 서비스 유연성을 위해 켜두었습니다
 

연결 설정

 
EC2와 같이 사용한다면 'EC2 컴퓨팅 리소스에 연결'을 선택하시면 됩니다.
저는 RDS만을 구성하는 것이므로 연결 안함을 선택했습니다.
 

퍼블릭 액세스, 보안그룹 생성


퍼블릭 액세스는 '아니요'를 설정하면 내부에서만 DB 접근이 가능합니다. 저는 외부 API 서버에서 사용할 예정이므로 '예'를 선택했습니다. 다양한 DB 툴을 통해 접근하거나 개발시 IntelliJ에서 접근하려는 경우 '예'를 선택해야합니다.
+ 가용영역은 서울 리전을 사용하신다면 ap-northeast-2a 로 선택하면 됩니다.
 

데이터베이스 기본 설정

DB를 실행시킬, DB 접속에 사용할 포트를 선택합니다. 이전에 설정한 계정/암호로 접근할 것이기 때문에 암호 인증을 선택해줍니다.

데이터베이스 추가 구성 설정

DB 인스턴스 생성시 기본으로 생성할 database가 있다면 생성해줍니다.
그외 나머지 아래 값들은 기본으로 생성, 불필요한 모니터링 옵션들은 모두 비활성화 했습니다.
 

DB 인스턴스 생성 확인창

 
데이터베이스 생성 직전에 월별 추정 요금을 보고 식겁하시는 분들이 많이 계실거라고 보이는데요.
프리티어로 1년동안은 월 2,000 ~ 3,000원 정도의 요금으로 이용 가능하니 걱정하지 말고 데이터베이스를 생성하면 됩니다.
 

생성된 DB 인스턴스

이제 인스턴스 생성에는 성공했습니다.
추가적으로 보안그룹 설정 및 인코딩, DBMS 기준 서버시간 설정을 진행하도록 하겠습니다.
불필요한 설정은 하지 않아도 되지만 기본적으로 자주 설정하는 옵션들에 대한 설정 방법들입니다.
 

추가 설정 1) 보안그룹 설정

불필요한 외부 접근을 막기 위해 보안그룹을 설정해야 한다. 이는 사용자의 목적에 따라 다르지만 DB에 접근할 본인의 연결에 대한 정보만 허용하고 나머지는 허용하지 않도록 설정하면 된다.
 
보안그룹 수정을 위해 RDS 인스턴스를 클릭하고 보안 그룹을 선택하여 수정 화면으로 이동한다.

보안그룹 확인

 

인바운드 규칙 편집

보안그룹 선택 > 인바운드 규칙 > 인바운드 규칙 편집 클릭 후 접근 허용할 목록을 입력 후 저장해주면 된다.
 

추가 설정 2) 파라미터 그룹 설정

파라미터 그룹

 

파라미터 그룹 생성
파라미터 그룹 생성

RDS 인스턴스 생성시 선택한 타입과 버전을 선택합니다.
 

파라미터 그룹 편집

파라미터 그룹이 생성되면 [편집]을 클릭해서 설정을 추가하도록 하겠습니다.

timezone 설정

제일 먼저 timezone 설정입니다. Asia/Seoul로 설정했습니다.
 

인코딩 설정-1
인코딩 설정 - 2

두번째는 DB 인코딩 설정입니다. utf8mb4는 기본 문자, 한글 외에도 이모지와 같은 UTF-8 기준 모든 문자열 데이터를 저장할 수 있습니다. utf8mb4로 설정해주었습니다.

collation 수정 - 1
collation 수정 - 2

위와 같이 설정 후 저장한다.
 
저장한 다음에는 DB 인스턴스에 해당 파라미터 설정을 적용해주어야 한다.
아래와 같이 [수정] 버튼 클릭 후 설정한 파라미터 그룹과 인스턴스를 연결해준뒤 설정 적용을 위해 재부팅을 진행해주자.
 

 

이제 기본 구성은 끝났다 !

IntelliJ에서 Database를 연결해보자.

DB 접속
엔드포인트 확인

RDS 엔드포인트 및 포트정보를 확인해서 작성해주자.
 

연결 성공

 
연결에 성공했다. 이제 외부에서 RDS로 구성한 DB에 접근하여 사용하도록 하자.
 
 
 

반응형