AWS

AWS Solutions Architect Associate C03 [RDS Custom, Aurora]

dbavayne 2023. 2. 10. 11:18

- RDS Custom

: 기존의 RDS에서는 OS의 접근이나 사용자 지정 기능에 액세스 할 수 없지만 RDS Custom 에서는 가능하다.

: Oracle, Microsoft SQL Server 두 유형의 DBMS가 있다.

: 또한 AWS에서의 자동화 설정, 운영 및 스케일링의 장점을 챙길 수 있다.

: 내부 설정 구성, 패치 적용, 네이티브 기능 활성화가 가능하고 SSH 나 SSM으로 기저 EC2 인스턴스에 접근 가능하다

 

 - RDS와 RDS Custom 의 차이점 

RDS RDS Custom
OS 및 나머지가 AWS에서 모두 관리 Oracle, Microsoft SQL Server 에서 사용
기저 OS와 DB에 대한 관리자 권한 전체를 소유 할 수 있음

 


Amazon Aurora

- Postgres 와 Mysql 과 호환이 되도록 만들어졌다

- 클라우드에 최적화 되어 있다.

- RDS의 Mysql 보다 5배 높은 성능을 가지고 있다.

- RDS의 Postgres 보다 3배 높은 성능을 가지고 있다.

- Aurora의 스토리지는 자동 확장 되며 10GB에서 시작하여 자동으로 128TB까지 커진다

- replica의 경우 15개까지 둘 수 있다. (Mysql에선 5개만 가능)

- 비용이 RDS에 비해 20%정도 높지만 장애조치는 즉각적이다 [다중 AZ나 RDS의 Mysql보다 빠르다]

 

Aurora 높은 가용성과 읽기 스케일링

: 데이터 기록될 때마다 3개의 AZ에 걸쳐 6개의 사본을 저장한다.

: 쓰기에는 6개의 사본 중 4개만 있으면 된다.

: 읽기에는 6개의 사본 중 3개만 있으면 된다. 즉 읽기 가용성이 높다.

: 일부 데이터가 손상될 경우 P2P 복제를 통한 자가복구가 진행 됨(백엔드에서 진행)

 

- Aurora 마스터가 작동하지 않으면 평균 30초 이내로 장애조치가 시작된다.

- 읽기전용 복제본은 15개까지 둘 수 있으며 장애발생 시 하나가 마스터가 되어 대체한다.

- 복제본들이 리전 간 복제를 지원한다.

 

 Aurora 기능

: 자동장애조치

: 백업 및 복구 
: 격리 및 보안

: 산업 규정 준수

: 제로 다운타임 자동패치 설치

: 고급 모니터링

: 백트랙 (어떤 시점의 데이터로도 복원)

: 공유 볼륨은 10GB에서 128TB까지 자동으로 확장된다.
: 스토리리지에 Write는 Master만 가능하다.
: Master가 바뀌거나 장애조치가 실행 될 수 있어 Writer Endpoint가 제공되며 DNS이름으로 항상 Master를 가르킨다.
: Replica는 자동으로 스케일링이 가능하며 15개까지 생성이 가능하다.
: 이러한 Replica로 Reader Endpoint가 제공되며 연결 로드 밸런싱에 도움을 준다.(모든 Replica와 Reder Endpoint는 자동으로 연결된다.)


  


Aurora DB 생성

1. Aurora DB생성 및 Mysql 에디션으로 선택

2. Production 템플릿설정과 비밀번호 기입

3. 다중 AZ에 배포본 생성

4. 퍼블릭 네트워크와 보안그룹 생성

5. 정책설정을 이용해 Replica 스케일링 주기 설정


Aurora Replica 고급 기능

1. Replicas Auto Scaling 

2. Custom Endpoints

3. Aurora Serverless

4. Multi-Master

5. Global Aurora

6. Machine Learning

Replicas Auto Scaling 
기존에 2개의 Reader Endpoint로의 읽기요청이 많아 CPU 사용량이 증가하고 있다. 
자동 스케일링을 설정해 놓았다면 새롭게 aurora 복제본이 추가된다.
Reader Endpoint까지 자동연결되며 읽기 트래픽을 분산해 CPU사용률 감소를 기대할 수 있다.


Custom Endpoints
위와 같은 자동 스케일링이 일어났지만 일부 복제본은 기존의 복제본과 크기가 다르다.
큰 인스턴스 두개는 Custom endpoint로 정의할 수 있고 이 특정 복제본에서 분석 쿼리를 실행하도록 한다.
또한 Custom endpoint를 정의하게 되면 기존에 Reader Endpoint는 사용하지 않게 된다.
Custom endpoint를 여러개 생성하게 된다.

Aurora Serverless
비정기적, 간헐적, 예측 불허한 워크로드에 유용하다.
용량 계획을 세울 필요가 없고 Aurora 인스턴스에 대해 매초당 가격만 지불한다. 
클라이언트는 aurora가 관리하는 프록시와 소통하며 백엔드에서 서버리스방식으로 여러 aurora가 생성된다.

Aurora Multi Master
Write node에 대한 장애조치이며 write node에 높은 가용성을 갖추고자 할때 사용
이 경우 클러스터의 모든 노드에서 읽기/쓰기가 가능
Aurora 인스턴스가 3개 있고 모든 인스턴스간에 복제가 일어나고 있다. 

하나의 인스턴스가 장애를 일으키면 자동으로 장애조치를 통해 다른 인스턴스로 넘어갈 수 있다.


Global Aurora
모든 쓰기, 읽기가 진행되는 하나의 기본리전이 존재
복제 지연이 1초미만인 보조 읽기전용 리전을 5개까지 설정할 수 있다
각 보조 지역마다 읽기전용 복제본을 16개까지 생성 가능
> 한 리전의 DB가 중단될 경우 다른 지역을 승격하는데 복구시간은 1분 미만이다.



Machine Learning

ML기반 예측을 SQL 인터페이스로 APP에 적용하는 것
아래 두가지 지원하는 서비스가 있다. Aurora와 통합이 가능하다는 것만 기억
• Amazon SageMaker (use with any ML model)
• Amazon Comprehend (for sentiment analysis)

> 예를 들어 아래와 같이 App이 aurora와 연결되어있고 사용자는 추천제품을 조회했다. aurora는 머신 러닝 서비스로 데이터(쇼핑내역,사용자프로필 등)를 전송한다. 머신 러닝 서비스는 aurora로 예측데이터(빨간셔츠,파란바지 기타 제품)를 반환한다. aurora는 해당 결과를 App에 반환한다.