사진과 음악을 좋아하는 개발자 지망생의 블로그

[클라우드] 2. DB (SQL vs NoSQL, Amazon Relational Database Service, Amazon DocumentDB) 본문

개발/클라우드(with amazon)

[클라우드] 2. DB (SQL vs NoSQL, Amazon Relational Database Service, Amazon DocumentDB)

devculture309 2023. 5. 16. 11:44
반응형

1. SQL vs NoSQL

1) SQL (Structured Query Language)

  - 관계형 데이터베이스 시스템을 기반으로 하는 데이터베이스 유형

  - SQL은 데이터를 테이블 형태로 구조화하며, 데이터는 행과 열의 형태로 저장

  - 해진 스키마를 따라 데이터를 저장하고, 데이터 간의 관계를 정의하고 관리하기 위해 SQL 쿼리 언어를 사용

  - SQL은 ACID(원자성, 일관성, 격리성, 지속성) 원칙을 준수하여 데이터의 안정성과 일관성을 보장

  - 정형화된 데이터를 다루는데 적합하며, 관계를 중심으로 데이터 간의 관계를 유지

 

2) NoSQL(Not Only SQL)

  - 비관계형 데이터베이스 시스템을 기반으로 하는 데이터베이스 유형

  - 테이블 형태로 데이터를 구조화하지 않고, 여러 가지 형식으로 데이터를 저장

  - 스키마가 유연하며, 데이터의 구조와 관계를 동적으로 변경할 수 있다

  - 대량의 분산 데이터 처리에 적합하며, 수평적으로 확장할 수 있는 환경에서 좋은 성능을 발휘

  - 비정형 데이터나 대규모 데이터를 처리하는데 적합하며, 수평적으로 확장 가능한 구조

 

 

2. Amazon Relational Database Service (RDS)

1) RDS

  - Amazon Web Services (AWS)의 관리형 관계형 데이터베이스 서비스

  - RDS를 사용하면 사용자는 관계형 데이터베이스를 구축, 운영 및 확장하기 위한 복잡한 작업을 간소화할 수 있다

  - 사용자는 데이터베이스 엔진의 설정과 관련된 복잡한 작업을 걱정하지 않아도 되고, 관리 작업을 AWS에게 위임

  - 자동화된 백업, 복원, 패치 적용, 스케일링 등의 기능을 제공하여 데이터베이스 운영의 안정성과 확장성을 보장

 

2) DB 인스턴스

  - DB 인스턴스는 Amazon RDS에서 생성한 관계형 데이터베이스의 특정 인스턴스

  - 데이터베이스 엔진과 해당 데이터베이스의 인스턴스 유형, 스토리지 유형 등과 함께 구성

  - DB 인스턴스는 여러 사용자가 만든 데이터베이스를 호스팅할 수 있는 환경을 제공하며,

    하나의 DB 인스턴스에는 여러 개의 데이터베이스가 포함될 수 있다

  - 이러한 데이터베이스에 액세스하기 위해서는 일반적으로 데이터베이스 관리 도구나 애플리케이션을 사용

  - AWS 명령줄 도구, Amazon RDS API 작업 또는 AWS Management Console을 사용해 간단히 DB 인스턴스를 만들고

  수정할 수 있다

  - SSH(보안 셸) 또는 RDP(원격 데스크톱)와 같은 수준의 접속을 통해 운영 체제에 직접 로그인할 수 없다

  - RDS는 서버리스(Serverless) 아키텍처를 제공하지 않는다  → RDS DB 인스턴스를 직접 관리해야 한다

 

 

3. Amazon DocumentDB(Document DB)

