본문 바로가기
AWS/스토리지 및 데이터베이스

데이터베이스

by kiimy 2022. 4. 24.
728x90
728x90

관계형 데이터베이스

관계형 데이터베이스에서는 데이터가 다른 데이터 부분과 관련된 방식으로 저장됩니다.

관계형 데이터베이스의 예로 커피숍의 인벤토리 관리 시스템을 들 수 있습니다. 데이터베이스의 각 레코드에는 제품 이름, 크기, 가격 등 단일 항목에 대한 데이터가 포함됩니다.

관계형 데이터베이스는 정형 쿼리 언어(SQL)를 사용하여 데이터를 저장하고 쿼리합니다. 이러한 접근 방식은 데이터를 쉽게 이해할 수 있고 일관되며 확장 가능한 방식으로 저장할 수 있습니다. 예를 들어 커피숍 점주는 가장 자주 구입하는 음료가 미디엄 라떼인 모든 고객을 식별하기 위해 SQL 쿼리를 작성할 수 있습니다.

Amazon Relational Database Service, Amazon RDS

- AWS 클라우드에서 관계형 데이터베이스를 실행할 수 있는 서비스

- 비즈니스 분석용으로 제작된 제품이고 복잡한 관계형 조인이 필요한 경우

 

Amazon RDS <하드웨어 프로비저닝, 데이터베이스 설정, 패치 적용 백업>과 같은 작업을 자동화하는 관리형 서비스입니다. 이러한 기능을 사용하면 관리 작업을 수행하는 데 드는 시간을 줄이고 데이터를 사용하여 애플리케이션을 혁신하는 데 더 많은 시간을 할애할 수 있습니다. Amazon RDS를 다른 서비스와 통합하면 AWS Lambda를 사용하여 서버리스 애플리케이션에서 데이터베이스를 쿼리하는 등 비즈니스 및 운영 요구 사항을 충족할 수 있습니다.

 

Amazon RDS 데이터베이스 엔진

Amazon Aurora

PostgreSQL

MySQL

MariaDB

Oracle Database

Microsoft SQL Server

 

<온프레미스 환경을 사용한다면 이러한 시스템 중 하나를 이미 실행 중이며 대부분의 경우 데이터 센터에 보관할 것입니다.>

<이러한 시스템을 클라우드로 쉽게 옮기는 방법이 있을까요?>

리프트 앤 시프트라는 작업을 수행하고 데이터베이스를 마이그레이션하여 Amazon EC2에서 실행되게 하면 되죠. 온프레미스 환경에서와 동일한 OS, 메모리, CPU, 스토리지 용량 같은 변수를 제어할 수 있다는 뜻입니다. 덕분에 빠르게 클라우드로 전환 가능하며 표준 절차데이터베이스 마이그레이션 서비스 같은 기능을 사용하여 마이그레이션할 수 있습니다.

<마이그레이션>

https://cord-ai.tistory.com/121

 

Amazon Database Migration Service, DMS

<온프레미스 환경을 사용한다면 이러한 시스템 중 하나를 이미 실행 중이며 대부분의 경우 데이터 센터에 보관할 것입니다.> <이러한 시스템을 클라우드로 쉽게 옮기는 방법이 있을까요?> <온프

cord-ai.tistory.com

Amazon Aurora

 <AWS는 어떻게 클라우드에서 더 쉽게 데이터베이스 워크로드를 실행하게 할까요?>

- Amazon Aurora로 마이그레이션하거나 배포할 수 있게 합니다.

- 엔터프라이즈급 관계형 데이터베이스

- 이 데이터베이스는 MySQL 및 PostgreSQL 관계형 데이터베이스와 호환됩니다. 표준 MySQL 데이터베이스보다 최대 5배 빠르며 표준 PostgreSQL 데이터베이스보다 최대 3배 빠릅니다.

- Amazon Aurora는 데이터베이스 리소스의 안정성 및 가용성을 유지하면서도 불필요한 입/출력(I/O) 작업을 줄여 데이터베이스 비용을 절감합니다. 

- 워크로드에 고가용성이 필요한 경우 Amazon Aurora를 고려

-  데이터베이스는 6개의 데이터 복사본을 3개의 가용 영역에 복제하고 지속적으로 Amazon S3에 데이터를 백업합니다.

- 특정시점으로 복구 = 특정기간의 데이터를 복구 가능

 

비관계형 데이터베이스

비관계형 데이터베이스에서는 테이블을 생성합니다. 테이블은 데이터를 저장하고 쿼리할 수 있는 장소입니다.

