[AWS SAA] RDS, Aurora

junghan·2023년 2월 21일
0

AWS SAA

목록 보기
16/51
post-thumbnail

RDS란?

클릭 몇 번으로 클라우드에서 관계형 데이터베이스를 설정, 운영 및 확장할 수 있는 관계형 데이터베이스 서비스입니다. SQL을 쿼리 언어로 사용하는 DB를 위한 관리형 DB서버스로써 AWS에서 관리하는 클라우드에서 데이터베이스를 생성할 수 있습니다.

DB종류

• Postgres
• MySQL
• MariaDB
• Oracle
• Microsoft SQL Server
• Aurora (AWS Proprietary database)



RDS특징

  • 인프라를 프로비저닝하거나 소프트웨어를 유지 관리할 필요 없이 비효율적이고 시간 소모적인 데이터베이스 관리 태스크를 제거할 수 있습니다.
  • 선택한 관계형 데이터베이스 엔진을 클라우드 또는 온프레미스에 배포하고 그 크기를 조정할 수 있습니다.
  • Amazon RDS 다중 AZ 배포로 고가용성을 달성할 수 있습니다.

RDS의 기능

  • RDS는 관리형 서비스입니다.
  • 자동화된 프로비저닝, OS 패치
  • 특정 타임스탬프에 대한 지속적인 백업 및 복원(특정 시점 복원)!
  • 모니터링 대시보드
  • 향상된 읽기 성능을 위한 읽기 전용 복제본
  • DR (Disaster Recovery)을 위한 다중 AZ 설정
  • 업그레이드를 위한 유지 관리 기간
  • 확장 기능(수직 및 수평)
  • EBS 지원 스토리지(gp2 또는 io1)
  • 하지만 인스턴스에 SSH로 연결할 수 없습니다.


RDS – 스토리지 Auto Scaling

  • RDS DB 인스턴스의 스토리지를 동적으로 늘릴 수 있도록 지원합니다.

  • RDS가 데이터베이스 스토리지가 부족함을 감지하면 자동으로 확장됩니다.
    • 데이터베이스 스토리지를 수동으로 확장하는 것은 피하는 것이 좋습니다.

  • Maximum Storage Threshold(DB 저장 최대 한도)를 설정해야 합니다.

  • 다음과 같은 경우 스토리지를 자동으로 수정합니다.
    • 여유 스토리지는 할당된 스토리지의 10% 미만일 때
    • 저용량은 최소 5분 동안 지속될 경우
    • 마지막 수정 후 6시간이 지난 경우

  • 예측할 수 없는 워크로드가 있는 애플리케이션에 유용합니다.

  • 모든 RDS 데이터베이스 엔진 지원합니다.(MariaDB, MySQL, PostgreSQL, SQL Server, Oracle)



RDS read Replicas

RDS read Replicas는 읽기 확장성을 위한 사용방법으로, 최대 5개의 읽기 전용 복제본을 제공합니다. 읽기 복제본은 AZ 내, AZ 간 네트워킹 또는 region간 네트워킹을 지원하며,비동기적으로 데이터가 복사됩니다. 또한
복제본을 자체 DB로 승격 가능하고, 애플리케이션은 읽기 전용 복제본을 활용하기 위해 연결 문자열을 업데이트해야 합니다.

사용사례

  1. 위와 같이 정상적인 로드를 수행하는 프로덕션 데이터베이스가 있고,

  2. 일부 분석을 실행하기 위해 보고 애플리케이션을 실행하려고 할 때,

  3. 새 워크로드를 실행할 Read replica를 생성합니다.

  4. 이런식으로 동작할 경우 프로덕션 애플리케이션은 영향을 받지 않게 되고,

  5. 읽기 전용 복제본은 SELECT(=읽기) 종류의 문(INSERT, UPDATE, DELETE은 불가)을 통해 데이터를 응답받을 수 있습니다.

네트워크 비용

  • 일반적으로 AWS에서는 데이터가 한 AZ에서 다른 AZ로 이동할 때 네트워크 비용이 발생하지만, 동일한 리전 내 RDS 읽기 복제본의 경우 즉, 한 AZ에서 다른 AZ로 이동할 때 해당 요금을 지불하지 않습니다.
  • 하지만 region이 다른 경우, cross-region 비용이 발생합니다.


RDS Multi AZ(재해 복구)

최근 kakao 데이터센터에 에러가 생겨서 불편함을 겪은 적이 있었습니다.
향후 이에 관련하여 깊게 분석한 뒤, 포스팅을 남길 생각입니다.

  • 재해복구를 위해서는 RDS DB SYNC 복제해야합니다.

  • 하나의 동일한 DNS 이름을 가지며, 장애가 발생하기 전까지 대기 상태 기다리다가 장애가 발생하면, 자동으로 역할을 이어받습니다.

  • 가용성 향상을 기대해볼 수 있습니다.

  • AZ 손실, 네트워크 손실, 인스턴스 또는 스토리지 장애 시 Failover
    •Failover란? 컴퓨터 서버, 시스템, 네트워크 등에서 이상이 생겼을 때 예비 시스템으로 자동전환되는 기능입니다.

  • 앱에 대한 수동 개입 없음

  • 스케일링에 사용되지 않음

  • 참고: 재해 복구(DR)를 위해 읽기 전용 복제본을 다중 AZ로 설정해야 합니다.

단일 AZ에서 다중 AZ로

