DataBase

EBAB!·2023년 7월 7일
0

AWS 자격증 준비

목록 보기
7/16
post-thumbnail

Amazon RDS 기초

RDB (Relational DataBase)

  • 데이터의 관계에 집중한 데이터베이스
    • 사전에 정의된 관계가 있을 때 사용
  • 미리 지정된 형식과 타입의 데이터만 저장 가능
  • 테이블의 형식으로 데이터를 관리
    • 행과 열을 기반으로 한 여러 테이블을 통해 데이터를 정의
  • 고유의 키로 각 데이터를 식별
  • 트랜젝션을 지원
    • 원하는 동작이 (정확히 수행, 완전히 실패) 둘 중 하나로 유지
    • 수행 중 문제가 생겨서 일부만 저장되거나 데이터가 변경되는 일이 없음
  • 사용 사례 : 일반적인 어플리케이션, 게임 등

Amazon RDS (Amazon Relational Database Service)

AWS 설명 : 클라우드에서 관계형 데이터베이스를 간편하게 설정, 운영 및 확장할 수 있습니다.
하드웨어 프로비저닝, 데이터베이스 설정, 패치 및 백업과 같이 시간 소모적인 관리 작업을 자동화 하면서 비용적으로 효율적, 크기 조정까지 가능한 용량을 제공합니다.
사용자가 애플리케이션에 집중하여 애플리케이션에 필요한 빠른 성능, 고가용성, 보안 및 호환성을 제공할 수 있도록 지원합니다.

  • RDB를 제공하는 서비스
  • 가상 머신 위에서 동작
    • 단 시스템에 직접 로그인 불가능 → OS 패치, 관리 등은 AWS의 역할
  • RDS는 Serverless 서비스가 아님
  • 암호화 지원
  • 자동 백업 지원

RDS와 EC2

  • 내부에서는 EC2를 활용
  • VPC 안에서 동작
    • 기본적으로 Public IP를 부여하지 않아 외부 접근은 불가능
    • 설정에 따라 Public으로 오픈 가능(DNS 접근)
  • 서브넷과 보안 그룹 지정 필요
  • EC2 타입의 지정이 필요
  • 스토리지는 EBS를 활용
    • EBS타입 및 용량 선택 필요

아키텍쳐

인증 방법

  • 전통적인 유저/패스워드 방식 : AWS Secert Manager와 연동하여 자동 로테이션 가능
  • IAM DB 인증 : 데이터베이스를 IAM 유저 자격증명/ 역할을 통해 관리 가능
  • Kerveros 인증

RDS에서 제공하는 DB엔진

  • MS SQL Server, Oracle(Oracle OLAP) : 오픈 소스가 아니기에 라이선스 비용 추가
  • MySQL Server
  • PostgreSQL
  • MariaDB
  • Amazon Aurora

RDS Multi AZ

  • 두 개 이상의 AZ에 걸쳐 DB를 구축하고 원본과 다른 DB(Standby)를 자동으로 동기화(sync)
  • 원본 DB의 장애 발생 시 자동으로 다른 DB가 원본으로 승격됨 (DNS가 Standby DB로)
  • StandBy DB는 접근 불가능
  • 퍼포먼스의 상승 효과가 아닌 안전성을 위한 서비스
  • 구조

읽기 전용 복제본

  • 데이터베이스의 읽기 전용 복제본을 생성(Async)
  • 쓰기는 원본 데이터베이스에, 읽기는 복제본에서 처리하여 워크로드를 분산
  • 안정성이 아닌 퍼포먼스를 위한 서비스
  • 원본 DB의 장애 발생 시 수동으로 DNS를 변경해주어야 함
  • 구조

RDS Multi Region

  • 다른 리전에 지속적으로 동기화 시키는 DB클러스터를 생성 (Async 복제)
  • 주로 로컬 퍼포먼스 혹은 DR시나리오로 활용

Amazon Aurora

