쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

DR Orchestrator 프레임워크를 사용하여 리전 간 장애 조치 및 장애 복구 자동화 - 권장 가이드

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

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

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-databases GitHub 리포지토리의 App-Stack 폴더에 있는 AWS CloudFormation 템플릿을 사용합니다.

사전 조건 및 제한 사항

일반 사전 조건

엔진별 사전 조건

  • 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 제한 사항

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 제품 버전

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

단일 AWS 계정의 2개 리전 RDS 아키텍처 다이어그램입니다.

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

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

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

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

Aurora 아키텍처

Amazon Aurora 아키텍처에는 다음 리소스가 포함되어 있습니다.

  • 액티브 라이터 엔드포인트가 있는 기본 리전(us-east-1)에서 생성된 기본 Aurora DB 클러스터

  • 비활성 라이터 엔드포인트가 있는 보조 리전(us-west-2)에서 생성된 Aurora DB 클러스터

  • 기본 리전과 보조 리전 모두에 배포된 DR Orchestrator Framework

단일 AWS 계정의 2개 리전 Aurora 배포 다이어그램입니다.

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

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

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

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

ElastiCache(Redis OSS) 아키텍처

Amazon ElastiCache(Redis OSS) 아키텍처에는 다음 리소스가 포함되어 있습니다.

  • 두 개의 클러스터로 생성된 ElastiCache(Redis OSS) 글로벌 데이터 스토어:

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

    2. 보조 리전의 보조 클러스터(us-west-2)

  • 두 클러스터 간에 TLS 1.2 암호화가 있는 Amazon 리전 간 링크

  • 기본 리전과 보조 리전 모두에 배포된 DR Orchestrator Framework

Amazon 교차 리전 링크를 사용한 2개 리전 ElastiCache 배포 다이어그램입니다.

자동화 및 규모 조정

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 리포지토리를 복제합니다.

리포지토리를 복제하려면 다음 명령을 실행합니다.

git clone https://github.com/aws-samples/aws-cross-region-dr-databases.git
AWS DevOps, AWS 관리자

Lambda 함수 코드를 .zip 파일 아카이브에 패키징합니다.

Lambda 함수에 대한 아카이브 파일을 생성하여 DR Orchestrator 프레임워크 종속성을 포함합니다.

cd <YOUR-LOCAL-GIT-FOLDER>/DR-Orchestration-artifacts bash scripts/deploy-orchestrator-sh.sh
관리자

S3 버킷을 생성합니다.

최신 구성과 함께 DR Orchestrator Framework를 저장하려면 S3 버킷이 필요합니다. S3 버킷 2개를 생성합니다. 하나는 기본 리전(us-east-1)에, 다른 하나는 보조 리전()에 있습니다us-west-2.

  • dr-orchestrator-xxxxxx-us-east-1

  • dr-orchestrator-xxxxxx-us-west-2

버킷 이름을 고유하게 만들려면 xxxxxx를 임의의 값으로 바꿉니다.

관리자

서브넷 및 보안 그룹을 생성합니다.

기본 리전(us-east-1)과 보조 리전() 모두에서 VPC에서 Lambda 함수 배포를 위한 서브넷 2개와 보안 그룹 1개를 us-west-2생성합니다.

  • subnet-XXXXXXX

  • subnet-YYYYYYY

  • sg-XXXXXXXXXXXX

관리자

DR Orchestrator 파라미터 파일을 업데이트합니다.

<YOUR-LOCAL-GIT-FOLDER>/DR-Orchestration-artifacts/cloudformation 폴더에서 다음 DR Orchestrator 파라미터 파일을 업데이트합니다.

  • Orchestrator-Deployer-parameters-us-east-1.json

  • Orchestrator-Deployer-parameters-us-west-2.json

다음 파라미터 값을 사용하여 xy를 리소스 이름으로 바꿉니다.

