AWS RDB TEST

김재섭·2024년 4월 2일

AWS DB

AWS RDS 구축(따라해보고 테스트)

데이터베이스의 분리

  • EC2를 구축한 뒤에 EC2 안에 데이터 베이스를 설치하고 EC2안에서 데이터베이스를 사용할 수 있습니다.
  • 하지만 EC2의 서버에 데이터 베이스를 구축해도 당장에는 문제가 없어 보이지만, 서비스를 운영하다 보면 많은 데이터의 저장이 요구되며, 만약 EC2에 문제가 생기면 데이터 베이스에도 접근하지 못한다는 문제가 발생
  • 그러므로 보통 기본 서버와 데이터 베이스 서버를 분리해서 관리를 해줍니다. 이렇게 데이터 베이스를 분리함으로써 얻는 이점
    • N : 1의 확장성
    • 보안에 좋음
    • 편리성

(2) RDS 인스턴스 생성

AWS에 들어가서 우선 RDS 서비스를 선택하고 데이터 베이스를 생성합니다.

https://blog.kakaocdn.net/dn/A350j/btqV8Gyd0Xf/mml9aTCLKqf1pDcGlpoca0/img.png

필자는 표준 생성으로 MySQL 8.0.20 버전을 이용하였습니다.

https://blog.kakaocdn.net/dn/bxeFBe/btqV8GkE9xq/Lul2uhmVLym2xSdAQgY4Vk/img.png

우선 프리 티어로 선택을 합니다. ( 이미 rds가 있다면 두 번째 인스턴스부터는 프리 티어 설정 못함)

https://blog.kakaocdn.net/dn/Cx9AC/btqV08WUev2/IHgZjUKdNfL4W63qIA6Q90/img.png

DB 인스턴스 식별자를 자유롭게 정해주고, 데이터베이스 마스터 사용자 계정을 생성합니다.

프리티어는 버스터블 클래스밖에 선택하지 못합니다.

https://blog.kakaocdn.net/dn/tndYe/btqV8GLLvGM/VlaR9Yyng6esz2QpUwVOE0/img.png

AWS의 RDS는 표준, 메모리 최적화 및 버스트 성능의 3가지 인스턴스 클래스 유형을 지원합니다.

( 버스트 : 특정 기준에 따라 한 단위로서 취급되는 연속된 신호나 데이터의 모임 )

그중 db.t2는 CPU 사용률을 최대로 버스트할 수 있는 기능을 통해 기준 성능 수준을 제공하는 현재 세대 인스턴스 클래스입니다.

다른 클래스에 대한 설명 링크는 다음과 같습니다.

docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html

프리티어의 스토리지 최대 할당량은 20GB라고 합니다.

https://blog.kakaocdn.net/dn/A5t4z/btqWjqBwcuh/B2FNAr8JKK5nzbfjEwkFO0/img.png

외부에서 데이터베이스에 접속할 수 있도록 퍼블릭 액세스 가능을 '예'로 설정합니다.

필자는 'luminVpC'라는 VPC 보안 그룹을 새로 만들었습니다.

https://blog.kakaocdn.net/dn/ew284Y/btqWjqVZKP4/Fyl8Ew2i5WmqYGXl7mBej1/img.png

필자는 데이터 베이스 인증을 암호 인증으로 선택했습니다.

https://blog.kakaocdn.net/dn/n89WL/btqV08bwgzB/Qob195qF9xtwnxJzG3AJCK/img.png

추가 구성을 꼭 하는것을 권장합니다.

그 이유는 초기 데이터베이스 이름을 지정해야 하기 때문입니다.

https://blog.kakaocdn.net/dn/53nmm/btqV2V3RNF4/xuX3rpiFOHjhSbJPkp9iHK/img.png

이제 데이터 베이스 생성을 누르고 생성되는 동안 기다립니다.

https://blog.kakaocdn.net/dn/o3Se5/btqWc8HX1bh/0zSNDi8r47kTRpgMcydQV1/img.png

생성되는데 약간의 시간이 걸립니다.

다음과 같이 사용가능 표시가 나오면 데이터 베이스 구축이 완료된 것입니다.

https://blog.kakaocdn.net/dn/bcAhef/btqWjqhfRp3/X8PIAu6avVupRNNoEFHGa0/img.png

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

RDS를 처음 생성하면 몇 가지 설정을 필수로 해야 합니다.

  • 타임존
  • Charcater Set
  • Max Connection

파라미터 그룹 탭 선택 후 파리미터 그룹 생성

https://velog.velcdn.com/images%2Fswchoi0329%2Fpost%2F5d4c5b20-5b1d-4992-876e-770e1b3cb157%2FRDS10.PNG

파라미터 생성 완료

https://velog.velcdn.com/images%2Fswchoi0329%2Fpost%2F75e463d4-8550-44d4-a4ae-ea211b7bd86b%2FRDS11.PNG

