참고:
- 이 사용지침서에서는 Oracle Cloud에 접근해야 합니다. 무료 계정에 등록하려면 Oracle Cloud Infrastructure Free Tier 시작하기를 참조하십시오.
- Oracle Cloud Infrastructure 인증서, 테넌시 및 구획에 대한 예제 값을 사용합니다. 실습을 완료하면 이러한 값을 클라우드 환경에 고유한 값으로 대체합니다.
Oracle Cloud Infrastructure Full Stack Disaster Recovery에서 실행 명령을 사용하여 커스텀 스크립트 호출
소개
Oracle Cloud Infrastructure(OCI) Full Stack Disaster Recovery는 클릭 한 번으로 전 세계 OCI 지역 간 컴퓨팅, 데이터베이스 및 애플리케이션의 전환을 조정합니다. 고객은 전문화된 관리 또는 변환 서버 없이도 기존 인프라, 데이터베이스 또는 애플리케이션을 재설계하거나 재설계하지 않고도 하나 이상의 비즈니스 시스템을 복구하는 데 필요한 단계를 자동화할 수 있습니다.
OCI Full Stack Disaster Recovery는 탁월한 유연성을 제공합니다. 재해 복구 계획 내에서 사용자 정의 그룹을 활용할 수 있으므로 전체 재해 복구 계획의 일부로 사용자 정의된 단계를 관리할 수 있습니다. 풀스택 재해 복구가 초기 재해 복구 계획을 내장된 계획 그룹 및 단계로 설정하면 추가 사용자 정의 계획 그룹 및 단계를 통합할 수 있습니다. 사용자 정의 계획 그룹을 사용하여 스크립트 및 OCI 함수를 호출할 수 있습니다.
OCI 컴퓨트 run 명령은 OCI 컴퓨트 인스턴스에서 사용 가능한 Oracle Cloud 에이전트를 사용하여 수행됩니다. Oracle Cloud Agent는 OCI 컴퓨트 인스턴스에서 실행되는 플러그인을 관리하는 경량 프로세스입니다. 플러그인은 성능 측정항목을 수집하고 OS 업데이트를 설치하며 기타 인스턴스 관리 작업을 수행합니다. run 명령을 사용하여 스크립트를 실행하려면 컴퓨트 인스턴스(이동 또는 비이동)가 재해 복구 보호 그룹의 멤버로 추가되어 있어야 합니다.
전체 스택 장애 복구는 재해 복구 계획 실행 중 인스턴스를 이동하기 위해 재해 복구 영역에 VM을 생성합니다. VM이 실행되면 명령 실행 기능을 사용하여 스크립트를 사용하여 추가 단계를 수행할 수 있습니다. 예: 로드 밸런서 구성 변경, 데이터베이스에 연결 및 테이블 갱신, 애플리케이션 서버 정지 및 시작 요구사항에 따라 컴퓨트 인스턴스의 cloud-init 또는 systemd 구성을 사용하여 인스턴스 실행 중 애플리케이션 또는 다른 작업을 시작할 수도 있습니다. 재해 복구 계획의 실행 명령 옵션은 모든 언어로 작성된 스크립트 사용 및 단일 유리 평면에서 중지/다시 시작/로그 모니터링과 같은 관찰성 옵션과 같은 향상된 유연성을 제공합니다. 비이동 인스턴스의 경우 VM이 이미 재해 복구 영역에 생성되었으므로 실행 명령 기능은 스크립트를 사용하여 앱, 데이터베이스 등을 시작/중지하는 데 이상적인 옵션입니다.
이 사용지침서에서는 인스턴스를 이동하여 OCI 컴퓨트 run 명령 기능을 사용하고 전체 스택 재해 복구 계획의 일부로 스크립트를 실행하는 방법에 대해 설명합니다. 사용자 정의 계획 그룹 및 단계.
목표
두 OCI 리전 간에 인스턴스를 이동하고 사용자 정의 계획 그룹의 OCI 컴퓨트 run 명령 기능과 전체 스택 재해 복구 계획의 단계를 사용하여 사용자정의 스크립트를 호출합니다. 기본 영역은 애슈번이고 재해 복구 영역은 피닉스입니다.
"administrator" 또는 동등한 권한 사용자를 사용하여 Oracle Cloud Infrastructure Identity and Access Management(OCI IAM) 리소스를 만들고 run 명령을 사용하여 Full Stack Disaster Recovery 작업을 수행할 수 있습니다. 또는 Full Stack Disaster Recovery 관리자에 대해 별도의 유저를 생성하고 필요한 OCI IAM 리소스를 할당하여 run 명령으로 Full Stack Disaster Recovery 작업을 수행할 수 있습니다. 이 문서에서는 "관리자" 액세스를 사용하여 OCI IAM 리소스를 생성하고 전체 스택 관리자 사용자가 전체 스택 재해 복구 작업을 수행하는 방법에 대해 설명합니다.
이 자습서는 run 명령을 사용하여 Full Stack Disaster Recovery 사용자 정의 계획 그룹에서 작업 스크립트를 실행하는 데 필요한 단계를 보여주기 위한 것입니다.
여러 가용성 도메인에서 블록 복제를 구성하는 경우 영역 내에서도 동일한 자습서가 작동합니다.
자세한 내용은 인스턴스에 대한 명령 실행을 참조하십시오.
다음 단계는 자습서에서 다룹니다.
- 전체 스택 재해 복구를 위한 사용자, 그룹 및 정책 만들기
- 동적 그룹 생성 및 전체 스택 재해 복구 및
run명령에 대한 정책 업데이트 - 기본 영역 VM에서
run명령 구성 및 검증 - 볼륨 그룹을 생성하고 기본 영역 VM에 대해 영역 간 복제를 사용으로 설정합니다.
- DRPG(재해 복구 보호 그룹) 생성 및 연관
- 대기 DRPG에서 전환 계획 생성
- 사용자 정의 계획 그룹으로 전환 계획을 사용자 정의하여
run명령을 실행합니다. - 사전 검사 실행 및 전환 계획 실행
배포 아키텍처

