# Multi AZ & Multi Region & Multi Account

# 1. Multi AZ

Multi-AZ는 한 서비스를 여러 AZ에 걸쳐 사용할 수 있는 기능이다. 몇몇 서비스는 수동으로 활성화해야 하며, 몇몇은 기본으로 지원한다.

### EBS를 Multi-AZ처럼 만들기

EBS는 한 AZ에 종속되어 있는 서비스이지만 어거지로 multi-AZ처럼 사용할 수 있다. 조금 변태같아…

![Image](https://upload.cafenono.com/image/slashpageHome/20240820/134254_3H0L6AlGDP8oacpdV6?q=80&s=1280x180&t=outside&f=webp)

1. 인스턴스를 하나만 만들도록 하고 EC2와 EBS를 구성한다.

2. 만약 해당 인스턴스가 종료되면 Terminate Lifecycle hook를 동작시켜 스냅샷을 만든다.

3. 그러면 ASG에 의해 새 AZ에 새 인스턴스가 만들어질거다.

4. 이때, Launch Lifecycle hook을 동작시켜 스냅샷을 EBS로 가져온다.

# 2. Multi Region

- DynamoDB Global Tables (enabled by Streams)

- Config Aggregators : 모든 리전 & 계정을 통합할 때

- RDS Cross Region Read Replicas

- Aurora Global Database (Master는 하나다)

- EBS 스냅샷, AMI, RDS 스냅샷

- VPC Peering

- Route53

- S3 Cross Region Replication

- CloudFront for Global CDN

- Lambda@Edge : CDN에 배포되는 Lambda 함수

### Route53 - Health Check

Route 53은 Health Checker를 통해 해당 리소스가 살아 있는지 판단한다.

Route53의 서비스의 특성상 리전에 종속되지 않기 때문에, 각 인스턴스들을 감시하고 있는 Health Checker는 Multi Region의 특징을 지닌다. 또한 CW Alarm과 통합하여 자유롭게 리소스를 조작할 수 있다.

### CFN StackSets

StackSets는 여러 계정, 여러 리전에 걸쳐서 한 번의 명령으로 모든 스택을 생성/수정/제거할 수 있다.

- failure tolerance를 설정 가능

- 동시에 진행되는 최대 스택 수 설정 가능

### CodePipeline

[Using AWS CodePipeline to Perform Multi-Region Deployments | Amazon Web Services](https://aws.amazon.com/ko/blogs/devops/using-aws-codepipeline-to-perform-multi-region-deployments/)

![Image](https://upload.cafenono.com/image/slashpageHome/20240820/134258_iJcB87Kl9OO9D7f0G3?q=80&s=1280x180&t=outside&f=webp)

1. CodeBuild의 결과물은 각 리전의 CodePipline Artifact Store로 뿌린다.

2. 각 리전별로 CodeDeploy를 실행해 Artifact를 가져다가 배포한다.

# 3. Multi Account

계정간에 작업을 하려면 IAM trust가 필요하다. 그리고 IAM Role을 계정에 할당하는데, STS를 통해 임시 토큰을 발급받기 때문에 IAM credential이 필요하지 않다.

For the site tree, see the [root Markdown](https://slashpage.com/kaonmir.md).
