[SAA] RDS,Aurora & ElasticCache

Blue·2024년 1월 22일
0

SAA

목록 보기
8/25
post-thumbnail

RDS

RDS 는 Relational Database Service 의 약자로 DB Service 를 관리한다. RDS 는 Cloud 안에 DB 생성하게 해주고 AWS 에 의해 관리되어진다.

Postgres,Mysql,MariaDB,Oracle,Microsoft SQL Server,Aurora 지원한다고 한다.

Advantage over using RDS versus deploying DB on EC2

RDS 는 자동으로 프로비저닝,OS patching
백업,복원도된다
대시보드를 통해 서비스 모니터링도 할수있다
복제본을 읽어서 향상된 읽기 성능을 낼수있고
재해 복구를 위해 다중 가용영역을 설정할수도
,,확장성,,,또한 좋고
EBS 에 저장된다고 한다.,.
뭐 이런것들이 RDS 를 사용하면 된다고 하니 좋다고한다.

RDS - Storage Auto Scaling

DB 를 많이 사용하면 할수록 공간이 부족해질수 있다.
이떄 RDS가 자동으로 감지하고 Storage 를 확장하는것을 뜻한다.

그것을 통해서 수동으로 Storage 를 확장하는 번거로움을 없앨수 있다.

사용자가 threshold 를 정해서 최대를 새팅하게된다면 조건에 따라 Auto Scaling 이 된다.

이러한 방식은 자신의 Applicaion 의 Workload 를 예측할수 없을때 사용하기 좋다.

RDS Read Replicas for read scalability

RDS READ Replica 는 최대 15개를 만들수 있다.
여러 AZ를 거쳐서 생성이 가능하다.

이러한 복제는 비동기식으로 비동기 식은 뭐냐 읽기가 일관적으로 유지된다는것을 의미한다. APplication 에서 복제하기 전에 읽기 전용 복제를 읽으면 모든 Data 를 얻을수 있다.

그냥 현재 Master RDS DB Instance 에서 복제를 만들면 그 시점의 내용을 가지고 있는 Replica 가 생긴다는 말이다.

하여튼 이러한 Replica 들은 만약 Master DB INstance 가 문제가 생기면 바로 자신들이 master 로 올라올수도 있따.

Use Cases

만약 일반적인 Load 량을 가지고 있는 Production Application DB가 있다고 가정하자
Reporting application 을 돌리고 싶은데 기존 Master RDS DB Instance 에도 Reporting Application 을 연결하게 된다면 Master DB 의 오버로드가 발생하게 될것이고 Application 의 속도가 느려진다.

이럴떄 Reporting Application 을 Master RDS DB INstnace 에 연결하지 않고 MAster 의 Replica 를 만들어서 Reporting Application 은 Replica 에 연결하는것이다.

Network Cost

AWS 에는 AZ 옮기면 비용 발생한다.
근데 RDS Read Replica 만들때는 같은 지역에서는 AZ 옮겨도 비용 안든다고한다,,,,

하지만 Region 을 바꾸면 당연하게 돈 낸다!!

RDS Multi AZ (Disaster Recovery)

재해 복구할때 사용한다고 한다.
Read Replica 를 만들때와는 다르게 동기식으로 복제한다.
Master 의 모든 복제를 동기적으로 변경사항 모두를 복제한다는 뜻인데

그냥 어떠한 변화가 생기면 모든 replica 들이 그 변경사항들을 복제하게된다는것이다.

그렇게 만들어진 Replica 는 한개의 목적만 수행한다. 바로 stan by 즉 대기 목적만 실행한다는것인데 Master 에 문제가 생기면 그떄 Master 로 승격하면서 Master 의 재해복구를 할수 있다.

RDS - From single-AZ to Multi-AZ

단일 AZ -> 다중 AZ 로 바꾼다는 말인데
일단 Multi AZ로 바꾸는 중지시간이 없다고 한다.
그냥 수정버튼 하나 누르면 된다고 합니다.

기존 MAster 에 있는 INstance 의 Snapshot 을 만들고 그걸 가지고 Replica 에 복원한다고한다.

RDS Custom

원래 RDS 는 자동으로 셋업해주고 AWS 의 scaling 도 뭐 자동으로 해주는데
즉 DB 전체를 관리하고 사용자는 아무것도 안건들인다.

근데 RDS Custom 은 DB , OS 에도 접근가능해서 건들이지 못한것들을 건들일수 있다고 한다,,,

