ノート:
- このチュートリアルではOracle Cloudへのアクセスが必要です。無料アカウントにサインアップするには、Oracle Cloud Infrastructure Free Tierの開始を参照してください。
- Oracle Cloud Infrastructure資格証明、テナンシおよびコンパートメントの値の例を使用します。演習を完了する場合は、これらの値をクラウド環境に固有の値に置き換えてください。
Oracle Cloud Infrastructureフル・スタック・ディザスタ・リカバリを実行コマンドで使用して、カスタム・スクリプトを起動します
イントロダクション
Oracle Cloud Infrastructure (OCI) Full Stack Disaster Recoveryは、1回のクリックで世界中のOCIリージョン間のコンピュート、データベースおよびアプリケーションの移行をオーケストレーションします。お客様は、特定の管理サーバーや変換サーバーを必要とせずに、既存のインフラストラクチャ、データベースまたはアプリケーションを再設計または再設計することなく、1つ以上のビジネス・システムをリカバリするために必要なステップを自動化できます。
OCI Full Stackのディザスタ・リカバリは優れた柔軟性を提供します。これにより、障害回復計画内でユーザー定義のグループを使用できるため、障害回復計画全体の一部としてカスタマイズされたステップを管理できます。フル・スタックのディザスタ・リカバリによって、計画グループおよびステップが組み込まれた最初のディザスタ・リカバリ計画が確立されると、追加のユーザー定義の計画グループおよびステップを組み込むことができます。ユーザー定義のプラン・グループを使用してスクリプトおよびOCIファンクションを呼び出すことができます。
OCI Computeのrunコマンドは、OCI Computeインスタンスで使用可能なOracle Cloud Agentを使用して実行されます。Oracle Cloud Agentは、OCI Computeインスタンスで実行されているプラグインを管理する軽量プロセスです。プラグインは、パフォーマンス・メトリックを収集し、OS更新をインストールし、その他のインスタンス管理タスクを実行します。runコマンドを使用してスクリプトを実行するには、ディザスタ・リカバリ保護グループのメンバーとしてコンピュート・インスタンス(移動または移動なし)を追加する必要があります。
フル・スタック・ディザスタ・リカバリでは、障害時リカバリ計画の実行中にインスタンスを移動するために、障害時リカバリ・リージョンにVMが作成されます。VMが起動したら、コマンド実行機能を使用して、スクリプトを使用して追加のステップを実行できます。例: ロード・バランサ構成の変更、データベースへの接続および表の更新、アプリケーション・サーバーの停止および起動。要件に基づいて、コンピュート・インスタンスでcloud-initまたはsystemd構成を使用して、インスタンスの起動中にアプリケーションまたはその他の操作を起動することもできます。障害時リカバリ計画の実行コマンド・オプションは、任意の言語で記述されたスクリプトの使用や、単一平面での停止/再起動/ログ監視などの可観測性オプションなど、柔軟性が高くなります。移動していないインスタンスの場合、VMはディザスタ・リカバリ・リージョンにすでに作成されているため、コマンド実行機能は、スクリプトを使用してアプリケーション、データベースなどを起動/停止するための理想的なオプションです。
このチュートリアルでは、インスタンスの移動を使用してOCI Compute runコマンド機能を使用し、フル・スタック・ディザスタ・リカバリ計画のユーザー定義計画グループおよびステップの一部としてスクリプトを実行する方法について説明します。
目的
2つのOCIリージョン間でインスタンスを移動し、ユーザー定義プラン・グループのOCI Computeのrunコマンド機能およびフル・スタックの障害時リカバリ計画のステップを使用してカスタム・スクリプトを起動するには。プライマリ・リージョンはアッシュバーンで、ディザスタ・リカバリ・リージョンはフェニックスです。
管理者または同等の権限ユーザーを使用して、Oracle Cloud Infrastructure Identity and Access Management (OCI IAM)リソースを作成し、runコマンドを使用してフル・スタック・ディザスタ・リカバリ操作を実行できます。または、フル・スタック・ディザスタ・リカバリ管理者用に別のユーザーを作成し、runコマンドを使用してフル・スタック・ディザスタ・リカバリ操作を実行するために必要なOCI IAMリソースを割り当てることもできます。この記事では、「administrator」アクセスを使用してOCI IAMリソースを作成し、フル・スタック障害リカバリ操作を実行するためのフル・スタック管理者ユーザーについて説明します。
このチュートリアルは、runコマンドを使用して、フル・スタック・ディザスタ・リカバリのユーザー定義プラン・グループから作業スクリプトを実行するために必要なステップを示すことを目的としています。
異なる可用性ドメイン間でブロック・レプリケーションを構成する場合、同じチュートリアルがリージョン内で機能する必要があります。
詳細は、インスタンスでのコマンドの実行を参照してください。
チュートリアルでは、次のステップを実行します。
- フル・スタック・ディザスタ・リカバリのユーザー、グループおよびポリシーの作成
- 動的グループの作成とフル・スタック・ディザスタ・リカバリおよび
runコマンドのポリシーの更新 - プライマリ・リージョンVMでの
runコマンドの構成および検証 - ボリューム・グループを作成し、プライマリ・リージョンVMのリージョン間レプリケーションを有効にします
- ディザスタ・リカバリ保護グループ(DRPG)の作成および関連付け
- スタンバイDRPGでのスイッチオーバー計画の作成
- ユーザー定義のプラン・グループを使用してスイッチオーバー・プランをカスタマイズし、
runコマンドを実行します - 事前チェックの実行およびスイッチオーバー計画の実行
デプロイメント・アーキテクチャ