[ { "ParameterKey": "TemplateStoreS3BucketName", "ParameterValue": "dr-orchestrator-xxxxxx-us-east-1" }, { "ParameterKey": "TemplateVPCId", "ParameterValue": "vpc-xxxxxx" }, { "ParameterKey": "TemplateLambdaSubnetID1", "ParameterValue": "subnet-xxxxxx" }, { "ParameterKey": "TemplateLambdaSubnetID2", "ParameterValue": "subnet-yyyyyy" }, { "ParameterKey": "TemplateLambdaSecurityGroupID", "ParameterValue": "sg-xxxxxxxxxx" } ]
관리자

DR Orchestrator 프레임워크 코드를 S3 버킷에 업로드합니다.

코드는 로컬 디렉터리보다 S3 버킷에서 더 안전합니다. 모든 파일 및 하위 폴더를 포함한 DR-Orchestration-artifacts 디렉터리를 S3 버킷에 업로드합니다.

코드를 업로드하려면 다음을 수행합니다.

  1. AWS Management Console에 로그인합니다.

  2. Amazon S3 콘솔로 이동합니다.

  3. dr-orchestrator-xxxxxx-us-east-1 bucket를 선택합니다.

  4. 업로드를 선택한 다음 폴더 추가를 선택합니다.

  5. DR-Orchestration-artifacts 폴더를 선택합니다.

  6. 업로드를 선택합니다.

  7. dr-orchestrator-xxxxxx-us-west-2 버킷을 선택합니다.

  8. 4~7단계를 반복합니다.

관리자

기본 리전에 DR Orchestrator 프레임워크를 배포합니다.

기본 리전(us-east-1)에 DR Orchestrator Framework를 배포하려면 다음 명령을 실행합니다.

cd <YOUR-LOCAL-GIT-FOLDER>/DR-Orchestration-artifacts/cloudformation aws cloudformation deploy \ --region us-east-1 \ --stack-name dr-orchestrator \ --template-file Orchestrator-Deployer.yaml \ --parameter-overrides file://Orchestrator-Deployer-parameters-us-east-1.json \ --capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_NAMED_IAM CAPABILITY_IAM \ --disable-rollback
관리자

보조 리전에 DR Orchestrator 프레임워크를 배포합니다.

보조 리전(us-west-2)에서 다음 명령을 실행합니다.

cd <YOUR-LOCAL-GIT-FOLDER>/DR-Orchestration-artifacts/cloudformation aws cloudformation deploy \ --region us-west-2 \ --stack-name dr-orchestrator \ --template-file Orchestrator-Deployer.yaml \ --parameter-overrides file://Orchestrator-Deployer-parameters-us-west-2.json \ --capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_NAMED_IAM CAPABILITY_IAM \ --disable-rollback
관리자

배포를 확인합니다.

AWS CloudFormation 명령이 성공적으로 실행되면 다음 출력을 반환합니다.

Successfully created/updated stack - dr-orchestrator

또는 AWS CloudFormation 콘솔로 이동하여 dr-orchestrator 스택의 상태를 확인할 수 있습니다.

관리자

DR 오케스트레이터 프레임워크 설치

작업설명필요한 기술

GitHub 리포지토리를 복제합니다.

리포지토리를 복제하려면 다음 명령을 실행합니다.

git clone https://github.com/aws-samples/aws-cross-region-dr-databases.git
AWS DevOps, AWS 관리자

Lambda 함수 코드를 .zip 파일 아카이브에 패키징합니다.

Lambda 함수에 대한 아카이브 파일을 생성하여 DR Orchestrator 프레임워크 종속성을 포함합니다.

cd <YOUR-LOCAL-GIT-FOLDER>/DR-Orchestration-artifacts bash scripts/deploy-orchestrator-sh.sh
관리자

S3 버킷을 생성합니다.

최신 구성과 함께 DR Orchestrator Framework를 저장하려면 S3 버킷이 필요합니다. S3 버킷 2개를 생성합니다. 하나는 기본 리전(us-east-1)에, 다른 하나는 보조 리전()에 있습니다us-west-2.

  • dr-orchestrator-xxxxxx-us-east-1

  • dr-orchestrator-xxxxxx-us-west-2

