Post

클라우드 환경에서의 데이터베이스

데이터베이스의 기본 개념부터 SQL 문법, 제약 조건, 무결성, 트랜잭션, 인덱스 최적화, RDS와 클라우드에서의 운영 방식까지 정리

클라우드 환경에서의 데이터베이스

데이터베이스(Database)란?

데이터베이스는 데이터를 체계적으로 저장하고 관리하며, 효율적으로 검색할 수 있도록 구성된 시스템입니다. 클라우드 시대에는 Amazon RDS, Aurora, DynamoDB 같은 관리형 데이터베이스로 운영됩니다.


주요 용어 정리

용어설명
DBMS데이터베이스를 관리하는 소프트웨어 (MySQL, PostgreSQL 등)
Table데이터를 저장하는 구조화된 공간
Row / Column각각 하나의 데이터 레코드 / 속성
Primary Key각 행을 유일하게 식별하는 열
QuerySQL로 작성한 데이터 조작 명령

관계형 vs 비관계형 데이터베이스

관계형 데이터베이스 (RDBMS)

  • 정형화된 스키마, 테이블 기반 저장
  • SQL 사용, ACID 보장
  • ERP, 금융, 전통 시스템에 적합
1
SELECT * FROM users WHERE email = 'test@example.com';

NoSQL (비관계형)

  • JSON, 키-값, 그래프 등 다양한 구조
  • 유연한 스키마, 수평 확장 용이
  • MongoDB, DynamoDB, Redis 등
유형예시
키-값Redis
문서형MongoDB
컬럼형Cassandra
그래프형Neo4j

RDBMS vs NoSQL 비교

항목RDBMSNoSQL
스키마정형유연
확장수직 확장수평 확장
트랜잭션ACID 보장대부분 Eventually Consistent
적합 사례정형 데이터로그, IoT, 이벤트 처리

클라우드 DB 운영 방식

Managed DB (RDS, Aurora)

  • 백업, 패치, 장애 복구 등 자동화
  • 고가용성 구성 가능 (Multi-AZ)
  • 성능 지표, 모니터링, 보안 설정 포함

Serverless DB (DynamoDB, Aurora Serverless)

  • 트래픽에 따라 자동 확장/축소
  • 사용량 기반 과금
  • 이벤트 기반 아키텍처에 적합

SQL 기본 문법

1
2
3
4
5
6
7
8
-- 조회
SELECT * FROM users;
-- 삽입
INSERT INTO users (name) VALUES ('Alice');
-- 수정
UPDATE users SET name = 'Bob' WHERE id = 1;
-- 삭제
DELETE FROM users WHERE id = 1;

스키마 & 관계 설계

  • 스키마는 데이터베이스의 구조 설계도
  • 엔티티(테이블), 속성, 관계로 구성
  • 1:1, 1:N, N:M 관계 고려하여 설계
1
2
3
4
CREATE TABLE orders (
  id INT PRIMARY KEY,
  user_id INT REFERENCES users(id)
);

데이터 무결성과 제약조건

제약조건설명
PRIMARY KEY고유 식별자
FOREIGN KEY참조 무결성 보장
UNIQUE중복 불가
NOT NULLNULL 금지
CHECK값 조건 제한
DEFAULT기본값 지정

무결성: 데이터가 정확하고 일관되도록 유지하는 원칙


트랜잭션과 동시성 제어

트랜잭션(ACID)

  • 원자성, 일관성, 격리성, 지속성

명령어

1
2
3
4
BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;

격리 수준

수준설명
READ UNCOMMITTEDDirty Read 허용
READ COMMITTED커밋된 데이터만 읽음
REPEATABLE READ반복 읽기 보장
SERIALIZABLE가장 높은 고립 수준

동시성 제어: Lock 사용, 격리 수준 조절


인덱스와 성능 최적화

인덱스란?

  • WHERE 조건, JOIN, ORDER BY 속도 향상을 위한 구조
  • 책의 목차처럼 원하는 데이터만 빠르게 탐색

인덱스 유형

유형설명
B-Tree기본 인덱스 구조
UNIQUE중복 방지
복합 인덱스여러 컬럼 묶음
Full-text자연어 검색용
Hash키 기반 탐색

생성 예시

1
CREATE INDEX idx_email ON users(email);

EXPLAIN으로 실행 계획 확인


ERD와 실습 예시

  • users, products, orders, order_items 테이블 구성
  • N:M 관계 → 조인 테이블 사용
1
2
3
4
5
CREATE TABLE order_items (
  id SERIAL PRIMARY KEY,
  order_id INT REFERENCES orders(id),
  product_id INT REFERENCES products(id)
);

보안 및 접근 제어

  • VPC, 서브넷, 보안 그룹으로 네트워크 제한
  • IAM 역할 기반 권한 설정
  • 저장 시 KMS 암호화 / 전송 시 TLS
  • CloudTrail, Enhanced Monitoring 로깅

AWS RDS 개요 및 실습

RDS란?

  • 완전 관리형 관계형 DB 서비스
  • MySQL, PostgreSQL, Oracle 등 지원

주요 기능

기능설명
자동 백업복구 가능 (PITR 지원)
멀티 AZ고가용성 구성
Read Replica읽기 부하 분산
모니터링CloudWatch 연동

실습 흐름

  1. RDS 인스턴스 생성 (MySQL)
  2. 보안 그룹 포트 열기 (3306)
  3. DB 연결 (MySQL Workbench)
  4. SQL 실습, 모니터링, 백업 확인

정리

항목핵심 개념
데이터 모델RDBMS vs NoSQL 비교
SQL 실무SELECT, JOIN, GROUP BY 등 익히기
무결성PK/FK/NOT NULL 등 제약조건 이해
트랜잭션ACID, COMMIT/ROLLBACK 실습
인덱스쿼리 성능 개선, EXPLAIN 분석
보안IAM, KMS, TLS 적용
RDS 실습생성 → 연결 → 실습 → 모니터링
This post is licensed under CC BY 4.0 by the author.