前提条件
-
次に示すように、管理者権限またはフル・スタック・ディザスタ・リカバリに必要なOCI IAMポリシーを構成します: フル・スタック・ディザスタ・リカバリを使用するためのIdentity and Access Management (IAM)ポリシーの構成およびフル・スタック・ディザスタ・リカバリのポリシー
-
OCIコンピュート・インスタンスでのコマンドの実行: OCIコンピュート・インスタンスでのコマンドの実行を参照してください
-
障害時リカバリ操作ログを格納するために、プライマリ・リージョンおよびスタンバイ・リージョンにオブジェクト・ストレージ・バケットを作成します: オブジェクト・ストレージを参照してください
実装
このチュートリアルでは、すでに次のリソースを作成しました。
| リソース | プライマリ・リージョン- アッシュバーン(IAD) |
|---|---|
| オブジェクト・ストレージ・バケット | fsdr-bucket-ash |
| コンパートメント | cmp-compute-fsdrdemo |
| コンピュートVM | demo-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-bucket-phx |
| コンパートメント | cmp-compute-fsdrdemo |
タスク1: フル・スタックの障害回復のためのユーザー、グループおよびポリシーの作成
-
必要なOCI IAMリソースを作成および変更するための同等の権限を持つ管理者資格証明またはユーザーを使用してOCIコンソールにログインします。
-
ハンバーガー・メニューからプライマリ・リージョン(アッシュバーン)で、「アイデンティティとセキュリティ」、「ドメイン」、「デフォルト」、「ユーザー」にナビゲートします。「ユーザーの作成」をクリックし、名、姓、電子メールIDを指定して、「作成」をクリックします。

-
ハンバーガー・メニューのプライマリ・リージョン(アッシュバーン)で、「アイデンティティとセキュリティ」、「ドメイン」、「デフォルト」、「グループ」に移動します。「グループの作成」をクリックし、グループ名を"demo-fsdr-admins"、"description"として指定し、このグループを割り当てるユーザーを選択します。ステップ1で作成したユーザーを選択します。

-
ハンバーガー・メニューのプライマリ・リージョン(アッシュバーン)で、「アイデンティティとセキュリティ」、「ドメイン」、「ポリシー」、ルート・コンパートメントまたはポリシーを作成するコンパートメントの「ポリシーの作成」に移動します。disaster-recovery-familyは、フル・スタック・ディザスタ・リカバリのファミリ・タイプです。

Allow group demo-fsdr-admins to manage disaster-recovery-family in compartment cmp-compute-fsdrdemo -
ディザスタ・リカバリ・サービスがアプリケーション・スタックの一部であるOCIリソースを管理できるようにするには、これらのリソースへのアクセスを許可するようにポリシーベースのアクセスを構成する必要があります。現在メンバー・タイプとしてサポートされているすべてのOCIサービス・ポリシーを追加しました。ポリシーは、フル・スタック障害リカバリで使用されるリソース・タイプに応じて変更できます。次のポリシーを 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 -
メニューから、「アイデンティティとセキュリティ」、「ポリシー」の順にナビゲートし、ステップ4で作成したポリシーを選択し、「ポリシー・ステートメントの編集」、「ポリシー・ビルダー」、「詳細」を選択します。
-
前述のポリシーのリストをコピーし、「変更の保存」をクリックします。追加されたすべてのポリシーが正しく反映されているかどうかを確認します。
ノート: ポリシー構文では、正しいグループ名(ステップ3で作成)およびコンパートメント名を使用する必要があります。

