LifeKeeper for Windows を導入したインスタンスを別リージョンにリストアする

AWS環境はリージョン内をAvailability Zone(AZ)で仕切られているため、障害が発生してもAZを跨いでクラスターを組んでいれば殆どの障害を回避可能と考えられます。しかし中には念には念を入れて、別のリージョンで復元できるようにしたいという要望をいただきます。今回は、別リージョンへバックアップデータのSnapshotを展開することが可能なVeeam Backup for AWS を使用して、LifeKeeper for Windows でクラスター構成を構築したシステムのリストア手順を紹介します。
＊今回のリストア③は、事前に①，②で取得したバックアップデータを使用します。
![2023-07-14 09_27_26-20230428Veeamバックアップ構成図.pptx - PowerPoint.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943697/1b4d9511-1fd2-a97f-4599-1a34e318b595.png)


【Veeam Backup】Amazon S3 オブジェクトロックと Veeam Backup for AWS による LifeKeeper ランサムウェア対策
https://lkdkuserportal.sios.jp/hc/ja/articles/900005840923

## 大阪リージョンへのリストア
今回のバックアップ・リストアのシナリオは下記の通りです。

シナリオとしては、東京リージョン全体の障害が発生したため、東京リージョンで運用しているシステムのバックアップ（スナップショット）を予め大阪リージョンに複製しておき、大阪リージョンのバックアップデータから大阪リージョンにシステムを復旧する内容です。
大まかな手順は下記のとおりです。
1. 東京リージョンでVeeam Backup for AWSでバックアップ（スナップショット）を取ります。取ったバックアップは東京リージョンのS3に格納されます。
2. 東京リージョンのS3から大阪リージョンのS3にバックアップデータを複製します。複製はVeeam Backupの機能で行われます。
3. 大阪リージョンのS3から大阪リージョン内にスナップショットをリストアします。
4. 別リージョンにリストアした場合、IPアドレスなど一部設定に変更が出てしまうため、設定変更を行います。

### VPCのリストア
大阪リージョンにリストアを行う前に大阪リージョンに東京リージョンと同じネットワーク環境を作るためVPC設定のリストアを行います。
1. Protected DataからVPCを選択します。
![2023-07-06 16_03_25-Veeam Backup for AWS.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943697/75c93e3c-8c30-57be-e176-86ec90035728.png)
2. ソースVPCを選択してRestoreメニューから"Entire VPC"を選択します。
![2023-07-06 14_35_48-Veeam Backup for AWS.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943697/37112a47-6826-13af-a83a-39cf7e1a1906.png)
3. 大阪リージョンにリストアするVPCを選択します。
![2023-07-06 14_36_30-Veeam Backup for AWS.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943697/da634765-23cb-a97d-a849-9d782738c173.png)
4. 実行するIAMロールを選択します。
![2023-07-06 14_36_41-Veeam Backup for AWS.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943697/75b88766-8dbf-f8e7-18aa-c21085dae928.png)
5. リストア先となるリージョンを選択します。
![2023-07-06 14_36_58-Veeam Backup for AWS.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943697/9c9fbea2-f905-4a1e-2293-3778853d4931.png)
6. リストア元のAvailability Zone(AZ)に紐づくリストア先のAZを設定します。
![2023-07-06 14_37_40-Veeam Backup for AWS.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943697/1b9eda33-d75f-b528-87b0-65faa973a69b.png)
7. 今回のリストアの理由などを記載します。
![2023-07-06 14_38_15-Veeam Backup for AWS.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943697/9d38b125-667c-2e46-1567-93511c60e3ed.png)
8. リストア内容が表示されます。Finish を押すとリストアが開始されます。
![2023-07-06 14_38_22-Veeam Backup for AWS.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943697/691c3651-117c-4970-365c-9d2dceedb4fb.png)
9.リストアが完了します。前述の通り、EIP情報やENI情報が一致しなくなりWarningがでるため、ルートテーブルの設定やエンドポイント、Public IPは再設定が必要になります。
![2023-07-06 16_01_52-Veeam Backup for AWS.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943697/2451c34d-3ae6-cbdf-1f83-eecc803f1e22.png)
![2023-07-06 16_02_04-Veeam Backup for AWS.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943697/e0d6fff7-0bdc-806d-e609-5e25ebdde97c.png)
![2023-07-06 16_02_15-Veeam Backup for AWS.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943697/b1e48b6a-5447-860d-b137-fdb675910cf1.png)
### インスタンスイメージのリストア
作成したVPCを使用してインスタンスイメージをリストアします。