버킷 이름을 고유하게 만들려면 xxxxxx를 임의의 값으로 바꿉니다.

관리자

서브넷 및 보안 그룹을 생성합니다.

기본 리전(us-east-1)과 보조 리전() 모두에서 VPC에서 Lambda 함수 배포를 위한 서브넷 2개와 보안 그룹 1개를 us-west-2생성합니다.

  • subnet-XXXXXXX

  • subnet-YYYYYYY

  • sg-XXXXXXXXXXXX

관리자

DR Orchestrator 파라미터 파일을 업데이트합니다.

<YOUR-LOCAL-GIT-FOLDER>/DR-Orchestration-artifacts/cloudformation 폴더에서 다음 DR Orchestrator 파라미터 파일을 업데이트합니다.

  • Orchestrator-Deployer-parameters-us-east-1.json

  • Orchestrator-Deployer-parameters-us-west-2.json

다음 파라미터 값을 사용하여 xy를 리소스 이름으로 바꿉니다.

[ { "ParameterKey": "TemplateStoreS3BucketName", "ParameterValue": "dr-orchestrator-xxxxxx-us-east-1" }, { "ParameterKey": "TemplateVPCId", "ParameterValue": "vpc-xxxxxx" }, { "ParameterKey": "TemplateLambdaSubnetID1", "ParameterValue": "subnet-xxxxxx" }, { "ParameterKey": "TemplateLambdaSubnetID2", "ParameterValue": "subnet-yyyyyy" }, { "ParameterKey": "TemplateLambdaSecurityGroupID", "ParameterValue": "sg-xxxxxxxxxx" } ]
관리자

DR Orchestrator 프레임워크 코드를 S3 버킷에 업로드합니다.

코드는 로컬 디렉터리보다 S3 버킷에서 더 안전합니다. 모든 파일 및 하위 폴더를 포함한 DR-Orchestration-artifacts 디렉터리를 S3 버킷에 업로드합니다.

코드를 업로드하려면 다음을 수행합니다.

  1. AWS Management Console에 로그인합니다.

  2. Amazon S3 콘솔로 이동합니다.

  3. dr-orchestrator-xxxxxx-us-east-1 bucket를 선택합니다.

  4. 업로드를 선택한 다음 폴더 추가를 선택합니다.

  5. DR-Orchestration-artifacts 폴더를 선택합니다.

  6. 업로드를 선택합니다.

  7. dr-orchestrator-xxxxxx-us-west-2 버킷을 선택합니다.

  8. 4~7단계를 반복합니다.

관리자

기본 리전에 DR Orchestrator 프레임워크를 배포합니다.

기본 리전(us-east-1)에 DR Orchestrator Framework를 배포하려면 다음 명령을 실행합니다.

cd <YOUR-LOCAL-GIT-FOLDER>/DR-Orchestration-artifacts/cloudformation aws cloudformation deploy \ --region us-east-1 \ --stack-name dr-orchestrator \ --template-file Orchestrator-Deployer.yaml \ --parameter-overrides file://Orchestrator-Deployer-parameters-us-east-1.json \ --capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_NAMED_IAM CAPABILITY_IAM \ --disable-rollback
관리자

보조 리전에 DR Orchestrator 프레임워크를 배포합니다.

보조 리전(us-west-2)에서 다음 명령을 실행합니다.

cd <YOUR-LOCAL-GIT-FOLDER>/DR-Orchestration-artifacts/cloudformation aws cloudformation deploy \ --region us-west-2 \ --stack-name dr-orchestrator \ --template-file Orchestrator-Deployer.yaml \ --parameter-overrides file://Orchestrator-Deployer-parameters-us-west-2.json \ --capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_NAMED_IAM CAPABILITY_IAM \ --disable-rollback
관리자

배포를 확인합니다.

AWS CloudFormation 명령이 성공적으로 실행되면 다음 출력을 반환합니다.