AWS 설명: 고성능 상용 데이터베이스의 가용성에 오픈 소스 데이터베이스의 간편성과 비용 효율성을 결합하였으며 클라우드를 위해 구축된 MySQL 및 PostgreSQL 호환 관계형 데이터베이스입니다.
표준 MySQL DB보다 최대 5배 빠르고 표준 PostgreSQL보다 3배 빠릅니다. 또한, 10%의 비용으로 상용DB의 보안, 가용성, 안정성을 제공합니다.

  • AWS에서 만든 클라우드 친화적 RD엔진
  • 클라우드 환경에 최적화된 DB
  • 다양한 기능
    • 멀티 마스터 모드 : 여러 노드가 동시에 마스터 역할 가능
    • 역추적 : 원하는 시간으로 DB를 되돌릴 수 있음
  • Aurora Serverless 사용 가능
    • Serverless 환경에서 RDB 사용 가능

Amazon DynamoDB

AWS 설명 : 어떤 규모에서도 10밀리초 미만의 성능을 제공하는 key-value(or docs) DB입니다. 완전 관리형의 내구성이 뛰어난 다중 리전, 다중 마스터 DB로서, 인터넷 규모 애플리케이션을 위한 보안, 백업 및 복원, 인 메모리 캐싱 기능을 기본적으로 제공합니다.

  • AWS에서 제공하는 NoSQL DB : 스키마가 존재x
  • Key-Value 데이터 모델
    • 키를 고유 식별자로 사용하는 키-값 쌍의 집합으로 데이터를 저장
    • 키를 사용해서만 쿼리 가능
  • Serverless 서비스
  • 사용 사례 : 유저데이터 저장, 세션 저장, 게임 랭킹 등

DynamoDB의 구성

  • 테이블 : 데이터의 집합
    • 항목 : 고유하게 식별할 수 있는 속성들의 집합(Row)
    • 속성 : 항목의 Column
  • Partition Key : 하나의 속성으로 구성되는 기본 키
    • DynamoDB의 데이터는 분산 저장될 때, Partition으로 나누어 저장되며 이 때 어떤 파티션으로 저장될 것인지를 결정하는 키
    • 파티션 키로만 구성된 테이블에서는 중복된 파티션키는 존재할 수 없음
  • Sort Key : (설정 시) 파티션 키와 같이 복합키로 구성되며 항목들이 어떻게 정렬될 지를 결정하는 키
    • 파티션키-정렬키 구성으로 Unique Key 성립 가능
  • 두 가지 키를 사용하여 좀 더 유연하게 쿼리 가능
  • 구조


Amazon ElasticCache

AWS 설명 : Amazon ElasticCache를 사용하면 널리 사용되는 오픈 소스 호환 인 메모리 데이터 스토어를 원활하게 설정, 실행 및 크기를 조정할 수 있습니다. 처리량이 많고 지연 시간이 짧은 인 메모리 데이터 스토어에서 데이터를 검색하여 데이터 집약적 앱을 수축하거나 기존 데이터베이스 성능을 강화합니다.

  • In-Memory DB 엔진 : 휘발성이며 매우 빠름
  • 캐시 용도 : 주로 DB에 워크로드를 덜어주거나 특수한 목적을 위해 사용
  • Redis와 Memcached 두 가지 서비스 제공
  • 사용 사례 : 세션 스토어, 게이밍, 지리공간 서비스, 실시간 분석 및 대기열
  • NoSQL DB

Redis VS Memcached

기능MemCachedRedis
밀리세컨 단위의 레이턴시OO
개발에 쉽게 적용 가능OO
데이터 파티셔닝OO
여러 개발 언어 지원OO
고급 데이터 구조(Array 등)XO
멀티 스레드OX
스냅샷XO
복제 가능XO
트랜젝션XO
Pub/SubXO
루아 스크립트XO
지리 기반 데이터 처리XO

구조

  • 월간 랭킹과 같이 변하진 않지만 쿼리량이 많은 데이터일 경우
    • 컴퓨터-RDB 사이에서 Cache 역할을 하며 쿼리를 처리

Amazon Redshift