タスク2: フル・スタックの障害時リカバリおよびrunコマンドのための動的グループおよびポリシーの作成
-
必要なOCI IAMリソースを作成および変更するための同等の権限を持つ管理者資格証明またはユーザーを使用してOCIコンソールにログインします。
-
コンピュート・インスタンスがOCIサービスに対してAPIコールを実行できるようにするには、動的グループを作成し、コンピュート・インスタンスをプリンシパル・アクターとして作成する必要があります。ハンバーガー・メニューからプライマリ・リージョン(アッシュバーン)に動的グループを作成し、「アイデンティティとセキュリティ」、「ドメイン」、「動的グループ」、「動的グループの作成」に移動します。
-
コンパートメントに複数のインスタンスがある場合は、ルール
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で作成したフル・スタック・ディザスタ・リカバリ管理者ユーザーを使用して、OCIコンソールにログインします。
-
opcユーザーとしてコンピュートVM (
demo-fsdr-inst)にログインします。スクリプトtestCommand.shを/home/opc/scripts/フォルダに配置し、実行権限を持つファイルの権限を変更してください。スクリプトの内容は、ページ上部の「実装」セクションで確認できます。 -
コマンドを実行するには、コンピュート・インスタンスの
runコマンド・プラグインに管理者権限を付与する必要があります。プラグインは、ocarunユーザーとして実行されます。 -
コンピュート・インスタンスの
runコマンド・プラグインのsudoers構成ファイルを作成します。vi ./101-oracle-cloud-agent-run-command
-
構成ファイルに次の行を追加して、
ocarunユーザーにすべてのコマンドの実行を許可します。ocarun ALL=(ALL) NOPASSWD:ALL
必要に応じて、特定のコマンドをリストできます。詳細は、sudoersに関するLinuxマニュアル・ページを参照してください。
-
構成ファイルの構文が正しいかどうかを検証します。
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」タブを選択して、コンピュート・インスタンスのrunコマンド・ステータスに「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で作成したフル・スタック・ディザスタ・リカバリ管理者ユーザーを使用して、OCIコンソールにログインします。
-
「Hamburger」メニューの「Primary」リージョン(アッシュバーン)で、「Migration & Disaster Recovery」、「Disaster Recovery」、「Disaster Recovery」グループ、「Create Disaster Recovery Protection group」の順に移動します。

-
Compute demo-fsdr-instのブートボリュームを追加します。

-
アッシュバーンからフェニックスへのリージョン間レプリケーションを有効にします。

-
「Backup policy」を「None」のままにして、「Next」をクリックしてサマリーを確認します。

タスク5: プライマリおよびスタンバイでの障害時リカバリ保護グループの作成
-
タスク1で作成したフル・スタック・ディザスタ・リカバリ管理者ユーザーを使用して、OCIコンソールにログインします。
-
「Hamburger」メニューの「Primary」リージョン(アッシュバーン)で、「Migration & Disaster Recovery」、「Disaster Recovery」、「Disaster Recovery」グループ、「Create Disaster Recovery Protection group」の順に移動します。

-
「ハンバーガー」メニューの「スタンバイ・リージョン(フェニックス)」で、「移行と障害回復」、「障害回復」、「障害回復保護グループ」、「障害回復保護グループの作成」の順に移動します。

ノート: このチュートリアルの例では、プライマリ・リージョンとして「アッシュバーン」を選択し、スタンバイ・リージョンとして「フェニックス」を選択します。
-
プライマリ・リージョン(アッシュバーン)で、fsdr-runcmd-DRPG-ash DRPGを選択し、「関連付け」をクリックします。「プライマリ」、ピア・リージョン「米国西部(フェニックス)」、ピア障害回復保護グループ「fsdr-runcmd-drpg-phx」として「ロール」を選択し、「関連付け」をクリックします。

ノート:
fsdr-runcmd-drpg-ashのロールを「プライマリ」として、fsdr-runcmd-drpg-phxを「スタンバイ」として検証します。 -
プライマリ・リージョン(アッシュバーン)で、fsdr-runcmd-DRPG-ash DRPGを選択し、「メンバー」、「メンバーの追加」の順にクリックしてボリューム・グループとVMを追加します。