필요 조건
-
여기에 설명된 대로 관리자 권한 또는 전체 스택 재해 복구에 필요한 OCI IAM 정책 구성: 전체 스택 재해 복구를 사용하도록 IAM(ID 및 액세스 관리) 정책 구성 및 전체 스택 재해 복구 정책
-
OCI 컴퓨트 인스턴스에서 명령 실행: OCI 컴퓨트 인스턴스에서 명령 실행 참조
-
기본 영역 및 대기 영역에 오브젝트 스토리지 버킷을 생성하여 재해 복구 작업 로그를 저장합니다. 오브젝트 스토리지를 참조하십시오.
구현
이 자습서에서는 이미 다음 리소스를 생성했습니다.
| 리소스 | 기본 지역 - 애슈번(IAD) |
|---|---|
| 오브젝트 스토리지 버킷 | fsdr-bucket-ash |
| 구획 | cmp-compute-fsdrdemo |
| 컴퓨팅 VM | 데모-fsdr-inst |
| 폴더 및 파일을 생성하는 스크립트 | /home/opc/scripts/testCommand.sh |
#!/bin/bash
# coding: utf-8
echo "Creating Dir testDir under /home/opc"
mkdir -p "/home/opc/testDir"
echo "Creating Testfile"
echo "Contents from `run` Command!!" > /home/opc/testDir/testFile.txt
| 리소스 | 대기 지역 - 피닉스(PHX) |
|---|---|
| 오브젝트 스토리지 버킷 | fsdr-버킷-phx |
| 구획 | cmp-compute-fsdrdemo |
작업 1: 전체 스택 재해 복구에 대한 사용자, 그룹 및 정책 만들기
-
필요한 OCI IAM 리소스를 생성하고 수정할 수 있는 동등한 권한을 가진 사용자 또는 관리자 인증서를 사용하여 OCI 콘솔에 로그인합니다.
-
햄버거 메뉴의 기본 영역(애슈번)에서 ID 및 보안, 도메인, 기본값, 사용자로 이동합니다. 사용자 생성을 누르고 이름, 성, 전자메일 ID를 제공한 다음 생성을 누릅니다.

