개발 공부/AWS
[AWS] SAA 공부 (6)-1 RDS - Amazon Aurora
sngynhy
2025. 3. 25. 17:35
Amazon Aurora
AWS에서 제공하는 클라우드 네이티브 관계형 DB 서비스
- PostgreSQL 및 MySQL과 호환
- Aurora DB에 호환 가능한 드라이버가 있으며 위의 DB와 연결 가능
- 보다 더 높은 성능과 가용성 (MySQL보다 5배, PostgreSQL보다 3배)
- 클라우드에 최적화
- 스토리지 자동 확장 (10GB -> 128TB)
- 복제본을 통한 자동 복구
- Read Replica 최대 15개 생성 가능
- Multi AZ > 즉각적인 장애 조치
- 비용이 높은 편이지만 효율적인 스케일링으로 비용 절감 가능
높은 가용성과 읽기 스케일링
- 세 개의 AZ에 걸쳐 사용자가 DB에 접근할 때마다 6개의 사본을 저장 (하나의 AZ에 2개의 사본 생성)
- 쓰기에는 6개의 사본 중 4개만 있으면 됨
- 읽기에는 6개의 사본 중 3개만 있으면 됨 (읽기 가용성이 높음)
- 자가 복구 기능
- 일부 데이터가 손상되거나 문제 발생 시 백엔드에서 P2P 복제를 통한 자가 복구 진행
- 단일 볼륨에 의존하지 않고 수 백 개의 볼륨을 사용 > 리스크 감소
- 쓰기를 받는 인스턴스는 한 개 (Primary DB) > Multi-AZ와 유사
- Primary DB가 작동하지 않으면 평균 30초 이내로 장애 조치 시작
- Primary DB를 제외한 Read Replica를 최대 15개까지 생성 가능
- 읽기 전용 복제본을 많이 두고 읽기 워크로드 스케일링
- Primary에 문제 발생 시 읽기 전용 복제본 중 하나가 Primary DB로 승격
- 리전간 복제 지원
Aurora DB Cluster
작동 방식
- Writer 인스턴스 (Primary Instance)
- 읽기/쓰기 작업 모두 수행
- DNS 이름으로 항상 Primary DB를 가리킴
- 장애 조치 후에도 Writer 인스턴스와 상호작용하게 되며 올바른 인스턴스로 자동 리다이렉트 됨
- Reader 인스턴스 (Read Replica)
- 읽기 전용 복제본
- 연결 로드 밸런싱에 도와 모든 읽기 전용 복제본과 자동으로 연결
- 클라이언트가 Reader 인스턴스에 연결될 때마다 읽기 전용 복제본 중 하나로 연결
- 📌 로드 밸런싱이 연결 레벨에서 일어나는 것 기억하기!
Aurora 고급 개념
Aurora Replicas - Auto Scaling
트래픽에 따른 Replica Auto Scaling 설정 (읽기 전용 복제본 자동 추가/제거) > 읽기 부하를 효율적으로 관리
- 자동적으로 Reader 인스턴스는 새로운 Replica들을 위해 확장
- 새 레플리카들은 트래픽을 받기 시작
- 읽기는 더 많이 분배되는 방식으로 전체적인 CPU 사용량을 낮춤
Aurora - Custom Endpoints
Aurora 인스턴의 부분 집합을 사용자 지정 엔드폰인트로 지정하여DB 접근에 더 유연하게 관리할 수 있게 해주는 기능
- 클러스터 내 특정 DB 인스턴스를 그룹화하여 해당 그룹에만 접근 가능한 고유 엔드포인트를 만듦
- 트래픽 분산과 특정 애플리케이션 전용 접근을 쉽게 구현
- 사용자 지정 엔드포인트 정의 이후에는 Reader 인스턴스를 더 이상 사용하지 않음
Aurora Serverless
자동 확장형 DB 서비스서버 관리없이 애플리케이션의 트래픽 변화에 따라 자동으로 인스턴스 생성 및 종료
- 미리 용량 확보하지 않아도 됨
- 간헐적이고 예측 불가능한 업뮤량에 대응
Global Aurora
- Aurora Cross Rigion Read Replicas
- 재해 복구
- 간단한 실행
- Aurora Global Database (recommended)
- 읽기/쓰기 모두 수행하는 한 개의 리전과 최대 5개의 보조 읽기 전용 리전 생성 가능
- 응답 지연 1초 이하
- 보조 리전 당 최대 16개의 읽기 전용 복제본 사용 가능
- 한 리전에 DB 중단이 일어날 경우 재해 복구를 위해 다른 리전의 레플리카 승격 > 1분 이내
- 📌 평균적으로 Aurora Global DB에서 한 리전에서 다른 리전으로 데이터를 복제하는 데에는 1초 이하의 시간이 걸림
Aurora Machine Learning
- SQL 인터페이스를 통해 사용자의 응용프로그램에 머신러닝 기반의 예측 추가 가능
- Aurora와 AWS 머신러닝 서비스 간의 통합
- Amazon SageMaker > 모든 머신러닝 모델을 사용할 수 있도록 허용
- Amazon Comprehend > 감정 분석
- 사용 사례
- 이상 행위 탐지, 광고 타켓팅, 감정 분석, 상품 추천 등 (모두 Aurora 안에 있음)
- 머신러닝 서비스와의 통합을 위해 별로의 학습은 필요하지 않음
- 사용자가 애플리케이션의 SQL 쿼리문을 통해 상품 추천 요청을 보냄
- Aurora가 머신러닝 서비스로 데이터(사용자 프로필, 구매이력 등)를 보냄
- 머신러닝 서비스는 Aurora에게 직접적으로 예측 결과 전달
- Aurora는 쿼리 결과를 애플리케이션으로 반환