Successfully created/updated stack - dr-orchestrator

또는 AWS CloudFormation 콘솔로 이동하여 dr-orchestrator 스택의 상태를 확인할 수 있습니다.

관리자
작업설명필요한 기술

데이터베이스 서브넷 및 보안 그룹을 생성합니다.

VPC에서 기본(us-east-1) 및 보조(us-west-2) 리전 모두에서 DB 인스턴스 또는 글로벌 데이터베이스에 대해 서브넷 2개와 보안 그룹 1개를 생성합니다.

  • subnet-XXXXXX

  • subnet-XXXXXX

  • sg-XXXXXXXXXX

관리자

기본 DB 인스턴스 또는 클러스터의 파라미터 파일을 업데이트합니다.

<YOUR LOCAL GIT FOLDER>/App-Stack 폴더에서 기본 리전의 파라미터 파일을 업데이트합니다.

Amazon RDS

RDS-MySQL-parameter-us-east-1.json 파일에서 SubnetIdsDBSecurityGroup를 생성한 리소스 이름으로 업데이트합니다.

{ "Parameters": { "SubnetIds": "subnet-xxxxxx,subnet-xxxxxx", "DBSecurityGroup": "sg-xxxxxxxxxx", "MySqlGlobalIdentifier":"rds-mysql-instance", "InitialDatabaseName": "mysqldb", "DBPortNumber": "3789", "PrimaryRegion": "us-east-1", "SecondaryRegion": "us-west-2", "KMSKeyAliasName": "rds/rds-mysql-instance-KmsKeyId" } }

Amazon Aurora

Aurora-MySQL-parameter-us-east-1.json 파일에서 SubnetIdsDBSecurityGroup를 생성한 리소스 이름으로 업데이트합니다.

{ "Parameters": { "SubnetIds": "subnet1-xxxxxx,subnet2-xxxxxx", "DBSecurityGroup": "sg-xxxxxxxxxx", "GlobalClusterIdentifier":"dr-globaldb-cluster-mysql", "DBClusterName":"dbcluster-01", "SourceDBClusterName":"dbcluster-02", "DBPortNumber": "3787", "DBInstanceClass":"db.r5.large", "InitialDatabaseName": "sampledb", "PrimaryRegion": "us-east-1", "SecondaryRegion": "us-west-2", "KMSKeyAliasName": "rds/dr-globaldb-cluster-mysql-KmsKeyId" } }

Amazon ElastiCache (Redis OSS)

ElastiCache-parameter-us-east-1.json 파일에서 SubnetIdsDBSecurityGroup를 생성한 리소스 이름으로 업데이트합니다.

{ "Parameters": { "CacheNodeType": "cache.m5.large", "DBSecurityGroup": "sg-xxxxxxxxxx", "SubnetIds": "subnet-xxxxxx,subnet-xxxxxx", "EngineVersion": "5.0.6", "GlobalReplicationGroupIdSuffix": "demo-redis-global-datastore", "NumReplicas": "1", "NumShards": "1", "ReplicationGroupId": "demo-redis-cluster", "DBPortNumber": "3788", "TransitEncryption": "true", "KMSKeyAliasName": "elasticache/demo-redis-global-datastore-KmsKeyId", "PrimaryRegion": "us-east-1", "SecondaryRegion": "us-west-2" } }
관리자

기본 리전에 DB 인스턴스 또는 클러스터를 배포합니다.

기본 리전(us-east-1)에 인스턴스 또는 클러스터를 배포하려면 데이터베이스 엔진에 따라 다음 명령을 실행합니다.

Amazon RDS

cd <YOUR-LOCAL-GIT-FOLDER>/App-Stack aws cloudformation deploy \ --region us-east-1 \ --stack-name rds-mysql-app-stack \ --template-file RDS-MySQL-Primary.yaml \ --parameter-overrides file://RDS-MySQL-parameter-us-east-1.json \ --capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_NAMED_IAM CAPABILITY_IAM \ --disable-rollback

