AWS/AWS-SAA

세션 9: AWS 기초: RDS + Aurora + ElasticCache

YoonJong 2024. 1. 6. 19:31
728x90

참고 : https://www.udemy.com/course/best-aws-certified-solutions-architect-associate/

 

- RDS 관리형 서비스 ( Relational Database Service )
  - 종류 : Postgres, MySQL, MariaDB, Oracle, SQL Server, Aurora
  - 지속적인 백업
  - 성능 모니터링 ( Enhanced [강화]Monitoring ) 
    - RDS 의 지표를 실시간으로 모니터링
    - 모니터링 지표는 CloudWatches Logs 에 30일간 저장
  - 복제본 활용해 읽기 성능 개선
  - 다중 AZ 가능 (재해 목적)
  - 오토 스케일링 가능
  - SSH 액세스 할 수 없는 것이 단점 

- RDS 스토리지 오토 스케일링
  - 처음 설정한 용량보다 많이 사용할 경우, 오토 스케일링 설정되어있으면 기능 사용 가능
  - 남은 공간이 10% 미만 , 5분 이상 부족상태 , 지난 수정으로부터 6시간 지났을 경우 
  - 모든 종류의 데이터베이스에서 활용 가능

### 읽기 전용 복제본 과 다중 AZ 의 차이점
- 간단 정리 
  - Read Replica :  성능향상 목적, 비동기식, 읽기 작업이 많은 애플리케이션 사용
  - Multi AZ : 가용성 확장 목적 , 동기식, 장애복구와 고가용성에 사용 
- RDS 읽기 전용 복제 ( Read Replica )
  - 최대 15개 복제 가능
  - 리전당 최대 5개 까지 두는 것이 가능
  - 비동기식 복제 진행
  - RDS DB 인스턴스가 읽기 쓰기를 진행하면, 복제 RDS 를 생성하면 읽기가 가능
  - select 명령문에만 사용한다 ( 읽기 전용 RDS )
  - 다른 리전으로 복제할 때는 비용이 발생한다 / 같은 리전은 무료 

- 다중 AZ  ( Multi-AZ )
  - 동기 복제
  - 항상 스탠바이 상태로 설정이 따로 필요없다.
  - 재해복구 시 사용된다.
  - 단일 AZ 에서 다중 AZ 로 이동시에는 다운타임이 필요없고 설정만 바꿔주면 된다.
  - ==예비 복제본이기 때문에 읽기 및 쓰기 작업을 수행할 수 없다.== -> Read Only
  - 활성화한 상태에서 DB 인스턴스에 문제가 발생하면 다른 AZ 의 예비 복제본으로 전화하면서 서비스를 이어나간다 ( 60 ~ 120 초 소요 )

- RDS Custom
  - Oracle 과 SQL Server 에서만 사용 가능
  - 데이터베이스와 운영체제에 커스텀 가능
  
- ### ==Amazon Aurora==  ( 클라우드에서 데이터베이스를 처음부터 설계하면 ? 이라는 생각에서 출발 )
- [AWS Aurora란? \[1탄 - RDS MySQL과 AWS Aurora의 큰 차이점\]](https://notemusic.tistory.com/69)
  - postgres 와 mySQL 에서 작동 / 유료
  - 클라우드에서 최적화 -> 성능이 무척 높다
  - 6개의 사본 저장  -> 가용성이 높다
  - 읽기 전용 복제본을 15개 까지 생성 가능 -> 자동 스케일링 설정 가능 
  - 자가 복구 과정이 있다. ( 에러를 스스로 찾아내고 복구 )
  - **리더 엔트포인트** (컨넥션 로드 밸런싱)
    - 연결 로드 밸런싱에 도움 
    - 모든 읽기 전용 복제본과 자동으로 연결
    - 로드 밸런싱이 문장 레벨이 아닌 연결 레벨에서 일어난다.
  - 오토 스케일링을 통해 복제된 오로라 인스턴스에 분산시킬 수 있다.
  - 사용자 지정 엔드포인트를 통해 특정 쿼리를 용량이 큰 인스턴스에 집중시킬 수 있다.
  - 서버리스 : 예측할 수 없는 경우 유용, 초당 요금을 지불 하므로 더 효율적
  - 멀티 마스터 : 지속된 쓰기 성능이 필요할 때
  - Global Aurora 
    - Aurora 글로벌 데이터베이스의 데이터를 리전 간에 복제하는데 평균 1초 미만이 소요 된다 ( 힌트 )
    - 복구 시간  목표를 1분 미만으로 가능
  - Aurora Machine Learning
  
- RDS 백업
  - 트랜잭션 로그는 5분마다 백업
  - 백업 보존 기간은 1~35 일로 설정 가능  -> 만료
  - 수동으로 백업한 스냅샷은 원하는 기간 동안 유지할 수 있다.
    - 스냅샷 생성 시점으로만 복원 가능
    - DB 인스턴스를 복원하는 것이 아닌, 개별 DB 인스턴스가 생성.
  - RDS 의 사용시간이 짧다면, 스냅샷을 이용하는 것이 비용 절감할 수 있다.

- Aurora Database 복제
  - copy-on-write  프로토콜 사용

- RDS & Aurora Security 
  - KMS 를 사용해 마스터와 모든 복제본의 암호화 가능
  - 주 데이터베이스를 암호화하지 않으면 읽기 전용 복제본 암호화 불가능
  - 위 경우, DB 스냅샷에서 복원해서 암호화

- RDS 프록시 
  - 간단정리 
    - RDS DB 인스턴스 연결 최소화
    - 장애 조치 시간 최대 66% 감소
    - 데이터베이스 IAM 인증 강제
    - 자격 증명 Security Manager 에서 관리
  - 서버리스
  - RDS 데이터베이스 인스턴스의 연결을 최소화 할 수 있다.
  - 데이터 베이스 리소스의 영향도를 줄이는 역할을 해준다. CPU, RAM 등
  - 장애 조치 시간 개선 ( 최대 66% )
  - MySQl , PostgreSQL, MariaDB 지원 
  - IAM 인증을 강제함으로써 IAM 으로만 접근가능하게 한다.
  - 퍼블릭 엑세스 불가, private IP 만 가능 -> 보안 증가
  - 람다랑 사용하면 좋다 .

- ElasticCache
  - AWS 의 In Memory Cache Service 
    - Memcached 와 redis 로 나뉨 -> NoSQL, Key - value 기반
  - 데이터베이스에서 쿼리를 읽는 시간 개선
  - Redis : 데이터 내구성에 관한 기능 ( 고가용성, 백업, 읽기 복제본 )
  - Memcached : 분산되어 있는 순수 캐시 ( 가용성 없음, 백업 불가 )
  - Redis 클러스터가 있는 경우 실시간 리더보드(순위) 를 생성할 수 있다.
  - 세션 데이터를 저장하는 방법은 서로 다른 EC2 인스턴스들이 필요시 사용자의 상태를 회수할 수 있게끔 하기 위해 흔히 사용

 

728x90