タスク6: スタンバイDRPG(フェニックス)でのスイッチオーバー計画の作成
スイッチオーバー計画 - プライマリ障害回復保護グループからスタンバイ障害回復保護グループへのサービスの計画的な移行を実行する障害回復計画のタイプ。
-
タスク1で作成したフル・スタック・ディザスタ・リカバリ管理者ユーザーを使用して、OCIコンソールにログインします。
-
スタンバイDRPG fsdr-runcmd-DRPG-phxにスイッチオーバー計画を作成します。
-
「プラン」を選択し、「プランの作成」をクリックします。
-
名前をswitchover-to-phxとして指定し、プラン・タイプを「スイッチオーバー(計画済)」として選択します。
-
「作成」をクリックします。

ノート: 必ずスタンバイDRPG (フェニックス)からスイッチオーバー計画を作成してください。
-
「プラン」をクリックし、次に示すように組込みプランが生成されていることを確認します。

タスク7: ユーザー定義プラン・グループを使用したスイッチオーバー・プランのカスタマイズ
-
タスク1で作成したフル・スタック・ディザスタ・リカバリ管理者ユーザーを使用して、OCIコンソールにログインします。
-
「プラン・グループ」で、「グループの追加」をクリックして、スイッチオーバーを実行するカスタム・プラン・グループを作成します。グループ名にCustGroup-Demoを指定します。

-
「ステップの追加」をクリックし、次のように詳細を追加します。プラン・グループにステップを追加します。

-
リージョンを「アッシュバーン」として選択してください。
runlocal Scriptオプションを選択します。 -
ユーザー定義プラン・グループの作成中にフェニックスにVMがないことを考慮すると、アッシュバーン(プライマリ)としてリージョンを選択し、ターゲット・インスタンスをインストのデモVMとして選択します。フル・スタック・ディザスタ・リカバリではこれらのインスタンスが自動的にマップされ、スクリプトはフェニックスで新しく起動されたインスタンスで実行されます。
-
VMが作成されたコンパートメントで、demo-fsdr-instとしてVMを作成したターゲット・インスタンスを選択します。
-
「スクリプト・パラメータ」に/home/opc/scripts/testCommand.shと入力します。
-
ユーザー・フィールドとしてopcを
runに入力します。 -
「ステップの追加」をクリックして、追加されたステップを確認します。

-
ステップが追加されたことを確認し、「追加」をクリックします。
-
-
スイッチオーバー計画グループを、前述のように正しい順序で検証します。
タスク8: 事前チェックの実行およびスイッチオーバー計画の実行
「事前チェックの実行」オプションでは、障害時リカバリ(障害時リカバリ)計画のすべてのステップを迅速に検証します。
-
スイッチオーバー計画switchover-to-phxから、「事前チェックの実行」をクリックして「事前チェックの実行」ダイアログを起動します。


正常に完了したことを確認します。
-
スイッチオーバー計画switchover-to-phxから、「ディザスタ・リカバリ計画の実行」をクリックして計画を実行します。

-
プランのステータスを確認し、プランのすべてのステップが成功していることを確認してください。

-
スイッチオーバー計画が正常に実行されたら、フェニックスでインスタンスにログインし、testDirおよびtestFileが作成されていることを確認します。

-
ディザスタ・リカバリ保護グループでは、ロールが自動的に変更されます。現在、フェニックスはプライマリで、アッシュバーンにはスタンバイ・ロールが割り当てられます。
次のステップ
カスタム・グループを使用して、OCIフル・スタックのディザスタ・リカバリでスクリプトを呼び出す方法を確認しました。コンピュート、データベース、ブロック・ストレージを、アプリケーション・スタックのオブジェクト・ストレージとともにリカバリするステップが理想的です。ユーザー定義プラン・グループの一部としてユーザー定義グループを追加する場合は、このチュートリアルを使用してフル・スタック障害リカバリ・プランを簡単にカスタマイズできます。
関連リンク
- OCIフル・スタック・災害復旧製品ページ
- OCI Full Stack Disaster Recoveryのドキュメント
- Full Stack Disaster Recoveryライブ・ラボ
- コールドVMディザスタ・リカバリのためのフル・スタック・ディザスタ・リカバリ
- WLSのフル・スタック・ディザスタ・リカバリ
- フル・スタックのディザスタ・リカバリ- ユーザー定義グループ・スクリプト
- #full-stack-drパブリック・スラック・チャネルに参加
承認
作成者 - Vasudeva Manikandan (実装技術リーダー- Oracle Lift Services)、Suraj Ramesh (Full Stack Disaster Recovery Product Manager)
その他の学習リソース
docs.oracle.com/learnで他のラボをご覧いただくか、Oracle Learning YouTubeチャネルでより無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスして、Oracle 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.