2023.08 ver
1. AWS RDS
RDS : Relational Database Service. AWS에서 지원하는 클라우드 기반 관계형 데이터베이스.
하드웨서 프로비저닝, 데이터베이스 설정, 패치 및 백업 등의 운영 작업을 자동화해준다.
2. RDS 인스턴스 생성하기
1) DB 선택하기
이번에는 MariaDB를 선택했다.
- RDS의 가격은 라이센스 비용 영향을 받는다. 오픈소스인 MySQL, MariaDB, PostgreSQL가 상용디비 보다는 동일한 사양 대비 가격이 낮다.
- MariaDB는 MySQL을 기반으로 만들어져서 전반적인 사용법이 비슷하다.
프리티어를 선택한다.
2) 스토리지 선택하기- gp3, 20GiB
스토리지 자동 조정 활성화 끄기
3) 세부설정
4) 인스턴스 구성 - t2.micro
5) 추가설정
- 백업 끄기
- 유지관리 : 마이너 버전 자동 업그레이드 사용 끄기
6) 연결 - 퍼블릭 엑세스 허용
3. 파라미터 설정하기
1. 타임존
2. Character Set
3. Max Connection
AWS 콘솔창 왼쪽 메뉴에서 '파라미터 그룹'을 선택한다.
'파라미터 그룹 생성' 버튼 클릭.
아까 생성한 MariaDB와 같은 버전을 맞춰준다.
생성 완료
방금 생성한 파라미터 선택 -> 파라미터 편집
- time_zone : Asia/Seoul
- character_set : utf8mb4 (이모지 저장 가능. utf8: 이모지 저장 불가)
- collation : utf8mb4_general_ci
- max_connections : 150
이러한 오류가 떴는데, collation_server에 utf8mb4 값을 할당하고 다시 collation 값을 설정하니 잘 되었다.
파라미터 그룹을 데이터베이스에 연결한다.
왼쪽 메뉴 '데이터베이스' - DB 리스트에서 하나 선택 - '수정'
추가 구성 - DB 파라미터 그룹 수정하고 '계속' 버튼 클릭- '즉시 적용' - 'DB 인스턴스 수정'
정상적으로 적용하기 위해 디비 재부팅을 한다.
4. PC에서 RDS로 접속하기
1) RDS 보안 그룹에 내 PC IP를 추가
아래의 '연결&보안' 탭에서 보안 그룹 링크를 누르면 보안 그룹 정보가 나온다.
여기서 ec2에 사용한 보안그룹의 그룹ID를 복사해서 RDS 보안 그룹의 인바운드로 추가한다.
rds라는 이름의 아래의 인바운드 규칙을 갖는 보안그룹을 새로 만들었다.
2) RDS 엔드포인트 복사하기
3-1) 인텔리제이 (커뮤니티 버전) - Database 플러그인 설치
인텔리제이(커뮤니티 버전) : File - settings - plugins 검색 - database 플러그인 검색 후 설치
3-2) 인텔리제이 (Ultimate 버전)
인텔리제이 오른쪽 메뉴의 database 탭에서 '+버튼' - Data Source - MariaDB 를 선택한다.
- Name : Database@엔드포인트 형식. Host와 Database를 입력하면 자동으로 채워진다.
- Host : AWS RDS 엔드포인트
- User, Password : RDS에서 설정한 계정 정보
- Database : AWS RDS 생성할 때 입력한 DB 이름. (DB 인스턴스 이름과 헷갈리지 말자!!)
Connection fail 이 나타난다면 보안 그룹에 MySQL을 추가되었는지 확인한다.
MariaDB에서는 RDS 파라미터 그룹으로 변경되지 않는 항목 : character_set_database, collation_connection .
직접 변경해주자.
ALTER DATABASE MyDB
CHARACTER SET = 'utf8mb4'
COLLATE = 'utf8mb4_general_ci';
기존 테이블을 삭제한 뒤 다시 생성해야 한글 깨짐 현상(Incorrect String value 오류)이 나타나지 않는다.
4) EC2에서 RDS 접근되는지 확인하기
EC2에 MySQL cli 를 설치한다.
sudo yum install mysql
mysql -u 이름 -p -h rds엔드포인트
테스트해보기
Reference