RDS
AWS에서 지원하는 RDB로, 기본적인 DB 형태를 가지고 있다. DB의 인스턴스는 클라우드에서 실행하는 격리된 환경이며, 여러 사용자가 만든 DB가 포함될 수 있다. 액세스할 때는 독립 실행형 DB에 엑세스할 때 사용하는 도구 및 애플리케이션을 사용한다.
특징
- AWS 명령줄 도구, Amazon RDS API 작업 또는 AWS Management Console을 사용해 간단히 DB 인스턴스 제작 및 수정 가능
- 직접 시스템 로그인 불가능
- 서버리스 시스템이 아님

RDS는 main이 되는 Primary와 데이터 손실 방지용 StandBy 2개로 구성이 되어 있으며, 그 내부에는 인스턴스(서버)와 실질적으로 데이터를 저장하는 EBS로 이루어져 있다.
RDS 이용해보기

AWS에 로그인 후 RDS를 검색해 대시보드로 진입한다. 이후 메뉴바의 '데이터베이스'를 클릭한다.

데이터베이스 생성 클릭

위와 같이 DB 엔진 옵션부터 버전, 템플릿, 스토리지 등을 선택할 수 있다. 옵션 중 MSSQL과 ORACLE의 경우 별도의 라이센스 비용이 발생할 수 있다. 프리 티어로 이용할 경우 MySQL을 선택할 수 있다.
거의 모든 설정을 기본값으로 생성했으나, '퍼블릭 액세스'에 대해서만 '예'로 지정했다. 외부에서도 연결이 잘 되는지 확인하기 위해서다. 이 항목을 '아니오'로 선택하면 퍼블릭 IP 주소를 생성하지 않아 VPC 내부의 EC2에서만 연결 가능하다.
* VPC 설정사항
MySQL 또는 Aurora 선택 후 DB 연결을 하기 위해서는 VPC에서 인바운드 규칙을 추가로 설정해주어야 한다.
DB에 연결한 보안 그룹으로 이동해 MySQL 및 3306 포트를 확인한다. (DB 상세화면에서 VPC 보안 그룹 링크를 눌러 접속해도 된다.)

위처럼 MYSQL/Aurora, TCP, 3306에 해당하는 규칙이 없다면 우측 상단 '인바운드 규칙 편집'을 눌러 규칙을 추가해야 한다.

유형을 선택하면 프로토콜과 포트 범위가 자동으로 지정되며, 소스에는 외부에서 쉽게 연결할 수 있도록 0.0.0.0/0을 우선 선택한다. (실제 서비스에서는 IP를 한정시킨다.)

생성이 완료되었다면 좌측하단에 엔드포인트 주소가 노출될 것이다. 이 주소를 통해 DB에 접속할 수 있다.
Workbench로 RDS 연결하기
MySQL DB를 연결하는 대표적인 툴인 Workbench로 RDS를 연결해보려고 한다. 설치 링크는 아래와 같다.
https://dev.mysql.com/downloads/workbench/
MySQL :: Download MySQL Workbench
dev.mysql.com

Recommended Download에 속지 말고 Other Downloads 아래에 있는 설치 파일을 다운로드 받아야 한다..!

MySQL Connections 오른쪽에 있는 '+' 버튼을 눌러 연결을 시도한다.

그 다음 파라미터를 채워주면 된다.
- Hostname: RDS 상세 화면에서 확인할 수 있는 엔드포인트 주소
- Username, Password: 위에서 DB 생성시 설정한 ID/PW, PW은 'Store in Vault' 눌러 입력
- Connection name: 원하는대로 지정

그런데, 필자는 위와 같이 원인을 알 수 없는 에러가 자꾸만 노출돼 그냥 DBeaver를 사용했다...
DBeaver에 대해서 알아보려면, Postgres 컨테이너 추가해 DB 접속하기를, DBeaver에 AWS RDS를 연결하는 방법은 https://velog.io/@shawnhansh/AWS-RDS-DBeaver에-연결하기를 읽어보길 바란다.
스냅샷
DB를 백업하는 용도라고 생각하면 된다. 해당 시점의 상태를 기억해 그 시점으로 되돌릴 수 있다. 기본적으로 자동 생성되지만 수동으로 스냅샷을 생성할 수도 있다.

DocumentDB
DocumentDB는 MongoDB API를 사용한 문서 전용 데이터베이스이다. 저장 형식은 JSON으로 이뤄져 있으며, AWS에는 스토리지 및 컴퓨팅이 분리되어 각각 독립적으로 조정된다는 점이 특징이다.
NoSQL DB이므로 RDB에 비해 읽기 요청 처리가 굉장히 빠르며 인덱싱이 유연하다는 것도 장점이다. 지연 시간이 짧은 읽기 전용 복제복을 몇 분 내 최대 15개까지 추가한다. AWS DocumentDB는 99.99%의 가용성을 위해 설계되었고 6개의 데이터 복사본을 3개의 AWS 가용 영역(AZ)에 복제한다고 한다.

AWS에서 DocumentDB를 만드는 법은 간단하다. 클러스터를 생성한 뒤, 그 안에 데이터베이스를 생성하는 방식이다. 하지만 여기서 RDB와 다른 점이 존재한다.

MongoDB 기반으로 만들어진 '문서형 DB'이기 때문에, RDB에서 Table, row, column이라고 불렸던 것들이 Collection, document, field라고 불린다. 물론 생긴 모습도 다르다. 하나의 document는 하나의 json이라고 볼 수 있고, json 내 key에 해당하는 것들이 RDB의 column에 해당한다.
AWS에서 생성한 DocumentDB는 MongoDB에 연결해서도 사용할 수 있다.
DynamoDB
DynamoDB는 완전관리형 Key-Value 기반 NoSQL DB 서비스로, Auto-Scailing을 통해 용량을 따로 설정하지 않아도 되는 특징이 있다.
유휴 시 암호화를 제공해 중요 데이터 보호 및 운영 부담/복잡성을 제거하고, 원하는 양의 데이터를 저장/검색/처리할 수 있는 테이블을 만들 수 있다. 테이블 생성 시 스키마를 따로 생성하지 않아도 된다는 장점도 있다.
그러나 특정 리전에서만 사용 가능하며 다소 비용이 비싸다는 단점이 있다. 무료로 제공되는 스토리지가 없기도 하다.

테이블 생성은 매우 간단하다. 파티션 키와 정렬 키 등을 입력해 설정한다.
'Minding's Programming > AWS' 카테고리의 다른 글
[AWS] CloudFront (1) | 2024.10.24 |
---|---|
[AWS] Certification Manager (1) | 2024.10.24 |
[AWS] Route53 (1) | 2024.10.24 |
[AWS/Elastic Beanstalk] Elastic Beanstalk (0) | 2024.10.23 |
[AWS/EC2] EC2로 서버 생성 및 연결하는 방법 (1) | 2024.10.23 |