기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
DR Orchestrator 프레임워크를 사용하여 리전 간 장애 조치 및 장애 복구 자동화
작성자: Jitendra Kumar(AWS), Oliver Francis(AWS), Pavithra Balasubramanian(AWS)
요약
이 패턴은 DR Orchestrator Framework를 사용하여 오류가 발생하기 쉬운 수동 단계를 오케스트레이션하고 자동화하여 Amazon Web Services(AWS) 리전 전체에서 재해 복구를 수행하는 방법을 설명합니다. 패턴은 다음 데이터베이스를 포함합니다.
MySQL용 Amazon Relational Database Service(Amazon RDS), PostgreSQL용 Amazon RDS 또는 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-databasesApp-Stack
폴더에 있는 AWS CloudFormation 템플릿을 사용합니다.
사전 조건 및 제한 사항
일반 사전 조건
기본 및 보조 모두에 배포된 DR Orchestrator Framework AWS 리전
서브넷 2개와 AWS 보안 그룹이 있는 Virtual Private Cloud(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 리전. 교차 리전 복제의 기능 및 리전 가용성에 대한 자세한 내용은 교차 리전 읽기 전용 복제본을 참조하세요.
Aurora 글로벌 데이터베이스에는 지원되는 Aurora DB 인스턴스 클래스와 최대 수에 대한 특정 구성 요구 사항이 있습니다 AWS 리전. 자세한 내용은 Amazon Aurora 글로벌 데이터베이스의 구성 요구 사항을 참조하세요.
이 솔루션은 읽기 전용 복제본이 하나 있는 기본 데이터베이스 인스턴스를 사용하여 테스트되었습니다. 둘 이상의 읽기 전용 복제본을 사용하려면 프로덕션 환경에서 솔루션을 구현하기 전에 솔루션을 철저히 테스트하세요.
ElastiCache 제한 사항
글로벌 데이터 스토어 및 ElastiCache 구성 요구 사항의 리전 가용성에 대한 자세한 내용은 ElastiCache 설명서의 사전 조건 및 제한을 참조하세요.
Amazon RDS product 버전
Amazon RDS는 다음 엔진 버전을 지원합니다.
MySQL - Amazon RDS는 MySQL 8.0 및 MySQL MySQL 5.7 버전을 실행하는 DB 인스턴스를 지원합니다.
PostgreSQL - 지원되는 Amazon RDS for PostgreSQL 버전에 대한 자세한 내용은 사용 가능한 PostgreSQL 데이터베이스 버전을 참조하세요.
MariaDB – Amazon RDS는 다음 버전의 MariaDB를 실행하는 DB 인스턴스를 지원합니다.
MariaDB 10.11
MariaDB 10.6
MariaDB 10.5
Aurora 제품 버전
Amazon Aurora 글로벌 데이터베이스 전환을 위해서는 MySQL 5.7 버전 2.09.1 이상과 Aurora MySQL 호환이 필요합니다.
자세한 내용은 Amazon Aurora 글로벌 데이터베이스의 제한 사항을 참조하세요.
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) 버전을 참조하세요.
아키텍처
Amazon RDS 아키텍처
Amazon RDS 아키텍처에는 다음 리소스가 포함됩니다.
클라이언트에 대한 읽기/쓰기 액세스 권한이 있는 기본 리전(
us-east-1
)에서 생성된 기본 Amazon RDS DB 인스턴스클라이언트에 대한 읽기 전용 액세스 권한이 있는 보조 리전(
us-west-2
)에서 생성된 Amazon RDS 읽기 전용 복제본기본 리전과 보조 리전 모두에 배포된 DR Orchestrator Framework

이 다이어그램은 다음을 보여 줍니다.
기본 인스턴스와 보조 인스턴스 간의 비동기 복제
기본 리전의 클라이언트에 대한 읽기/쓰기 액세스
보조 리전의 클라이언트에 대한 읽기 전용 액세스
Aurora 아키텍처
Amazon Aurora 아키텍처에는 다음 리소스가 포함되어 있습니다.
액티브 라이터 엔드포인트가 있는 기본 리전(
us-east-1
)에서 생성된 기본 Aurora DB 클러스터비활성 라이터 엔드포인트가 있는 보조 리전(
us-west-2
)에서 생성된 Aurora DB 클러스터기본 리전과 보조 리전 모두에 배포된 DR Orchestrator Framework

이 다이어그램은 다음을 보여 줍니다.
기본 클러스터와 보조 클러스터 간의 비동기 복제
액티브 라이터 엔드포인트가 있는 기본 DB 클러스터
비활성 라이터 엔드포인트가 있는 보조 DB 클러스터
ElastiCache(Redis OSS) 아키텍처
Amazon ElastiCache(Redis OSS) 아키텍처에는 다음 리소스가 포함되어 있습니다.
두 개의 클러스터로 생성된 ElastiCache(Redis OSS) 글로벌 데이터 스토어:
기본 리전의 기본 클러스터(
us-east-1
)보조 리전의 보조 클러스터(
us-west-2
)
두 클러스터 간에 TLS 1.2 암호화가 있는 Amazon 리전 간 링크
기본 리전과 보조 리전 모두에 배포된 DR Orchestrator Framework