1. Producted Data 項目から”EC2”を選択します。
![2023-07-06 16_43_38-Veeam Backup for AWS.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943697/60bda9c2-cc47-e76e-82b7-9ffdf26e2dbf.png)
2. 事前にVeeam Backup for AWS で取得したバックアップデータを使用します。バックアップデータを選択してRestore Pointsをクリックします。
![2023-07-05 16_28_42-Veeam Backup for AWS.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943697/901980d8-b2ad-9886-fbff-1321b30f3f68.png)
3. Restore Pointsからリストアするイメージを選択します。
![2023-07-05 16_28_58-Veeam Backup for AWS.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943697/116bc60e-6479-940c-e3f7-086216b0a626.png)
4. リストア方法を選択します。大阪リージョンに新規で展開するため "Instance Restore" を選択します。
![2023-07-05 16_44_43-Veeam Backup for AWS.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943697/c58cba35-1b86-dfc0-89cc-183cf254b9a4.png)
5. インスタンスを選択します。既に選択済みなのでこのまま次に進めます。
![2023-07-05 16_45_55-Veeam Backup for AWS.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943697/5c67b64a-bf30-6267-3e12-7929ea0b2bff.png)
6. バックアップ時にも使用したIAM Role を選択します。
![2023-07-05 16_46_22-Veeam Backup for AWS.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943697/15845e27-4be1-6a71-fa4e-2ff367b44c29.png)
7. 展開するリージョンを選択します。大阪リージョンを選択します。
![2023-07-05 16_46_38-Veeam Backup for AWS.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943697/ce619e5c-26f6-7a24-8bd2-356ed431ec36.png)
8. 暗号化の設定ではオリジナルを選択します。
![2023-07-05 16_47_20-Veeam Backup for AWS.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943697/90295619-3f3e-ec7c-49d0-501e64e551e5.png)
9. インスタンスの設定を見直します。大阪リージョンに展開するため、大阪リージョンに存在するインスタンスタイプ(t3.large)に変更する必要があります。
![2023-07-06 13_24_45-Veeam Backup for AWS.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943697/87007d9a-1c0e-fb41-5ca0-20706024e041.png)
10. ネットワークの設定を行います。
![2023-07-06 13_28_08-Veeam Backup for AWS.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943697/1209ef3c-fb53-1d71-d40c-ba88897c7b3d.png)
11. リストア時に使用するVPC, Subnet,Securityグループを選択し、Public IPの割り当てを無効にします。
![2023-07-06 13_28_29-Veeam Backup for AWS.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943697/e65a7fdb-6b0f-44c0-30e8-3599e2ccab3f.png)
![2023-07-06 13_28_40-Veeam Backup for AWS.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943697/4a9b54cc-5992-7d2a-ee2e-e9d0b3c576fd.png)
12. 今回のバックアップの理由、メモなどを記載します。
![2023-07-05 16_52_11-Veeam Backup for AWS.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943697/087161f0-bded-6f37-d916-72c6adaa8f6c.png)
13. インスタンスリストアの設定内容を確認します。Finishをクリックするとリストアが開始されます。
![2023-07-05 16_52_51-Veeam Backup for AWS.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943697/08e945b5-6fe1-b889-3857-664efd160ebd.png)
14. 上記の手順で全てのクラスターノードをリストアすることが可能です。

### IPアドレス変更による設定変更
東京リージョンで取得したバックアップを大阪リージョンにリストアした場合、VPCやサブネットを同じ設定でリストアしてもリストア元と同じIPアドレスにはなりません。IPアドレスやデバイス情報、リージョンが変更となるため、以下の設定変更が必要です。

