본문 바로가기

AWS

[AWS] 내 PC에서 RDS에 접속해보기 & EC2에서 RDS에 접속해보기

1. 내 PC에서 RDS에 접속해보기

 

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

  • 내  PC의 IP
  • EC2에 사용된 보안 그룹의 그룹 ID

EC2에 사용된 보안 그룹을 RDS의 보안 그룹 규칙에 추가하는 이유는 이렇게 해야 EC2에서 RDS로 접속도 가능하기 때문입니다.

 

인바운드 규칙 유형에서는 MYSQL/Aurora를 선택하시면 자동으로 3306 포트가 선택됩니다.

(저는 여러 명의 IP를 등록해서 양이 많지만 본인만 접근할 경우 본인 ip만 등록해주시면 됩니다)

 

RDS와 개인 PC, EC2 간의 연동 설정은 모두 완료 되었습니다.

 

 

로컬에서 원격 데이터베이스로 붙을 때 GUI 클라이언트를 많이 사용합니다.

MySQL의 대표적인 클라이언트로 Workbench, Sequel Pro(맥 전용) 등이 있습니다. 저는 DBeaver 를 사용하도록 하겠습니다. (툴을 어떤거 쓸 지는 전혀 상관 없습니다)

 

 

AWS RDS 정보 페이지에서 엔드 포인트를 확인합니다. 이 엔드 포인트가 접근 가능한 URL이므로 복사해둡니다.

 

이제  GUI 툴에서 DB 연결을 해봅시다. 

저는 선택 가능한 DB에 MariaDB가 있었지만 없다면 MySQL을 이용해도 됩니다. (MariaDB는 MySQL 기반)

Host 부분에다 방금 전 복사한 RDS의 엔드 포인트를 등록합니다.

 

Username 과 Password 는 각자 설정했던 값을 입력해주시면 됩니다.

 

 

 

 

연결에 성공하였다면 본인이 RDS 생성 시 지정한 database 를 사용합니다. 

use db스키마명;

 

 

데이터베이스가 선택된 상태에서 현재의 character_set, collation 설정을 확인합니다.

show variables like 'c%'

보통 쿼리 결과를 보면 다른 필드들은 모두 utf8이 잘 적용되었는데 

character_set_database, collation_connection 2가지 항목이 latin1로 되어있을 겁니다.

이 2개의 항목이 MariaDB 에서만 RDS 파라미터 그룹으로는 변경이 안되기 때문입니다. 그래서 직접 변경하겠습니다.

ALTER DATABASE 데이터베이스명
CHARACTER SET = 'utf8mb4'
COLLATE = 'utf8mb4_general_ci';

 

 

타임존까지 확인해 봅시다. RDS 파라미터 그룹이 잘 적용되어 한국 시간으로 된 것을 확인하였습니다.

select @@time_zone, now();

 

 

 


2. EC2에서 RDS로 접속해보기

 

 

MySQL 접근 테스트를 위해 MySQL CLI를 설치합니다. 

실제 EC2의 MySQL을 설치해서 쓰는게 아닌, 명령어 라인만 쓰기 위한 설치입니다.

 

리눅스 우분투(데비안) MySQL 클라이언트 설치 

$ sudo apt install mysql-client-core-5.7

 

제대로 깔렸는지 버전 확인

$ mysql -V
mysql  Ver 14.14 Distrib 5.7.30, for Linux (x86_64) using  EditLine wrapper

 

설치가 다 되었으면 GUI를 이용해 로컬에서 접근했듯이 계정, 비밀번호, 호스트 주소를 사용해 RDS에 접속합니다.

$ mysql -uadmin -p -h 엔드포인트입력

 

패스워드를 입력하라는 메시지가 나오면 패스워드까지 입력하면 EC2에서 RDS로 접속되는 것을 확인할 수 있습니다.