자동화 및 규모 조정
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"
}
}
]
}
]
}
도구
AWS 서비스
Amazon Aurora는 MySQL 및 PostgreSQL과 호환되는 완전 관리형 관계형 데이터베이스 엔진입니다.
Amazon ElastiCache는에서 분산 인 메모리 캐시 환경을 설정, 관리 및 확장하는 데 도움이 됩니다 AWS 클라우드. 이 패턴은 Amazon ElastiCache(Redis OSS)를 사용합니다.
AWS Lambda
는 서버를 프로비저닝하거나 관리할 필요 없이 코드를 실행하는 데 도움이 되는 컴퓨팅 서비스입니다. 필요할 때만 코드를 실행하며 자동으로 확장이 가능하므로 사용한 컴퓨팅 시간만큼만 비용을 지불합니다. 이 패턴에서 Lambda 함수는에서 단계를 수행하는 AWS Step Functions 데 사용됩니다. Amazon Relational Database Service(Amazon RDS)를 사용하면에서 관계형 데이터베이스를 설정, 운영 및 확장할 수 있습니다 AWS 클라우드. 이 패턴은 Amazon RDS for MySQL, Amazon RDS for PostgreSQL 및 Amazon RDS for MariaDB를 지원합니다.
AWS SDK for Python (Boto3)
는 Python 애플리케이션, 라이브러리 또는 스크립트를와 통합하는 데 도움이 됩니다 AWS 서비스. 이 패턴에서 Boto3 APIs는 데이터베이스 인스턴스 또는 글로벌 데이터베이스와 통신하는 데 사용됩니다. AWS Step Functions
는 AWS Lambda 함수 및 기타를 결합하여 비즈니스 크리티컬 애플리케이션을 구축하는 AWS 서비스 데 도움이 되는 서버리스 오케스트레이션 서비스입니다. 이 패턴에서 Step Functions 상태 머신은 데이터베이스 인스턴스 또는 글로벌 데이터베이스의 리전 간 장애 조치 및 장애 복구를 오케스트레이션하고 실행하는 데 사용됩니다.
코드 리포지토리
이 패턴의 코드는 GitHub의 aws-cross-region-dr-databases
에픽
작업 | 설명 | 필요한 기술 |
---|---|---|
GitHub 리포지토리를 복제합니다. | 리포지토리를 복제하려면 다음 명령을 실행합니다.
| AWS DevOps, AWS 관리자 |
Lambda 함수 코드를 .zip 파일 아카이브에 패키징합니다. | Lambda 함수에 대한 아카이브 파일을 생성하여 DR Orchestrator 프레임워크 종속성을 포함합니다.
| 관리자 |
S3 버킷을 생성합니다. | 최신 구성과 함께 DR Orchestrator Framework를 저장하려면 S3 버킷이 필요합니다. S3 버킷 2개를 생성합니다. 하나는 기본 리전(
버킷 이름을 고유하게 만들려면 | 관리자 |
서브넷 및 보안 그룹을 생성합니다. | 기본 리전(
| 관리자 |
DR Orchestrator 파라미터 파일을 업데이트합니다. |
다음 파라미터 값을 사용하여
| 관리자 |
DR Orchestrator 프레임워크 코드를 S3 버킷에 업로드합니다. | 코드는 로컬 디렉터리보다 S3 버킷에서 더 안전합니다. 모든 파일 및 하위 폴더를 포함한 코드를 업로드하려면 다음을 수행합니다.
| 관리자 |
기본 리전에 DR Orchestrator 프레임워크를 배포합니다. | 기본 리전(
| 관리자 |
보조 리전에 DR Orchestrator 프레임워크를 배포합니다. | 보조 리전(
| 관리자 |
배포를 확인합니다. | AWS CloudFormation 명령이 성공적으로 실행되면 다음 출력을 반환합니다.
또는 AWS CloudFormation 콘솔로 이동하여 | 관리자 |
작업 | 설명 | 필요한 기술 |
---|---|---|
데이터베이스 서브넷 및 보안 그룹을 생성합니다. | VPC에서 기본(
| 관리자 |
기본 DB 인스턴스 또는 클러스터의 파라미터 파일을 업데이트합니다. |
Amazon RDS
Amazon Aurora
Amazon ElastiCache (Redis OSS)
| 관리자 |
기본 리전에 DB 인스턴스 또는 클러스터를 배포합니다. | 기본 리전( Amazon RDS
Amazon Aurora
Amazon ElastiCache (Redis OSS)
AWS CloudFormation 리소스가 성공적으로 배포되었는지 확인합니다. | 관리자 |
보조 DB 인스턴스 또는 클러스터의 파라미터 파일을 업데이트합니다. |
Amazon RDS
Amazon Aurora
Amazon ElastiCache (Redis OSS)
| 관리자 |
DB 인스턴스 또는 클러스터를 보조 리전에 배포합니다. | 데이터베이스 엔진에 따라 다음 명령을 실행합니다. Amazon RDS
Amazon Aurora
Amazon ElastiCache (Redis OSS)
AWS CloudFormation 리소스가 성공적으로 배포되었는지 확인합니다. | 관리자 |
관련 리소스
의 데이터베이스에 대한 재해 복구 전략 AWS(AWS 예비 지침 전략)
에서 관계형 데이터베이스를 위한 DR 솔루션 자동화 AWS(AWS 사용 설명서)
에서 관계형 데이터베이스를 위한 DR 솔루션 자동화 AWS(AWS 사용 설명서)