クロスリージョンディザスタ リカバリの設定
Liferay Cloudは、大規模なインシデントが発生した場合に、お客様がディザスターリカバリー(DR)手順を利用するための2つの方法を提供します。自動ディザスターリカバリー」と「クロスリージョンディザスターリカバリー」です。 Liferay Cloud のディザスターリカバリーシナリオに対するアプローチは、 ディザスターリカバリーの概要で詳しく確認することができます。
ここでは、地域間の災害時にデータを手動で回復する方法をご紹介します。 これらの手順は、同じリージョン内の3つのゾーンすべてに同時に妥協がある場合にのみ必要です。
初期設定
Liferayは、地域をまたいだ災害を管理するために、専用のLiferay Cloud環境を提供しています。 この例では、本番環境が europe-west2 リージョンに格納されており、リージョンが危険にさらされていると想定しています。 本番環境でのダウンタイムとデータ損失を防ぐには、ディザスタリカバリ環境を、 us-west1 などの運用領域外にシフトする必要があります。 したがって、この5番目の障害復旧(DRに短縮された)環境は、インシデント中に生成された新しいユーザーデータを格納するバックアップとして機能します。
Liferay Cloud のお客様がディザスターリカバリー環境を構築する場合、DR 環境のプロビジョニングを担当する営業担当者にご連絡ください。 この新しい環境は、他の利用可能な環境 (例えば、 dev
、 infra
、 uat
、および prd
) とともに表示されます。
Liferay Cloud のシステム管理者は、DR 環境と本番環境の両方について完全な管理者権限を持っている必要があります。
DR環境でのVPN設定の確認
本番環境でVPNが有効になっている場合は、DR環境のVPNも有効になっていることを確認してください。
2つの環境が接続されていることを確認するには:
左側のメニューで、DR環境の[設定]タブをクリックします。
VPNセクションで、以下の情報を入力します:
- VPNタイプ :OpenVPN
- サーバーアドレス :サーバーアドレス。
- Account name :管理者のメールアドレスです。
- Password :管理者のパスワードです。
- Certificate : 証明書のコードです。
- 転送IP :転送IPアドレス。
- 転送ポート :転送ポート番号。
- ローカルホスト名 :VPNのホスト名。
- ローカルポート :ローカルポート番号。
[Connect VPN]をクリックします。
VPNへの接続の詳細は、 VPN接続を参照してください。
最新の安定したビルドを本番環境からDR環境にデプロイする
次に、最新の安定したビルドを本番環境でDR環境にデプロイする必要があります。 Liferay Cloud 導入ワークフローの概要で説明したのと同じ手順を実行します。
ディザスタリカバリへの自動バックアップリストアの設定
ディザスタリカバリ環境のセットアップを完了するには、自動バックアップリストアを設定します。 これにより、インシデントが発生したときに備えて、DR環境に常に最新のバックアップが用意されます。
まず、本番環境のマスタートークンを取得します(これには、 liferay
サービスシェルにアクセスするための管理者権限が必要です):
Liferay Cloud コンソールで、本番環境に移動します →
liferay
サービスページです。Shell タブをクリックします。
次のコマンドを実行して、環境のマスタートークンを取得します:
env | grep LCP_PROJECT_MASTER_TOKEN
マスタートークンは、結果の
=
の後の16進数のIDとなります。
本番環境のマスタートークンを取得したら、DR環境で 環境変数を設定します。
LCP EXTERNAL PROJECT_ID :本番環境のプロジェクトID(たとえば、
acme-prd
)LCP BACKUP RESTORE_SCHEDULE : 自動バックアップの頻度を定義する cronスケジュール の値。 詳細については、 Scheduling Automated Backups and Cleanups を参照してください。
この値をDR環境の シークレット として設定します。
- LCP EXTERNAL PROJECT MASTER TOKEN :本番環境のマスタートークン
これらの環境変数は、本番環境ではなく、ディザスターリカバリー環境で設定してください。 これらの変数を本番環境で設定すると、バックアップが予期せず本番環境にリストアされることがあります。
これらの変数をDR環境に保存することで、自動復元が可能になります。
インシデント中
上記の例を続けて、 europe-west2 リージョンでホストされている本番環境が、現地時間の午後2時に1時間ごとにバックアップされるようにスケジュールされていると想定します。 このシナリオでは、現地時間の午後2時30分に地域が危険にさらされます。 その間の30分間はバックアップが生成されていないため、データベースとドキュメントのバックアップを本番環境から障害復旧環境に復元する必要があります。 最後の安定した環境は、午後2時に作成されたバージョンです。
地域間でのインシデントの際には、以下の手順に従ってください:
データベース復元スケジュールの無効化
インシデントが発生している間は、DR環境がユーザーがアクセスできるメインの環境となるため、通常のデータベース復元スケジュールでは、本番環境をDR環境に切り替えた後にデータが上書きされる可能性があります。
LCP_BACKUP_RESTORE_SCHEDULE
環境変数 を使用してDR環境にデータを定期的に復元している場合は、変数を削除して復元スケジュールを一時的に無効にします。 これにより、インシデント中に作成されたデータが、スケジュールされたリストアによって上書きされることを防ぎます。
アクセス可能な状態で復元スケジュールを無効にするには、以下の手順に従ってください:
Liferay Cloud Console で、DR 環境 → Backup service ページ → Environment Variables に移動します。
目のアイコンをクリックすると、
LCP_BACKUP_RESTORE_SCHEDULE
の変数の値が表示されます:LCP_BACKUP_RESTORE_SCHEDULE
の値をメモしておき、事故後にすぐに交換できるようにしておきましょう。LCP_BACKUP_RESTORE_SCHEDULE
環境変数を削除し、変更を保存します。
最新の本番データをDR環境にコピーする
次に、本番環境のバックアップを復元して、DR環境に最新のアップデートがあることを確認します。
環境変数 LCP_BACKUP_RESTORE_SCHEDULE
を使ってDR環境に定期的にリストアしていた場合、より新しい安定したバックアップがすでにリストアされて準備できているかもしれません(設定した頻度に依存します)。 最近自動的にバックアップが復元された場合は、バックアップの手動復元をスキップしてください。
次の手順に従って、本番環境の最新の安定したバックアップをDR環境に復元します:
DR環境で、[バックアップ]タブをクリックします。
本番環境に対応するタブをクリックします。
noteバックアップ履歴では、バックアップが2つのタブに一覧表示されます。 1つはDR環境用、もう1つは本番環境用です。
[アクション]ボタン(
)をクリックして、本番環境の最新の安定したバックアップを取得し、[復元]を選択します。
DR環境のVPNステータスの確認とインデックスの再作成
次に、以下の手順でDR環境がトラフィックを受信できる状態にします:
DR環境の [設定] → [VPN] ページに移動して、VPNがDR環境に接続されていることを確認します。
適切なVPNが接続されていない場合は、接続を設定してください。 詳しくは、 Liferay Cloud に VPN サーバーを接続する をご覧ください。
DXPインスタンスにログインします(カスタムドメインはまだDR環境を指していないため、IPアドレスを使用します)。
[グローバルメニュー](
) → [コントロールパネル] → [検索] に移動します。
[すべてインデックスを再構築] をクリックします。
インデックスの再構築が完了するまでしばらく待ちます。
カスタムドメイントラフィックをDR環境に送信する
DR環境でのWebサーバーサービスのカスタムドメインは、元の本番環境のものと一致する必要があります。 また、その設定を実稼働環境から削除する必要もあります:
DR環境では、左側のメニューで [Services] を選択します。
サービスのリストで [webserver] をクリックします。
[Custom Domains]タブをクリックし、本番環境のドメインと一致するようにカスタムドメインを設定します。
本番環境で同じ設定に移動し、カスタムドメイン設定を削除します。
DNSレコードを更新し、カスタムドメインをDR環境に追加します。 詳細は、 カスタムドメインを参照してください。
これにより、すべてのトラフィックがDR環境に送られます。
インシデント後の回復
リージョンインシデントが終了したら、元のリージョンの本番環境(この例では europe-west2)に戻す必要があります。 次の手順を実行します:
データ作成の凍結
通常の本番環境に切り替えたときに、最近の変更によるデータ損失を防ぐために、DR環境でのコンテンツ作成をすべて凍結する必要があります。 本番環境に戻る準備ができたら、手動バックアップを行う前に、データベース管理者と協力してデータの凍結を手配します。
DR環境の手動バックアップを作成する
インシデント中、DR環境は本番環境として機能するため、障害時に生成された新しいデータが含まれます。 このデータを保持するには、DR環境をバックアップする必要があります:
DR環境では、左側のメニューで[Backups]をクリックします。
[Backup Now] をクリックします。
本番環境への手動バックアップの復元
DR環境から通常の本番環境にデータを復元します。
DR環境では、左側のメニューで[Backups]をクリックします。
DR環境に対応するタブをクリックします。
noteバックアップ履歴では、バックアップが2つのタブに一覧表示されます。 1つはDR環境用、もう1つは本番環境用です。
最新のバックアップ(作成したばかりのバックアップ)の場合は、[アクション]ボタン(
)をクリックし[復元]を選択します。
本番環境を選択し、[Deploy Build]をクリックします。
VPNステータスの確認とインデックスの再作成
以下の手順で、本番環境がトラフィックの受信の準備ができていることを確認してください:
本番環境の [設定] → [VPN] ページに移動して、VPNが本番環境に接続されていることを確認します。
適切なVPNが接続されていない場合は、接続を設定してください。 詳しくは、 Liferay Cloud に VPN サーバーを接続する をご覧ください。
DXPインスタンスにログインします(カスタムドメインはDR環境を指しているため、IPアドレスを使用します)。
[グローバルメニュー] → [コントロールパネル] → [検索] に移動します。
[すべてインデックスを再構築] をクリックします。
インデックスの再構築が完了するまでしばらく待ちます。
サーバーのカスタムトラフィックを本番環境に復元します。
インシデント中にWebサーバーサービスがすべてのトラフィックをDR環境にリダイレクトしたため、すべてのトラフィックが元の本番環境にリダイレクトされるように、これらの設定を再度更新する必要があります。
左メニューの [サービス] に移動します。
サービスのリストで [webserver] クリックします。
[Custom Domains] タブをクリックします。
DR環境からカスタムドメインを削除します。
warningカスタムドメインを削除すると、本番環境が再びトラフィックを受信するまで、ダウンタイムが発生します。
DNSレコードを更新し、カスタムドメインを本番環境に戻します。 詳細は、 カスタムドメインを参照してください。
[カスタムドメインの更新] をクリックします。
これでトラフィックは元の本番環境に戻されます。 DR環境に自動的にスケジュールされたデータベースの復元を使用しない場合、災害復旧プロセスは完了します。
データベース復元スケジュールを復元する
LCP_BACKUP_RESTORE_SCHEDULE
環境変数を使用して、インシデントの前にDR環境に定期的に復元していた場合は、この変数を再度復元して、復元スケジュールを再開します:
Liferay Cloudコンソールで、DR環境 → Backup serviceページ → Environment Variablesに移動します。
LCP_BACKUP_RESTORE_SCHEDULE
環境変数を追加し, 削除した際に メモした値を復元します。変更を保存します。
これで、Liferay Cloud 環境は通常の運用を再開できます。