Database

[AWS] DataBase

cc_blog 2025. 10. 25. 11:52
[AWS] DataBase
CLOUD COMPUTING · DATABASE

DataBase

클라우드 컴퓨팅을 처음 시작하는 사람을 위한 데이터베이스 핵심 개념 정리. 정의부터 스키마, SQL, RDBMS, 그리고 NoSQL까지.

Category Level Reads Status
AWS · Database 입문 ~ 초급 약 8분 VERIFIED
01 · Definition

Database란?

간단하게, 여러 사람이 공유하고 사용할 목적으로 통합·관리되는 데이터의 집합이다.

여기서 헷갈리기 쉬운 게 하나 있는데, DB 자체는 데이터 덩어리일 뿐이고 이걸 저장·조회·관리해주는 소프트웨어는 따로 있다. 그게 바로 뒤에서 다룰 DBMS다. DB는 명사(결과물), DBMS는 그걸 다루는 도구라고 생각하면 편하다.

02 · Characteristics

Database의 특징

데이터베이스의 특징은 단순하게 아무 데이터나 저장하지 않고, 구조적인 형태를 유지하기 위한 효율적인 방법이 존재한다는 것이다.

통합 데이터

중복까지 다 저장하면 용량 낭비가 발생한다. 중복된 데이터를 통합하여 자료의 중복을 최소화한 데이터 모임을 구성한다.

저장 데이터

데이터베이스도 컴퓨터가 접근할 수 있는 매체에 데이터를 저장한다.

운영 데이터

DB의 주 목적은 조직에서 활용되는 운영 데이터를 다루기 위함이다. 쇼핑몰의 판매량, 재고량이 그 예다.

공유 데이터

여러 사람이 공유하고 사용할 목적으로 통합 관리되는 데이터. DB를 쓰는 근본적인 이유 중 하나다.

03 · Functional Traits

Database의 기능 특징

데이터베이스는 이러한 특수한 특징을 가진 데이터들을 효율적으로 관리하기 위해 다음과 같은 기능을 제공한다.

  • 실시간 접근성 — 사용자의 요구에 신속하고 정확하게 응답이 가능해야 한다.
  • 계속적인 변화 — 삽입, 삭제, 갱신을 통해 항상 최신 데이터로 유지되어야 한다.
  • 동시 공용 — 다수의 사용자가 같은 내용의 데이터를 이용할 수 있어야 한다.
  • 내용에 의한 참조 — 저장된 위치나 주소가 아니라, 사용자가 요구하는 데이터의 내용(값)을 기준으로 데이터를 찾는다.
04 · Motivation

Database 쓰는 이유는?

데이터를 저장하긴 하는데, 데이터 저장은 어디서든 가능한데 왜 DB를 쓰냐?

  • 파일 시스템은 구조화가 안 되어있기 때문에 내용을 찾는 게 불리하다. 사용자의 정보를 파일 시스템에 저장한다면 나중에 찾기 어렵다.
  • 데이터 무결성 문제가 발생한다.
  • 파일 시스템에선 저장 후 되돌아가기가 불가능하지만, 데이터베이스는 롤백 및 백업이 가능하다.
  • 큰 이유는 성능이다. 검색 속도 자체가 파일 시스템보다 몇 배 더 빠르고, 편하다.
05 · Structure

Database 구조

구조 자체는 다르지만 형태는 엑셀과 유사하다. 행과 열로 나누어지는 것.

스키마(Schema)

스키마란 데이터베이스의 구조와 제약 조건에 대한 정의이다. DBMS는 스키마를 참조하여 사용자의 명령어를 수행하며, 3층 구조로 구성되어 있다.

외부 스키마

사용자 관점, 업무상 관련이 있는 데이터 접근

응용 프로그램이 접근하는 데이터베이스를 정의

개념 스키마

설계자 관점, 사용자 전체 집단의 데이터베이스 구조

통합 데이터베이스 구조

내부 스키마

개발자 관점, 데이터베이스의 물리적 저장 구조

데이터 저장 구조, 레코드 구조, 필드 정의, 인덱스 등을 의미

데이터베이스의 기본 구조

id (PK) name age 1Jimin27 2Suho31 3Areum24 ↑ Row (레코드) ↑ Column (열)
users 테이블 예시 — 행(Row)과 열(Column), 그리고 기본 키(PK)
Table

