September 14, 2020
rds
를 검색데이터베이스 생성
버튼 클릭DB 엔진 선택 화면에서 Maria DB 선택
프리티어
선택상세 설정 1
범용(SSD)
, 할당된 스토리지는 20
상세 설정 2
freelec-springboot2-webservice
예
. 이후 보안 그룹에서 지정된 IP만 접근하도록 막을 예정데이터베이스 옵션
3306
default.mariadb10.2
default.mariadb-10-2
완료
DB 인스턴스 세부 정보 보기
클릭데이터베이스
카테고리 밑에서 파라미터 그룹
클릭파라미터 그룹 생성
클릭10.2
를, 만약 10.3.xx버전으로 생성하였다면 10.3
을 선택하면 된다. 그룹 이름과 설명은 둘 다 freelec-springboot-webservice
로 선택freelec-springboot2-webservice
클릭파라미터 편집
클릭타임존
asia/seoul
클릭Character Set
utf8mb4
utf8
utf8mb4
와 utf8
의 차이는 이모지 저장 가능 여부Max Connection
150
데이터베이스
- 생성된 데이터 베이스 체크
- 수정
저장
을 누르면 수정사항이 요약된 것 확인가능즉시 적용
재부팅
보안그룹
항목 클릭보안 그룹 ID
와 본인의 IP
를 RDS 보안 그룹의 인바운드에 추가인바운드의 규칙 유형에서는 MYSQL/Aurora
를 선택하면 자동으로 3306포트가 선택된다.
엔드 포인트
를 확인. 엔드 포인트가 접근 가능한 url이다.databse navigator
플러그인 설치(하지만 할 필요 없다)databse tools and sql
이다. 실행은 view - tool windows - databseDB Browser
가 노출되는데, DB Browser 탭 하단에 기존에 노출되던 프로젝트 항목들이 보인다. MariaDB는 MySQL 기반이므로 MySQL을 사용하면 된다.엔드 포인트
(url) 넣고 마스터 계정/비밀번호
입력Test Connection
로 연결 테스트 설정Conenction SuccessFul
메시지 보면 apply->okRDS의 스키마
가 노출된다. 위쪽에 Open SQL Console
버튼 클릭 해서 New SQL Console
항목 선택해서 콘솔창 오픈쿼리가 수행될 datase 선택 쿼리
use AWS RDS 웹 콘솔에서 지정한 데이터베이스명;
use freelec_springboot2_webservice;
Execute Console
에서 SQL statement executed successfully
가 뜨면 쿼리가 정상수행 된 것임데이터베이스 선택된 상태에서 현재의 character_set, collation
설정 확인
show variables like 'c%';
쿼리 결과보면 charactersetdatabase, collation_connection 2가지 항목이 latin1로 되어 있는데, 이것들은 MariaDB에서만 RDS 파라미터 그룹으로는 변경이 안 된다.
ALTER DATABASE 데이터베이스명
CHARACTER SET = `utf8mb4`
COLLATE = `utf8mb4_general_ci`;
적용 후 다시 확인
show variables like 'c%';
타임존도 확인
select @@time_zone, now();
한글명이 잘 들어가는지 간단한 테이블 생성과 insert 쿼리를 실행
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;
MySQL 접근 테스트 위해 MySQL CLI 설치 (실제 EC2의 MySQL를 설치해서 쓰는게 아니라 명령어 라인만 쓰기 위한 설치임)
sudo yum install mysql
RDS에 접속
mysql -u 계정 -p -h host주소
mysql -u june -p -h (엔드포인트 주소)
실제로 생성한 RDS가 맞는지 간단한 쿼리 사용
show databases;
RDS에는 오라클, MSSQL, PostgreSQL 등이 있으며, 당연히 본인이 가장 잘 사용할 줄 아는 데이터베이스를 고르면 되지만, 꼭 다른 데이터베이스를 선택해야 할 이유가 있는 것이 아니라면 MySQL, MariaDB, PostgreSQL 중에 고르길 추천. 그 중에서 MariaDB를 추천하며 그 이유는 아래와 같다.
비용 영향
을 받는다. 상용 데이터베이스인 오라클, MYSQL이 오픈소스인 MySQL, MariaDB, PostgreSQL보다는 동일한 사양 대비 가격이 더 높다. 결국 프리티어 기간인 1년이 지나면 비용을 지불하면서 RDS를 써야 한다.Amazon Aurora는 성능 짱
클라우드 서비스에 가장 적합한 데이터베이스이기에 많은 회사가 Amazon Aurora를 선택
. 그러다 보니 호환 대상이 아닌 오라클, MSSQL을 굳이 선택할 필요가 없다. 이렇게 보면 Aurora를 선택하면 가장 좋을 것 같지만 그런데?
시작하는 단계에서는 Aurora를 선택하기 어렵다. 프리티어 대상이 아니다. 최저 비용이 월 10만원 이상
이기에 MariaDB로 시작MariaDB는 MySQL 대비 다음과 같은 장점이 있다.
참고 : 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 - 이동욱