Amazon Aurora

cd <YOUR-LOCAL-GIT-FOLDER>/App-Stack aws cloudformation deploy \ --region us-east-1 \ --stack-name aurora-mysql-app-stack \ --template-file Aurora-MySQL-Primary.yaml \ --parameter-overrides file://Aurora-MySQL-parameter-us-east-1.json \ --capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_NAMED_IAM CAPABILITY_IAM \ --disable-rollback

Amazon ElastiCache (Redis OSS)

cd <YOUR-LOCAL-GIT-FOLDER>/App-Stack aws cloudformation deploy \ --region us-east-1 --stack-name elasticache-ds-app-stack \ --template-file ElastiCache-Primary.yaml \ --parameter-overrides file://ElastiCache-parameter-us-east-1.json \ --capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_NAMED_IAM CAPABILITY_IAM \ --disable-rollback

AWS CloudFormation 리소스가 성공적으로 배포되었는지 확인합니다.

관리자

보조 DB 인스턴스 또는 클러스터의 파라미터 파일을 업데이트합니다.

<YOUR LOCAL GIT FOLDER>/App-Stack 폴더에서 보조 리전의 파라미터 파일을 업데이트합니다.

Amazon RDS

RDS-MySQL-parameter-us-west-2.json 파일에서 SubnetIDsDBSecurityGroup를 생성한 리소스 이름으로 업데이트합니다. 기본 DB 인스턴스PrimaryRegionKMSKeyArn에 대한 AWS CloudFormation 스택의 출력 섹션에서 MySQLKmsKeyId 가져온 값으로를 업데이트합니다.

{ "Parameters": { "SubnetIds": "subnet-aaaaaaaaa,subnet-bbbbbbbbb", "DBSecurityGroup": "sg-cccccccccc", "MySqlGlobalIdentifier":"rds-mysql-instance", "InitialDatabaseName": "mysqldb", "DBPortNumber": "3789", "PrimaryRegion": "us-east-1", "SecondaryRegion": "us-west-2", "KMSKeyAliasName": "rds/rds-mysql-instance-KmsKeyId", "PrimaryRegionKMSKeyArn":"arn:aws:kms:us-east-1:xxxxxxxxx:key/mrk-xxxxxxxxxxxxxxxxxxxxx" } }

Amazon Aurora

Aurora-MySQL-parameter-us-west-2.json 파일에서 SubnetIDsDBSecurityGroup를 생성한 리소스 이름으로 업데이트합니다. 기본 DB 인스턴스PrimaryRegionKMSKeyArn에 대한 AWS CloudFormation 스택의 출력 섹션에서 AuroraKmsKeyId 가져온 값으로를 업데이트합니다.

{ "Parameters": { "SubnetIds": "subnet1-aaaaaaaaa,subnet2-bbbbbbbbb", "DBSecurityGroup": "sg-cccccccccc", "GlobalClusterIdentifier":"dr-globaldb-cluster-mysql", "DBClusterName":"dbcluster-01", "SourceDBClusterName":"dbcluster-02", "DBPortNumber": "3787", "DBInstanceClass":"db.r5.large", "InitialDatabaseName": "sampledb", "PrimaryRegion": "us-east-1", "SecondaryRegion": "us-west-2", "KMSKeyAliasName": "rds/dr-globaldb-cluster-mysql-KmsKeyId" } }

Amazon ElastiCache (Redis OSS)

ElastiCache-parameter-us-west-2.json 파일에서 SubnetIDsDBSecurityGroup를 생성한 리소스 이름으로 업데이트합니다. 기본 DB 인스턴스PrimaryRegionKMSKeyArn에 대한 AWS CloudFormation 스택의 출력 섹션에서 ElastiCacheKmsKeyId 가져온 값으로를 업데이트합니다.

