[AWS] RDS와 EC2 연동하기

이태연·2022년 3월 28일
4
post-thumbnail

이번 포스팅에서는 RDS를 생성하고 EC2와 연결해보도록 하겠습니다.
EC2와 관련된 포스팅은 해당 포스팅을 참고해주시면 감사하겠습니다.

RDS란?

RDS란 Relational Database Service의 약자로 AWS 클라우드에서 관계형 데이터베이스를 간편하게 설정,운영,확장 가능하도록 지원하는 웹 서비스입니다.

RDS와 EC2 연동이유

생각해보면 EC2에 DB를 설치해서 사용해도 되는데 왜 RDS와 연동해서 사용하는 걸까요? 물론 EC2에 DB를 설치해서 사용해도 당장에 문제는 없지만 서비스를 운영하다 서버에 문제가 생긴다면 서비스를 중단해야 되는 경우도 생길 수 있습니다.

하지만 RDS를 사용하면 하나의 서버가 제대로 작동하지 않을 경우 즉시 다른 서버로 교체하여 서비스가 중단되는 일이 없고 접속자의 수에 따라 서버를 늘리고 줄이는 과정에서도 서버와 DB가 분리되어 있기 때문에 DB에 손상이 일어나지 않습니다.

RDS와 EC2 연동하기

1. 연동할 EC2 정보 파악하기

EC2/보안그룹/서브넷그룹/RDS를 모두 같은 네트워크 안에서 사용해야 되기 때문에 해당 정보를 파악하고 있어야 합니다.


빨간네모로 표시한 부분의 정보를 파악하는게 중요합니다.

2. RDS 보안그룹 생성하기

다음으로는 RDS에서 사용할 보안그룹을 생성해보겠습니다.
EC2의 왼쪽바에서 네트워크 및 보안 -> 보안그룹 -> 보안 그룹 생성을 눌러주세요.

보안그룹 이름과 설명을 작성하고 VPC는 EC2에서 사용하고 있는 VPC로 선택해주세요.

인바운드 규칙에서
저는 MYSQL을 사용할 예정이라서 유형으로 MYSQL/Aurora를 선택했습니다.
포트번호는 3306 소스는 EC2에서 사용하고 있는 보안그룹과 같은 걸 선택해주세요.

3.DB서브넷 그룹 생성하기

RDS 왼쪽바 에서 서브넷 그룹 -> DB 서브넷 그룹 생성을 눌러주세요.
*서브넷은 VPC의 IP 주소를 나누어 리소스가 배치되는 물리적인 주소 범위를 뜻합니다.

이름과 설명 입력 후 VPC는 EC2에서 사용하고 있는 VPC로 선택해주세요.

그런 다음 여기에 속해있는 서브넷을 모두 추가해 주세요.

*각 가용 영역은 기본적으로 서로 격리되어 있지만, 한 리전의 가용 영역들은 낮은 수준의 지연 시간을 가진 링크를 통해 연결되어 있습니다. 복수의 가용 영역에 걸쳐 인스턴스를 배포했을 때 하나의 인스턴스에 장애가 발생한 경우를 대비하여, 다른 가용 영역의 인스턴스가 장애가 발생한 인스턴스 관련 요청을 처리할 수 있도록 애플리케이션을 설계할 수 있습니다.- 참고블로그

4. 파라미터 그룹 생성하기

다음으로 파라미터 그룹을 생성하겠습니다.
*파라미터 그룹이란?
파라미터 그룹이란 DB 옵션을 설정하기 위해 AWS 에서 제공하는 기능입니다. 파라미터 그룹을 생성하면 그룹 DB 버전에 맞는 프로퍼티 값들을 제공합니다.

RDS 왼쪽바 에서 파라미터 그룹 -> 파라미터 그룹 생성을 눌러주세요.

설정값을 선택/입력 후 생성버튼을 누릅니다.

그러면 다음과 같이 파라미터그룹이 생성된 것을 확인할 수 있습니다.
그럼 이제 편집을 해야하니 생성된 파라미터 그룹을 누르고 파라미터 편집을 눌러주세요.

char를 검색한 후 모든 값을 utf8mb4로 바꿔주세요.(boolean 타입 제외)
*MYSQL 8.0부터는 기본 캐릭터셋이 utf8mb4로 변경되어서 사실 캐릭터셋의 경우 편집하지 않아도 되지만 참고용으로 편집하였습니다.

그런다음 collation 검색 후 모든 값을 utf8mb4_general_ci로 바꿔주세요.
*MYSQL 8.0의 경우 기본 collation utf8mb4_0900_ai_ci로 변경되었는데 저의 경우 이 블로그를 참고하여 utf8mb4_gerenal_ci로 변경하였습니다.

마지막으로 zone이라고 검색 후 time_zone을 Asia/Seoul로 변경해주세요.

5. DB생성

이제 DB만 생성하면 됩니다.
RDS 왼쪽바에서 데이터베이스 -> 데이터베이스 생성을 눌러주세요.
그리고 본인이 원하는 설정 값을 선택하면 됩니다.
저의 경우 아래 그림과 같이 선택하였습니다.






VPC의 경우 EC2와 동일한 VPC로, 서브넷 그룹과 VPC보안 그룹은 위에서 만든 서브넷 그룹과 보안그룹을 선택해주세요. 다 선택한 다음 데이터베이스 생성을 누르면 완료됩니다.

6. EC2로 원격접속



생성된 데이터베이스를 눌러 엔드포인트를 확인합니다.
그리고 EC2 서버에서 다음 명령어를 치면 RDS와 연동이 된 걸 확인할 수 있습니다.
mysql -u [계정] -p -h [DB엔드포인트]

본인의 어플리케이션과 연결하려면 mysql host를 엔드포인트로 바꿔주면됩니다.


이 포스팅은 해당 블로그를 참고하여 작성하였습니다. 도움을 주셔서 감사합니다.

profile
주니어 백엔드 웹 개발자입니다.

0개의 댓글