읽기 전

  • 불필요한 코드나 잘못 작성된 내용에 대한 지적은 언제나 환영합니다.
  • 개인적으로 사용해보면서 배운 점을 정리한 글입니다.

사이드 프로젝트에서 DynamoDB를 RDS로 옮기자는 의견이 있어서 AWS RDS DB 인스턴스를 생성하고 외부에서 접근하는 방법까지 정리하려고 합니다. AWS 정리글은 뭔가 개발이 아니라 회사가 배포한 모듈을 리뷰하는 느낌이라 지양하려 하지만 EC2, Lambda, RDS는 워낙 AWS의 근본 서비스라 생각해 작성하기로 결정했습니다.

RDS란?

RDS는 AWS가 지원하는 클라우드 RDBMS 서비스로 No-SQL에 DynamoDB가 있다면 SQL은 RDS가 있다 정도로 이해하면 된다. 비용정책은 사용량으로 책정되는 DynamoDB와는 달리 EC2처럼 활성화 시간으로 부과하고 있다.

RDS 데이터베이스 생성

엔진 선택

먼저 RDS는 여러 종류의 엔진 옵션을 제공한다. 많은 사람들이 MySQL을 사용하나 이번에는 속도는 조금 느리더라도 관리가 편한 PostgreSQL을 사용하기로 했다. 아래 그림처럼 엔진을 선택하고 넘어가자.

AWS_Create_RDS_001

템플릿 설정

프리티어가 아니면 생각보다 프로비저닝 유닛이 커서 예상 부과 금액이 상당히 올라감을 볼 수 있다. 실 서비스가 아니라 어디까지나 사이드 프로젝트이므로 프리티어를 선택했다.

AWS_Create_RDS_002

데이터베이스 설정

데이터베이스 이름을 설정한 뒤 해당 DB의 유저네임, 암호를 작성한다. 이후 유저네이모가 비밀번호는 외부에서 RDS DB 인스턴스에 접근할 때 필요하므로 반드시 기억해둔다.

AWS_Create_RDS_003

연결 설정

AWS의 모든 인스턴스는 내부던 외부던 상호작용을 위해 VPC를 설정한다. 이 경우 기존에 생성되어 있던 기본 VPC를 선택하였고 외부에서도 접근이 가능하게끔 설정하기로 했으므로 퍼블릭 액세스 가능 여부도 체크해준다.

AWS_Create_RDS_004

데이터베이스 인증

외부에서 DB에 접근하고자 할 때 인증을 어떻게 할 것인지 옵션을 선택해야 한다. 2, 3번 옵션이 안전하겠지만 현업이 아니고 단순 생성 목적이기에 암호인증으로 결정했다.

AWS_Create_RDS_005

이 과정을 모두 마치면 새로운 RDS DB 인스턴스가 생성되었음을 확인할 수 있다.

AWS_Create_RDS_006

RDS DB와의 외부 연결

인바운드 규칙 편집

외부에서 RDS DB 인스턴스로 접근하기 위해 인바운드 규칙을 정의해야 한다. AWS Consol에서는 자신의 IP를 등록하게끔 할 수 있으며 추가하는 규칙의 유형에 PostgreSQL을 선택하면 포트까지 자동으로 설정해준다.

AWS_Create_RDS_007

AWS_Create_RDS_008

PostgreSQL 설치

로컬 머신에 PostgreSQL을 설치하지 않았다면 설치를 진행한다. 각자의 로컬머신 시스템 환경에 적당히 맞춰서 다운로드한 뒤 실행한다.

AWS_Create_RDS_009

AWS_Create_RDS_010

포트는 기본적으로 5432포트로 지정되어 있다. AWS의 인바운드 규칙도 해당포트로 설정해뒀기에 그대로 둔다.

AWS_Create_RDS_011

설치 이후 RDS DB 인스턴스로의 연결을 위해 PostgreSQL 에디터를 열어야 한다. 개발자는 CLI 환경에서 작업해야 간지가 난다고들 하지만 지원이 잘 되어 있는 GUI 환경이 존재한다면 굳이 거절할 필요는 없다. 프로그램 이름은 pgAdmin이다. PostgreSQL 설치 시 함께 진행할 수 있으므로 검색 후 실행한다.

AWS_Create_RDS_012

로컬머신에서 AWS RDS DB 연결

pgAdmin을 실행하면 좌측 상단에 서버 목록이 보인다. 여기에 우클릭 - Create - Server...를 선택해 연결할 DB 인스턴스 정보를 입력한다.

AWS_Create_RDS_013

먼저 표시할 DB 이름을 작성한 뒤 [Connection] 탭에 가서 RDS DB 인스턴스의 Endpoint url을 채워 넣는다. 하단에 [Username]과 [Password] 항목에 이전 RDS DB 인스턴스 생성 시 입력했던 유저네임과 암호를 기억해내서 작성한다.

AWS_Create_RDS_014

Endpoint url은 AWS RDS DB 인스턴스 정보에서 확인할 수 있다.

AWS_Create_RDS_015

정보를 입력한 뒤 작업을 끝내면 좌측 상단에 DB가 연결되었음을 확인할 수 있다.

AWS_Create_RDS_016

PostgreSQL 테이블 생성

보통 SQL문을 작성하지만 pgAdmin은 강력한 GUI 도구를 지원하므로 고맙게 사용하자. 먼저 테이블을 생성하기 전 schema에 우클릭하여 schema를 생성한다.

AWS_Create_RDS_017

그럼 좌측에 아래 그림과 같이 schema가 추가된다.

AWS_Create_RDS_018

Table 항목에 우클릭하여 생성하면 작업 화면이 팝업된다.

AWS_Create_RDS_019

아래 그림처럼 column을 작성한다. smallint는 2byte 정수(int는 4byte 정수임을 기억하자.), text는 대용량 텍스트를 저장하는 테이터 타입이다.

AWS_Create_RDS_020

이후 SQL 탭을 클릭 시 작업했던 대로 진행하면 어떤 SQL문에 실행되는 지 확인할 수 있다.

AWS_Create_RDS_021

작업이 완료되면 입력했던 대로 테이블과 컬럼이 생성됨을 확인할 수 있다.

AWS_Create_RDS_022

+ Recent posts