+ コミュニケーションパスの設定変更
+ DataKeeper のレプリケーション経路情報の変更
+ 名前解決の設定(DNSサーバーやhostsファイル)
+ aws configure設定の変更（リージョン情報の更新）
+ IPリソース、EC2リソースの再作成

:::note warn
以下の手順では一通りの動作を確認していますが、製品として公式に発表している手順ではありません。試される場合は、自己責任でお願いします。
:::
##### コミュニケーションパスの設定変更
リストア前とリストア後のIPアドレスを確認します。
|ホスト名| 東京リージョン | 大阪リージョン |
|:-:|:-:|:-:|
|LK84|10.224.141.84|10.224.136.163|
|LK125|10.224.157.125|10.224.158.54|

リストア後のインスタンスにログインして、コミュニケーションパスの設定情報を確認します。
```powershell:powershell
> C:\LK\Bin\net_list.exe -f" "
LK125 TCPIP:1500 TLI 0 0 0 DEAD 1 6 5 0 0 0 0 0 0 0 0 10.224.157.125 10.224.141.84
```

リストア前のIPアドレスの設定のため”DEAD”ステータスになります。以下のようにlk_chg_value コマンドを実行してIPアドレス情報を変換します。変換前にLifeKeeper を停止するためlkstopコマンドを実行します。

```powershell:powershell
c:\LK\Bin\lkstop.exe
```

LifeKeeper停止後にlk_chg_value.ksh で LifeKeeperのデータベースに対して-o の値を検索して -n の値に置き換えます。
```powershell:powershell
c:\LK\Bin\ksh.exe C:\LK\Bin\lk_chg_value.ksh -o 10.224.141.84 -n 10.224.136.163
c:\LK\Bin\ksh.exe C:\LK\Bin\lk_chg_value.ksh -o 10.224.157.125 -n 10.224.158.54
```

LifeKeeperを起動します。
```powershell:powershell
c:\LK\Bin\lkstart.exe
```

lk_chg_value コマンドは全てのノードで実行する必要があります。上記の手順を他のノードでも実行します。

全てのノードのLifeKeeper を起動した後、コミュニケーションパスを確認します。”Alive”となっていれば正常に変更されています。
```powershell:powershell
> C:\LK\Bin\net_list.exe -f" "
LK125 TCPIP:1500 TLI 0 0 0 ALIVE 1 6 5 0 0 0 0 0 0 0 0 10.224.158.54 10.224.136.163
```


#### DataKeeper のレプリケーション経路情報の変更
DataKeeperの設定情報はDataKeeperで別途持っています。そのため、変更となったレプリケーション経路のIPアドレス情報を変更する必要があります。アクティブノード(lk84)にログインして以下の操作を行ってください。

現在、以下のようなステータスです。Mirror state は同期中断(RESYNC REPDING)、IPアドレス情報は古くなっています。
```powershell:powershell
> .\EMCmd.exe . getvolumeinfo S 3

------------------------------------------- LEVEL 1 INFO ---
Volume Root     = S:
Last Modified   = Fri Jul  7 00:02:09 2023
Mirror Role     = SOURCE
Label           = FileSystem      = NTFS
Total Space     = 10718539776
Num Targets     = 1
Attributes      : 20h

------------------------------------------- LEVEL 2 INFO ---
>> Remote[0]    = 10.224.157.125, S:
                Mirror State    = RESYNC PENDING
                Mirror Type     = SYNCHRONOUS

------------------------------------------- LEVEL 3 INFO ---
>> Remote[0]    = 10.224.157.125, S:  
No Resync or CompVol Statistics to report

```

