CheerUp_Cheers

스프링 부트 - (7) AWS RDS 본문

#웹 서비스의 백엔드

- 애플리케이션 코드 작성

- 데이터베이스를 관리

but, 규모있는 회사에서는 DBA라는 직군이 있다

->이것이 백엔드 개발자가 데이터베이스를 몰라도 된다는 것을 의미 하지는 않음.

->스타트업이나 개발자가 적은 서비스에선 개발자가 데이터베이스를 관리해야함.

 

#RDS

if, 정한 용량을 넘더라도 쓴 만큼 비용 지불.

다음과 같은 작업을 신경 쓰지 않아도 됨.

- 모니터링

- 알람

- 백업

- HA(고가용성) : 무중단 서비스 제공

 

#Mysql

- 단순 쿼리 처리 성능이 압도적.

- 오랜기간 사용 -> 성능과 신뢰성(꾸준한 개선)

 

#MariaDB

- 좀더 활성화된 커뮤니케이션

- 다양한 스토리지 엔진

- 동일 하드웨어 사양으로 Mysql보다 향사된 성능.

 


7.1 AWS RDS만들기

나머지는 돈이 안드는 설정으로 방향을 잡으면 됨.

 

- 유의점

DB - MariaDB

퍼블릭 액세스 기능 - O(보안그룹으로 제외할것임)

자격증명 - 마스터이름, 암호는 외울 것.

 


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

#필수 설정

- 타임존

- Charater Set

- Max Connection

 

#파라미터 그룹 세부 정보 변경

[1] 파라미터 그룹 > 파라미터 그룹 생성

채워놓고 생성하기 클릭

 

[2] 생성된 파라미터 그룹 클릭 > 파라미터 편집(편집모드)

 

- 타임존

Time존 변경

 

- Character Set

  character 관련 6개와 collation_server, collation_connetion 2개를 총8개를 utf8mb4로 변경

(?) utf8mb4와 utf8의 차이점

  이모지 저장 가능여부(이모티콘)

 

- Max Connection 수정

  현재 프리티어는 60까지만 가능.

  넉넉하게 넣자.

넉넉한 값..

다 끝나면 변경사항 저장 클릭!

변경사항저장 클릭

 

[3] 데이터베이스에 반영

- 데이터베이스 > 해당 DB 식별자 클릭 > 수정

수정 클릭.

 

- 데이터베이스 옵션 > DB파라미터 그룹 > 신규 파라미터 그룹으로 변경.

- 수정사항 요약 확인 및 수정.

  새 값이 제대로 됬는지 확인.

  즉시 적용 : 비동기적으로 적용(서비스 중이 아니니 상관없음)

 

- 변경사항의 제대로된 반영을 위해 재부팅

 


7.3 내 PC에서 RDS로 접속해보기

[1] 보안그룹 설정하기

  첫번째, 나의 IP

  두번째, EC2의 복사된 보안 그룹 ID(EC2에서 RDS 연결가능하게)

 

[2] Database 플러그인 설치

- RDS 정보 페이지에서 엔드 포인트 확인.

엔드포인트 = 접근 가능한 URL이다.

 

- 인텔리제이에 DataBase 플러그인 설치.

File > Setting > Plugin

설치 후, 재부팅

 

[3] 인텔리제이와 RDS 연결하기

- Action으로 Database Browser 실행.

  Action : Ctrl + Shift + a

+클릭후, Mysql 클릭

 

  Host : 아까 RDS 백엔드 URL

  User : 마스터 아이디

  Pass : 마스터 패스워드 

Test Connection 클릭, Sussess뜨면 완료

 

[4] SQL 콘솔 사용하기

SQL Console > New SQL Console

freelec2로 생성될 새로운 콘솔창.
사용할 데이터베이스 설정(성공 확인여부를위함)

 

- 현재의 문자열 상태 확인

//현재의 character_set을 확인하기 위함
show variables like 'c%';

latin1 = 변경이 안됬다. 밑에서 직접변경

[5] 기본설정 확인하기

- charcter-setdatabase, collation_connection을 직접 변경

  기본 character가 latin1이라서 직접 변경.

  다음쿼리 실행

ALTER DATABASE freelec_springboot2_webservice
CHARACTER SET = 'utf8mb4';
COLLATE = 'utf8bm4_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;

결과 : 한글 잘나왔다.

ctrl + Enter왜 안먹는지 내일 확인;;

 


7.4 EC2에서 RDS로 접속해보기

[1] 보안 그룹 추가.

RDS에서 내 IP와 EC2를 인바운드로 허락해야 가능.

내 IP주소와 EC2 허용.

[2]Putty에 RDS접속

  - Putty -> EC2(Load로 바로 접속)

  - Mysql 설치

sudo yum install mysql

  - RDS 접속.

mysql -u root -p -h 호스트 주소

Password : 입력

성공