{ "Parameters": { "CacheNodeType": "cache.m5.large", "DBSecurityGroup": "sg-cccccccccc", "SubnetIds": "subnet-aaaaaaaaa,subnet-bbbbbbbbb", "EngineVersion": "5.0.6", "GlobalReplicationGroupIdSuffix": "demo-redis-global-datastore", "NumReplicas": "1", "NumShards": "1", "ReplicationGroupId": "demo-redis-cluster", "DBPortNumber": "3788", "TransitEncryption": "true", "KMSKeyAliasName": "elasticache/demo-redis-global-datastore-KmsKeyId", "PrimaryRegion": "us-east-1", "SecondaryRegion": "us-west-2" } }
관리자

DB 인스턴스 또는 클러스터를 보조 리전에 배포합니다.

데이터베이스 엔진에 따라 다음 명령을 실행합니다.

Amazon RDS

cd <YOUR-LOCAL-GIT-FOLDER>/App-Stack aws cloudformation deploy \ --region us-west-2 \ --stack-name rds-mysql-app-stack \ --template-file RDS-MySQL-DR.yaml \ --parameter-overrides file://RDS-MySQL-parameter-us-west-2.json \ --capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_NAMED_IAM CAPABILITY_IAM \ --disable-rollback

Amazon Aurora

cd <YOUR-LOCAL-GIT-FOLDER>/App-Stack aws cloudformation deploy \ --region us-west-2 \ --stack-name aurora-mysql-app-stack \ --template-file Aurora-MySQL-DR.yaml \ --parameter-overrides file://Aurora-MySQL-parameter-us-west-2.json \ --capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_NAMED_IAM CAPABILITY_IAM \ --disable-rollback

Amazon ElastiCache (Redis OSS)

cd <YOUR-LOCAL-GIT-FOLDER>/App-Stack aws cloudformation deploy \ --region us-west-2 \ --stack-name elasticache-ds-app-stack \ --template-file ElastiCache-DR.yaml \ --parameter-overrides file://ElastiCache-parameter-us-west-2.json \ --capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_NAMED_IAM CAPABILITY_IAM \ --disable-rollback

AWS CloudFormation 리소스가 성공적으로 배포되었는지 확인합니다.

관리자

데이터베이스 인스턴스 또는 클러스터 생성

작업설명필요한 기술

데이터베이스 서브넷 및 보안 그룹을 생성합니다.

VPC에서 기본(us-east-1) 및 보조(us-west-2) 리전 모두에서 DB 인스턴스 또는 글로벌 데이터베이스에 대해 서브넷 2개와 보안 그룹 1개를 생성합니다.

  • subnet-XXXXXX

  • subnet-XXXXXX

  • sg-XXXXXXXXXX

관리자

기본 DB 인스턴스 또는 클러스터의 파라미터 파일을 업데이트합니다.

<YOUR LOCAL GIT FOLDER>/App-Stack 폴더에서 기본 리전의 파라미터 파일을 업데이트합니다.

Amazon RDS

RDS-MySQL-parameter-us-east-1.json 파일에서 SubnetIdsDBSecurityGroup를 생성한 리소스 이름으로 업데이트합니다.

{ "Parameters": { "SubnetIds": "subnet-xxxxxx,subnet-xxxxxx", "DBSecurityGroup": "sg-xxxxxxxxxx", "MySqlGlobalIdentifier":"rds-mysql-instance", "InitialDatabaseName": "mysqldb", "DBPortNumber": "3789", "PrimaryRegion": "us-east-1", "SecondaryRegion": "us-west-2", "KMSKeyAliasName": "rds/rds-mysql-instance-KmsKeyId" } }

Amazon Aurora

Aurora-MySQL-parameter-us-east-1.json 파일에서 SubnetIdsDBSecurityGroup를 생성한 리소스 이름으로 업데이트합니다.

