caffeine-library / system-design-interview

🌱 가상 면접 사례로 배우는 대규모 시스템 설계 기초를 읽는 스터디
4 stars 0 forks source link

[additional] 멀티 리젼 Active-Active 아키텍처 with Aws, Netflix #6

Closed binchoo closed 2 years ago

binchoo commented 2 years ago

연관 챕터

1

지역별 데이터 센터 지원하기> 난제: 데이터 동기화에 관한 참고 조사

조사 내용

이중화는 고가용성을 얻기 위한 클러스터 설계입니다. 대표적인 이중화 방식에는 2가지가 있습니다.

Active - Passive 구성

image

Active - Active 구성

image

참고자료 Active-Active vs. Active-Passive High-Availability Clustering (블로그)

@caffeine-library/readers-system-design-interview

binchoo commented 2 years ago

참고자료 Architecture patterns for multi-region active-active (pdf)

Multi-Region Active-Active 아키텍처 (using AWS)

Multi-Region + Active-Active

image

원칙

한 지역의 장애는 타 지역에 영향을 주어선 안 된다.

데이터 복제를 최소화해야 함.

데이터 복제의 기본 전략

image image

데이터의 비즈니스적 중요성에 따라 동기 혹은 비동기 복제를 수행한다.

데이터 복제의 이상적인 시스템

image

데이터 복제 패턴

Read local, write global

image

Read local, write local

image

AWS 서비스를 통한 구현

고가용성의 확보

데이터 복제

S3의 cross-region 지원

S3는 AWS 리젼 간 데이터 복제를 자동 수행할 수 있다. Object, Bucket, Prefix 단위로 복제 가능. Repliation Time 제어 가능하고, 성능 메트릭 제공받을 수 있음.

EBS 스냅샷

EBS 스냅샷은 리젼에 종속되지 않는다. 따라서 EBS 볼륨을 지역 간 복제할 수 있다.

DynamoDB의 글로벌 테이블

image

Amazon RDS의 멀티리젼 레플리카

image

스트림즈 + 파이어호스

image

네트워킹

지역 간 VPC 피어링

image 소프트 VPN을 사용하지 않고도 사설 클라우드 간 연결을 보장할 수 있다. AWS의 넉넉한 백본 네트워크를 사용함.

라우팅

Route53

Global Accelerator

image

CloudFront + Lambda@Edge (정적 리소스)

image

binchoo commented 2 years ago

참고자료 Active-Active for Multi-Regional Resiliency(블로그)

Multi-Region Active-Active 아키텍처 (NETFLIX 사례)

image

라우팅

넷플릭스는 Denomintor라는, 여러 DNS 제공자를 통합하여 제어하는 클라이언트를 사용한다. 여기에 UltraDNS와 Route53가 포함된다.

UltraDNS: 지리적 라우팅용

작성글 시점에서 Route53는 지리적 라우팅을 지원하지 않았던 것 같다. 따라서 써드파티 DNS인 UltraDNS를 사용했다고 함.

Route53: DNS Failover용

Route53는 아마존 서비스이다. 한 리젼에서 장애가 발생했을 때 이를 회복하기 위해 유저 트래픽을 다른 지역으로 돌려야하므로 이를 위해 Route53를 사용한다.

ELB: 로드 밸런서

익히 아는 AWS의 로드 밸런서

Zuul: L7 라우터: 서비스 클러스터 부하 조절

Zuul은 모든 서비스의 앞 단에 놓여 서비스 클러스터로 향하는 트래픽을 조절한다.

데이터 복제

카산드라: NoSQL 저장소

EvCache: Memcache 기반 분산 캐시