-
햄버거 메뉴의 기본 영역(애슈번)에서 ID 및 보안, 도메인, 기본값, 그룹으로 이동합니다. Create group을 누르고 그룹 이름을 "demo-fsdr-admins", "description"으로 지정하고 이 그룹을 지정할 사용자를 선택합니다. 1단계에서 만든 사용자를 선택합니다.

-
햄버거 메뉴의 기본 영역(애슈번)에서 Identity and Security(ID 및 보안), Domains(도메인),Policies(정책), 루트 구획의 Create Policy(정책 생성) 또는 정책을 생성하려는 구획으로 이동합니다. disaster-recovery-family는 전체 스택 재해 복구의 패밀리 유형입니다.

Allow group demo-fsdr-admins to manage disaster-recovery-family in compartment cmp-compute-fsdrdemo -
재해 복구 서비스가 애플리케이션 스택에 속한 OCI 리소스를 관리할 수 있도록 하려면 이러한 리소스에 대한 액세스를 허용하도록 정책 기반 액세스를 구성해야 합니다. 현재 멤버 유형으로 지원되는 모든 OCI 서비스 정책을 추가했습니다. 정책은 Full Stack Disaster Recovery에 사용되는 리소스 유형에 따라 수정할 수 있습니다. 다음과 같이 demo-fsdr-admin-policies에 다음 정책을 추가합니다.
Allow group demo-fsdr-admins to manage buckets in compartment cmp-compute-fsdrdemo Allow group demo-fsdr-admins to manage objects in compartment cmp-compute-fsdrdemo Allow group demo-fsdr-admins to manage databases in compartment cmp-compute-fsdrdemo Allow group demo-fsdr-admins to manage autonomous-databases in compartment cmp-compute-fsdrdemo Allow group demo-fsdr-admins to manage instance-family in compartment cmp-compute-fsdrdemo Allow group demo-fsdr-admins to manage instance-agent-command-family in compartment cmp-compute-fsdrdemo Allow group demo-fsdr-admins to manage volume-family in compartment cmp-compute-fsdrdemo Allow group demo-fsdr-admins to read virtual-network-family in compartment cmp-compute-fsdrdemo Allow group demo-fsdr-admins to use subnets in compartment cmp-compute-fsdrdemo Allow group demo-fsdr-admins to use vnics in compartment cmp-compute-fsdrdemo Allow group demo-fsdr-admins to use network-security-groups in compartment cmp-compute-fsdrdemo Allow group demo-fsdr-admins to use private-ips in compartment cmp-compute-fsdrdemo Allow group demo-fsdr-admins to read fn-app in compartment cmp-compute-fsdrdemo Allow group demo-fsdr-admins to read fn-function in compartment cmp-compute-fsdrdemo Allow group demo-fsdr-admins to use fn-invocation in compartment cmp-compute-fsdrdemo Allow group demo-fsdr-admins use tag-namespaces in compartment cmp-compute-fsdrdemo Allow group demo-fsdr-admins read vaults in compartment cmp-compute-fsdrdemo Allow group demo-fsdr-admins read secret-family in compartment cmp-compute-fsdrdemo Allow group demo-fsdr-admins read all-resources in compartment cmp-compute-fsdrdemo -
메뉴에서 ID 및 보안, 정책으로 이동하여 4단계에서 만든 정책을 선택하고 정책 문 편집, 정책 작성기, 고급을 선택합니다.
-
위와 같이 정책 목록을 복사하고 변경사항 저장을 누릅니다. 추가된 모든 정책이 올바르게 반영되었는지 확인합니다.
참고: 정책 구문에 올바른 그룹 이름(3단계에서 생성)과 구획 이름을 사용해야 합니다.