{ "Parameters": { "SubnetIds": "subnet1-xxxxxx,subnet2-xxxxxx", "DBSecurityGroup": "sg-xxxxxxxxxx", "GlobalClusterIdentifier":"dr-globaldb-cluster-mysql", "DBClusterName":"dbcluster-01", "SourceDBClusterName":"dbcluster-02", "DBPortNumber": "3787", "DBInstanceClass":"db.r5.large", "InitialDatabaseName": "sampledb", "PrimaryRegion": "us-east-1", "SecondaryRegion": "us-west-2", "KMSKeyAliasName": "rds/dr-globaldb-cluster-mysql-KmsKeyId" } }

Amazon ElastiCache (Redis OSS)

ElastiCache-parameter-us-east-1.json 파일에서 SubnetIdsDBSecurityGroup를 생성한 리소스 이름으로 업데이트합니다.

{ "Parameters": { "CacheNodeType": "cache.m5.large", "DBSecurityGroup": "sg-xxxxxxxxxx", "SubnetIds": "subnet-xxxxxx,subnet-xxxxxx", "EngineVersion": "5.0.6", "GlobalReplicationGroupIdSuffix": "demo-redis-global-datastore", "NumReplicas": "1", "NumShards": "1", "ReplicationGroupId": "demo-redis-cluster", "DBPortNumber": "3788", "TransitEncryption": "true", "KMSKeyAliasName": "elasticache/demo-redis-global-datastore-KmsKeyId", "PrimaryRegion": "us-east-1", "SecondaryRegion": "us-west-2" } }
관리자

기본 리전에 DB 인스턴스 또는 클러스터를 배포합니다.

기본 리전(us-east-1)에 인스턴스 또는 클러스터를 배포하려면 데이터베이스 엔진에 따라 다음 명령을 실행합니다.

Amazon RDS

cd <YOUR-LOCAL-GIT-FOLDER>/App-Stack aws cloudformation deploy \ --region us-east-1 \ --stack-name rds-mysql-app-stack \ --template-file RDS-MySQL-Primary.yaml \ --parameter-overrides file://RDS-MySQL-parameter-us-east-1.json \ --capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_NAMED_IAM CAPABILITY_IAM \ --disable-rollback

Amazon Aurora

cd <YOUR-LOCAL-GIT-FOLDER>/App-Stack aws cloudformation deploy \ --region us-east-1 \ --stack-name aurora-mysql-app-stack \ --template-file Aurora-MySQL-Primary.yaml \ --parameter-overrides file://Aurora-MySQL-parameter-us-east-1.json \ --capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_NAMED_IAM CAPABILITY_IAM \ --disable-rollback

Amazon ElastiCache (Redis OSS)

cd <YOUR-LOCAL-GIT-FOLDER>/App-Stack aws cloudformation deploy \ --region us-east-1 --stack-name elasticache-ds-app-stack \ --template-file ElastiCache-Primary.yaml \ --parameter-overrides file://ElastiCache-parameter-us-east-1.json \ --capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_NAMED_IAM CAPABILITY_IAM \ --disable-rollback

AWS CloudFormation 리소스가 성공적으로 배포되었는지 확인합니다.

관리자

보조 DB 인스턴스 또는 클러스터의 파라미터 파일을 업데이트합니다.

<YOUR LOCAL GIT FOLDER>/App-Stack 폴더에서 보조 리전의 파라미터 파일을 업데이트합니다.

Amazon RDS

RDS-MySQL-parameter-us-west-2.json 파일에서 SubnetIDsDBSecurityGroup를 생성한 리소스 이름으로 업데이트합니다. 기본 DB 인스턴스PrimaryRegionKMSKeyArn에 대한 AWS CloudFormation 스택의 출력 섹션에서 MySQLKmsKeyId 가져온 값으로를 업데이트합니다.

{ "Parameters": { "SubnetIds": "subnet-aaaaaaaaa,subnet-bbbbbbbbb", "DBSecurityGroup": "sg-cccccccccc", "MySqlGlobalIdentifier":"rds-mysql-instance", "InitialDatabaseName": "mysqldb", "DBPortNumber": "3789", "PrimaryRegion": "us-east-1", "SecondaryRegion": "us-west-2", "KMSKeyAliasName": "rds/rds-mysql-instance-KmsKeyId", "PrimaryRegionKMSKeyArn":"arn:aws:kms:us-east-1:xxxxxxxxx:key/mrk-xxxxxxxxxxxxxxxxxxxxx" } }

