[AWS]/AWS 기타

[AWS] Ubuntu EC2에서 RDS서버에 접속하기

SAMSUNG CLOUD-OKY 2021. 8. 24. 12:47
반응형

 

EC2와 RDS Instance를 론칭하였다면,

VPC내의 EC2에서 RDS에 접근할 수 있도록 해 주어야,

작업을 하는 것이 용이한데요.

오늘은 EC2에서 MYSQL이 설치된 RDS에 접근하는 방법에 대해서 정리해 보겠습니다.

 

1. MYSQL CLIENT 설치

 

EC2(Ubuntu)에서 MySQL서버에 접속해서 데이터를 보기위해서는,

MySQL 클라이언트가 설치되어 있어야 하는데요.

먼저 Ubuntu에서 MySQL Client를 설치해 주겠습니다.

 

설치를 하기전에 apt-get update는 좋은 습관이지요.

sudo apt-get update;

 

이제 mysql-client를 설치할 차례네요.

sudo apt-get install mysql-client

 

이제 ec2에서 설치할 것은 끝났구요.

ec2에서 inbound로 mysql의 포트로 접속할 수 있도록 Security Group을 설정하도록 하겠습니다.

 

2. Security Group수정하기

 

위에서 정리한 대로,  MYSQL의 접속 포트는 3306입니다.

그런데, EC2의 Security Group에 3306포트를 열어주지 않는다면,

접속을 할 수 없습니다.

마찬가지로, RDS에서 EC2에서 오는 접속을 보안그룹에서 허용하지 않으면 접속할 수 없는 것 이구요.

그래서 각각의 보안그룹에 대해서 설정하도록 하겠습니다.

 

2-1. EC2 보안그룹 설정하기

Services>EC2 에 먼저 들어갑니다.

좌측 메뉴의 Network & Security메뉴에서 Security Groups를 선택해 줍니다.

이제 현재 EC2에 적용된 Security Groups를 선택해 줍니다.

 

 

 

 

아래와 같이, 나오는 화면의 우측상단의 edit Inbound rulse를 클릭해 줍니다.

 

 

Edit버튼을 눌러서 나오는 화면에서, 

우측 하단의, Add Rule버튼을 눌러준 후에, MYSQL/Aurora를 선택해 줍니다.

그럼 자동으로 mysql의 기본 포트인 3306이 잡힙니다.

(mysql생성시 이것을 수정하였다면, 그것에 맞게 바꾸어 주어야 겠지요.)

 

우측 하단의 save rules를 선택하면 이제 EC2에서 설정해야 하는 것은 끝났습니다.

 

 

 

2-2. RDS 보안그룹 설정하기

위에서 EC2의 보안그룹은 설정하였으니, RDS의 보안그룹도 설정해 주도록 하겠습니다.

그 전에, 한가지 알아야 할 것이 EC2의 보안 그룹이름 혹은 ID입니다.

EC2인스턴스로 가서 해당 보안그룹의 이름 혹은 ID를 알아둡니다.

 

RDS의 보안그룹으로 들어가서,

우측상단의 Edit inbound rules를 클릭해 준다음,

Type은 MYSQL그리고, Source를 Security Groups중 EC2의 보안그룹을 선택해 줍니다.

혹은 위에서 알아둔 이름 혹은 ID로도 검색가능합니다.

 

 

 

 

이제 위의 사항을 저장하면 EC2에서 DB에 접속할 준비가 된 것 입니다.

 

 

3. DB에 접속하기

 

이제 해야 할 것은 EC2 에서 RDS에 접속해야할 endpoint를 알아오는 것 입니다.

이것은 콘솔에서 RDS를 선택후 메뉴에서 Databases를 선택후,

나오는 인스턴스 중 접속하고자 하는 인스턴스를 누르면,

아래와 같이 나오는 것을 알 수 있는데요.

 

 

이제 위에서 설치한 MYSQL Client를 이용해서 접속해 보면 되는데요.

mysql클라이언트에는 다음과 같이 입력해주면,

비밀번호를 입력하라는 화면이 나오고 입력하면 접속이 되는데요.

mysql -h <호스트 엔드포인트> -u <유저이름> -p

 

아래와 같이 MYSQL클라이언트인 MySQL monitor에 접속된 것을 확인할 수 있습니다.

 

 

EC2에서 MYSQL RDS에 접근하는 것을 방법에 대해서 알아보았습니다.

남은 것은, NodeJS등의 App서버를 통해서, 데이터에 접근하는 코드를 사용하기만 하면 되겠습니다.

 

 

 

 

참조

https://developer88.tistory.com/303

반응형