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
2.3 max_connections > 150
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
5. Datebase 플러그인 설치 (IntelliJ)
인텔레제이에 Database Navigator 플러그인 install [ctrl + shift + a]로 검색
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를 초기화 해주기 위해서는 다음과 같은 명령어를 입력하면 됩니다.
AUTO_INCREMENT를 초기화(변경)할 때는 변경할 AUTO_INCREMENT의 값이 해당 컬럼에서 가장 큰 값보다 커야 합니다.
다른 방법으로는 MySQL WorkBench 프로그램에서 로그인을 해 봅니다.
HostName은 역시 RDS 보안그룹의 엔드포인트를 복사하고 username/password 를 넣어주면 아래와 같이 성공적으로 연결이 됩니다.
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;
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]
'Web' 카테고리의 다른 글
3. AWS - EC2 서버에 프로젝트 배포 (0) | 2022.03.05 |
---|---|
1. AWS 서버 환경 구축 (AWS EC2) (0) | 2022.03.04 |
1. SpringBoot - JPA server using MySQL (0) | 2022.02.18 |
Android에서 SpringBoot JPA 서버와 연동하기 (0) | 2022.02.17 |
Spring Boot - Eclipse Maven으로 Spring Web Layer 실습 (0) | 2022.02.14 |