Amazon Aurora

Aurora-MySQL-parameter-us-west-2.json 파일에서 SubnetIDsDBSecurityGroup를 생성한 리소스 이름으로 업데이트합니다. 기본 DB 인스턴스PrimaryRegionKMSKeyArn에 대한 AWS CloudFormation 스택의 출력 섹션에서 AuroraKmsKeyId 가져온 값으로를 업데이트합니다.

{ "Parameters": { "SubnetIds": "subnet1-aaaaaaaaa,subnet2-bbbbbbbbb", "DBSecurityGroup": "sg-cccccccccc", "GlobalClusterIdentifier":"dr-globaldb-cluster-mysql", "DBClusterName":"dbcluster-01", "SourceDBClusterName":"dbcluster-02", "DBPortNumber": "3787", "DBInstanceClass":"db.r5.large", "InitialDatabaseName": "sampledb", "PrimaryRegion": "us-east-1", "SecondaryRegion": "us-west-2", "KMSKeyAliasName": "rds/dr-globaldb-cluster-mysql-KmsKeyId" } }

Amazon ElastiCache (Redis OSS)

ElastiCache-parameter-us-west-2.json 파일에서 SubnetIDsDBSecurityGroup를 생성한 리소스 이름으로 업데이트합니다. 기본 DB 인스턴스PrimaryRegionKMSKeyArn에 대한 AWS CloudFormation 스택의 출력 섹션에서 ElastiCacheKmsKeyId 가져온 값으로를 업데이트합니다.

{ "Parameters": { "CacheNodeType": "cache.m5.large", "DBSecurityGroup": "sg-cccccccccc", "SubnetIds": "subnet-aaaaaaaaa,subnet-bbbbbbbbb", "EngineVersion": "5.0.6", "GlobalReplicationGroupIdSuffix": "demo-redis-global-datastore", "NumReplicas": "1", "NumShards": "1", "ReplicationGroupId": "demo-redis-cluster", "DBPortNumber": "3788", "TransitEncryption": "true", "KMSKeyAliasName": "elasticache/demo-redis-global-datastore-KmsKeyId", "PrimaryRegion": "us-east-1", "SecondaryRegion": "us-west-2" } }
관리자

DB 인스턴스 또는 클러스터를 보조 리전에 배포합니다.

데이터베이스 엔진에 따라 다음 명령을 실행합니다.

Amazon RDS

cd <YOUR-LOCAL-GIT-FOLDER>/App-Stack aws cloudformation deploy \ --region us-west-2 \ --stack-name rds-mysql-app-stack \ --template-file RDS-MySQL-DR.yaml \ --parameter-overrides file://RDS-MySQL-parameter-us-west-2.json \ --capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_NAMED_IAM CAPABILITY_IAM \ --disable-rollback

Amazon Aurora

cd <YOUR-LOCAL-GIT-FOLDER>/App-Stack aws cloudformation deploy \ --region us-west-2 \ --stack-name aurora-mysql-app-stack \ --template-file Aurora-MySQL-DR.yaml \ --parameter-overrides file://Aurora-MySQL-parameter-us-west-2.json \ --capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_NAMED_IAM CAPABILITY_IAM \ --disable-rollback

Amazon ElastiCache (Redis OSS)

cd <YOUR-LOCAL-GIT-FOLDER>/App-Stack aws cloudformation deploy \ --region us-west-2 \ --stack-name elasticache-ds-app-stack \ --template-file ElastiCache-DR.yaml \ --parameter-overrides file://ElastiCache-parameter-us-west-2.json \ --capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_NAMED_IAM CAPABILITY_IAM \ --disable-rollback

AWS CloudFormation 리소스가 성공적으로 배포되었는지 확인합니다.

관리자

관련 리소스

프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.