以下のコマンドを実行して、レプリケーション経路情報を更新します。
```powershell:powershell
cd 'C:\Program Files (x86)\SIOS\DataKeeper\'
.\EMCmd.exe 10.224.136.163 CHANGEMIRRORENDPOINTS S 10.224.157.125 10.224.136.163 10.224.158.54
```
情報がアップデートされました。Mirror state も同期状態(MIRROR)に変更されました。
```powershell:powershell
> .\EMCmd.exe . getvolumeinfo S 3

------------------------------------------- LEVEL 1 INFO ---
Volume Root     = S:
Last Modified   = Fri Jul  7 09:13:01 2023
Mirror Role     = SOURCE
Label           = FileSystem      = NTFS
Total Space     = 10718539776
Num Targets     = 1
Attributes      : 20h

------------------------------------------- LEVEL 2 INFO ---
>> Remote[0]    = 10.224.158.54, S:
                Mirror State    = MIRROR
                Mirror Type     = SYNCHRONOUS

------------------------------------------- LEVEL 3 INFO ---
>> Remote[0]    = 10.224.158.54, S:
No Resync or CompVol Statistics to report
```
#### 名前解決の設定(DNSサーバーやhostsファイル)
LifeKeeper はホスト名を使用して通信を行います。そのため変更となったIPアドレスにホスト名を紐づけるよう設定変更してください。今回はhostsファイルを使用しているため、以下のファイルの更新を行います。
更新前
```:C:\Windows\System32\drivers\etc\hosts
10.224.141.84	lk84
10.224.157.125	lk125
```
更新後
```:C:\Windows\System32\drivers\etc\hosts
10.224.136.163	lk84
10.224.158.54	lk125
```

#### aws configure設定の変更（リージョン情報の更新）
リージョンを変更したため、リージョン情報を更新します。以下のコマンドで現在のリージョン情報を取得します。
```powershell:powershell
> aws configure get region
ap-northeast-1
```
リージョン情報を大阪リージョン(ap-northeast-3)へアップデートします。
```powershell:powershell
aws configure set region ap-northeast-3
```

リージョン情報が更新されたことを確認します。
```powershell:powershell
> aws configure get region
ap-northeast-3
```

#### IPリソース、EC2リソースの再作成
IPリソース、EC2リソースは環境固有の情報を保持しています。以下がLifeKeeperのデータベース情報であり、IPアドレスのようにlk_chg_value コマンドで変更可能ですが、変更先の値が不明な環境固有の情報が含まれるためこの2つについてはリソースの再作成で対応します。

```powershell:powershell
> C:\LK\Bin\ins_list.exe -f" " -t 10.1.0.1（IPリソース）
LK84 comm ip 10.1.0.1 10.1.0.1 {A9060DD9-4C32-46DF-A4C0-62A3D0BD960D}255.255.240.0NNULL10.1.0.1 OSU depends on resource "ecc-10.1.0.1" in "OSF" state AUTORES_ISP  0 0  180 300 0 INTELLIGENT

> C:\LK\Bin\ins_list.exe -f" " -t ecc-10.1.0.1（EC2リソース）
LK84 comm ecc ecc-10.1.0.1 ECC-10.1.0.1 ap-northeast-1RouteTable{A9060DD9-4C32-46DF-A4C0-62A3D0BD960D}255.255.240.0NNULL10.1.0.1 OSF restore action has failed AUTORES_ISP  0 0  180 0 1 INTELLIGENT
```
##### 既存リソースの削除
1. LifeKeeper GUIを起動してログインします。ec2リソースは情報がエラーになっています。
![2023-07-07 10_40_10-15.152.229.96 - リモート デスクトップ接続.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943697/f3f8fa89-827a-6017-7064-010c56a97793.png)
2. 19.1.0.1 リソースとSQL Server リソースの依存関係を削除します。依存関係の削除は、リソース上で右クリックすることで開くメニューから選択可能です。
![2023-07-07 10_51_04-15.152.229.96 - リモート デスクトップ接続.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943697/96f1ae23-d55e-93fd-a304-8e46c2039184.png)
![2023-07-07 10_40_36-15.152.229.96 - リモート デスクトップ接続.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943697/f153a7c8-a259-f1f5-4636-06ce98902641.png)
3. 依存関係を削除後は、10.1.0.1リソースの上で右クリックをして"リソース階層の削除"を選択します。
![2023-07-07 10_49_07-15.152.229.96 - リモート デスクトップ接続.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943697/a1454da1-7e40-1efd-a911-cce4218d4fe2.png)
4. オープンするウィザード画面を進めてリソースを削除します。以下のよう依存関係のあったにec2リソースも一緒に削除されます。
![2023-07-07 10_57_38-15.152.229.96 - リモート デスクトップ接続.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943697/e6fc7d19-1c57-c1a9-19c3-f42a2dd53fa4.png)

