![[AWS] RDS 생성 후, 연결하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FdWdrKD%2FbtsrcsPD8kt%2FAAAAAAAAAAAAAAAAAAAAAPNxQoGYewikU1QVBcAc_XU9KcUaBx7QaA6WsD_hDiY5%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3Da0lFYoe8xXN8cliJRbD7TRLeXeU%253D)
RDS란?
RDS(Relational Database Service)란 AWS에서 지원하는 클라우드 기반 관계형 데이터베이스입니다.
하드웨어 프로비저닝, 데이터베이스 설정, 패치 및 백업과 같은 잦은 운영 작업을 자동화하여 개발자는 개발에만 집중할 수 있게 지원하는 서비스입니다. 추가로 조정 가능한 용량을 지원하여 예상치 못한 양의 데이터가 쌓여도 비용만 추가로 내면 정상적으로 서비스가 가능한 장점이 있습니다.
RDS 생성하기
1. AWS에서 RDS 검색 후, 데이터베이스 생성 클릭
2. 사용할 DB 선택 (MariaDB가 가격이 저렴합니다.)
MariaDB는 MySQL을 기반으로 만들어졌기에 사용법이 MySQL과 유사합니다.
3. 템플릿 선택
4. 인스턴스 이름과 마스터 사용자 정보 등록
사용자 정보로 실제 DB에 접근할 예정이기에 기억해둬야 합니다.
5. t2.micro 선택
6. 스토리지 용량 설정 (프리티어는 20 GiB까지 가능)
7. 퍼블릭 액세스 [예] 선택.(추후 보안그룹에서 지정된 IP만 접근 가능하도록 바꿀 예정)
8. DB이름 설정
DB 파라미터 그룹은 위의 MariaDB 버전과 일치시켜야 합니다.
9. 데이터베이스 생성완료
파라미터 그룹 설정
파라미터 그룹이란 DB 옵션을 설정하기 위해 AWS에서 제공하는 서비스입니다.
이 값을 수정하여 DB 옵션을 변경할 수 있습니다.
RDS를 처음 생성하면 아래 3개의 설정을 변경해야 합니다.
- timezone (시간 설정)
- character set (문자 인코딩 설정)
- max connection (데이터의 정렬기준을 위한 설정)
1. 파라미터 그룹 클릭, 파라미터 그룹 생성 클릭
2. 세부 정보 입력 후, 생성
MariaDB 버전 일치시켜야 합니다.
3. 파라미터 선택 후, 편집 클릭
4. time_zone 검색 후, Asia/Seoul로 변경
5. char 검색 후 나오는 모든 부분의 값을 utf8mb4로 변경
utf8mb4는 이모지도 저장이 가능합니다.
character set 목록
- character_set_client
- character_set_connection
- character_set_database
- filesystem
- results
- server
6. collation 검색 후 나오는 모든 부분 값을 utf8mb4_general_ci로 변경
collation 목록
- collation_connection
- collation_server
7. max_connections 값 변경
8. 변경 사항 저장 클릭
9. 데이터베이스 탭으로 이동
10. 만든 RDS 인스턴스 선택 후, 수정 클릭
11. DB 파라미터 그룹을 default에서 방금 생성한 파라미터 그룹으로 변경
12. 즉시 적용을 선택한 후, DB인스턴스 수정 클릭
간혹 적용이 바로 안될 경우가 있습니다. 이 경우 DB를 재부팅해주시면 됩니다.
로컬 PC에서 RDS 접속
1. 인스턴스 세부 정보에서 VPC 보안 그룹 클릭
2. 인바운드 규칙 편집 선택 후, 아래와 같이 규칙 추가
- 첫 번째 줄: 현재 내 PC의 IP 등록
- 두 번째 줄: EC2의 보안 그룹을 추가
3. 데이터베이스 클라이언트 설치
저는 DataGrip을 사용하였습니다. 학생인증을 하면 무료로 이용이 가능합니다!
4.MySQL 프로젝트 생성
MariaDB는 MySQL기반이기에 MySQL을 선택하면 됩니다.
5. 정보 입력 후, Test Connection 클릭
- Host: RDS의 엔드포인트
- User: RDS 생성 당시 마스터 사용자 이름
- Password: 마스터 암호
주의! 만약 여기서 Test Connection이 계속 안된다면 아래와 같이 해보기!
Driver를 MySQL -> Amazon Aurora MySQL로 변경
6. DB 테스트
6-1) 쿼리가 수행될 DB 선택
use springboot-webservice
6-2) character_set, collation 변경 확인
show variables like 'c%';
만약 변경되지 않았다면, 아래 명령어로 변경
alter database springboot_webservice
CHARACTER SET = 'utf8mb4'
COLLATE = 'utf8mb4_general_ci';
6-3) time_zone 확인
select @@time_zone, now();
EC2에서 RDS로 접근 확인
1. WinSCP에서 putty 실행
2. mysql client설치
mysql 설치 명령어는 EC2 생성당시 선택한 AMI에 따라 다릅니다.
저는 'sudo yum install mysql'이 안돼서 아래명령어로 하니 해결되었습니다.
sudo dnf install https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm
sudo dnf install mysql-community-server
3. RDS 접속
mysql -u 계정 -p -h RDS엔드포인트
4. RDS 확인
springboot_webservice가 있는 것을 확인할 수 있습니다.
show databases;
참고자료
[EC2] ERROR: No matching distribution found for mysqlclient 해결 방법 (EC2 mysql 패키지 설치 오류)
Collecting mysqlclient==2.1.1 Downloading mysqlclient-2.1.1.tar.gz (88 kB) |████████████████████████████████| 88 kB 12.7 MB/s Preparing metadata (setup.py) ... error ERROR: Command errored out
hyunki99.tistory.com
[도서] 스프링 부트와 AWS로 혼자 구현하는 웹 서비스
'AWS' 카테고리의 다른 글
[AWS] EC2 서버에 프로젝트 배포하기 (2) | 2023.09.02 |
---|---|
[AWS] EC2 서버 환경 만들기 (0) | 2023.08.12 |
느리더라도 단단하게 성장하고자 합니다!
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!