

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# DR Orchestrator Framework를 사용하여 리전 간 장애 조치 및 장애 복구 자동화
<a name="automate-cross-region-failover-and-failback-by-using-dr-orchestrator-framework"></a>

*Jitendra Kumar, Pavithra Balasubramanian, Oliver Francis, Amazon Web Services*

## 요약
<a name="automate-cross-region-failover-and-failback-by-using-dr-orchestrator-framework-summary"></a>

이 패턴은 [DR Orchestrator Framework](https://docs.aws.amazon.com/prescriptive-guidance/latest/automate-dr-solution-relational-database/dr-orchestrator-framework-overview.html)를 사용하여 오류가 발생하기 쉬운 수동 단계를 오케스트레이션하고 자동화하여 Amazon Web Services(AWS) 리전에서 재해 복구를 수행하는 방법을 설명합니다. 이 패턴에서는 다음 데이터베이스를 다룹니다.
+ Amazon Relational Database Service(Amazon RDS) for MySQL, Amazon RDS for PostgreSQL 또는 Amazon RDS for MariaDB
+ Amazon Aurora MySQL 호환 버전 또는 Amazon Aurora PostgreSQL 호환 버전(중앙 집중식 파일 사용)
+ Amazon ElastiCache (Redis OSS)

DR Orchestrator Framework의 기능을 시연하려면 두 개의 DB 인스턴스 또는 클러스터를 생성합니다. 기본는에 AWS 리전 `us-east-1`있고 보조는에 있습니다`us-west-2`. 이러한 리소스를 생성하려면 [aws-cross-region-dr-databases](https://github.com/aws-samples/aws-cross-region-dr-databases) GitHub 리포지토리의 `App-Stack` 폴더에 있는 AWS CloudFormation 템플릿을 사용합니다.

## 사전 조건 및 제한 사항
<a name="automate-cross-region-failover-and-failback-by-using-dr-orchestrator-framework-prereqs"></a>

**일반 사전 조건**
+ 기본 및 보조 모두에 배포된 DR Orchestrator Framework AWS 리전
+ [Amazon Simple Storage Service](https://aws.amazon.com/s3/) 버킷 2개
+ 서브넷 2개와 AWS 보안 그룹이 있는 [Virtual Private Cloud(VPC)](https://aws.amazon.com/vpc/) 

**엔진별 사전 조건**
+ **Amazon Aurora** - 둘 중 하나 이상의 Aurora 글로벌 데이터베이스를 사용할 수 있어야 합니다 AWS 리전. 를 기본 리전`us-east-1`으로 사용하고를 보조 리전`us-west-2`으로 사용할 수 있습니다.
+ **Amazon ElastiCache(Redis OSS)** - ElastiCache 글로벌 데이터 스토어를 두 개로 사용할 수 있어야 합니다 AWS 리전. 기본 리전`use us-east-1`으로를 사용하고 보조 리전`us-west-2`으로를 사용할 수 있습니다.

**Amazon RDS 제한 사항**
+ DR Orchestrator Framework는 장애 조치 또는 장애 복구를 수행하기 전에 복제 지연을 확인하지 않습니다. 복제 지연은 수동으로 확인해야 합니다.
+ 이 솔루션은 읽기 전용 복제본이 하나 있는 기본 데이터베이스 인스턴스를 사용하여 테스트되었습니다. 둘 이상의 읽기 전용 복제본을 사용하려면 프로덕션 환경에서 솔루션을 구현하기 전에 솔루션을 철저히 테스트합니다.

**Aurora 제한 사항**
+ 기능 가용성 및 해당 지원은 각 데이터베이스 엔진의 특정 버전 및 AWS 리전에 따라 다릅니다. 교차 리전 복제의 기능 및 리전 가용성에 대한 자세한 내용은 [교차 리전 읽기 전용 복제본](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RDS_Fea_Regions_DB-eng.Feature.CrossRegionReadReplicas.html)을 참조하세요.
+ Aurora 글로벌 데이터베이스에는 지원되는 Aurora DB 인스턴스 클래스와 최대 수에 대한 특정 구성 요구 사항이 있습니다 AWS 리전. 자세한 내용은 [Amazon Aurora Global Database의 구성 요구 사항](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database-getting-started.html#aurora-global-database.configuration.requirements)을 참조하세요.
+ 이 솔루션은 읽기 전용 복제본이 하나 있는 기본 데이터베이스 인스턴스를 사용하여 테스트되었습니다. 둘 이상의 읽기 전용 복제본을 사용하려면 프로덕션 환경에서 솔루션을 구현하기 전에 솔루션을 철저히 테스트합니다.

**ElastiCache 제한 사항**
+ 글로벌 데이터 스토어 및 ElastiCache 구성 요구 사항의 리전 가용성에 대한 자세한 내용은 ElastiCache 설명서의 [사전 조건 및 제한 사항](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Redis-Global-Datastores-Getting-Started.html)을 참조하세요.

**Amazon RDS p****roduct 버전**

Amazon RDS에서는 다음 엔진 버전을 지원합니다.
+ **MySQL** - Amazon RDS는 [MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html) 8.0 및 MySQL 5.7 버전을 실행하는 DB 인스턴스 MySQL를 지원합니다.
+ **PostgreSQL** - 지원되는 Amazon RDS for PostgreSQL 버전에 대한 자세한 내용은 [사용 가능한 PostgreSQL 데이터베이스 버전](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts.General.DBVersions)을 참조하세요.
+ **MariaDB** – Amazon RDS는 다음 버전의 [MariaDB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MariaDB.html)를 실행하는 DB 인스턴스를 지원합니다.
  + MariaDB 10.11
  + MariaDB 10.6
  + MariaDB 10.5

**Aurora 제품 버전**
+ Amazon Aurora Global Database 전환에는 MySQL 5.7과 호환되는 Aurora MySQL 호환 버전 2.09.1 이상이 필요합니다.

  자세한 내용은 [Amazon Aurora Global Databases에 적용되는 제한 사항](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html#aurora-global-database.limitations)을 참조하세요.

**ElastiCache(Redis OSS) 제품 버전**

Amazon ElastiCache(Redis OSS)는 다음 Redis 버전을 지원합니다.
+ Redis 7.1(향상된 버전)
+ Redis 7.0(향상된 버전)
+ Redis 6.2(향상된 버전)
+ Redis 6.0(향상된 버전)
+ Redis 5.0.6(확장)

자세한 내용은 [지원되는 ElastiCache(Redis OSS) 버전](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Redis-Global-Datastores-Getting-Started.html)을 참조하세요.

## 아키텍처
<a name="automate-cross-region-failover-and-failback-by-using-dr-orchestrator-framework-architecture"></a>

**Amazon RDS**** 아키텍처**

Amazon RDS 아키텍처에는 리소스가 포함되어 있습니다.
+ 클라이언트에 대한 읽기/쓰기 액세스 권한이 있는 기본 리전(`us-east-1`)에서 생성된 기본 Amazon RDS DB 인스턴스
+ 클라이언트에 대한 읽기 전용 액세스 권한이 있는 보조 리전(`us-west-2`)에서 생성된 Amazon RDS 읽기 전용 복제본
+ 기본 리전과 보조 리전 모두에 배포된 DR 오케스트레이터 프레임워크

![\[단일 AWS 계정의 2개 리전 RDS 아키텍처 다이어그램.\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/images/pattern-img/8d39561f-924e-4b3e-8175-c5c3cab163bd/images/ad217033-600c-40da-929c-b9f9aecb4c2c.png)


이 다이어그램은 다음을 보여 줍니다.

1. 기본 인스턴스와 보조 인스턴스 간의 비동기 복제

1. 기본 리전의 클라이언트에 대한 읽기/쓰기 액세스

1. 보조 리전의 클라이언트에 대한 읽기 전용 액세스

**Aurora 아키텍처**

Amazon Aurora 아키텍처에는 리소스가 포함되어 있습니다.
+ 액티브 라이터 엔드포인트가 있는 기본 리전(`us-east-1`)에서 생성된 기본 Aurora DB 클러스터
+ 비활성 라이터 엔드포인트가 있는 보조 리전(`us-west-2`)에서 생성된 Aurora DB 클러스터
+ 기본 리전과 보조 리전 모두에 배포된 DR 오케스트레이터 프레임워크

![\[단일 AWS 계정의 2개 리전 Aurora 배포 다이어그램입니다.\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/images/pattern-img/8d39561f-924e-4b3e-8175-c5c3cab163bd/images/524ec002-5aa7-47b2-8c8d-6d1a3b535e9e.png)


이 다이어그램은 다음을 보여 줍니다.

1. 기본 클러스터와 보조 클러스터 간의 비동기 복제

1. 액티브 라이터 엔드포인트가 있는 기본 DB 클러스터

1. 비활성 라이터 엔드포인트가 있는 보조 DB 클러스터

**ElastiCache(Redis OSS) 아키텍처**

Amazon ElastiCache(Redis OSS) 아키텍처에는 다음 리소스가 포함되어 있습니다.
+ 두 개의 클러스터로 생성된 ElastiCache(Redis OSS) 글로벌 데이터 스토어:

  1. 기본 리전의 기본 클러스터(`us-east-1`)

  1. 보조 클러스터는 보조 리전(`us-west-2`)에 있습니다.
+ 두 클러스터 간의 TLS 1.2 암호화가 포함된 Amazon 리전 간 링크
+ 기본 및 보조 리전 모두에 배포된 DR 오케스트레이터 프레임워크

![\[Amazon 교차 리전 링크를 사용한 2 리전 ElastiCache 배포 다이어그램입니다.\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/images/pattern-img/8d39561f-924e-4b3e-8175-c5c3cab163bd/images/cf6620a0-dd42-4042-8dc2-012bf514ffc0.png)


**자동화 및 규모 조정**

DR Orchestrator Framework는 확장 가능하며 둘 이상의 AWS 데이터베이스의 장애 조치 또는 장애 복구를 병렬로 지원합니다.

다음 페이로드 코드를 사용하여 계정의 여러 AWS 데이터베이스를 장애 조치할 수 있습니다. 이 예제에서는 세 개의 AWS 데이터베이스(Aurora MySQL 호환 또는 Aurora PostgreSQL 호환과 같은 두 개의 글로벌 데이터베이스와 하나의 Amazon RDS for MySQL 인스턴스)가 DR 리전으로 장애 조치합니다.

```
{
  "StatePayload": [
    {
      "layer": 1,
      "resources": [
        {
          "resourceType": "PlannedFailoverAurora",
          "resourceName": "Switchover (planned failover) of Amazon Aurora global databases (MySQL)",
          "parameters": {
            "GlobalClusterIdentifier": "!Import dr-globaldb-cluster-mysql-global-identifier",
            "DBClusterIdentifier": "!Import dr-globaldb-cluster-mysql-cluster-identifier" 
          }
        },
        {
          "resourceType": "PlannedFailoverAurora",
          "resourceName": "Switchover (planned failover) of Amazon Aurora global databases (PostgreSQL)",
          "parameters": {
            "GlobalClusterIdentifier": "!Import dr-globaldb-cluster-postgres-global-identifier",
            "DBClusterIdentifier": "!Import dr-globaldb-cluster-postgres-cluster-identifier" 
          }
        },
        {
          "resourceType": "PromoteRDSReadReplica",
          "resourceName": "Promote RDS for MySQL Read Replica",
          "parameters": {
            "RDSInstanceIdentifier": "!Import rds-mysql-instance-identifier",
            "TargetClusterIdentifier": "!Import rds-mysql-instance-global-arn"
          }
        }         
      ]
    }
  ]
}
```

## 도구
<a name="automate-cross-region-failover-and-failback-by-using-dr-orchestrator-framework-tools"></a>

**AWS 서비스**
+ [Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html)는 MySQL 및 PostgreSQL과 호환되는 완전 관리형 관계형 데이터베이스 엔진입니다.
+ [Amazon ElastiCache](https://docs.aws.amazon.com/elasticache/)는 AWS 클라우드에서 분산 인 메모리 캐시 환경을 설정 및 관리하고 규모를 조정할 수 있습니다. 이 패턴은 Amazon ElastiCache(Redis OSS)를 사용합니다.
+ [AWS Lambda](https://aws.amazon.com/lambda/)는 서버를 프로비저닝하거나 관리할 필요 없이 코드를 실행하는 데 도움이 되는 컴퓨팅 서비스입니다. 필요할 때만 코드를 실행하며 자동으로 확장이 가능하므로 사용한 컴퓨팅 시간만큼만 비용을 지불합니다. 이 패턴에서 Lambda 함수는에서 단계를 수행하는 AWS Step Functions 데 사용됩니다.
+ [Amazon Relational Database Service(Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)는 AWS 클라우드에서 관계형 데이터베이스를 설정, 운영 및 조정하는 데 도움이 됩니다. 이 패턴은 Amazon RDS for MySQL, Amazon RDS for PostgreSQL 및 Amazon RDS for MariaDB를 지원합니다.
+ [AWS SDK for Python (Boto3)](https://aws.amazon.com/sdk-for-python/)를 사용하면 Python 애플리케이션, 라이브러리 또는 스크립트를와 통합할 수 있습니다 AWS 서비스. 이 패턴에서 Boto3 API는 데이터베이스 인스턴스 또는 글로벌 데이터베이스와 통신하는 데 사용됩니다.
+ [AWS Step Functions](https://aws.amazon.com/step-functions/)는 AWS Lambda 함수 및 기타를 결합하여 비즈니스 크리티컬 애플리케이션을 구축하는 AWS 서비스 데 도움이 되는 서버리스 오케스트레이션 서비스입니다. 이 패턴에서 Step Functions 상태 시스템은 데이터베이스 인스턴스 또는 글로벌 데이터베이스의 리전 간 장애 조치 및 장애 복구를 오케스트레이션하고 실행하는 데 사용됩니다.

**코드 리포지토리**

이 패턴의 코드는 GitHub의 [aws-cross-region-dr-databases](https://github.com/aws-samples/aws-cross-region-dr-databases/tree/main/App-Stack) 리포지토리에서 사용할 수 있습니다.

## 에픽
<a name="automate-cross-region-failover-and-failback-by-using-dr-orchestrator-framework-epics"></a>

### DR 오케스트레이터 프레임워크 설치
<a name="install-dr-orchestrator-framework"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| GitHub 리포지토리를 복제합니다. | 리포지토리를 복제하려면 다음 명령을 실행합니다.<pre>git clone https://github.com/aws-samples/aws-cross-region-dr-databases.git</pre> | AWS DevOps, AWS 관리자 | 
| Lambda 함수 코드를 .zip 파일 아카이브에 패키징합니다. | DR Orchestrator Framework 종속성을 포함하도록 Lambda 함수에 대한 아카이브 파일을 생성합니다.<pre>cd <YOUR-LOCAL-GIT-FOLDER>/DR-Orchestration-artifacts<br /><br />bash scripts/deploy-orchestrator-sh.sh</pre> | 관리자 | 
| S3 버킷 생성 | 최신 구성과 함께 DR Orchestrator Framework를 저장하려면 S3 버킷이 필요합니다. 두 개의 S3 버킷을 생성합니다. 하나는 기본 리전(`us-east-1`)에 있고 다른 하나는 보조 리전()에 있습니다.`us-west-2`[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/automate-cross-region-failover-and-failback-by-using-dr-orchestrator-framework.html)버킷 이름을 고유하게 만들려면 `xxxxxx`를 임의의 값으로 바꿉니다. | 관리자 | 
| 서브넷 및 보안 그룹을 생성합니다. | 기본 리전(`us-east-1`)과 보조 리전() 모두에서 VPC에서 Lambda 함수 배포를 위한 서브넷 2개와 보안 그룹 1개를 `us-west-2`생성합니다.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/automate-cross-region-failover-and-failback-by-using-dr-orchestrator-framework.html) | 관리자 | 
| DR Orchestrator 파라미터 파일을 업데이트합니다. | `<YOUR-LOCAL-GIT-FOLDER>/DR-Orchestration-artifacts/cloudformation` 폴더에서 다음 DR Orchestrator 파라미터 파일을 업데이트합니다.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/automate-cross-region-failover-and-failback-by-using-dr-orchestrator-framework.html)다음 파라미터 값을 사용하여 `x` 및 `y`를 리소스 이름으로 바꿉니다.<pre>[<br />    {<br />         "ParameterKey": "TemplateStoreS3BucketName",<br />         "ParameterValue": "dr-orchestrator-xxxxxx-us-east-1"<br />    },<br />    {<br />        "ParameterKey": "TemplateVPCId",<br />        "ParameterValue": "vpc-xxxxxx"<br />    },<br />    {<br />        "ParameterKey": "TemplateLambdaSubnetID1",<br />        "ParameterValue": "subnet-xxxxxx"<br />    },<br />    {<br />        "ParameterKey": "TemplateLambdaSubnetID2",<br />        "ParameterValue": "subnet-yyyyyy"<br />    },<br />    {<br />        "ParameterKey": "TemplateLambdaSecurityGroupID",<br />        "ParameterValue": "sg-xxxxxxxxxx"<br />    }<br /> ]</pre> | 관리자 | 
| DR Orchestrator 프레임워크 코드를 S3 버킷에 업로드합니다. | 코드는 로컬 디렉터리보다 S3 버킷에서 더 안전합니다. 모든 파일 및 하위 폴더를 포함한 `DR-Orchestration-artifacts` 디렉터리를 S3 버킷에 업로드합니다.이 코드를 업로드하려면 다음을 수행합니다.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/automate-cross-region-failover-and-failback-by-using-dr-orchestrator-framework.html) | 관리자 | 
| 기본 리전에 DR Orchestrator Framework를 배포합니다. | 기본 리전(`us-east-1`)에 DR Orchestrator Framework를 배포하려면 다음 명령을 실행합니다.<pre>cd <YOUR-LOCAL-GIT-FOLDER>/DR-Orchestration-artifacts/cloudformation<br /><br />aws cloudformation deploy \<br />--region us-east-1 \<br />--stack-name dr-orchestrator \<br />--template-file Orchestrator-Deployer.yaml \<br />--parameter-overrides file://Orchestrator-Deployer-parameters-us-east-1.json \<br />--capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_NAMED_IAM CAPABILITY_IAM \<br />--disable-rollback</pre> | 관리자 | 
| 보조 리전에 DR Orchestrator Framework를 배포합니다. | 보조 리전(`us-west-2`)에서 다음 명령을 실행합니다.<pre>cd <YOUR-LOCAL-GIT-FOLDER>/DR-Orchestration-artifacts/cloudformation<br /><br />aws cloudformation deploy \<br />--region us-west-2 \<br />--stack-name dr-orchestrator \<br />--template-file Orchestrator-Deployer.yaml \<br />--parameter-overrides file://Orchestrator-Deployer-parameters-us-west-2.json \<br />--capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_NAMED_IAM CAPABILITY_IAM \<br />--disable-rollback</pre> | 관리자 | 
| 배포를 확인합니다. |  CloudFormation 명령이 성공적으로 실행되면 다음 출력을 반환합니다.<pre>Successfully created/updated stack - dr-orchestrator</pre>또는 CloudFormation 콘솔로 이동하여 `dr-orchestrator` 스택의 상태를 확인할 수 있습니다. | 관리자 | 

### 데이터베이스 인스턴스 또는 클러스터 생성
<a name="create-the-database-instances-or-clusters"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| 데이터베이스 서브넷 및 보안 그룹을 생성합니다. | VPC에서 기본(`us-east-1`) 및 보조(`us-west-2`) 리전 모두에서 DB 인스턴스 또는 글로벌 데이터베이스에 대해 서브넷 2개와 보안 그룹 1개를 생성합니다.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/automate-cross-region-failover-and-failback-by-using-dr-orchestrator-framework.html) | 관리자 | 
| 기본 DB 인스턴스 또는 클러스터의 파라미터 파일을 업데이트합니다. | `<YOUR LOCAL GIT FOLDER>/App-Stack` 폴더에서 기본 리전의 파라미터 파일을 업데이트합니다.**Amazon RDS**`RDS-MySQL-parameter-us-east-1.json` 파일에서 `SubnetIds` 및 `DBSecurityGroup`를 생성한 리소스 이름으로 업데이트합니다.<pre>{<br />  "Parameters": {<br />    "SubnetIds": "subnet-xxxxxx,subnet-xxxxxx",<br />    "DBSecurityGroup": "sg-xxxxxxxxxx",<br />    "MySqlGlobalIdentifier":"rds-mysql-instance",<br />    "InitialDatabaseName": "mysqldb",<br />    "DBPortNumber": "3789",<br />    "PrimaryRegion": "us-east-1",<br />    "SecondaryRegion": "us-west-2",<br />    "KMSKeyAliasName": "rds/rds-mysql-instance-KmsKeyId"<br />  }<br />}<br /></pre>**Amazon Aurora** `Aurora-MySQL-parameter-us-east-1.json` 파일에서 `SubnetIds` 및 `DBSecurityGroup`를 생성한 리소스 이름으로 업데이트합니다.<pre>{<br />  "Parameters": {<br />    "SubnetIds": "subnet1-xxxxxx,subnet2-xxxxxx",<br />    "DBSecurityGroup": "sg-xxxxxxxxxx",<br />    "GlobalClusterIdentifier":"dr-globaldb-cluster-mysql",<br />    "DBClusterName":"dbcluster-01",<br />    "SourceDBClusterName":"dbcluster-02",<br />    "DBPortNumber": "3787",<br />    "DBInstanceClass":"db.r5.large",<br />    "InitialDatabaseName": "sampledb",<br />    "PrimaryRegion": "us-east-1",<br />    "SecondaryRegion": "us-west-2",<br />    "KMSKeyAliasName": "rds/dr-globaldb-cluster-mysql-KmsKeyId"<br />  }<br />}</pre>**Amazon ElastiCache (Redis OSS)**`ElastiCache-parameter-us-east-1.json` 파일에서 `SubnetIds` 및 `DBSecurityGroup`를 생성한 리소스 이름으로 업데이트합니다.<pre>{<br />  "Parameters": {<br />    "CacheNodeType": "cache.m5.large",<br />    "DBSecurityGroup": "sg-xxxxxxxxxx",<br />    "SubnetIds": "subnet-xxxxxx,subnet-xxxxxx",<br />    "EngineVersion": "5.0.6",<br />    "GlobalReplicationGroupIdSuffix": "demo-redis-global-datastore",<br />    "NumReplicas": "1",<br />    "NumShards": "1",<br />    "ReplicationGroupId": "demo-redis-cluster",<br />    "DBPortNumber": "3788",<br />    "TransitEncryption": "true",<br />    "KMSKeyAliasName": "elasticache/demo-redis-global-datastore-KmsKeyId",<br />    "PrimaryRegion": "us-east-1",<br />    "SecondaryRegion": "us-west-2"<br />  }<br />}</pre> | 관리자 | 
| 기본 리전에 DB 인스턴스 또는 클러스터를 배포합니다. | 기본 리전(`us-east-1`)에 인스턴스 또는 클러스터를 배포하려면 데이터베이스 엔진에 따라 다음 명령을 실행합니다.**Amazon RDS**<pre>cd <YOUR-LOCAL-GIT-FOLDER>/App-Stack<br /><br />aws cloudformation deploy \<br />--region us-east-1 \<br />--stack-name rds-mysql-app-stack \<br />--template-file RDS-MySQL-Primary.yaml \<br />--parameter-overrides file://RDS-MySQL-parameter-us-east-1.json \<br />--capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_NAMED_IAM CAPABILITY_IAM \<br />--disable-rollback</pre>**Amazon Aurora**<pre>cd <YOUR-LOCAL-GIT-FOLDER>/App-Stack<br /><br />aws cloudformation deploy \<br />--region us-east-1 \<br />--stack-name aurora-mysql-app-stack \<br />--template-file Aurora-MySQL-Primary.yaml \<br />--parameter-overrides file://Aurora-MySQL-parameter-us-east-1.json \<br />--capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_NAMED_IAM CAPABILITY_IAM \<br />--disable-rollback</pre>**Amazon ElastiCache (Redis OSS)**<pre>cd <YOUR-LOCAL-GIT-FOLDER>/App-Stack<br /><br />aws cloudformation deploy \<br />--region us-east-1 --stack-name elasticache-ds-app-stack \<br />--template-file ElastiCache-Primary.yaml \<br />--parameter-overrides file://ElastiCache-parameter-us-east-1.json \<br />--capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_NAMED_IAM CAPABILITY_IAM \<br />--disable-rollback<br /></pre> CloudFormation 리소스가 성공적으로 배포되었는지 확인합니다. | 관리자 | 
| 보조 DB 인스턴스 또는 클러스터의 파라미터 파일을 업데이트합니다. | `<YOUR LOCAL GIT FOLDER>/App-Stack` 폴더에서 보조 리전의 파라미터 파일을 업데이트합니다.**Amazon RDS**`RDS-MySQL-parameter-us-west-2.json` 파일에서 `SubnetIDs` 및 `DBSecurityGroup`를 생성한 리소스 이름으로 업데이트합니다. 기본 DB 인스턴스`PrimaryRegionKMSKeyArn`에 대한 CloudFormation 스택의 **출력** 섹션에서 `MySQLKmsKeyId` 가져온 값으로를 업데이트합니다.<pre>{<br />  "Parameters": {<br />    "SubnetIds": "subnet-aaaaaaaaa,subnet-bbbbbbbbb",<br />    "DBSecurityGroup": "sg-cccccccccc",<br />    "MySqlGlobalIdentifier":"rds-mysql-instance",<br />    "InitialDatabaseName": "mysqldb",<br />    "DBPortNumber": "3789",<br />    "PrimaryRegion": "us-east-1",<br />    "SecondaryRegion": "us-west-2",<br />    "KMSKeyAliasName": "rds/rds-mysql-instance-KmsKeyId",<br />    "PrimaryRegionKMSKeyArn":"arn:aws:kms:us-east-1:xxxxxxxxx:key/mrk-xxxxxxxxxxxxxxxxxxxxx"<br />  }<br />} </pre>**Amazon Aurora**`Aurora-MySQL-parameter-us-west-2.json` 파일에서 `SubnetIDs` 및를 생성한 리소스 `DBSecurityGroup` 이름으로 업데이트합니다. 기본 DB 인스턴스`PrimaryRegionKMSKeyArn`에 대한 CloudFormation 스택의 **출력** 섹션에서 `AuroraKmsKeyId` 가져온 값으로를 업데이트합니다.<pre>{<br />  "Parameters": {<br />    "SubnetIds": "subnet1-aaaaaaaaa,subnet2-bbbbbbbbb",<br />    "DBSecurityGroup": "sg-cccccccccc",<br />    "GlobalClusterIdentifier":"dr-globaldb-cluster-mysql",<br />    "DBClusterName":"dbcluster-01",<br />    "SourceDBClusterName":"dbcluster-02",<br />    "DBPortNumber": "3787",<br />    "DBInstanceClass":"db.r5.large",<br />    "InitialDatabaseName": "sampledb",<br />    "PrimaryRegion": "us-east-1",<br />    "SecondaryRegion": "us-west-2",<br />    "KMSKeyAliasName": "rds/dr-globaldb-cluster-mysql-KmsKeyId"<br />  }<br />}</pre>**Amazon ElastiCache (Redis OSS)**`ElastiCache-parameter-us-west-2.json` 파일에서 `SubnetIDs` 및 `DBSecurityGroup`를 생성한 리소스 이름으로 업데이트합니다. 기본 DB 인스턴스`PrimaryRegionKMSKeyArn`에 대한 CloudFormation 스택의 **출력** 섹션에서 `ElastiCacheKmsKeyId` 가져온 값으로를 업데이트합니다.<pre>{<br />  "Parameters": {<br />    "CacheNodeType": "cache.m5.large",<br />    "DBSecurityGroup": "sg-cccccccccc",<br />    "SubnetIds": "subnet-aaaaaaaaa,subnet-bbbbbbbbb",<br />    "EngineVersion": "5.0.6",<br />    "GlobalReplicationGroupIdSuffix": "demo-redis-global-datastore",<br />    "NumReplicas": "1",<br />    "NumShards": "1",<br />    "ReplicationGroupId": "demo-redis-cluster",<br />    "DBPortNumber": "3788",<br />    "TransitEncryption": "true",<br />    "KMSKeyAliasName": "elasticache/demo-redis-global-datastore-KmsKeyId",<br />    "PrimaryRegion": "us-east-1",<br />    "SecondaryRegion": "us-west-2"<br />  }<br />}</pre> | 관리자 | 
| DB 인스턴스 또는 클러스터를 보조 리전에 배포합니다. | 데이터베이스 엔진에 따라 다음 명령을 실행합니다.**Amazon RDS**<pre>cd <YOUR-LOCAL-GIT-FOLDER>/App-Stack<br /><br />aws cloudformation deploy \<br />--region us-west-2 \<br />--stack-name rds-mysql-app-stack \<br />--template-file RDS-MySQL-DR.yaml \<br />--parameter-overrides file://RDS-MySQL-parameter-us-west-2.json \<br />--capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_NAMED_IAM CAPABILITY_IAM \<br />--disable-rollback</pre>**Amazon Aurora**<pre>cd <YOUR-LOCAL-GIT-FOLDER>/App-Stack<br /><br />aws cloudformation deploy \<br />--region us-west-2 \<br />--stack-name aurora-mysql-app-stack \<br />--template-file Aurora-MySQL-DR.yaml \<br />--parameter-overrides file://Aurora-MySQL-parameter-us-west-2.json \<br />--capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_NAMED_IAM CAPABILITY_IAM \<br />--disable-rollback</pre>**Amazon ElastiCache (Redis OSS)**<pre>cd <YOUR-LOCAL-GIT-FOLDER>/App-Stack<br /><br />aws cloudformation deploy \<br />--region us-west-2 \<br />--stack-name elasticache-ds-app-stack \<br />--template-file ElastiCache-DR.yaml \<br />--parameter-overrides file://ElastiCache-parameter-us-west-2.json \<br />--capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_NAMED_IAM CAPABILITY_IAM \<br />--disable-rollback</pre> CloudFormation 리소스가 성공적으로 배포되었는지 확인합니다. | 관리자 | 

## 관련 리소스
<a name="automate-cross-region-failover-and-failback-by-using-dr-orchestrator-framework-resources"></a>
+ [의 데이터베이스에 대한 재해 복구 전략 AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/strategy-database-disaster-recovery/welcome.html)(AWS 권고 지침 전략)
+ [에서 관계형 데이터베이스에 대한 DR 솔루션 자동화 AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/automate-dr-solution-relational-database/dr-orchestrator-framework-overview.html)(AWS 권장 가이드)
+ [Amazon Aurora Global Database 사용](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html)
+ [글로벌 데이터 스토어 AWS 리전 를 사용하여 간 복제](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Redis-Global-Datastore.html)
+ [에서 관계형 데이터베이스에 대한 DR 솔루션 자동화 AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/automate-dr-solution-relational-database/introduction.html)(AWS 권장 가이드)