ACC 핸즈온세션3

Seoyeon·2026년 4월 21일

ACC

목록 보기
5/5

데이터베이스(DB) 및 DBMS

  • 데이터베이스(DB)
    구조화된 정보 또는 데이터의 조직화된 모음이며, 일반적으로 DBMS에 의해 제어됨
  • 관계형 데이터베이스(Relational DB)
    구조화된 데이터를 테이블 형태로 저장
    엄격한 스키마를 따르며 SQL(Structured Query Language)을 사용하여 데이터를 조작
  • 비관계형 데이터베이스(Non-Relational DB)
    비정형 데이터를 저장하며 고정된 스키마가 없음
    대량의 분산 데이터 저장 및 다양한 형태의 데이터를 빠르게 처리하는 데 적합함

RDS의 배포 방식 비교

  • On-Premise: 사용자가 직접 물리적 서버를 구축하고 데이터베이스를 설치 및 관리
  • AWS EC2: AWS 가상 서버(EC2) 위에 사용자가 직접 DB 소프트웨어를 설치하고 운영 체제부터 DB까지 관리
  • AWS RDS: AWS에서 제공하는 완전 관리형 관계형 데이터베이스 서비스로, 관리 부담이 가장 낮음

AWS RDS (Relational Database Service)

  • 개요: AWS 클라우드에서 관계형 데이터베이스를 쉽게 설치, 운영 및 확장할 수 있도록 지원하는 웹 서비스
  • 주요 장점:
    • 간편한 관리: 패치, 백업 등 운영 자동화
    • 가용성 및 안정성: 자동 백업 및 스냅샷 기능을 제공하며 Multi-AZ를 통한 장애 복구 지원
    • 보안성: AWS 네트워크 보안 기능(VPC) 및 암호화 적용 가능
    • 확장성: Read Replica를 통한 읽기 성능 확장 및 스토리지 유연성 확보
    • 비용 효율성: 사용한 만큼만 비용을 지불하는 구조

가용성 및 성능 확장 기술

  • Multi-AZ (다중 가용 영역):
    • 다른 가용 영역(AZ)에 데이터베이스 복사본(Standby)을 생성하고 데이터를 동기화함
    • 장애 감지 시 자동으로 대기 인스턴스로 대체(Failover)되어 서비스 연속성을 보장함
  • Read Replica (읽기 전용 복제본):
    • 읽기(Read) 쿼리의 성능 향상과 부하 분산을 목적으로 생성함
    • 주 인스턴스로부터 비동기 방식으로 데이터를 복제함
    • 읽기 중심 워크로드에서 Scale-Out을 통해 처리량을 향상시킴

SAA (Solutions Architect Associate) 실무 사례

  • 문제 상황: RDS 사용 중 통계용 데이터를 읽어올 때 성능 저하가 발생하는 경우
  • 해결책: RDS Read Replica를 생성하여 운영 DB의 부하를 줄이고, 읽기 전용 쿼리를 복제본에서 처리하도록 구성!!

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

  • 관계형 데이터베이스에서 데이터를 저장, 조회, 수정, 삭제하기 위해 사용하는 언어
  • 특징:
    • 정해진 구조(Schema)에 따라 테이블에 데이터를 저장
    • 행(Row)과 열(Column)이 있는 표 형태의 구조를 가짐
  • Oracle, MySQL, PostgreSQL 등

NoSQL 및 비관계형 데이터베이스

  • 비관계형 데이터베이스 환경에서 데이터를 관리하는 방식임
  • 특징:
    • 정형화되지 않은 유연한 구조를 사용하여 가용성과 확장성이 높음
    • 고성능 처리에 최적화되어 있으며 SNS(Instagram, Facebook) 등에서 주로 사용됨
  • MongoDB, AWS DynamoDB 등

AWS DynamoDB 개요

  • AWS에서 제공하는 서버리스 기반의 완전관리형 NoSQL 데이터베이스 서비스
  • 주요 특성:
    • 완전관리형: 장비 운영부터 솔루션 설치 및 운영까지 모든 인프라를 AWS에서 담당
    • 고성능: 10ms 미만의 지연 시간으로 데이터를 처리할 만큼 매우 빠름
    • 내구성: SSD에 저장되며 리전 내 여러 가용 영역(AZ)에 걸쳐 자동 복제
    • Auto-Scaling: 요청량에 따라 테이블의 읽기/쓰기 용량을 자동으로 조절

DynamoDB 핵심 구성 요소

  • 테이블(Tables)
    데이터의 집합체 (예: People 테이블, Cars 테이블)
  • 항목(Items)
    테이블을 구성하는 개별 데이터 단위 (RDBMS의 행에 해당)
  • 속성(Attributes)
    항목을 구성하는 세부 데이터 요소 (예: ID, 이름, 주소 등)
  • 유연한 스키마
    기본 키(PK)를 제외하고는 속성이나 데이터 형식을 미리 정의할 필요가 없으며, 각 항목은 고유하거나 중첩된 속성을 가질 수 있음

DynamoDB의 키(Key) 구조

  • Partition Key (파티션 키):
    • RDBMS의 Primary Key와 유사한 역할로 테이블 내 유일한 값이어야 함
    • 데이터가 저장될 물리적 공간(Partition)을 결정하며 일치 검색(Equal)만 지원
  • Sort Key (정렬 키):
    • 같은 파티션 내에서 데이터를 정렬하는 기준
    • 일치, 부등호, 포함 등 범위 지정 검색을 지원하여 정교한 쿼리를 가능하게 함

Lambda를 활용한 DynamoDB 최적화

  • Batch 작성 지원
    BatchWriteItem API를 통해 한 번에 최대 25개의 항목을 삽입할 수 있어 데이터 추가 효율이 높음
  • 자동화 운용
    CloudWatch Events와 연동하여 특정 주기마다 Lambda 함수를 실행, 정기적인 데이터 처리가 가능
  • Join 기능 구현
    DynamoDB는 자체적인 Join을 지원하지 않으므로, 복잡한 데이터 결합이 필요한 경우 Lambda를 통해 로직으로 구현

0개의 댓글