Web

2. AWS - RDS 환경 구축

kakaroo 2022. 3. 4. 21:34
반응형

article logo

 

RDS (Releational Database Service)

AWS는 관리형 서비스인 RDS를 제공합니다. RDS는 AWS에서 지원하는 클리우드 기반 관계형 데이터베이스입니다. 하드웨어 프로비저닝, 데이터베이스 설정, 패치 및 백업과 같이 잦은 운영작업을 자동화하여 개발자가 개발에 집중할 수 있게 지원하는 서비스 입니다. 이러한 RDS를 이용하여 본인만의 데이터베이스 환경을 구축해 보겠습니다.

RDS 인스턴스 생성

1. 데이터베이스 생성

AWS 서비스 > RDS 검색 > 데이터베이스 생성

> MySQL or MariaDB 등 선택 > 프리 티어 > 스토리지 선택

> DB 인스턴스, 마스터 사용자 정보 등록  (<-- 여기서 사용된 정보로 실제 데이터베이스에 접근하게 됨)

> 네트워크 및 보안 : 서브그룹 default, 퍼블릭 엑세스 가능 > VPC 새로 생성, 새 VPC 보안그룹이름

> 데이터베이스 옵션 : 포트 3306

 

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

파라미터 그룹 탭 > 파라미터 그룹 생성 > DB 엔진 선택 (위 1에서 생성한 DB와 같은 버전) > 그룹이름/설명 등록

> 생성된 파라미터 그룹 클릭 > 파라미터 편집

  2.1 time_zone 검색 > Asia/Seoul

  2.2 Character set > utf8 , collation(정렬)항목만 utf8_generall_ci 

파라미터 편집 - char

 

파라미터 편집 - collation

  2.3 max_connections > 150

파라미터 편집 - max connection

 

 

3. 생성된 파라미터 그룹을 데이터베이스에 연결

좌측 메뉴에서 데이터베이스 선택 > 생성한 데이터베이스를 수정

> DB 파라미터 그룹을 2에서 생성한 파라미터 그룹으로 지정 > 즉시 적용

> 작업 :: 재부팅

파라미터 그룹 변경

 

4. RDS에 접속해보기

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

RDS의 세부정보 페이지 > 연결&보안 탭에서 [VPC보안그룹]항목 선택 

> 이전에 생성했던 EC2의 보안 그룹 ID를 RDS 보안 그룹에 추가해주기 위해 필터 제거

> EC2에 사용된 보안그룹의 그룹 ID를 복사

> 복사된 보안그룹 ID와 본인의 IP를 RDS 보안그룹의 인바운드로 추가

   >> MySQL/Aurora , TCP , 3306 , 사용자 지정 , 보안그룹 ID

RDS 보안그룹의 인바운드로 추가

 

 

5. Datebase 플러그인 설치  (IntelliJ)

인텔레제이에 Database Navigator 플러그인 install [ctrl + shift + a]로 검색

Database Navigator Plug-In 설치
Database Navigator Plug-In
Database Navigator Plug-In 실행 후 Database Brower가 노출됨
Database Navigator Plug-In 실행 후 Database Brower가 노출됨

 

DB Brower에서 MySQL 선택
DB Brower에서 MySQL 선택

 

인텔리제이에서 RDS 접속 계정 설정
RDS 접속 계정 설정

SQL 콘솔창 실행

> use AWS RDS [웹 콘솔에서 지정한 데이터베이스명];

> 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;

 

 

* id는 무한정 늘어나기 때문에 id를 초기화 해주기 위해서는 다음과 같은 명령어를 입력하면 됩니다.

mysql> ALTER TABLE 테이블 이름 AUTO_INCREMENT=변경할 숫자;

AUTO_INCREMENT를 초기화(변경)할 때는 변경할 AUTO_INCREMENT의 값이 해당 컬럼에서 가장 큰 값보다 커야 합니다.


다른 방법으로는 MySQL WorkBench 프로그램에서 로그인을 해 봅니다.

HostName은 역시 RDS 보안그룹의 엔드포인트를 복사하고 username/password 를 넣어주면 아래와 같이 성공적으로 연결이 됩니다.

MySQL WorkBench 로그인 성공

 

show databases

show databases

 

use locationdb

select * from location_entity   (사전에 value 값을 test 용으로 넣어서 하나의 entity가 보이는 것입니다.)

 

 

 

6. EC2에서 RDS 접근 확인

> sudo apt-get install mysql

Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package mysql

 

> mysql -u [계정] -p -h [Host 주소]   (Host 주소: RDS 앤드포인트 URL)

Command 'mysql' not found, but can be installed with:
sudo apt install mysql-client-core-8.0     # version 8.0.28-0ubuntu0.20.04.3, or
sudo apt install mariadb-client-core-10.3  # version 1:10.3.34-0ubuntu0.20.04.1

 

정확한 package 명으로 install

> sudo apt install mysql-client-core-8.0

> mysql -u [계정] -p -h [Host 주소]   (Host 주소: RDS 앤드포인트 URL)

   mysql> show databases;

show databases

 

select table

 

7. Spring boot 와 연결

application.properties 을 아래처럼 수정합니다.

 

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/locationdb?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Seoul
#spring.datasource.url=jdbc:mysql://[url]/[db명]?serverTimezone=UTC
spring.datasource.username=[id]
spring.datasource.password=[password]

 

 

반응형