[AWS] 8. 데이터베이스

ehekaanldk·2023년 5월 30일

AWS

목록 보기
7/10

Unmanaged VS Managed

스케일링, 내결함성, 가용성에 있어서 unmanaged는 사용자에게 관리가 필요하다. managed는 해당 모두를 제공해준다.

MySQL

  • table과 column의 형태로 정형화
  • 다수의 tabel로 정규화(gkskdml table에 필요하 자료를 다 넣지 않고, table로 잘 나눠서 SQL 연산으로 tool에서 각 키인 column들을 join시켜서 필요한 정보를 가져온다.)
  • 읽기&쓰기 최적화
  • 쿼리 연산 가능

noSQL

  • 데이터 분석
  • 하나의 table에 필요한 정보를 모두 저장
  • 단순하게 특정kEY와 value를 초기화 하는 연산에 최적화
  • 유연한 구조
  • 쿼리 연산 불가

RDS와 redshift를 비교하면
RDS는 읽기와 쓰기 모두 유리하고, redshift는 쓰기(조회)만 유리해 데이터 분석에 사용된다.
RDS는 데이터 전체를 확인해야 하고
redshift는 해당 조회만 가능하다.
RDS는 최대치 I/O bound 가 정해져 있지만,
redshift는 제한이 없나..? 더빠른 속도로 처리한다.
RDS는 여러 AZ에 대해서 복제복을 유지하면서 고가용성을 유지하며,
redshift는 여러 리전에 대해서 복제된 table과 DBMS를 이용한다.

  • column단위로 저장소

Amazon RDS

클라우드에서 관게형 데이터베이스를 설정하고 운영하는 관리형 서비스

고가용성/ 애플리케이션 최적화 확장/ 데이터베이스 백업/ 데이터베이스 소프트웨어 패치/ 데이터베이스 소프트웨어 설치/ 운영체제 패치/ 운영체제 설치/ 랙 및 스택 서버 전원, HVAC, 네트워크
등에 대해서
온프레미스 -> EC2 instance에 DBMS설치(물리적인 것은 AWS제공)-> RDS, Aurora(모두 AWS 제공)

책임
사용자 책임)
애플리케이션 최적화
AWS 책임)
이외의 os 설치 및 패치, 데이터베이스 소프트웨어 설치 및 패치, 백업, 스케일링, 고가용성, 서버 유지 등등

RDS DB instance구성

  • DB 인스턴스 클래스 :CPU, Memory, Network performance
  • DB 인스턴스 저장소 :Magnetic, General purpose(SSD), Provisioned IOPS

제공 엔진
MYSQL, Amazon Aurora, Microsoft SQL server, PostgerSQL, MariaDB, Oracle

private subnet 내에 존재한다. 외부에서 아무나 접근할 수 없도록, public subnet에서 접근가능하도록

multi AZ를 적용하여 고가용성(무중단)을 보장한다.
AZ에 적용해서 애플리케이션과 직접 통신하는 master instance와 이외 슬레이브 인스턴스로 구성하여 synchronous(동기적으로 변경 사항이 계속 업데이트-슬레이브에)되어 master가 망가져도 중간하지 않고 계속 active 상태가 된다.

복제본이랑은 asynchronous(비동기화)된다. 복제본은 read만 쿼리하기 때문에

배포유형
인바운드 데이터 전송 비용은 무료
아웃바운드 데이터 전송에 대한 계층화된 요금

Amazon RDS를 사용하면 클라우드에서 관계형 데이터베이스를 설정, 운영 및 확장할 수 있습니다.
• 특징 –
• 관리 서비스
• 콘솔, AWS CLI(명령줄 인터페이스) 또는 API(애플리케이션 프로그래밍 인터페이스) 호출을 통해 액세스 가능
• 확장 가능(컴퓨팅 및 스토리지)
• 자동화된 이중화 및 백업 사용 가능
• 지원되는 데이터베이스 엔진:
• Amazon Aurora, PostgreSQL, MySQL, MariaDB, Oracle, Microsoft SQL Server

Amazon DynamoDB

SSD기반 managed 서비스이다.

relational VS non-relational
데이터 구조 : 행과 열 | 키와 값, 문서, 그래프
shemas : fixed | dynamic
쿼리 : use SQL | 변형된쿼리
확장성 : 수직적 확장(고성능 가능) | 수평적 확장(성능 변화 없음)

  • SQL 데이터베이스 테이블 없음
  • 사실상 무제한 스토리지
  • 빠르고 유연한 데이터베이스
  • I/O 처리량 뛰어남 확장 가능한 읽기/쓰기 처리량
  • low latency
  • 수평적 확장

구성요소

  • table
  • item
  • attribute
  • primary key제공(partition, partition and sort)

Pratitioning
partition key로 병렬호하여 논리적으로 구분이 된다. 쿼리가 각 partition된 table마다 결과를 합쳐서 제공한다.
=> 분산해서 쿼리를 수행해 조회가 빠르다

dynamoDB
• SSD에서만 실행됩니다.
• 문서 및 키 값 저장소 모델을 지원합니다.
• 선택한 AWS 지역에 걸쳐 테이블을 자동으로 복제합니다.
• 모바일, 웹, 게임, 애드테크 및 사물인터넷(IoT) 애플리케이션에 적합합니다.
• 콘솔, AWS CLI 및 API 호출을 통해 액세스할 수 있습니다.
• 모든 규모에서 일관된 한 자리 밀리초 지연 시간을 제공합니다.
• 테이블 크기 또는 처리량에 제한이 없습니다.

