September 14, 2020
rds를 검색데이터베이스 생성 버튼 클릭DB 엔진 선택 화면에서 Maria DB 선택
프리티어 선택상세 설정 1
범용(SSD), 할당된 스토리지는 20상세 설정 2
freelec-springboot2-webservice예. 이후 보안 그룹에서 지정된 IP만 접근하도록 막을 예정데이터베이스 옵션
3306default.mariadb10.2default.mariadb-10-2완료
DB 인스턴스 세부 정보 보기 클릭데이터베이스 카테고리 밑에서 파라미터 그룹 클릭파라미터 그룹 생성 클릭10.2를, 만약 10.3.xx버전으로 생성하였다면 10.3을 선택하면 된다. 그룹 이름과 설명은 둘 다 freelec-springboot-webservice 로 선택freelec-springboot2-webservice 클릭파라미터 편집 클릭타임존
asia/seoul 클릭Character Set
utf8mb4utf8utf8mb4와 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 mysqlRDS에 접속
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로 혼자 구현하는 웹 서비스 - 이동욱