💝 Aurora
RDS (관계형 데이터베이스 서비스) | Amazon Aurora (RDS 호환형 관계형 데이터베이스) |
✅ RDS 스토리지 오토 스케일링 ✅ 읽기 전용 복제본 ✅ 다중 AZ ✅ RDS Custom ✅ RDS Proxty |
✅ 높은 가용성, 읽기 스케일링 ✅ DB 클러스터 ✅ Aurora 기능 ✅ 복제본 자동 스케일링 ✅ 사용자지정 엔드포인트 ✅ 서버리스 기능 ✅ 멀티 마스터 ✅ 글로벌 Aurora ✅ 머신러닝 서비스 ✅ DB 복제 가능 |
RDS & Aurora |
✅ 백업 ✅ 복구가능 ✅ 보안 |
🚨 Amazon Aurora
✤ RDS 호환형 관계형 데이터 베이스
✤ RDS 에서 제공하는 읽기 전용 복제본, KMS 암호화, 스냅샷 백업, 오토스케일링 등을 제공
✤ 읽기 전용 복사본 15개까지 가능
✤ 스케일링 측면 효율적
✤ AWS 에서 만든 고유 기술이다.(오픈소스X) 다른 RDS 보다 저렴한 비용에 성능이 더 뛰어남
✤ Postgres 와 MySQL 과 호환됨
✤ RDS dml MySQL 보다 5배 높은 성능. Postgres 보다는 3배 높은 성능
✤ 클라우드에 최적화. 클라우드 네이티브라 가용성 높다
✤ 데이터베이스 설정, 패치 적용 및 백업과 같은 관리 태스크를 자동화
✤ 스토리지 자동 확장 가능. DB 나 SysOps 로써 저장디스크를 신경쓰지 않아도 된다
✤ 개별 DB 인스턴스 기반이 아닌 여러 인스턴스를 하나로 운영하는 클러스터 DB 기반으로 구성됨
✤ 장애조치는 즉각적
✤ 비용절감
🚨 Aurora 높은 가용성 & 읽기 스케일링 (High Availability & Read Scaling)
✤ 3 AZ 에 걸쳐 기록할 때마다 6개의 사본 저장
• 쓰기는 6개 중 4개만 필요
• 읽기는 6개 중 3개만 필요
• 자가 복구 과정
• 단일볼룸 X → 수백개의 볼륨 사용
✤ 쓰기를 받는 인스턴스는 1개 뿐
✤ 30초 이내 장애조치 시작
✤ 읽기 전용 (master 제외) 15개까지 복사본 가능
✤ 리전 간 복제 지원
✤ 마스터는 1개, 복제본은 여러개이며 스토리지가 복제된다
🚨 Aurora DB 클러스터 (Cluster)
✤ DB 클러스터로써 Aurora 작동 방식
✤ 하나 이상의 DB 인스턴스와 이 DB 인스턴스의 데이터를 관리하는 클러스터 볼륨으로 구성
✤ DB 인스턴스는 읽기/쓰기 작업을 하는 기본 DB 인스턴스와 읽기 작업만 하는 Aurora 복제본으로 구성
• Writer EndPoint
- Write 는 Master 만 가능
- DNS 이름으로 항상 master 를 가리킴
• Reader EndPoint
- 연결노드밸런싱에 도움을 준다
- 읽기 전용 복제본 15개까지 가능
- 자동 스케일링 설정 가능
✤ 각 Aurora DB 클러스터는 기본 DB 인스턴스에 더해 최대 15개까지 Aurora 복제본을 구성
🚨 Aurora 기능
✤ 자동 장애 조치
✤ 백업 및 복구
✤ 격리 및 보안
✤ 산업 규정 준수
✤ 자동 스케일링을 통한 버튼식 스케일링
✤ 제로 다운타운 자동 패치 설치
✤ 고급 모니터링
✤ 일상적인 유지관리
✤ 백트랙(Backtrack) : 과거의 어떤 시점의 데이터로 복원할 수 있게해줌
🚨 Aurora 복제본 자동 스케일링 (Aurora Replicas Auto Scaling)
✤ Aurora 고급 개념이다
✤ 자동으로 Reader EndPoint 가 연장됨
• 읽기가 분산됨 → 전반적 CPU 사용량 ⬇️
✤ 3개의 가용영역에 6개의 데이터 사본을 자동 복제하여 고가용성 및 성능 향상 지원
✤ 마스터 DB 와 최대 15개의 Aurora Read Replicas 지원
✤ 마스터 DB 에 장애 발생 시 최대 30초 이내에 복제본 중 하나가 기본 인스턴스 역할로 변경되는 장애조치(Failover) 가능
✤ Aurora Auto Scaling 을 사용해 워크로드에 따라 Aurora 복제본 수를 자동으로 조정 가능
🚨 Aurora 사용자지정 엔드포인트 (Aurora Custom EndPoints)
✤ Aurora 인스턴스의 서브셋을 사용자지정 엔트포인트로 정의
✤ ex) 특정 쿼리 복제본에서 분석 쿼리 실행
✤ 일반적으로 사용자 지정 엔트포인트를 정의하면 Reader EndPoint 를 사용하지 않는다
🚨 Aurora 서버리스 기능 (Serverless)
✤ 실제 사용량 기반으로 자동 DB 인스턴스화와 자동 스케일링 가능 → 수동 관리 X
✤ 예츨불허한 비정기적 워크로드에 유용
✤ 특정 DB 인스턴스 유형 선택 X
✤ 용량계획 필요 X
✤ 각 Aurora 인스턴스에 대해 매 초당 비용 지불 (비용측명에서 효율적)
🚨 Aurora 멀티 마스터 (Multi-Master)
✤ Write 노드에 대한 즉각적 장애 조치로 Write 노드에 높은 가용성을 갖추고자 할 때 사용
✤ Aurora 클러스터의 모든 노드에서 Read, Write 가능
✤ 단일 마스터 클러스터
• 단일 DB 인스턴스는 모든 쓰기 작업을 수행하며, 기타 모든 DB 인스턴스는 읽기 전용이다.
• Writer DB 인스턴스가 사용 불가 상태가 되면 장애 조치 매커니즘이 읽기 전용 인스턴스 중 하나를 새 Writer 로 승격
✤ 멀티 마스터 클러스터
• 모든 DB 인스턴스는 쓰기 작업을 수행
• Writer DB 인스턴스가 사용 불가 상태가 될 때 어떤 장애 조치도 없음
• 읽기/쓰기 DB 인스턴스가 사용 불가 상태가 될 때 장애 조치 프로세스 및 관련 지연이 발생하지 않음
🚨 Global Aurora
✤ 리전 간 복제본 → 다른 리전으로 데이터베이스 복제 가능
✤ Aurora 글로벌 데이터베이스 (권장)
리전 간 복제본 → 다른 리전으로 DB 복제 가능
• 재해복구에 유용
• 간단하게 생성 가능
Aurora 글로벌 DB (권장)
• 모든 읽기/쓰기가 진행되는 하나의 기본리전이 있다
• 최대 5개의 보조 지역(읽기 전용)이 있고, 복제 지연은 1초 미만이다
• 보조 지역당 최대 16개의 읽기 전용 복제본이 있다
• 읽기 전용 복제본의 지연 시간 단축 가능
• 복구시간 목표는 1분 미만
• Aurora Global DB 에서 리전에 걸쳐 데이터 복제에 걸리는 시간은 평균 1초 미만
🚨 Aurora 머신 러닝
✤ Aurora 는 AWS 내의 머신러닝 서비스와 통합지원
✤ ML 기반예측을 SSL 인터페이스로 애플리케이션에 적용하는 것
✤ 지원 서비스
• 어떤 모델도 사용 가능
• Amazon 감정 분석용 (Comprehend)
✤ Machine Learning 경험은 필요 X
🚨 RDS & Aurora 백업
RDS 백업 | Aurora 백업 |
✤ 자동 백업 • 매일 데이터베이스 유지관리 시간에 자동으로 DB 전체를 백업한다 • 5분마다 트랜젝션 로그도 백업된다 • 가장 최신 백업이 5분 전 • 자동백업 보유기간은 1~35일로 설정 가능. 비활성화 가능. 비활성화 설정 시 0으로 설정 ✤ 수동 DB 스냅샷 생성 • 사용자가 수동으로 트리거해야함 • 원하는 만큼 오랫동안 보유 가능 ✤ 비용절감 할 수 있는 방법 • 스냅샷 비용은 RDS DB 스토리지보다 저렴. 스냅샷 만들고 원본 DB삭제. 스냅샷은 복원해 사용하기 |
✤ 자동 백업 • 1~35일 보유 가능. 비활성화 불가능 • 지정시간 복구 가능 : 정해진 시간 범위 내의 어느 시전으로도 복구 가능 ✤ 수동 DB 스냅샷 생성 • 사용자가 수동으로 만들 수 있다 • 원하는 만큼 오랫동안 보유 가능 |
🚨 RDS & Aurora 복구 옵션 (Restore Options)
✤ RDS / Aurora 백업 또는 스냅샷 복원
✤ S3 으로부터 MySQL, RDS 데이터베이스 복원
✤ S3 으로부터 MySQL Aurora 클러스터로 복원
RDS / Aurora 백업 또는 스냅샷 복원
• 새로운 DB로 복원 가능
S3 으로부터 MySQL, RDS DB 복원
• 사내 DB 백업을 만들어서 객체 스토리지인 AWS S3 에 두는 것
• RDS 에는 Amazon S3 에서 MySQL 를 실행중인 새로운 RDS 인스턴스로 백업 파일 복원
S3 으로부터 MySQL Aurora 클러스터로 복원
• 사내 DB 를 외부로 다시 백업하고 Percona XtraBackup 소프트웨어 사용
• 백업파일을 Amazon S3 로 전송하여 저장
• 백업파일을 MySQL 을 실행중인 새 Aurora 클러스터로 복원
🚨 Aurora 데이터베이스 복제 기능 (Cloning)
✤ 기존의 DB 로부터 새로운 Aurora DB 클러스터 생성 가능 → 복제
✤ 스냅샷을 만들고 복원하는 것보다 복제한 Aurora DB 사용하는 것이 더 빠름
✤ 새 DB 클러스터는 원본과 동일한 클러스터 볼륨 및 데이터를 사용하지만 시간흐름에 따라 DB 업데이트가 있을 때 변경됨
✤ 빠르고 & 비용면에서 효율적
✤ 프로턱션 DB 에 영향을 주지 않는다 → 데이터베이스에 스테이징 DB 를 생성하는데 유용
🚨 RDS & Aurora 보안 (Security)
✤ 미사용 암호화 (At-rest encryption)
✤ 저장 데이터 암호화 (In-Flight encryption)
✤ IAM 인증 (IAM Authentication)
✤ 보안 그룹 (Security Groups)
✤ 사용가능한 SSH 없음 (No SSH available)
✤ 감사로그 가능 (Audit Log can be enabled)
미사용 암호화 (At-rest encryption)
• AWS KMS 을 사용해 DB 마스터 및 복제본 암호화가 이루어지며 DB 처음 실행할 때 정의해야 한다
• 마스터(주DB)가 암호화되지 않은 경우 읽기 복제본을 암호화 할 수 없다
• 암호화되지 않은 DB 를 암호화하려면 DB 스냅샷 생성 및 복원작업을 거쳐야 함
저장 데이터 암호화 (In-Flight encryption)
• 기본적으로 TLS 지원, AWS 의 TLS 루트 인증서 사용
IAM 인증 (IAM Authentication)
• DB 인증
• IAM 역할을 사용해 DB 접속 가능 (id/pw 전통적인 조합을 대신해 사용 가능)
보안 그룹 (Security Groups)
• DB 에 대한 네트워크 액세스 통제 가능 (특정 포트, IP, 보안그룹 허용 및 차단 가능)
사용가능한 SSH 없음 (No SSH available)
• 관리형 서비스이기 때문에 SSH 액세스 할 수 없다 → 커스텀서비스 사용하면 제외
감사로그 가능 (Audit Log can be enabled)
• 시간에 따라 RDS/Aurora 에서 쿼리가 생성되고 있고 DB 확인하려면 감사로그 작성을 활성화하면 된다
• 로그는 시간이 지나면 자동으로 삭제되고, 장기간 보관하고 싶으면 AWS 의 CloudWatch Logs 전용 서비스로 전송해야 함
🚨 RDS 프록시 (Proxy)
✤ RDS 용 완전 관리형 데이터베이스 프록시
✤ 애플리케이션을 RDS DB 인스턴스에 일일이 연결하는 대신 프록시에 연결하면 프록시가 하나의 풀에 연결을 모아 RDS DB 인스턴스로 가는 연결이 줄어든다
✤ 애플리케이션이 DB 내에서 DB 연결풀을 생성하고 공유하도록 허용
✤ DB 리소스 부담 ⬇️, DB 효율성 ⬆️, DB 연결 시간초과 최소화
✤ 용량 관리 필요 X
✤ 서버리스, 자동 확장, 고가용성(다중 AZ)
✤ 장애조치 시간 66% 까지 줄일 수 있다 (대기 인스턴스 실행)
✤ 프록시가 장애 조치에 필요한 DB 인스턴스를 처리
✤ 코드 변경 필요 X
✤ IAM 인증을 통해서만 RDS DB 인스턴스에 연결가능하도록 함 (IAM 인증을 강제함)
✤ 자격증명은 AWS Secrets Manager 서비스에 안전하게 저장
✤ RDS 는 퍼블릭 액세스 불가 (VPC 내에서만 액세스 가능) → 보안 Good
'🌦 Cloud' 카테고리의 다른 글
[AWS/SAA-03] Route 53 (0) | 2023.05.05 |
---|---|
[AWS/SAA-03] ElastiCache (0) | 2023.05.02 |
[AWS/SAA-03] RDS (관계형 데이터베이스 서비스) (0) | 2023.04.25 |
[AWS/SAA-03] 오토 스케일링 그룹 (Auto Scaling Group) (0) | 2023.04.24 |
[AWS/SAA-03] 로드 밸런서 (Load Balancer) (0) | 2023.04.23 |