작업 2: 전체 스택 재해 복구 및 run 명령에 대한 동적 그룹 및 정책 만들기
-
필요한 OCI IAM 리소스를 생성하고 수정할 수 있는 동등한 권한을 가진 사용자 또는 관리자 인증서를 사용하여 OCI 콘솔에 로그인합니다.
-
컴퓨트 인스턴스가 OCI 서비스에 대해 API 호출을 수행하도록 허용하려면 동적 그룹을 생성하고 컴퓨트 인스턴스를 주 작업자로 만들어야 합니다. 햄버거 메뉴의 기본 영역(애슈번)에서 ID 및 보안, 도메인, 동적 그룹, 동적 그룹 생성으로 이동합니다.
-
구획에 인스턴스가 여러 개 있는 경우 규칙
All {instance.compartment.id = 'compartment OCID'}을 사용할 수 있습니다. 이 예에서는cmp-compute-fsdrdemo구획의 OCID를 복사했으며 이를 통해 이 구획의 모든 인스턴스가run명령을 사용할 수 있습니다.
-
동적 그룹을 사용하여 임의 {instance.id='ocid....'}로 규칙을 추가하여 인스턴스 레벨로 액세스를 제한할 수도 있습니다.
-
-
작업 1에서 만든 demo-fsdr-admins 정책을 아래 정책으로 업데이트합니다. 이 작업은 실행 명령, 취소 명령과 같은
run명령 함수를 사용하고 구획의 인스턴스에 대한 명령 출력을 보기 위해 필요합니다.Allow dynamic-group demofsdr-runcmd-dgp to manage instance-agent-command-execution-family in compartment cmp-compute-fsdrdemo
참고: 스크립트가 다른 OCI 서비스와 상호 작용하는 경우 동적 그룹 정책을 업데이트해야 합니다.
작업 3. 소스 VM에서 run 명령 구성 및 검증
-
작업 1에서 생성한 Full Stack Disaster Recovery 관리자 유저를 사용하여 OCI 콘솔에 로그인합니다.
-
컴퓨트 VM(
demo-fsdr-inst)에 opc 사용자로 로그인합니다./home/opc/scripts/폴더에testCommand.sh스크립트를 배치하고 실행 권한으로 파일의 권한을 변경해야 합니다. 스크립트 콘텐츠는 페이지 상단의 구현 섹션에서 확인할 수 있습니다. -
명령을 실행하려면 컴퓨트 인스턴스
run명령 플러그인에 관리자 권한을 부여해야 합니다. 플러그인은ocarun사용자로 실행됩니다. -
컴퓨트 인스턴스
run명령 플러그인에 대한 sudoers 구성 파일을 생성합니다.vi ./101-oracle-cloud-agent-run-command
-
ocarun사용자가 다음 행을 구성 파일에 추가하여 모든 명령을 sudo로 실행하도록 허용합니다.ocarun ALL=(ALL) NOPASSWD:ALL
선택적으로 특정 명령을 나열할 수 있습니다. 자세한 내용은 Linux 매뉴얼 페이지에서 sudoers를 참조하십시오.
-
구성 파일의 구문이 올바른지 검증하십시오.
visudo -cf ./101-oracle-cloud-agent-run-command구문이 올바르면 다음 메시지가 반환됩니다.
./101-oracle-cloud-agent-run-command: 구문 분석됨 OK

-
구성 파일을
/etc/sudoers.d에 추가합니다.sudo cp ./101-oracle-cloud-agent-run-command /etc/sudoers.d/
주: 관리자 권한을 부여하는 단계는 운영 체제에 따라 다릅니다. 이 예에서는 Linux OS를 사용했습니다. 자세한 내용은 인스턴스에 대한 명령 실행을 참조하십시오.
-
아래 명령을 사용하여 수동으로 클라우드 에이전트를 재시작하십시오. 이 명령은 Oracle Linux 7.x 및 Oracle Linux 8.x에 적용할 수 있습니다. 다른 Linux 버전 및 운영 체제의 경우 인스턴스에서 명령 실행을 참조하십시오.
sudo systemctl restart oracle-cloud-agent
-
OCI 콘솔에 로그인하여
demo-fsdr-instVM으로 이동하여 Oracle Cloud Agent 탭을 선택하고 Compute InstancerunCommand status should display Running을 선택합니다.
참고: 상태가 실행 중이 아니면 Oracle Cloud Agent 문제 해결을 참조하여 문제를 해결하십시오. 컴퓨트 인스턴스
run명령의 상태가 실행 중이어야 합니다. -
Instances, demo-fsdr-inst,
runCommand, CreaterunCommand로 이동합니다.
-
아래와 같이
run명령을 테스트합니다.
-
오른쪽 모서리에 있는 3개의 점을 클릭하여 명령의 상태를 확인합니다.