1) Document DB

  - MongoDB와 호환되는 문서 데이터베이스 서비스 → 고가용성, 자동 백업, 자동 확장, 보안 등 다양한 관리 기능을 제공

  - 스토리지와 컴퓨팅을 분리시켜 각각을 독립적으로 조정할 수 있도록 설계

  - 개발자는 데이터 크기에 관계없이 지연 시간이 짧은 읽기 전용 복제본을 몇 분 내에 최대 15개까지 추가하여

    읽기 용량을 초당 수백만 개의 요청으로 늘릴 수 있음

  - 99.99%의 가용성을 위해 설계되었으며 6개의 데이터 복사본을 3개의 AWS 가용 영역(AZ)에 복제

  - JSON 데이터를 지원

  - 유연한 인덱싱 → 문서의 속성에 대한 인덱스를 생성하고 쿼리 수행 시에 이 인덱스를 활용할 수 있다

 

2) MongoDB

  - Document 지향 Database

  - 데이터 중복이 발생할 수 있지만, 접근성과 가시성이 좋다

  - 스키마 설계가 어렵지만, 스키마가 유연해서 Application의 요구사항에 맞게 데이터를 수용할 수 있다

  - 데이터의 확장성과 가용성을 위한 자체적인 분산 솔루션 제공으로 데이터베이스의 확장이 용이하다(Scale-out이 쉽다)

  - 데이터베이스의 확장을 위해 애플리케이션을 수정하거나 변경할 필요가 없다

 

3) Dynamo DB

  - 아마존 웹 서비스(AWS)에서 제공하는 완전 관리형 NoSQL 데이터베이스

  - 자동으로 데이터를 분산하여 처리하고 확장함(Auto-Scaling) → 대량의 트래픽과 대규모 데이터를 처리하는 데 효과적

  - 데이터베이스가 활동하지 않을 때(유휴 시)에도 데이터의 암호화를 제공하여 중요한 데이터 보호와 관련된

    부담 및 복잡성을 제거

  - 필요한 양의 데이터를 저장하고 검색할 수 있는 테이블을 생성할 수 있으며, 동시에 다양한 수준의 요청 트래픽을

    처리할 수 있다

  - AWS Management Console을 사용하여 리소스 사용률 및 성능 지표를 모니터링할 수 있다

  - 데이터 암호화, 액세스 제어, (온디맨드)백업 및 복원 등의 보안 기능을 제공하며, 데이터의 안전성과 보호를 보장

  - 테이블 생성시 스키마 생성 필요 없다

 

  4) Document DB vs Dynamo DB

  Dynamo DB Dynamo DB Document DB
리전 모든 리전에서 사용가능 오하이오, 버지니아, 아일랜드, 프랑크푸르트, 오레곤 등 특정 리전에서만 사용가능
자격증명 AWS Identity and Access Management(IAM)를 통해 데이터베이스에 대한 액세스를 제어 데이터베이스에서 User를 생성하고 관리.
자격증명이 DB에 직접 저장되기 때문에 AWS는 이 영역에 관여하지 않음.
금액 최소 월 1$
서버리스 서비스로 사용량에 따라 요금이 책정.
주요 비용은 읽기/쓰기 용량 단위.
비용을 예상하기 어려움. 스토리지 25GB를 무료로 제공
최소 월 200$
노드 또는 EC2 인스턴스당 비용을 지불.
데이터베이스의 일부 인스턴스만 사용하거나 몇시간만 사용하더라도 전체 요금을 지불해야함.
스토리지는 무료로 제공되지 않음
백업 매일 백업을 사용할 수 없어 사용자가 백업을 진행.
데이터에서 지원하는 대로 필요할 때 데이터를 복구할 수 있음.
데이터베이스 자체에서 일일 백업을 관리하고 필요할 때 마다 복구할 수 있음.
모든 유형의 백업이 지원됨.

 

반응형

'개발 > 클라우드(with amazon)' 카테고리의 다른 글

[클라우드] 6. CI / CD  (0) 2023.05.17
[클라우드] 5. S3  (0) 2023.05.17
[클라우드] 4. IAM  (0) 2023.05.17
[클라우드] 3. Network  (0) 2023.05.16
[클라우드] 1. AWS(Amazon Web Services), EC2, Elastic Beanstalk  (0) 2023.05.15