###### IPリソースの作成
1. IPリソースを作成します。LifeKeeper GUIから 編集(E) ->サーバー(S)->リソース階層の作成(C) を選択します。
![2023-07-07 10_59_46-15.152.229.96 - リモート デスクトップ接続.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943697/4f1007cb-e0a9-2f58-9946-35dfa3addd40.png)
2. 以下の値を参考にIPリソースを作成します。

リソースの作成
| 項目 | 設定値 |
|:-:|:-:|
|プライマリサーバ|LK84|
|バックアップサーバ|LK125|
|保護するアプリケーション|IPアドレス|
|IPアドレス|10.1.0.1|
|サブネットマスク|255.255.240.0|
|IPリソースタグ|10.1.0.1|
|ネットワーク接続|イーサネット3|
|ローカル・リカバリー|いいえ|

リソースの拡張
| 項目 | 設定値 |
|:-:|:-:|
|サブネット・マスク|255.255.240.0|
|ネットワーク接続|イーサネット3|
|ターゲット・リストアモード|有効|
|ターゲット・ローカルリカバリー|いいえ|
|バックアップの優先順位|10|

3\. 以下のようにIPリソースが作成されます。
![2023-07-07 11_15_55-15.152.229.96 - リモート デスクトップ接続.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943697/69a29ab2-9c9b-536c-68cc-c9d4b20ad9eb.png)

##### EC2リソースの作成
EC2リソースを作成します。LifeKeeper GUIから 編集(E) ->サーバー(S)->リソース階層の作成(C) を選択します。
![2023-07-07 11_22_35-15.152.229.96 - リモート デスクトップ接続.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943697/a25cbd11-23de-d0b8-0af6-cc0445622143.png)
以下の値を参考にEC2リソースを作成します。

リソースの作成
| 項目 | 設定値 |
|:-:|:-:|
|プライマリサーバ|LK84|
|バックアップサーバ|LK125|
|保護するアプリケーション|AWS EC2|
|ECCリソースタイプ|ルートテーブル(バックエンドクラスター)|
|ECCリソースタグ|ecc-10.1.0.1|

リソースの拡張
| 項目 | 設定値 |
|:-:|:-:|
|拡張するリソース階層|10.1.0.1|
|ECCリソースタグ|ecc-10.1.0.1|
|バックアップの優先順位|20|

EC2リソースが作成されました。
![2023-07-10 16_33_10-15.152.150.80 - リモート デスクトップ接続.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943697/1a251e52-ec61-27fc-9a7d-7efe3e2218e3.png)

SQL Server リソース(SQL Server)の下に IPリソース(10.1.0.1)の依存関係を再度設定します。
![2023-07-10 16_35_10-15.152.150.80 - リモート デスクトップ接続.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943697/26c14e8c-e3c6-74c3-8e43-b534fcaa97f7.png)
![2023-07-10 16_35_28-15.152.150.80 - リモート デスクトップ接続.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943697/6f622769-53e7-957e-43af-ac16c1babd58.png)
![2023-07-10 16_35_37-15.152.150.80 - リモート デスクトップ接続.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943697/7be15037-ed06-e4f4-1096-4dc0d3761c67.png)


東京リージョンで展開していた状態に戻りました。
![2023-07-10 16_35_45-15.152.150.80 - リモート デスクトップ接続.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943697/bff4c2f5-0a55-0d0e-3dd2-df43734bed5b.png)


## 参考資料
技術マニュアル（製品ガイド）のダウンロード‐Veeam Software
https://www.veeam.com/jp/documentation-guides-datasheets.html?productId=62&version=product%3A62%2F244&localeCode=en

LifeKeeper for Windows テクニカルドキュメンテーション
https://docs.us.sios.com/sps/8.9.2/ja/topic/sios-protection-suite-for-windows-technical-documentation