-
아래와 같이 명령 출력과 상태가 표시됩니다.

VM에서 run 명령 문제를 해결하려면 다음 명령을 사용하여 플러그인이 생성하는 로그를 볼 수 있습니다.
tail -f /var/log/oracle-cloud-agent/plugins/runcommand/runcommand.log
알려진 오류 및 해결 방법은 인스턴스에서 명령 실행의 컴퓨트 인스턴스 run 명령 플러그인 문제 해결 섹션을 참조하십시오.
작업 4: 기본(애슈번)에서 볼륨 그룹 만들기
-
작업 1에서 생성한 Full Stack Disaster Recovery 관리자 유저를 사용하여 OCI 콘솔에 로그인합니다.
-
햄버거 메뉴의 주 영역(애슈번)에서 Migration & Disaster Recovery, Disaster Recovery, Disaster Recovery Protection group, Create Disaster Recovery protection group으로 이동합니다.

-
컴퓨트 demo-fsdr-inst의 부트 볼륨을 추가합니다.

-
애슈번에서 피닉스로 리전 간 복제를 사용으로 설정합니다.

-
백업 정책을 None으로 두고 Next를 누르고 요약을 검토합니다.

작업 5: Primary 및 Standby에서 Disaster Recovery 보호 그룹 생성
-
작업 1에서 생성한 Full Stack Disaster Recovery 관리자 유저를 사용하여 OCI 콘솔에 로그인합니다.
-
햄버거 메뉴의 주 영역(애슈번)에서 Migration & Disaster Recovery, Disaster Recovery, Disaster Recovery Protection group, Create Disaster Recovery protection group으로 이동합니다.

-
햄버거 메뉴의 대기 영역(피닉스)에서 Migration & Disaster Recovery, Disaster Recovery, Disaster Recovery Protection group, Create Disaster Recovery protection group으로 이동합니다.

참고: 이 자습서 예에서는 애슈번을 기본 영역으로, 피닉스를 대기 영역으로 선택합니다.
-
기본 영역(애슈번)에서 fsdr-runcmd-DRPG-ash DRPG를 선택하고 Associate를 누릅니다. Role을 Primary, Peer Region US West (Phoenix), Peer Disaster Recovery Protection group fsdr-runcmd-drpg-phx로 선택하고 Associate를 누릅니다.

참고:
fsdr-runcmd-drpg-ash의 역할을 Primary로,fsdr-runcmd-drpg-phx을 Standby로 확인합니다. -
기본 영역(애슈번)에서 fsdr-runcmd-DRPG-ash DRPG를 선택하고 Members(멤버)를 누른 다음 Add Members(멤버 추가)를 눌러 볼륨 그룹 및 VM을 추가합니다.

작업 6: 대기 DRPG(피닉스)에서 전환 계획 만들기
전환 계획 - 기본 재해 복구 보호 그룹에서 대기 재해 복구 보호 그룹으로 계획된 서비스 전환을 수행하는 재해 복구 계획의 한 유형입니다.
-
작업 1에서 생성한 Full Stack Disaster Recovery 관리자 유저를 사용하여 OCI 콘솔에 로그인합니다.
-
대기 DRPG fsdr-runcmd-drpg-phx에서 전환 계획을 만듭니다.
-
계획을 선택하고 계획 생성을 누릅니다.
-
이름을 switchover-to-phx로 제공하고 계획 유형을 Switchover (planned)로 선택합니다.
-
생성을 누릅니다.

참고: 대기 DRPG(피닉스)에서 전환 계획을 만들어야 합니다.
-
Plan을 누르고 아래와 같이 내장 계획이 생성되었는지 확인합니다.