애초에 다중 AZ로 설정하는 경우도 있지만, 단일 AZ에서 다중 AZ로 변경하는 방법 또한 존재합니다.

  • 제로 다운타임 운영(DB 정지 불필요)
  • 데이터베이스에 대해 "수정"을 클릭하기만 하면 되니, 간편합니다.
  • 다음은 내부적으로 발생합니다.
    • mazon RDS는 인스턴스 볼륨의 스냅샷을 생성합니다.
    • 새 AZ의 스냅샷에서 새 DB가 복원됩니다.
    • 두 데이터베이스 간에 동기화가 설정됩니다.


RDS custom

  • 기존 RDS는 데이터베이스 전체를 관리하지만,
  • RDS custom은 DB뿐만 아닌 기저 운영체제와 데이터베이스에 대한 관리자 권한 전체를 가집니다.
  • SSH 또는 SSM 세션 관리자를 사용해서 RDS 뒤에 있는 기저 EC2 인스턴스에 액세스 할 수 있습니다.
  • RDS custom을 사용할 경우 권한이 막강해지지만, 사용자 지정 설정을 작용하고 작업할 경우 자동화, 스케일링 관리 작업으로 인해 오류가 발생할 가능성이 많으니 스냅샷을 찍은 뒤 작업하도록합니다.


Amazon Aurora

RDS를 생성하기전, DBMS를 고르는 중, AWS에서 지원하는 Aurora를 본 적이 있습니다. Amazon Aurora(Aurora)는 MySQL 및 PostgreSQL과 호환되는 완전관리형 관계형 데이터베이스 엔진입니다.
MySQL과 PostgreSQL이 고급 상용 데이터베이스의 속도와 안정성을 오픈 소스 데이터베이스의 단순성과 비용 효율성과 결합하는 방법을 이미 알고 계실 것입니다.
현재 기존 MySQL 및 PostgreSQL 데이터베이스와 함께 사용하는 코드, 도구 및 애플리케이션을 Aurora와 함께 사용할 수 있습니다. 일부 워크로드에서 Aurora는 대부분의 기존 애플리케이션을 변경할 필요 없이 MySQL 처리량의 최대 5배, PostgreSQL 처리량의 최대 3배를 제공할 수 있습니다.

특징

  • 3개의 가용 영역에 6개의 replica가 존재한다.
    • 쓰기에 필요한 사본 6개 중 4개
    • 6개 중 3개는 읽기 필요
    • P2P 복제를 통한 자가 복구
    • 스토리지는 수백 개의 볼륨에 걸쳐 스트라이프됩니다.

  • 30초 만에 failover하는 Auto healing 능력이 있습니다.

  • Aurora는 Read Replica를 최대 15개 까지 가질 수 있습니다.
    • 기존은 5개

  • Multi AZ이며 Read Replicas를 auto-scaling 할 수 있습니다. (Reader Endpoint로 로드벨런싱을하며 Auto-scaling까지 담당)

  • Read Replica는 전세계적으로 존재할 수 있기 때문에 재해 복구 또는 지연 시간 단축이 가능합니다.

  • 저장공간은 10 GB ~ 128TB까지 확장 가능합니다.

  • 오로라 인스턴스는 EC2 인스턴스를 사용합니다.

기능

아주 좋은건 다 가져다 쓰는 느낌.. 일반 RDS보다 20%비용이 비싸지만 성능하나는 확실..

  • 자동 장애 조치
  • 백업 및 복구
  • 격리 및 보안
  • 업계 규정 준수
  • 푸시 버튼 크기 조정
  • 다운타임이 없는 자동화된 패칭
  • 고급 모니터링
  • 일상적인 유지 보수
  • 역추적: 백업을 사용하지 않고 언제든지 데이터 복원
  • 만약 서로 다른 인스턴스를 사용 중이라면 커스텀 엔드포인트로 묶어서 사용할 수 있다.즉, 쿼리의 성격 별로 작업을 분할하는 Endpoint를 따로 둘 수 있습니다.

그 외 Aurora기능

Aurora Serverless

실제 사용량을 기반으로 자동화된 데이터베이스 인스턴스화 및 자동 크기 조정
• 간헐적이거나 예측할 수 없는 워크로드에 적합
• 용량 계획이 필요 없음
• 초당 지불, 더 비용 효율적일 수 있음

Aurora Multi-Master

  • 쓰기 노드(HA)에 대한 즉각적인 장애 조치를 원하는 경우
  • 모든 노드는 R/W 수행 - RR을 새 마스터로 승격
    • 모든 노드가 읽기 쓰기 작업을 하므로 전구다마 갈아끼우듯 교체가능

Global Aurora

  • Aurora Cross Region Read Replicas:
    • 재해 복구에 유용
    • 간편한 설치

  • Aurora 글로벌 데이터베이스(권장):
    • 기본 리전 1개(읽기/쓰기)
    • 최대 5개의 보조(읽기 전용) regions, 복제 지연은 1초 미만
    • 보조 region,당 최대 16개의 읽기 전용 복제본
    • 대기 시간 감소에 도움
    • 재해 복구를 위해 다른 지역을 홍보할 때 RTO가 1분 미만입니다.
    • 일반적인 지역 간 복제에 걸리는 시간은 1초 미만입니다.

Aurora Machine Learning

• SQL을 통해 애플리케이션에 ML 기반 예측을 추가할 수 있습니다.
• Aurora와 AWS ML 서비스 간의 단순하고 최적화된 안전한 통합
• 지원되는 서비스
• Amazon SageMaker(모든 ML 모델과 함께 사용)
• Amazon Comprehend(감정 분석용)
• ML 경험이 없어도 됩니다.
• 사용 사례: 사기 탐지, 광고 타겟팅, 감정 분석, 제품 추천

https://aws.amazon.com/ko/rds/
https://www.code4projects.net/relational-database-service/

AWS Certified Solutions Architect Associate 시험합격!

profile
42seoul, blockchain, web 3.0

0개의 댓글