Amazon Aurora
- Aurora는 AWS의 사유 기술이다. (오픈 소스가 아니다.)
- 오로라 DB에는 호환 드라이버가 있어 Postgres, MySQL과 호환이 된다.
- 오로라는 AWS Cloud 환경에 최적화 되어있다.
- RDS의 MySQL보다 5배 이상 향상된 성능을 가지고 있다.
- RDS의 Postgres보다 3배 이상 향상된 성능을 가지고 있다.
- 오로라 스토리지는 자동으로 늘어난다.
- 10GB로 시작해서 128TB까지 늘어난다.
- 오로라는 Replicas를 15개까지 가질 수 있다.
- MySQL은 5개까지 가질 수 있다.
- 복제하는 속도도 훨씬 빠르다.
- 오로라는 장애 조치가 즉각적이다.
- 클라우드 네이티브라서 가용성이 높기 때문이다.
- MySQL RDS의 다중 AZ에서 장애 조치보다 속도가 훨씬 빠르다.
- 오로라는 RDS보다 20% 정도 비싸지만 규모 면에서 더 효율적이어서 비용을 아낄 수 있다.
Aurora High Availability(고가용성)와 Read Scaling(읽기 스케일링)
- 오로라가 특별한 이유는 3개 AZ에 걸쳐 기록하는 것은 무엇이든 6개의 데이터 복제본을 저장하기 때문이다.
- 쓰기에는 6개 중 4개만 필요하다.
- 읽기에는 6개 중 3개만 필요하다.
- 일부 데이터가 손상되거나 잘못된 경우 백엔드에서 P2P 복제로 자가 복구를 할 수 있다.
- 스토리지는 하나가 아니라 수백 개의 볼륨에 의지할 수 있다.
- 한 개의 오로라 인스턴스에서 기록을 한다. (Master)
- 마스터가 작동하지 않으면 평균적으로 30초 안에 장애 조치가 실행된다.
- 마스터에는 최대 15개의 읽기 전용 복제본이 있을 수 있다.
- 모든 읽기 전용 복제본은 마스터 장애 시 마스터가 될 수 있다.
- 읽기 전용 복제본의 장점은 지역 간 복제를 지원한다.
Aurora DB Cluster
- 공유된 스토리지 볼륨이 있어서 10GB에서 64TB / 128TB (버전에 따라 다름)로 자동 확장된다.
- Writer Endpoint를 제공한다.
- DNS Name으로 항상 마스터를 향해서 마스터 장애 시 클라이언트는 Writer Endpoint를 통해 올바른 인스턴스로 자동 리디렉셕 된다.
- 읽기 전용 복제본에 오토 스케일링을 적용할 수 있다.
- 읽기 전용 복제본의 개수를 최대 15개까지 설정할 수 있다.
- 애플리케이션이 읽기 전용 복제본과 URL을 추적하는 것이 어려워지고 연결하기도 어려워진다.
- Reader Endpoint를 사용하면 된다.
- Reader Endpoint
- 로드 밸런싱의 연결을 돕는다.
- 모든 읽기 전용 복제본에 자동으로 연결한다.
- 클라이언트가 Reader Endpoint에 연결할 때마다 읽기 전용 복제본 중 하나가 연결되는 방식으로 로드 밸런싱한다.
Aurora Features
- 자동 장애 조치(Automatic fail-over)
- 백업과 복원(Backup and Recovery)
- 격리와 보안(Isolation and security)
- 산업 준수 기능(Industry compliance)
- 오토 스케일링을 통한 푸시 버튼식 스케일링(Push-Button Scaling)
- 제로 다운타임의 자동 패치(Automated Patching with Zero Downtime)
- 고급 모니터링
- 정기 유지보수
- 백트랙(Backtrack)
- 언제든지 데이터를 복원할 수 있는 기능으로 백업에 의존하지 않는다.
Aurora Security
- RDS와 같은 엔진을 사용하므로 비슷하다.
- KMS로 미사용 데이터(rest data)를 암호화한다.
- 자동 백업, 스냅샷, 복제본을 암호화한다.
- 전송 중 암호화에는 SSL를 사용한다. (MySQL과 Postgres도 동일하다.)
- IAM 토큰을 사용한 인증도 가능하다. (RDS에서 본 것과 동일한 방식이다.)
- Postgres, MySQL RDS와 통합으로 가능하다.
- Security Group으로 인스턴스를 보호해야 한다.
- SSH를 인스턴스에 연결할 수 없다.
Aurora Replicas - Auto Scaling
- CPU의 사용량이 증가하면 오토 스케일링 복제본이 추가된다.
- 자동으로 리더 앤드 포인트가 이 새 복제본을 포함할 수 있도록 확장된다.
- 새 복제본은 트래픽을 수신하기 시작하고 전체 CPU 사용량을 낮추기 위해 좀 더 분산된 방식의 읽기를 수행한다.
Aurora - Custom Endpoints
- 오로라 인스턴스의 서브셋을 사용자 지정 엔드포인트로 정의한다.
- 예를 들어 특정 인스턴스의 성능이 더 뛰어날 경우 해당 인스턴스에 분석 쿼리를 실행하는 것이 훨씬 좋기 때문이다.
- 보통 Reader Endpoint는 사용자 지정 엔드포인트가 정의된 이후 사용하지 않는다.
Aurora Serverless
- 자동화된 데이터베이스 인스턴스화와 실제 사용을 기반으로 한 오토 스케일링을 제공한다.
- 드물거나 간헐적이거나 예측할 수 없는 워크로드가 있을 때 유용하다.
- 용량 계획을 수행할 필요가 없다.
- 초당 비용을 지불하기 때문에 비용 면에서 효율적 일 수 있다.
작동
- 클라이언트는 오로라에서 관리하는 프록시 플릿(Proxy Fleet)과 통신한다.
- 백엔드에서는 서버리스 방식으로 워크로드를 기반으로 많은 오로라 인스턴스가 생성된다.
- 미리 용량을 프로비저닝 할 필요가 없다.
Aurora Multi-Master
- Writer Node에 대한 즉각적인 장애 조치를 원하는 경우 즉 Writer node에 대한 높은 가용성을 원하는 경우에 사용한다.
- 오로라 클러스터에 있는 모든 노드의 읽기와 쓰기 작업을 한다.
- 쓰기 노드가 하나만 있고 다운돼서 실패하게 되면 읽기 복제본을 새로운 마스터로 승격시킨다.
예시
- 오로라 클러스터 3개가 있다.
- 서로 복제를 수행한다.
- 공유 스토리지 볼륨이 있고 클라이언트는 데이터베이스 연결을 여러개 갖는다.
- 모든 오로라 인스턴스는 쓰기 작업을 수행할 수 있다.
- 만일 어떤 오로라 인스턴스가 실패하면 Writer node에 대한 즉각적인 장애 조치를 제공하는 다른 노드로 자동 장애 조치를 수행할 수 있다.
Global Aurora
- Aurora Cross Region Read Replicas
- 재해 복구에 유용하다.
- 간단하게 구현할 수 있다.
- Aurora Global Database (추천)
- 하나의 Primary Region에서 읽기와 쓰기를 수행한다.
- 최대 5개의 읽기 전용 secondary region을 설정할 수 있다.
- secondary region당 랙이 1초 미만이어야 한다.
- 각 region당 최대 16개의 읽기 전용 복제본을 가질 수 있다.
- 전 세계의 읽기 전용 복제본에 대한 지연 시간을 줄일 수 있다.
- 재해 복구 목적으로 다른 region을 승격해 어떤 region에서 데이터베이스의 중단이 발생하더라도 RTO가 있으므로 다른 region으로 복구하는 데 1분 미만이 걸린다.
Aurora Machine Learning
- SQL 인터페이스를 통해 애플리케이션에 ML 기반 예측을 추가할 수 있는 개념이다.
- 오로라와 다양한 AWS 머신 러닝 서비스 간의 간단하고 최적화되고 안전한 통합을 할 수 있다.
- 지원되는 서비스
- Amazon SageMaker (모든 종류의 ML 모델을 사용할 수 있다.)
- Amazon Comprehend (감정 분석을 수행한다.)
- Aurora Machine Learning을 사용하기 위해 ML 경험이 필요 없다.
사용 사례
- 오로라 내에서 하는 사기 탐지, 광고 타겟팅 감정 분석, 제품 추천 등
'프로그래밍 > AWS Solutions Architect' 카테고리의 다른 글
AWS SAA - Amazon Route 53 (0) | 2022.05.18 |
---|---|
AWS SAA - Amazon ElastiCache (0) | 2022.05.17 |
AWS SAA - Amazon RDS (0) | 2022.05.15 |
AWS SAA - Auto Scaling Group (ASG) (0) | 2022.05.12 |
AWS SAA - Elastic Load Balancer(ELB) (0) | 2022.05.12 |