작업 7: 사용자 정의 계획 그룹으로 전환 계획 사용자 정의
-
작업 1에서 생성한 Full Stack Disaster Recovery 관리자 유저를 사용하여 OCI 콘솔에 로그인합니다.
-
Plan Groups(계획 그룹)에서 Add group(그룹 추가)을 눌러 전환을 수행할 사용자 정의 계획 그룹을 만듭니다. 그룹 이름을 CustGroup-Demo로 제공합니다.

-
단계 추가를 누르고 아래와 같이 세부정보를 추가합니다. 계획 그룹에 단계를 추가합니다.

-
지역을 애슈번으로 선택해야 합니다.
runlocal Script 옵션을 선택합니다. -
사용자 정의 계획 그룹을 생성하는 동안 피닉스에 VM이 없다고 생각하면 지역을 애슈번(기본)으로, 대상 인스턴스를 인스턴스용 데모 VM으로 선택해야 합니다. 전체 스택 재해 복구는 해당 인스턴스를 자동으로 매핑하며 스크립트가 피닉스의 새로 실행된 인스턴스에서 실행됩니다.
-
VM이 생성된 구획에서 대상 인스턴스를 선택합니다. 여기서 VM을 demo-fsdr-inst로 만들었습니다.
-
Script Parameter에 /home/opc/scripts/testCommand.sh를 입력합니다.
-
run에 user 필드에 opc를 입력합니다. -
단계 추가를 누르고 추가된 단계를 확인합니다.

-
단계가 추가되었는지 확인하고 추가를 누릅니다.
-
-
위에 표시된 대로 올바른 순서로 스위치오버 계획 그룹을 확인합니다.
작업 8: 사전 검사 실행 및 전환 계획 실행
사전 검사 실행 옵션은 재해 복구(재해 복구) 계획의 모든 단계를 빠르게 검증합니다.
-
전환 계획 switchover-to-phx에서 Run prechecks를 눌러 [사전 검사 실행] 대화상자를 실행합니다.


성공적으로 완료되었는지 확인합니다.
-
전환 계획 switchover-to-phx에서 Execute Disaster Recovery Plan을 눌러 계획을 실행합니다.

-
계획의 상태를 확인하고 계획의 모든 단계가 성공했는지 확인합니다.

-
switchover 계획이 성공적으로 실행된 후에 Phoenix의 instance에 로그인하고 testDir 및 testFile가 생성되었는지 확인합니다.

-
자동으로 역할 변경은 재해 복구 보호 그룹에서 발생합니다. 이제 피닉스는 기본 역할을 하고 애슈번은 대기 역할을 합니다.
다음 단계
커스텀 그룹을 사용하여 OCI Full Stack Disaster Recovery로 스크립트를 호출하는 방법을 배웠습니다. 이상적으로 애플리케이션 스택에 대한 오브젝트 스토리지와 함께 컴퓨트, 데이터베이스, 블록 스토리지를 복구하는 단계가 있습니다. 사용자 정의 그룹을 사용자 정의 계획 그룹의 일부로 추가하려면 이 자습서를 사용하여 전체 스택 재해 복구 계획을 사용자 정의할 수 있습니다.
관련 링크
- OCI Full Stack Disaster Recovery 제품 페이지
- OCI Full Stack Disaster Recovery 설명서
- 전체 스택 장애 복구 라이브 랩
- 콜드 VM 장애 복구를 위한 전체 스택 장애 복구
- WLS에 대한 전체 스택 장애 복구
- 전체 스택 재해 복구 - 사용자 정의 그룹 스크립트
- #full-stack-dr 공용 슬랙 채널 가입
수락
Authors - Vasudeva Manikandan(구현 기술 책임자 - Oracle Lift Services), Suraj Ramesh(전체 스택 재해 복구 제품 관리자)
추가 학습 자원
docs.oracle.com/learn에서 다른 실습을 살펴보거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하십시오. 또한 Oracle Learning Explorer가 되려면 education.oracle.com/learning-explorer를 방문하십시오.
제품 설명서는 Oracle Help Center를 참조하십시오.
Invoke custom scripts using the run command with Oracle Cloud Infrastructure Full Stack Disaster Recovery
F86012-01
August 2023
Copyright © 2023, Oracle and/or its affiliates.