Amazon Aurora

AWS 고유 기술이라고 한다.
Postgres , Mysql 이 지원되고 AWS Cloud 에 최적화된 Database 라고 한다.... 뭐 Mysql 보다 5배 뛰어난 성능,,,, postgres 보다 3배더 빠른 성능을 낸다고 합니다,,,

그리고 AUrora storage 는 자동으로 증가된다고 한다. 10GB 부터 128TB 까지...
15개의 replica 를 만들수 있다고 한다. Mysql 은 5개...(아까 RDS 15개 까지 Read replica 만들수 있다고 한거 아닌가,,,,다시 확인해봐야할듯)

Failover 가 좋고,, 더 저렴하다고 합니다...

Aurora High Availability and Read Scaling

Aurora 의 작동 방식을 좀 보여준거같다...
Aurora 에 무언가를 기록할때마다 6개의 사본을 만든다고 한다...
쓸때는 4개의 사본 읽을때는 3개의 사본을 만들고 일부 데이터가 손상이 된다면 P2p 복제를 해서 자가 복구한다고 한다.

Master 에 의해서 쓰여지고 이 Master 가 만약 30초 동안 작동안하면 자동으로 Failover 한다고 한다.

그리고 최대 15개의 Read Replica 를 만들수 있다고 한다.

Aurora DB Cluster

Storage 에 Read 하는건 MAster 만 사용한다고 한다.
그리고 이러한 MAster를 가리킬수 있는건 Writer Endpoint 라고 하는데 DNS 이름이라고 한다.

Reader Endpoint 는 모든 읽기 전용 복제본과 연결된다고 하고 15개까지 replica 가능하다.

Features of Aurora

,,,자동으로 Failover
백업,복원
보안 등등,,, 좋은게 많고 특히 BackTrack 이라고 특정시점으로 갈수있다고 한다.

Aurora Replicas - Auto Scaling

그리고 ReadReplica 들이 Auto Scaling 도 한다고 한다.
Reader Endpoint 에 연결되어있는 Replica 들이 Cpu Usage 를 보고 Auto Scaling 한다고 한다. 이렇게 새로운 복제본이 만들어지면 읽기가 더 분산된 방식으로 발생될것이고 전체 CPU 사용량이 내려가게 될것이다.

Aurora - Custom Endpoints

그리고 어떤 복제본들은 다른 복제본보다 더 큰 Storage 를 가지고 있다. Aurora 인스턴스 와 하위 집합을 사용자 지정 Endpoint 로 정의하기 위해 Custom Endpoints 를 사용한다고 한다.

Aurora Serverless

Serverless 는 실제 사용량에 따라 자동화된 DB instance 화 및 Auto Scaling 을 제공한다고 한다.

Workload 가 드물거나 예측할수 없는 경우에 유용하다고한다.,

Global Aurora

Aurora Cross Region Read replica 는 지역을 나눠서 Read Replica 를 만들수있다. 재해 복구에 좋고 그냥 그자리에 넣기 편하다고 한다.

Aurora Global Database 는 추천되는 방식으로 주요 지역을 누고 읽기와 쓰기를 할수있고 최대 5개의 읽기 전용 지역을 설정할수 있다. 지역당 16개의 Read Replica 를 만들수 있고 지연시간을 줄이는데 좋다고 한다.
그리고 다른 지역으로 확장하는것도 1분안에 든다고 하고 이또한 재해 복구에 좋다고 한다.

Aurora Machine Learning

Application 에 ML 기반 예측을 적용할수 있다는 것이다.
SageMaker,,,,Comprehend,,,를 지원한다고 한다...

RDS Backups & Aurora Backups

먼저 RDS 는 자동 백업 , DB Snapshot 으로 백업하는 수동 백업이 있다.
자동백업은 5분마다 백업이 된다,,, 가장 최근 백업은 5분전 꺼라고 한다.
이렇게 백업된 건 1일에서 35일동안 유효하다고 하고
백업 기능을 사용하지 않으려면 0으로 설정하면 된다고 한다.

수동 백업은 사용자가 수동으로 하는것이다.
수동으로 백업하면 원하는 기간동안 유지할수있다고 한다.

RDS Backup 은 RDS DB stop 해도 비용을 낸다고하는데 오래 stop 해둘꺼라면 RDS 삭제하고 snapshot 사용해서 나중에 복원하라고 한다.