비관계형 데이터베이스는 행과 열이 아닌 구조를 사용하여 데이터를 구성하기 때문에 ‘NoSQL 데이터베이스’라고도 합니다. 비관계형 데이터베이스의 구조적 접근 방식 중 한 유형은 키-값 페어입니다. 키-값 페어에서는 데이터가 항목(키)으로 구성되고 항목은 속성(값)을 갖습니다. 속성을 데이터의 여러 기능으로 생각할 수 있습니다.

키-값 데이터베이스에서는 언제든지 테이블의 항목에서 속성을 추가하거나 제거할 수 있습니다. 또한 테이블의 모든 항목에 동일한 속성이 있어야 하는 것은 아닙니다. 

Amazon DynamoDB

DynamoDB는 비관계형 NoSQL 데이터베이스입니다. 적절한 사용 사례가 따로 있으며 모든 워크로드에 적합하지는 않습니다. 응답 시간이 밀리초 단위이며 완전 관리형이고 확장성이 뛰어납니다. 

1. 서버리스 데이터베이스이기 때문에 기본 인스턴스나 인프라를 관리할 필요가 없습니다.

 

2. DynamoDB에서는 테이블을 생성합니다. DynamoDB 테이블은 데이터를 저장하고 쿼리하는 곳입니다. 데이터는 항목과 속성이라는 두 가지 요소로 구성됩니다. 속성은 데이터의 다양한 특징을 말합니다. 테이블에 항목이 하나만 있든 200만 개가 있든 상관없이 DynamoDB는 사용자를 대신해 기본 스토리지를 관리합니다. 시스템 규모 조정을 신경 쓸 필요도 없습니다.

 

3. DynamoDB는 데이터를 중복으로 저장합니다. 가용 영역 전체에, 그리고 여러 드라이브 전체에 사용자를 대신해 데이터를 저장하죠 덕분에 고가용성 데이터베이스 운영의 부담이 대폭 낮아집니다.

 

4. DynamoDB는 확장성이 높을 뿐만 아니라 성능도 뛰어납니다. DynamoDB의 응답 시간은 밀리초 단위입니다. 그리고 애플리케이션의 사용자가 수백만 명에 달할 수 있다면 확장성과 안정적인 빠른 응답 시간 확보는 중요한 문제가 되죠.

 

5. DynamoDB는 일반적인 데이터베이스가 아닙니다. 매우 보편적인 쿼리 언어인 SQL을 사용하지 않으니까요. 표준 MySQL 데이터베이스 같은 관계형 데이터베이스에서는 제대로 정의된 스키마를 확보하고 배치해야 합니다. 테이블 하나로 구성될 수도 있고 서로 관련이 있는 테이블 다수로 구성될 수도 있죠. 그리고 SQL을 사용해 데이터를 쿼리합니다.

 

고정적 SQL(=표준 MySQL )데이터베이스 유형은 스트레스 상황에서 성능과 규모 조정 문제가 발생할 수 있습니다. 또한 고정적 스키마 때문에 테이블에 저장하는 데이터 유형을 변경할 수 없습니다. 따라서 덜 고정적이며 아주 빠른 속도로 액세스되는 데이터 세트에는 적합하지 않을 수도 있죠.

 

이 경우에는 비관계형인 NoSQL 데이터베이스를 사용해야 합니다. 비관계형 데이터베이스는 서로 관계가 있는 여러 테이블에 배치되는 복잡한 고정적 스키마가 아닌 단순하고 유연한 스키마를 가지는 경향이 있습니다.

 

<추가 데이터베이스 서비스>

Amazon DocumentDB는 MongoDB 워크로드를 지원하는 문서 데이터베이스 서비스입니다. (MongoDB는 문서 데이터베이스 프로그램입니다.)

Amazon Neptune은 그래프 데이터베이스 서비스입니다. Amazon Neptune을 사용하여 추천 엔진, 사기 탐지, 지식 그래프와 같이 고도로 연결된 데이터 세트로 작동하는 애플리케이션을 빌드하고 실행할 수 있습니다.

Amazon Quantum Ledger Database(Amazon QLDB)는 원장 데이터베이스 서비스입니다. Amazon QLDB를 사용하여 애플리케이션 데이터에 발생한 모든 변경 사항의 전체 기록을 검토할 수 있습니다.

Amazon ElastiCache 자주 사용되는 요청의 읽기 시간을 향상시키기 위해 데이터베이스 위에 캐싱 계층을 추가하는 서비스입니다.

Amazon DynamoDB Accelerator(DAX)는 DynamoDB용 인 메모리 캐시입니다. 응답 시간을 한 자릿수 밀리초에서 마이크로초까지 향상시킬 수 있습니다.

 

728x90

댓글