Amazon Redshift

  • 복잡한 SQL 쿼리 연산 처리가 가능
  • 읽기 관련해서만 최적화(쓰기X)
  • 빅데이터 분석
  • 데이터 용량 무제한
  • 병렬 process 아키텍쳐

manage monitor scale을 자동화한다.
호환적

사례

  • SaaS 형태의 사용 가능

Amazon Redshift:
• Fast, fully managed data warehouse service
• Easily scale with no downtime
• Columnar storage and parallel processing architectures
• Automatically and continuously monitors cluster
• Encryption is built in

Amazon Aurora

RDS의 고가용성을 극대화 시킴

  • 규모가 매우크다.
  • 고수준의 IOPS처리량
  • MYSQL, PostgreSQL과 호환
  • 프로비저닝, 패치, 백업, 회복, 실패 검증, 수리 등 자동화

RDS와 공동의 장점

  • 빠르고 가용성
  • 단순하다.
  • 관리형 서비스
  • 호환성
  • 사용한 만큼 과금

RDS와 차이점

  • 고가용성
  • 다수의 여러 복사복 운영(RDS는 2~3개의 AZ운영하지만, Redshift는 여러 개의 AZ또는 리전 운영)

Amazon Aurora:
• 고성능 및 확장성
• 고가용성 및 내구성
• 다양한 수준의 보안
• MySQL 및 Postgre와 호환 가능SQL • 완벽한 관리

(문제)
1. 수십만 명의 동시 사용자로 확장할 전자 상거리 웹 애플리케이션을 설계하고 있습니다. 이 예에서 세션 상태를 유지하는 데 가장 적합한 데이터베이스 기술을 무엇입니까?

  • Amazon RDS
  • Amazon dynamoDB
  • Amazon redshift
  • Amazon S3
    (dynamoDB와 같은 noSQL 데이터베이스는 사용자 프로파일 및 세선에 대한 키/값 액세스로 수십만 건의 요청을 처리하는 데 탁월하다.)
  1. 항목의 기본 키가 아닌 속성을 사용하여 Amazon DynamoDB테이블에서 항목을 찾아야 합니다. 다음 중 어떤 작업을 사용해야 합니까?
  • Putitem
  • 스캔
  • 쿼리
  • Getitem
    (DynamoDB 테이블에서 항목의 기본 키가 아닌 항목을 찾으려면 스캔 작업을 사요합니다.)
  1. Amazon DynamoDB에서 쿼리 작업으로 수행할 수 잇는 작업은 무엇입니까?
  • 파티션 키와 정렬 키 필터(선택 사항)을 사용하여 테이블을 쿼리합니다.
  • 테이블에 대해 존재하는 모든 보조 인덱스를 쿼리합니다.
  • 테이블 또는 보조 인덱스의 항목을 효율적으로 검색한다.
  • 위 항목 모두 해당
    ( 모두 가능하다.)
  1. 표준 SQL(구조화 질의 언어)와 기존 BI(비즈니스 인텔리전스) 도구를 사용하여 데이터를 분석하는 데 가장 적합한 AWS클라우드 서비스는 무엇입니까?
  • Amazon RDS
  • Amazon S3 Glacier
  • Amazon DynamoDB
  • Amazon redshift
    (데이터 분석에는 redshift가 가장 적합하다)
  1. Amazon DynamoDB에서 속성은 ---입니다.
  • 기본 데이터 요소
  • 항목 모음
  • 속성 모음
    (속성은 기본 데이터의 요소이다.)
  1. 매우 빠른 성능, 빠른 확장성 및 데이터베이스 스키마의 유연성을 갖춘 데이터베이스가 필요한 애플리케이션을 개발하는 경우 어떤 서비스를 고려해야 합니까?
  • Amazon RDS
  • Amazon ElastiCache
  • Amazon DynamoDB
  • Amazon redshift
    (매우 빠른 성능, 빠른 확장성 및 데이터베이스 스키마의 유연성을 갖춘 데이터베이스가 필요한 애플리케이션을 개발하는 경우 Amazon DynamoDB가 좋음)
  1. 다음 중 Amazon RDS를 사용하기에 적합한 사용 사례는 무엇입니까?
  • 대용량 읽기/쓰기 속도
  • 간당한 GET또는 PUT요청
  • 복잡한 트랜잭션
  • 위 항목 모두 해당
    (애플리케이션에 복잡한 트랜잭션이나 복잡한 쿼리가 필요한 경우 RDS를 사용한다.)
  1. 한 회사에 MySQL 데이터베이스에 연결되는 .NET 계층으로 구성된 애플리케이션이 있습니다. 이 애플리케이션을 AWS로 이전하고 고가용성 및 자동 백업과 같은 AWS기능을 사용하려고 합니다. 다음 중 이 사용 사례에 적합한 데이터베이스는 무엇입니까?
  • Amazon RDS
  • Amazon redshift
  • Amazon dynamoDB
  • Amazon aurora
    (aurora는 이 사용 사례에 적합한 MYSQL 및 PostgreSQL 호환 관계형 데이터베이스이다.)
  1. 참 또는 거짓입니까? Amazon RDS는 자동으로 데이터베이스 소프트웨어를 패치하고 데이터베이스를 백업하므로, 고객이 정의한 보존 기간 동안 백업을 저장할 수 있고 특정 시점으로 복구가 지원됩니다.
  • 거짓
    (RDS는 자동으로 데이터베이스 소프트웨어를 패치하고 백업합니다.)
  1. 데이터베이스 유형을 선택할 때 무엇을 고려해야 합니까?
  • 데이터 크기
  • 데이터 액세스 기간
  • 쿼리 빈도
  • 고가용성
  • 위 항목 모두 해당
    (모든 것을 고려해야 함)

0개의 댓글