Web/AWS

AWS RDS (DataBase)

태윤2 2021. 8. 22. 00:30

AWS에서는 관리형 서비스인 RDS(Relational Database Service)를 제공합니다. RDS는 AWS에서 지원하는 클라우드 기반 관계형 데이터베이스 이다. 하드웨어 프로비저닝, 데이터베이스 설정, 패치 및 백업과 같이 잦은 웅영 작업을 자동화하여 개발자가 개발에 집중할 수 있게 지원하는 서비스이다.

 

RDS 인스턴스 생성하기

  • RDS 검색

  • 대시보드 -> 데이터베이스 생성
  • MariaDB 선택
    • 가격
    • Amazon Aurora(오로라) 교체 용이성
  • Amazon Aurora는 AWS에서 MySQL과 PostgreSQL을 클라우드 기반에 맞게 재구성한 데이터베이스
  • MariaDB와 MySQL 차이점(MariaDB 기준)
    • 동일 하드웨어 사양으로 MySQL보다 향상된 성능
    • 좀 더 활성화된 커뮤니티
    • 다양한 기능
    • 다양한 스토리지 엔진
    • MYSQL에서 MariaDB로 마이크레이션 해야 할 10가지 이유로 구글에 검색해보자

MariaDB 선택
식별자 및 사용자 이름 암호 생성
초기 데이터베이스 이름

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

  • 타임존
  • Character Set
  • Max Connection

파라미터 그룹 생성 클릭!
그룹 패밀리는 자신이 선택한 db의 버전과 맞춰 사용하자
수정 클릭

  • Seul,Asia 가 아닌 Aisa/Seoul 로 입력 ( 아래에 있는 값 입력하면 Invalid Value 뜸!)

허용된 값에서 자신이 사용할 time zone을 찾아 입력

  • Character_set 항목은 utf8mb4
  • collation_connection 은 utf8mb4_general_ci
  • utf8과 utf8mb4의 차이는 이모지 저장 가능 여부

  • 기존 프리티어 사양은 60 개정도 지원
  • 넉넉하게 150개로 변경
  • 이후 RDS 사양을 높이게 된다면 기본값으로 다시 돌려놓으면 됨

 

변경사항 결과

 

파라미터 그룹을 데이터베이스에 연결

왼쪽 라디오버튼 체크하고 수정 클릭
DB 파라미터 그룹 변경

 

즉시 적용으로 변경후 저장

내 PC에서 RDS에 접속해 보기

  • RDS의 보안 그룹에 본인 PC의 IP 추가

보안 그룹 클릭
Edit inbound rules 클릭

  • 내 IP와 인스턴스만들때 만든 보안그룹을 추가

  • 여기 사이트 참고
 

[AWS] RDS 인스턴스 생성 및 외부 접속

RDS란? RDS(Relational Database Service)는 AWS에서 지원하는 클라우드 기반 관계형 데이터베이스이다. 하드웨어 프로비저닝, 데이터베이스 설정, 패치 및 백업과 같이 잦은 운영 작업을 자동화하여 개발

leveloper.tistory.com

 

Database 플러그인 설치

  • MySQL - Workbench, SQlyog(유료), Sequel Pro(맥 전용), DataGrip(유료) .. 대표적인 GUI 클라이언트
  • 무료 버전인 경우 Database Navigator Plugin을 다운받아 사용하자(사용법은 검색 해보시길!)

 

  • Ultimate 버전은 우측 상단에 Database 탭 클릭후 + MariaDB 추가

mysql or maridb 선택

  • DB 설정

 

host는 RDS 데이터베이스 정보에서 엔드포인트를 넣어주자~
Query Console 을 통해 아래 명령어들을 순차적으로 실행

use yoon_springboot2_webservice;

show variables like 'c%';

ALTER DATABASE yoon_springboot2_webservice
CHARACTER SET ='utf8mb4'
COLLATE = 'utf8mb4_general_ci';

select @@time_zone, now();

CREATE TABLE test (
    id bigint(20) NOT NULL AUTO_INCREMENT,
    content varchar(255) DEFAULT NULL,
    PRIMARY KEY (id)
) ENGINE=InnoDB;

insert into test(content) values ('테스트');

select * from test;
  • 몇몇 character_set & collation 이 latin_1 로 되있어서 Alter를 통해 utf8mb4 로 변경
  • insert 는 한글이 잘들어가는지 테스트

EC2에서 RDS에서 접근 확인

  • Mac에선 ssh
  • 윈도우에선 putty

 

  • MySQL CLI 설치
sudo yum install mysql
  • mysql -u 계정 -p -h Host주소 입력
  • 데이터가 아주 잘들어가있는걸 확인 할 수 있다~

  • reference

스프링부트와 AWS로 혼자 구현하는 웹서비스