Databases - Athena, Redshift

combi_jihoon·2022년 3월 10일
0

aws solutions architect

목록 보기
22/57
post-thumbnail

Databases 타입(이어서)

Athena

  • S3 위의 SQL layer라 볼 수 있다.
    - S3의 데이터를 쿼리하기 위해 사용한다.
  • 완전한 서버리스 데이터베이스이다.
  • 얼마나 많은 쿼리를 사용했는 지에 따라 비용을 지불한다.
  • 쿼리 결과를 S3에 다시 적재할 수 있다.
  • IAM을 통해 보안을 높일 수 있다.

사용 예시

  • 1회용 SQL 쿼리
  • S3에 대한 서버리스 쿼리
  • 로그 분석

Solutions Architecture 관점의 Athena

  • 운영
    - 서버리스이기 때문에 관리가 필요하지 않다.
  • 보안
    - IAM + S3 보안(버킷 정책)을 사용한다.
  • 신뢰성
    - 뛰어난 Presto 엔진을 사용하는 완전 관리형이며 고 가용성이다.
  • 성능
    - 쿼리는 데이터 크기에 따라 확장 된다.
  • 비용
    - 실제 스캔된 데이터에 대해서만 지불하기 때문에 서버리스라 할 수 있다.


Redshift

  • PostgreSQL 기반으로 만들어 졌다.
  • OLAP(online analytical processing)를 하는 data warehouse이다.
  • DW(Data Warehouse)보다 10배 더 좋은 성능을 갖는다.
    - PB 단위의 데이터까지 확장이 가능하다.
  • row를 사용하지 않고 컬럼 형식으로 데이터를 저장한다.
  • 대규모 병렬 쿼리 엔진인 MPP를 사용해 고성능이다.
  • SQL로 쿼리를 수행할 수 있다.
  • 프로비저닝 된 인스턴스에 따라 비용이 부과 된다.
  • Quicksight나 Tableau와 같은 BI tool과 통합해 사용할 수 있다.
  • S3로부터 DynamoDB, DMS 등에 로드 된다.
  • 1 -> 128 개의 노드까지 확장이 가능하며 한 노드 당 128TB까지 사용 가능하다.
  • Node 종류
    - Leader Node: 쿼리 계획을 위해 사용되며 결과를 모으는 역할을 한다.
    - Compute Noe: 쿼리를 수행해 Leader에게 그 결과를 전달한다.
  • Redshift spectrum: 다른 곳에 적재할 필요 없이 S3에서 바로 쿼리를 날리는 역할을 한다.
  • 백업과 저장이 가능하며 vpc/IAM/KMS를 통한 보안 설정을 할 수 있고 모니터링이 가능하다.
  • Redshift 강화 vpc 라우팅: COPY와 UNLOAD 명령은 공용 인터넷 대신 S3를 통해 vpc를 이용한다.

Snapshots & DR

  • Multi-AZ 모드를 지원하지 않기 때문에 재해 복구를 하고 싶다면 스냅샷을 이용해야 한다.
  • S3에 저장 된다.
  • 변화가 있는 것만 저장해 공간을 절약할 수 있다.
  • 스냅샷을 새로운 클러스터에 복원할 수 있다.
  • 스냅샷 설정
    - 자동화: 8시간 마다, 5GB 마다 스냅샷을 찍을 수 있으며 보존 기간을 설정할 수 있다.
    - 수동: 스냅샷을 삭제하기 전까지는 계속해서 보존 된다.
    -> 자동 설정이든 수동 설정이든 간에 스냅샷을 자동으로 복제해 다른 리전으로 보내 재해 복구에 사용할 수 있도록 설정할 수 있다.


Redshift로 데이터 적재하기: 3가지 방법

  1. Kinesis Data Firehose 이용하기

    • 먼저 S3 버킷에 데이터를 기록한다.
    • kinesis가 자동으로 S3 데이터를 복사하도록 명령을 내려 Redshift로 적재하도록 만든다.
  2. S3에 COPY 명령을 이용하기

    • 인터넷을 이용하는 방법과 향상된 VPC 라우팅을 이용하는 두 가지 방법이 있다.
    • 보안을 높이려면 향상된 VPC 라우팅을 이용하는 것이 좋다.
  3. EC2 instance의 JDBC 드라이버 이용하기

    • EC2 인스턴스에 배포된 애플리케이션을 이용하고 있을 때 사용하면 된다.
    • 데이터를 배치로 적재하는 데 유용하다.


Redshift Spectrum

  • S3에 있는 데이터를 Redshift로 적재하지 않고 쿼리를 날릴 수 있다.
    - 쿼리하기 위해서는 Redshift cluster가 있어야 한다.
  • 쿼리는 수천개의 Redshift spectrum node에 전해지고 이를 통해 S3에서 쿼리한 뒤 그 결과를 Redshift cluster로 전달한다.
    - 그러면 결과가 사용자에게 다시 전달된다.
  • Redshift Spectrum을 이용하면 Redshift cluster에 S3 데이터를 적재해 쿼리하는 것보다 훨씬 높은 성능을 보인다.

Redshift의 solutions architect

  • 운영
    - RDS와 유사하다.
  • 보안
    - IAM, VPC, SSL, KMS
  • 신뢰성
    - 자동 치유 기능과 교차 리전 스냅샷 복제 기능이 있어 재해 복구가 가능하다.
  • 성능
    - 일반 data warehouse, 그리고 유사한 데이터 압축 대비 10배에 달하는 성능을 보인다.
  • 비용
    - 프로비저닝 된 노드 당 요금이 부과 되며 다른 data warehouse의 1/10에 해당하는 비용이 부과된다.
  • Athena와 비교시 더 빠른 쿼리 처리 속도를 보이고 더 많은 데이터를 조인할 수 있으며 인덱스를 정의할 수 있기 때문에 더 빨리 데이터를 집계할 수 있다.

OLAP, BI, Data warehouse에 대한 이야기가 나온다면 Redshift를 떠올리면 된다.

profile
쿄쿄

0개의 댓글