Aurora Backup 또한 자동 백업,수동 백업 다있다.
자동백업은 RDS 와 다르게 자동백업이 안된다고 한다.
1일부터 35일동안 유지할수있고 시점 복구 기능이 있다고 한다.

수동 백업은 원하는 기간 유지가능하다고 한다..

RDS & Aurora Security

저장된 데이터를 암호화 할수 있다고 한다.
Data 가 Volume 에 암호화 된다고 하는거와 같다.

Amazon RDS Proxy

VPC 내에 RDS DB 배포할수 있었다 RDS DB Proxy 또한 배포가능하다고 한다.
Proxy 사용하면 Application 이 DB 내에서 DB 연결 풀을 형성하고 공유할수 있다고 한다....

PRoxy 연결하면 하나의 풀에 연결을 모아서 RDS DB Instance 로 가는 연결이 줄어든다..

Proxy 사용하면 RDS DB Instance 의 연결을 최소화 할수 있고 장애 조치 시간을 66% 까지 감소할수있다.

serverless, autoscaling,highavailable,,,

RDS 에 지원하는 것들을 다 지원하고 Code 변경을 할필요없다고 한다.,
IAM 을 통해서 인증하고 자격인증은 AWS Secret Manager 에 저장한다.

이러한 Proxy 는 Lamda 함수가 사용하기 좋다고 한다.

Amazon ElastiCache

캐싱 기술인 Redis or Memcached 를 관리할수 있도록 도와준다,,,
일단 Cache 는 매우 높은 성능,짧은 지연시간을 가진 Inmemory DB 이다..
이런 Cache 는 READ Load 를 줄여주고 비 저장형으로도 가능하다고 한다.

ElastiCache 를 사용하면 코드를 많이 바꿔야한다고 하는데(이건 아직 뭔말인지 모르겠)

ElastiCache - DB Cache

자 만약 Application 에서 쿼리 발생해서 ElastiCache 에 있으면 우린 Cache HIt 라고 한다. 그냥 바로 Cache 에서 가져오면 된다. 이렇게 Hit 된다면 RDS 접근하지 않아도 되서 Load 를 줄일수 있다.

만약 ElastiCache 에 없으면 RDS 에 직접 접근해서 가져오고 이후에 ElastiCache 에 써서 다음에 접근할떄는 Hit 할수 있게 한다.

이러한 Cache 를 User Session Store 에서도 쓸수 있다고 하는데 만약 현재 사용자의 Sesseion 이 ElastiCache 에 있다면 바로 로그인하면 되고 없으면 위에 방식처럼 직접 접근하고 ElastiCache 에 써서 다음에 로그인할떈 바로 할수 있게 한다.

ElastiCach - Redis versus Memcached

Redis 는 자동 Failover 로 다중 AZ 를 가진다.
ReadReplica , High availability.,,,
Redis 는 데이터 내구성에 대한것이라고한다.
기능면에서는 Cache 로서 set or sorted set 을 지원한다.

Memcached 는 데이터 분할을 위해 멀티노드를 사용한다고 한다.
고가용성 없고 복제도 안되고 영구 캐시도 안되고 백업 복원 다 안된다
이러한 Memcached 는 분산되어 있는 순수한 Cache 이다. Data 손실되어도 괜찮다고 함.

ElastiCache - Cache Security

ElastiCache 는 IAM 인증을 REDIS 에서만 지원한다.

Patterns for ElastiCache

Data 로드 하는 패턴을 말한다.
3가지의 patter 이 있는데

Lazy Loading - 모든 Data 가 Cache 되고 Data 가 cache 에서 지체된다는 패턴이다. Cache HIt 없는 경우에만 데이터를 ElastiCache 로 로드하기 때문에 Lazy 라는 이름을 가졌다고 한다.

Write Through 는 DB 에 데이터가 기록될떄마다 cache 에 Data를 추가하거나 Update 하는것이라고 한다 이러면 데이터 지체가 없다고 함.

Session store 는 유지시간 기능 사용해서 세션을 만료할수있다고 한다.

ElastiCache - Redis Use Case

Redis Sorted Set 은 유일성과 요소 순서를 보장해준다고 한다.
요소 추가될때 마다 실시간으로 순위 바뀌어서 올바른 순서로 처린한다.

정렬된 Set 와 함께 Redis 활용해서 실시간 리더보드에 엑세스 할수 있다고 한다...

profile
할수있다가 아닌 해야한다!!

0개의 댓글