파라미터 편집

https://velog.velcdn.com/images%2Fswchoi0329%2Fpost%2Fbff224d2-6798-4b16-8019-39616adcba63%2FRDS12.PNG

타임존 수정

https://velog.velcdn.com/images%2Fswchoi0329%2Fpost%2F76b59bab-a8ea-4f67-b893-55ec393d7d27%2FRDS13.PNG

Charcater Set utf8mb4 설정

https://velog.velcdn.com/images%2Fswchoi0329%2Fpost%2F5b1b14d2-2cf5-41fe-9ef4-0f7c6a96b230%2FRDS14.PNG

utf8은 이모지를 저장할 수 없지만, utf8mb4는 이모지를 저장할 수 있다.

collation_server utf8mb4_general_ci 설정

https://velog.velcdn.com/images%2Fswchoi0329%2Fpost%2Fada6bddb-067c-4903-8ace-12e4386e00e8%2FRDS15.PNG

max_connections 설정

https://velog.velcdn.com/images%2Fswchoi0329%2Fpost%2Fc53294f6-7a9c-4007-a39a-95561a4dccbf%2FRDS16.PNG

RDS 사양에 따라 변경하면 된다.

데이터베이스 수정

https://velog.velcdn.com/images%2Fswchoi0329%2Fpost%2F4b191020-2254-4ddc-8c3d-b2fb16ea3b51%2FRDS17.PNG

데이터베이스 옵션 변경

https://velog.velcdn.com/images%2Fswchoi0329%2Fpost%2Ff2307ebc-65df-46b0-8368-8212b21bf675%2FRDS18.PNG

수정 사항 즉시 적용

https://velog.velcdn.com/images%2Fswchoi0329%2Fpost%2F1fb8d259-20aa-4d4e-9239-b31c97a7c621%2FRDS19.PNG

수정 적용 후 DB 인스턴스 재부팅 실행

https://velog.velcdn.com/images%2Fswchoi0329%2Fpost%2Fc160ca71-cfd0-4c76-93af-2afeca1cc69b%2FRDS20.PNG

3. 내 PC에서 RDS 접속

로컬 PC에서 RDS로 접근하기 위해서 RDS의 보안 그룹에 본인 PC의 IP를 추가하겠습니다.

VPC 보안 그룹 설정

https://velog.velcdn.com/images%2Fswchoi0329%2Fpost%2F92126ecf-ff0f-49b0-aeec-ac29f039087f%2FRDS29.PNG

EC2의 보안 그룹 복사

https://velog.velcdn.com/images%2Fswchoi0329%2Fpost%2F67927483-0c68-4870-ab4d-f41de6382372%2FRDS21.PNG

RDS 보안 그룹 인바운드 수정

https://velog.velcdn.com/images%2Fswchoi0329%2Fpost%2F4b3e47b8-0251-4046-9232-bb04b39006d8%2FRDS22.PNG

  1. EC2의 보안 그룹 추가
    • EC2와 RDS 간에 접근 가능
  2. 현재 내 PC의 IP를 등록

로컬 접속

인텔리제이 Database 플로그인로 로컬 접속을 해보겠습니다.

Database 플러그인 설치

https://velog.velcdn.com/images%2Fswchoi0329%2Fpost%2F96bd1e2f-8c55-4468-a2ea-a4680ca5ca09%2FRDS23.PNG

RDS 접속 정보 등록

https://velog.velcdn.com/images%2Fswchoi0329%2Fpost%2F3bddbb1b-3a6d-4f53-8158-27df082433cb%2FRDS24.PNG

데이터베이스 확인

https://velog.velcdn.com/images%2Fswchoi0329%2Fpost%2F2db1c580-d280-4fe6-a66f-1aa06381e467%2FRDS25.PNG

설정 확인

use springboot_webservice;
show variables like 'c%';
  • character_set_database, collation_connection 2가지 항목이 Iatin1로 되어있습니다.직접 변경해야한다.
ALTER DATABASE springboot_webservice
CHARACTER SET = 'utf8mb4'
COLLATE = 'utf8mb4_general_ci';

character set 변경 성공

https://velog.velcdn.com/images%2Fswchoi0329%2Fpost%2F3a212d6e-4e60-465f-9a14-0d90b4475290%2FRDS26.PNG

타임존 확인

select @@time_zone, now();

https://velog.velcdn.com/images%2Fswchoi0329%2Fpost%2F9644222d-b94b-44d4-a11c-8755251f59ba%2FRDS27.PNG

테스트 테이블 생성

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

https://velog.velcdn.com/images%2Fswchoi0329%2Fpost%2F5ea32835-60f9-4263-b953-b5df258026f2%2FRDS28.PNG

로컬에서 RDS와 잘 연결되는지 확인했습니다.

profile
Upward Developer

0개의 댓글