행과 열로 구성된 정렬된 데이터 집합의 모임. 관계형 데이터베이스에서 사용자 데이터를 보유하는 기본 구조.

Column

테이블에서 특정한 단순 자료형을 갖는 일련의 데이터값, 즉 테이블의 각 열.

Row

레코드 또는 튜플로도 불리며, 테이블에서 하나의 단일 구조 데이터 항목.

Index

추가적인 쓰기 작업과 저장 공간을 활용해 검색 속도를 향상시키는 자료구조.

조회 속도는 크게 빨라지지만 공짜는 아니다. INSERT / UPDATE / DELETE가 발생할 때마다 인덱스도 함께 갱신해야 해서 쓰기 성능은 다소 느려질 수 있다.

06 · Data Types

정형 · 반정형 · 비정형 데이터

정형 데이터

  • 미리 정해 놓은 형식과 구조에 따라 저장되도록 구성되어, 고정된 필드에 저장되는 데이터
  • 지정된 행과 열에 데이터가 구별되어 입력되며, RDBMS 테이블 형태로 저장됨

반정형 데이터

  • 데이터의 형식과 구조가 변경될 수 있는 데이터
  • 예: XML, HTML, JSON

비정형 데이터

  • 정의된 구조가 없어 정형화되지 않은 데이터. 예: 동영상, 오디오, 사진
  • 구조가 없어 내용에 대한 질의 처리가 어렵기 때문에, 특징을 추출해 반정형·정형 데이터로 변환하는 전처리 과정이 필요하다.
NOTE 전통적인 RDBMS 테이블은 정형 데이터를 전제로 설계되지만, 실제로는 JSON/BLOB 컬럼으로 반정형·비정형 데이터도 담을 수 있다. 뒤에서 다룰 NoSQL은 애초에 반정형·비정형 데이터를 기본으로 다룬다.
07 · Query Language

SQL(Structured Query Language)이란?

DB에서 우리가 사용하는 명령어 같은 언어다. 문장 마지막에는 항상 ;를 적어야 한다. 예제로 몇 개만 다뤄본다.

데이터베이스 & 테이블 생성

-- 데이터베이스 목록 보기
SHOW DATABASES;

-- DB란 이름의 데이터베이스 생성
CREATE DATABASE DB;

-- DB란 이름의 데이터베이스 선택
USE DB;

-- users 테이블 생성 (id, name, age가 컬럼)
CREATE TABLE users (
    id INT PRIMARY KEY,
    name VARCHAR(50),
    age INT
);

-- 테이블 목록 조회
SHOW TABLES;

테이블 데이터 조회

-- users에서 id 컬럼만 조회
SELECT id FROM users;

-- 나이가 30 이상인 사람의 id 조회
SELECT id FROM users WHERE age >= 30;

-- * 를 쓰면 모든 컬럼 조회
SELECT * FROM users;

데이터 & 테이블 삭제

-- id가 1인 행만 삭제 (테이블 구조는 유지)
DELETE FROM users WHERE id = 1;

-- users 테이블 자체를 삭제 (구조까지 삭제)
DROP TABLE users;
08 · Management System

DBMS(Database Management System)란?

데이터베이스를 관리하는 소프트웨어이다. 우리가 실제 DB에 직접 접근하는 게 아니라, 우리가 쓴 SQL이 DBMS를 통해서 DB에 데이터를 저장시킨다.

사용하는 이유는 데이터의 중복을 최소화하고, 여러 사용자가 데이터를 공유하고 동시에 접근하게 하며, 데이터의 일관성 및 무결성을 유지하기 위함이다.

MySQL · Aurora · PostgreSQL · Oracle 이 대표적인 예시다.

RDBMS

RDB(관계형 데이터베이스)를 관리하는 소프트웨어가 RDBMS다. 관계형 데이터베이스는 서로 관련된 데이터 지점에 대한 접근을 저장 및 제공하는 데이터베이스 유형이며, 데이터 간의 관계는 외래 키(Foreign Key) 등으로 정의한다.

관계형이 중요한 이유

  • 데이터 일관성 및 무결성
  • 데이터 중복 통제
  • 확장성 및 성능
  • 장애 발생 시 회복

AWS의 RDBMS 서비스 — RDS & Aurora

