이 글은 위 글에서부터 이어집니다.
생성한 RDS 를 어떻게 세팅하면 EC2 에서 해당 RDS 를 데이터베이스로 이용이 가능할까요.
최종적으로는 MySQL 로 구성된 DB를 웹상에서 PhpMyAdmin 으로 접근하는 것이 목표입니다.
차근차근 진행하겠습니다.
이전에 저는 RDS 인스턴스를 생성했습니다.
프리 티어로 생성했고, 엔진은 MySQL을 선택했죠.
위 화면은 RDS 에서 데이터베이스 대쉬보드입니다.
저는 여러 DB 인스턴스가 존재하는데, 이 중에서 제가 색으로 표시한 인스턴스에 집중하면 됩니다.
역할은 인스턴스, 엔진은 MySQL 로 설정이 되어 있습니다.
해당 인스턴스를 클릭해서 설정창으로 이동하겠습니다.
이동한 설정창입니다.
여러 옵션들을 설정할 수가 있습니다.
기본적으로 포트는 3306으로 설정된 것을 확인할 수 있습니다.
여기에서 VPC 보안 그룹 부분을 확인해줍시다. 기본적으로 그룹 이름이 있습니다.
이제 대략적으로 다음과 같은 단계를 거칠 것입니다.
VPC 보안 그룹 설정 확인:
EC2 인스턴스의 보안 그룹 확인:
EC2 인스턴스에 phpMyAdmin 설치:
phpMyAdmin을 통한 RDS 연결 설정:
config.inc.php)에서 RDS 인스턴스의 엔드포인트, 사용자 이름, 비밀번호를 사용하여 데이터베이스 연결을 설정합니다.phpMyAdmin 접속 및 데이터베이스 관리:
테스트:
phpMyAdmin 부분은 차후에 글에서 진행하도록 하고…
이미 phpMyAdmin 을 서버에 설치했다는 가정 하에..
지금은 우선 설정들의 확인만 한 번 해보겠습니다.
포트 범위가 여러 개 인바운드 규칙에 설정이 되어 있습니다.
여기서 80 ~ 22까지는 웹사이트 발행과 관련되어 있는 쪽이고 RDS 데이터베이스와 관련된 3306포트가 중요합니다.
지금은 포트가 ec2-rds-1 이라는 보안그룹에 할당이 되어 있죠? 이걸 기억해줍시다.
중요한 건, 3306 포트를 열어줘야 RDS와 EC2 연결이 문제가 없다는 뜻입니다.
위 구조를 이해하셨다면 RDS 에서 보안 그룹을 하나 생성할 겁니다.
이 보안 그룹은 마찬가지로 RDS 에서도 3306 포트를 열어서 EC2 와 연결이 되게끔 하기 위한 보안 그룹입니다.
보안 그룹 설정을 위해서 다음과 같은 단계를 거칩니다.
AWS Management Console에 로그인하고 RDS 대시보드로 이동합니다.
RDS 인스턴스 목록에서 해당 RDS 인스턴스를 선택합니다.
인스턴스 세부 정보 아래에서 ‘Connectivity & security’ 섹션을 찾아서 해당하는 VPC 보안 그룹을 클릭합니다. 이것은 새 탭이나 새 창에서 EC2 보안 그룹 관리 섹션으로 이동하게 할 것입니다.
인바운드 규칙 탭으로 이동한 다음 ‘Edit inbound rules’ 또는 ‘Edit rules’ 버튼을 클릭합니다.
새 규칙 추가:
203.0.113.0/24)sg-xxxxxxxxxxxx)변경 사항 저장: 설정을 검토한 후 ‘Save rules’ 버튼을 클릭하여 변경 사항을 저장합니다.
즉 내가 생성한 RDS 인스턴스의 보안그룹에 들어가고, 그 내부에서 인바운드 규칙을 위와 같이 설정하면 된다는 뜻입니다.
제가 노란색으로 표시한 부분이 있죠?
그곳에 아까 EC2 가 3306 포트로 잡고 있던 보안 그룹인 ec2-rds-1 을 검색해서 그걸 설정하면 됩니다.
이후 규칙을 저장하면 해당 RDS 가 EC2 와 연결이 될 수 있습니다.
MySQL 엔진으로 만들어진 제 RDS로 연결이 가능해야겠죠?
이 연결은 PhpMyAdmin 을 통해 웹에서 연결을 할 겁니다.
이를 위해 SSH 로 EC2 인스턴스에 접속을 합니다.
그리고 다음의 리눅스 명령어로 phpMyAdmin 이 설치된 폴더로 이동합시다.
반드시 phpMyAdmin 이 설치된 폴더 위치를 확인하고 그곳으로 이동하세요.
cd phpMyAdmin
그리고 아래 명령어를 입력해서 해당 phpMyAdmin 의 다양한 설정이 가능한 편집기로 이동하겠습니다.
sudo nano config.inc.php
/* Authentication type */
$i++;
$cfg['Servers'][$i]['host'] = '새-RDS-엔드포인트'; // RDS 인스턴스의 엔드포인트
$cfg['Servers'][$i]['port'] = '3306'; // RDS 인스턴스의 MySQL 포트
$cfg['Servers'][$i]['user'] = '사용자-이름'; // RDS 데이터베이스 사용자 이름
$cfg['Servers'][$i]['password'] = '사용자-비밀번호'; // RDS 데이터베이스 비밀번호
$cfg['Servers'][$i]['auth_type'] = 'config';
위와 같이 각 정보들을 설정해줍니다.
알맞는 엔드포인트 사용자이름을 넣어주면 됩니다.
설정을 맞췄으면 기존 PhpMyAdmin 주소로 이동합시다.
여기에서 우리가 방금 설정한 엔드포인트 주소로 서버를 선택하고
그에 해당하는 사용자명, 암호를 입력하면 DB로 이동이 가능합니다!
사실 저는 RDS 데이터베이스를 미리 만들어서 사용하고 있다가..
요금이 너무 부담이 되는 바람에, 적당하게 저렴한 DB를 새로 만들고
해당 DB를 다시금 phpMyAdmin 에 연결 시켰습니다.
여러분도 한 번에 세팅을 정확히 하시는 게 두 번 손이 가지 않을 것 같습니다..