AWS RDS 구축 및 환경설정(MySQL)

Benjamin·2022년 8월 15일
0

AWS

목록 보기
2/4

AWS RDS?

아마존 관계형 데이터베이스 서비스
아마존 웹 서비스가 서비스하는 분산 관계형 데이터베이스.
애플리케이션 내에서 관계형 데이터베이스의 설정, 운영, 스케일링을 단순케 하도록 설계된 클라우드 내에서 동작하는 웹 서비스이다.
참고

EC2에 DB를 직접 설치해 서비스하는 것 vs RDS이용한 서비스

EC2에 직접 설치 : 직접 리눅스 위에 사용하려는 DB를 설치하고, 그 위에서 서비스를 제공.
RDS : EC2와 함께 사용하며, 아마존에서 DB의 운영, 백업 등의 기능을 편하게 이용할 수 있게 해주는 EC2와 분리된 DB 전용 서버.

[RDS의 단점]
서버를 따로 운영하기때문에, 돈이 더 든다.

[RDS의 장점]
서비스를 운영하다 보면, 많은 데이터의 저장이 요구되며 만약 EC2에 문제가 생기면 데이터 베이스에도 접근하지 못하는 문제가 발생한다. -> 기본 서버와 DB서버를 분리하여 관리하면 좋다.

  • 보안성
  • 편리성
  • N:1의 확장성

RDS 구축

rds로 들어가, 데이터베이스 생성 버튼을 클릭한다.

[세팅 내용]
표준생성
엔진 유형 : MySQL
에디션 : MySQL Community 8.0.28
템플릿 : 프리티어

DB 인스턴스 식별자 : (원하는 이름 작성)
마스터 사용자 이름 : admin (그대로 두었습니다)

DB인스턴스 크기 : db.t2.micro
-> 기본적으로 db.t3.micro로 되어있는데, t3와 t2는 동일한 성능이지만, t3가 더 많은 컴퓨팅 용량을 제공한다고 한다. 따라서 t2는 개발 및 테스트 서버 또는 기타 비 프로덕션 서버에만 사용하는 것이 좋다고 한다.
나는 공부 목적으로 사용하기때문에, t2를 사용하고자 한다.
클래스에 대한 설명

스토리지 유형 : 범용 SSD
할당된 스토리지 : 20 (프리티어의 스토리지 최대 할당량 = 20GB)
스토리지 자동 조정 활성화 : 체크해제 (공부용으로 사용하기때문에 많은 용량을 사용할지도 의문이고, 일단 지금 공부 목적으로는 용량 초과에 돈을 지불하고싶지않기에, 자동조정을 해제한다. '자동'조정이므로 수동조정이 가능할것같기에, 나중에 판단하에 필요하면 수동으로 조정할 예정)

+SSD? solid-state drive, 반도체를 이용하여 정보를 저장하는 장치

퍼블릭 액세스 가능 : 예 (외부에서 DB에 접속할 수 있어야하기때문에)
VPC 보안그룹 : 새로 생성 (사용할 이름까지 지정한다)

데이터 베이스 인증 : 암호인증
초기 데이터베이스 이름을 설정하기 위해 추가구성을 꼭 추가한다!

이후 '데이터베이스 생성' 버튼을 클릭하고, 넘어가는 페이지에서 상태가 '생성 중'에서 '사용 가능'으로 바뀌면 RDS생성이 끝난다


RDS 운영 환경에 맞는 파라미터 설정

1. EC2와 연결

ec2에서 rds로 접근 가능하게 하기 위해 포트를 열어준다
rds를 생성할 때, 만든 보안그룹에 접근하여 인바운드 규칙편집으로 들어간다
'MYSQL/Aurora'에서 소스에 사용자지정으로 ec2의 보안그룹 id를 가져와 넣어준다
이제, EC2에서 RDS에 접근 가능하다

외부에서 rds로 접근가능한지 확인
외부에서 rds에 접근하기위해 workbench를 이용했다.
RDS 보안그룹 인바운드설정에서 접속을 시도할 로컬ip를 추가해준다. (0.0.0.0도 가능)

workbench hostname에는 RDS의 엔드포인트 주소를 넣어준다.

접속에 성공했으면, show databases;를 입력해서 실행이되는지 확인한다.

2. 타임존 설정

RDS의 시간을 서울로 지정해준다.
설정을 위해 aws RDS의 파라미터그룹으로 이동

기본으로 있는 default 그룹은 수정이 불가능하기때문에, 새로운 그룹을 생성해준다.
이름을 지정하고, DB parameter group으로 생성한다.
생성한 그룹으로 들어가 파라미터 필터에 'time_zone'을 검색한다.

해당 파라미터의 값에 Asia/Seoul을 넣어준다.

3. Character set utf-8 설정

한글 데이터를 깨지지않고 잘 출력시키기위해 필요하다.

파라미터에 'character_set'를 검색해서 뜨는 결과 모두에 utf8mb4을 설정해준다.

4. collation 설정

파라미터 필터에 collation을 입력해 collation_connection과 collation_server의 값을 utf8mb4_unicode_ci로 수정해준다.


이제 모든 설정이 끝났다.
이를 적용하기위해 해당 DB인스턴스에 들어가 수정에서 DB파라미터그룹의 값을 default가 아닌 앞에서 설정한 파라미터로 수정해준다.
즉시적용한다.

적용이 끝났다면, DB를 재부팅한다.

select @@time_zone, now();으로 테스트해보니, 현재 시간이 잘 나오는것을 확인할 수 있다.

참고사이트

0개의 댓글