MySQL이나 PostgreSQL 같은 RDBMS를 직접 서버에 설치하고 운영하려면 백업, 패치, 장애 복구까지 전부 사람이 관리해야 한다. AWS는 이 과정을 대신 처리해주는 완전관리형(Managed) RDBMS 서비스를 제공하는데, 그게 바로 RDS와 Aurora다.

Amazon RDS

MySQL, PostgreSQL, MariaDB, Oracle, SQL Server 등 기존 RDBMS 엔진을 그대로 올려서 쓰는 완전관리형 서비스. 프로비저닝, 백업, 패치, 장애 조치(Failover)를 AWS가 자동으로 처리해준다.

Amazon Aurora

AWS가 자체 개발한 클라우드 전용 RDBMS로, MySQL·PostgreSQL과 호환된다. 스토리지와 컴퓨팅이 분리된 구조 덕분에 오픈소스 MySQL 대비 최대 5배, PostgreSQL 대비 최대 3배 빠른 처리량을 낸다고 AWS는 설명한다. RDS의 한 종류(엔진 옵션)로 제공된다.

RDS는 여러 RDBMS 엔진을 관리형으로 돌릴 수 있는 서비스의 이름이고, Aurora는 그 RDS 위에서 선택할 수 있는 AWS 자체 고성능 엔진이라고 이해하면 된다.

09 · Beyond SQL

NoSQL이란?

NoSQL(Not Only SQL)은 고정된 테이블 스키마와 행/열 구조를 따르지 않는 데이터베이스를 통칭한다. 데이터양이 폭발적으로 늘어나고 빠른 확장이 필요해지면서 RDBMS의 대안으로 많이 쓰이게 됐다.

구분RDBMSNoSQL
데이터 구조고정된 스키마 (테이블/행/열)유연한 스키마 (문서, 키-값, 그래프 등)
확장 방식수직 확장 (Scale-up)수평 확장 (Scale-out)
데이터 관계JOIN으로 여러 테이블 연결대부분 JOIN 없이 한 곳에 저장
일관성ACID (강한 일관성)BASE (최종적 일관성) 중심
적합한 데이터정형 데이터, 복잡한 관계반정형·비정형, 자주 바뀌는 스키마

NoSQL의 대표 유형

DOCUMENT

문서형

JSON과 비슷한 문서 단위로 데이터를 저장한다.

MongoDB · Amazon DocumentDB
KEY-VALUE

키-값

키와 값의 쌍으로 저장, 조회 속도가 매우 빠르다.

Redis · Amazon DynamoDB
WIDE-COLUMN

컬럼 기반

컬럼 단위 저장으로 대용량 집계·분석에 유리하다.

Cassandra · HBase
GRAPH

그래프

노드와 엣지로 데이터 간의 관계 자체를 표현한다.

Neo4j · Amazon Neptune

AWS의 NoSQL 서비스 — DynamoDB

Amazon DynamoDB는 AWS가 만든 완전관리형 키-값 / 문서형 NoSQL 데이터베이스다. RDS·Aurora가 "관계형 세계의 관리형 서비스"라면, DynamoDB는 그 반대편에 있는 "NoSQL 세계의 관리형 서비스"라고 보면 된다.

서버리스

서버 프로비저닝이나 패치가 필요 없다. 트래픽에 따라 자동으로 확장·축소되며, 사용한 만큼 과금되는 온디맨드 모드도 지원한다.

일관된 응답 속도

테이블 크기와 관계없이 한 자릿수 밀리초(single-digit millisecond) 수준의 응답 속도를 유지하도록 설계되어 있다.

데이터 모델

기본은 키-값 구조지만, 항목(item) 안에 중첩된 JSON과 유사한 속성도 담을 수 있어 문서형 DB처럼도 쓸 수 있다.

언제 쓰나

게임 리더보드, 세션 저장소, 쇼핑몰 장바구니처럼 조회 패턴이 단순하고 트래픽이 크게 요동치는 서비스에 적합하다. 복잡한 JOIN이 필요한 데이터라면 RDS/Aurora 쪽이 더 맞다.

RDBMS와 NoSQL은 우열의 문제가 아니라 트레이드오프다. 강한 일관성과 복잡한 관계 처리가 중요하면 RDS·Aurora 같은 RDBMS를, 유연한 스키마와 대규모 확장성이 우선이면 DynamoDB 같은 NoSQL을 고르면 된다.

CLOUD COMPUTING BLOG AWS · DATABASE · NOSQL