AWS 설명 : 클라우드에서 완벽하게 관리되는 페타바이트급 데이터 웨어하우스 서비스입니다. 작게는 수백 기가바이트부터 시작하여 페타바이트 이상까지 데이터를 확장할 수 있습니다. 이를 통해 데이터를 사용하여 비즈니스 및 고객에 대한 새로운 인사이트를 발굴하는 것도 가능합니다.

  • 데이터 웨어하우스
    • 조직 내부의 다양한 데이터 소스에서 추출, 변환, 적재(ETL)된 후, 분석을 위한 목적으로 사용되는 데이터 저장소입니다.
    • 데이터 웨어하우스는 특징 3가지
      1. 통합(Integration)된 데이터 입니다.
        조직 내부의 여러 데이터 소스에서 추출된 데이터가 통합되어 하나의 데이터 저장소에 저장됩니다.
      2. 시계열적 데이터입니다.
        데이터 웨어하우스는 시간에 따라 변화하는 데이터를 저장합니다. 즉, 데이터 웨어하우스는 과거부터 현재까지의 데이터를 저장하고 분석하는 것이 목적입니다.
      3. 주제 지향적 데이터입니다.
        데이터 웨어하우스는 분석 목적에 따라 특정 주제의 데이터를 저장합니다.
  • AWS에서 제공하는 data warehouse 서비스 = OLAP 데이터베이스
  • Redshift는 OLAP에 최적화된 데이터베이스
    • OLAP (Online Analytical Processing) : 데이터의 분석을 위주로 데이터를 처리

  • 행 위주의 데이터 처리 : 1번의 내용은? 3번의 수정 사항은?
  • OLTP (Online Transaction Processing) : 데이터의 트랜젝션을 위주로 데이터를 처리

  • 열 위주의 데이터 처리 : 가장 많은 주소는? 총 금액은? 가장 많은 상품타입은?
  • 병렬 처리에 탁월한 성능 : 컴퓨팅 노드의 증감이 쉽고 빠름

기타 데이터베이스 서비스

Amazon DocumentDB (MongoDB 호환)

  • 문서 DB(NoSQL)
  • 데이터를 JSON 혹은 유사 형식의 문서로 저장 및 쿼리하는 DB
  • 각 어플리케이션에서 사용하는 모델 형식을 그대로 사용 가능 (ex. JavaScript → JSON)
  • Nest된 구조로 문서 저장 가능
  • 사용 사례
    • 컨텐츠 관리 : 비디오 및 블로그 포스팅 등의 관리 및 추적
    • 카탈로그 : 제품의 카탈로그 저장

Amazon Neptune

  • 그래프 DB
  • 데이터보다 데이터간 관계가 더 중심인 DB
    • 각 데이터 주체간 관계와 연결을 분석하는데 최적화
  • 사용사례
    • 소셜 네트워크 : 각 사람간의 관계, 팔로우 관계 등을 정의
    • 이상 탐지 : 구매자가 평소에 구매하지 않는 물품의 구매 등에 대한 감지 혹은 패턴 파악
    • 추천 엔진 : 누가 무엇을 구매했는지 혹은 어떤 그룹의 사람들이 어떤 성향을 가지고 있는지 파악

Amazon OpenSearch Service

  • 데이터의 검색에 특화된 DB
    • 인덱싱과 카테고리 기능에 특화
    • 원하는 데이터를 빠르게 찾는 것이 목표
    • 주로 저장을 위한 DB 이외에 특별한 목적으로 사용
  • 사용 사례
    • 컨텐츠 검색 : 로그 검색, 유저 정보 검색, 색인 등
    • 로그 분석 : 방대한 로그에서 원하는 조건에 맞는 로그 검색 혹은 시각화

Amazon QLDB (Quantum Ledger Database)

  • 원장(Ledger) DB
  • 데이터의 신뢰성 및 투명성이 중요한 DB
    • 장부
    • 데이터의 정확한 변경 내역 및 무결성 확보가 중요한 기능
  • 블록 체인 네트워크 및 암호화를 통해 무결성 확보
  • 사용 사례
    • 금융 거래 기록 : 변경되면 안되는 매우 중요한 이벤트 기록 및 감사

Amazon Timestream

  • 타임시리즈 DB
  • 많은 이벤트를 시간 단위로 저장하기 위한 DB
    • 수만~수십만 건의 이벤트 데이터를 시간에 따라 정렬하고 특정 시점의 이벤트를 쿼리
    • 사용 사례
      • IOT 기기의 이벤트 관리 : 많은 숫자의 IOT 기기의 이벤트 기록 및 분석
      • 분석 애플리케이션 : 게임같이 이벤트가 많이 발생하는 애플리케이션의 분석 데이터의 캐싱 및 시각화
    • 예시 Untitled
profile
공부!

0개의 댓글

관련 채용 정보