AWS上のFSx for NetApp ONTAPでCross Region SnapMirrorをやってみた

# FSx for NetApp ONTAPで他のリージョンとデータ連携したい
* 皆さんはFSx for NetApp ONTAPを使ったことがありますか？現在日本でFSx for NetApp ONTAPサービスを使えるのは東京のみですが、今後大阪でサービスがローンチされた際にすぐに利用できるよう東京と海外のリージョン間でCross Region SnapMirrorの可能性を検証してみたいと思います。
* 今回はTokyo（ソース）→Northern Virginia（バックアップ先）のSnapMirrorを構築します。
![Picture1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2781205/3ebca3b9-6fa0-1886-5490-b7304f673b5f.png)
# Keyword
* FSx for NetApp ONTAP
    * Linux、Windows、および macOS コンピューティングインスタンスから業界標準の NFS、SMB、および iSCSI プロトコルを介して広くアクセスできる高性能ファイルストレージを提供できるファイルシステム（AWS FSxファムリーの一員として2021年に発表）。
* SnapMirror
    * NetApp SnapMirrorは、LANやWAN経由でデータを高速でレプリケートするため、仮想環境と従来の環境の両方で、Microsoft Exchange、Microsoft SQL Server、Oracleなどのビジネスクリティカルなアプリケーションのデータ可用性を高め、高速なデータ レプリケーションを実現できます。
    * 1つ以上のネットアップ ストレージ システムにデータをミラーリングし、ミラーリングされたデータを継続的に更新することで、データを最新の状態に保ち、必要なときにいつでも利用できます。外付けのレプリケーション サーバは必要ありません。
# いきなりまとめ
* 検証結果としては
    * FSx for NetApp ONTAPのCross Region Snapmirrorは可能です。
* 手順
    1. VPC Peering
    1. Cluster Peering
    1. SVM Peering
    1. SnapMirror関係作成
# 環境準備
* Tokyo Region
    * VPC (10.0.0.0/16)
    * EC2 Instance (FSxNにログイン用)
    * FSx for NetApp ONTAP (SVM: SVMinTokyo)
* Northern Virginia Region
    * VPC (10.1.0.0/16)
    * EC2 Instance (FSxNにログイン用)
    * FSx for NetApp ONTAP (SVM: SVMinNV)
:::note info
構成イメージ
![Picture2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2781205/11a20c94-c10a-cbd1-e403-21ebf0102d5e.png)
:::
# Step 1 : VPC peering
AWSコンソールからVPCのPeeringを設定します
* Northern Virginia Region
    * VPC dashboard → Peering connections → Create peering connection
    * 色々な設定
        * Connection Nameを設定
        * Peering元のVPCを選択
        * My Accountを選択
        * Another Regionを選択
        * Asia Pacific (Tokyo) (ap-northeast-1)を選択
        * Tokyo RegionにあるPeering先のVPC IDを入力
![001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2781205/367a140e-4d00-b4f4-7117-be05c1ed0db0.png)
    * Create peering connectionボタンを選択
* Tokyo Region
    * VPC dashboard→Peering connectionsを選択
    * 作成したPeering Connectionを選択
    * Actionボタン→Accept Request
![002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2781205/82df5535-36e1-ef6a-0386-bd095e5d288e.png)
:::note info
構成イメージ
![Picture3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2781205/5c2df4dc-1d5c-1229-d625-4064ea0c8173.png)
:::
# Step 2 : Route TableとSecurity Groupを設定
* 各VPCのRoute TableにPeering先のVPCアドレス範囲を追加、TargetをPeeringを指定
* FSxNのSecurity GroupもInbound Ruleに追加許可設定
# Step 3 : Inter-cluster endpoint – IP addressの確認
各Region FSx for NetApp ONTAPのDashboardからInter-cluster endpoint ip addressを確認
* Tokyo Region
![004-tokyo.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2781205/b1c7c08c-8042-8f33-50d1-d1314cbbffdd.png)
* Northern Virginia Region
![004-nv.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2781205/5e51cb76-a4bc-3c00-57b7-6d849448899a.png)
# Step 4 : Cluster Peering
EC2 Instance経由で各RegionのFSx for NetApp ONTAPにログイン
* Tokyo Region
    * CLIに入力：*<font color="MediumAquaMarine">cluster peer create -peer-addrs <font color="GreenYellow">< NV Inter-cluster endpoint ip address1 >, < NV Inter-cluster endpoint ip address2 ></font>*
    * Cluster Peering passwordを設定
```:FSx for NetApp ONTAP CLI
FsxId@a781fd9487bbc624::> cluster peer create -peer-addrs 10.1.8.156,10.1.2.161

Notice: Use a generated passphrase or choose a passphrase of 8 or more characters. To ensure the authenticity of the peering relationship, use a phrase or sequence of characters that would be hard to guess.

Enter the passphrase:
Confirm the passphrase:

Notice: Now use the same passphrase in the "cluster peer create" command in the other cluster.
```
* Northern Virginia Region
    * CLIに入力：*<font color="MediumAquaMarine">cluster peer create -peer-addrs <font color="GreenYellow">< Tokyo Inter-cluster endpoint ip address1 >, < Tokyo Inter-cluster endpoint ip address2 ></font>*
    * Tokyoに設定したCluster Peering passwordを入力
```:FSx for NetApp ONTAP CLI
FsxId0e677121b23418546::> cluster peer create -peer-addrs 10.0.12.193,10.0.6.104

Notice: Use a generated passphrase or choose a passphrase of 8 or more characters. To ensure the authenticity of the peering relationship, use a phrase or sequence of characters that would be hard to guess.

Enter the passphrase:
Confirm the passphrase:
```
* Cluster Peering確認
    * CLIに入力：*<font color="MediumAquaMarine">cluster peer show</font>*
```:FSx for NetApp ONTAP CLI
FsxId0e677121b23418546::> cluster peer show
Peer Cluster Name       Cluster Serial Number   Availability   Authentication
----------------------  ---------------------   ------------   --------------
FsxId0a781fd9487bbc624  1-80-000011             Available      ok
```
:::note info
構成イメージ
![Picture4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2781205/f7b7e1ce-e0a0-55e4-9ada-763533a33b40.png)
:::
# Step 5 : SVM Peering
EC2 Instance経由でFSx for NetApp ONTAPにログイン
* Tokyo Region
    * CLIに入力：*<font color="MediumAquaMarine">vserver peer create -vserver SVMinTokyo -peer-vserver SVMinNV -peer-cluster <font color="GreenYellow">< NV FsxID ></font> -applications snapmirror</font>*
```:FSx for NetApp ONTAP CLI
FsxId0a781fd9487bbc624::> server peer create -vserver SVMinTokyo -peer-vserver SVMinNV -peer-cluster FsxId0e677121b23418546 -applications snapmirror

Info: [Job 102] 'server peer create' job queued
```
* Northern Virginia Region
    * CLIに入力：*<font color="MediumAquaMarine">vserver peer accept -vserver SVMinNV -peer-vserver SVMinTokyo</font>*
```:FSx for NetApp ONTAP CLI
(FsxId0e677121b23418546::> vserver peer accept -vserver SVMinNV -peer-vserver SVMinTokyo

Info: [Job 43] 'server peer accept' job queued
```
* SVM Peeringの確認
    * CLIに入力：*<font color="MediumAquaMarine">vserver peer show -vserver <font color="GreenYellow">< Local SVM Name></font>*
```:FSx for NetApp ONTAP CLI
FsxId0a781fd9487bbc624::> server peer show -vserver SVMinTokyo
Vserver      Peer Vserver   Peer State   Peer Cluster             Peering Applications   Remote Vserver
----------   ------------   ----------   ----------------------   --------------------   --------------
SVMinTokyo   SVMinNV        peered       FsxId0e677121b23418546   snapmirror             SVMinNV
```
:::note info
構成イメージ
![Picture5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2781205/9bc59f14-8de7-cd75-f41a-0ca721bd84b1.png)
:::
# Step 6 : Volumeの作成
EC2 Instance経由でFSx for NetApp ONTAPにログイン
* Tokyo Region
    * Source Volumeを作成
    * CLIに入力：*<font color="MediumAquaMarine">volume create -vserver SVMinTokyo -volume vol_src -aggregate aggr1 -size 10G -junction-path /vol_src</font>*
```:FSx for NetApp ONTAP CLI
FsxId0a781f9487bbc624::> volume create -vserver SVMinTokyo -volume vol_src -aggregate aggr1 -size 10G-junction-path /vol_src
[Job 105] Job succeeded: Successful
```
* Northern Virginia Region
    * SnapMirror先のVolumeを作成
    * CLIに入力：*<font color="MediumAquaMarine">volume create -vserver SVMinNV -volume vol_dst -aggregate aggr1 -size 10G -type DP</font>*
```:FSx for NetApp ONTAP CLI
FsxId0e677121b23418546::> volume create -vserver SVMinNV -volume vol_dst -aggregate aggr1 -size 10G -type DP
[Job 47] Job succeeded: Successful
```
:::note info
構成イメージ
![Picture6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2781205/82a211d5-09be-b951-fdab-da694377d907.png)
:::
# Step 7 : SnapMirror関係を作成
EC2 Instance経由でFSx for NetApp ONTAPにログイン
* Northern Virginia Region
    * CLIに入力：*<font color="MediumAquaMarine">snapmirror create -source-path SVMinTokyo:vol_sc -destination-path SVMinNV:vol_dst -vserver SVMinNV -type XDP -policy MirrorAndVault -schedule daily</font>*
    * CLIに入力：*<font color="MediumAquaMarine">snapmirror initialize -destination-path SVMinNV:vol_dst</font>*
```:FSx for NetApp ONTAP CLI
FsxId0e677121b23418546::> snapmirror create -source-path SVMinTokyo:vol_src -destination-path SVMinNV:vol_dst -vserver SVMinNV -type XDP -policy MirrorAndVault -schedule daily

Operation succeeded: snapmirror create for the relationship with destination "SVMinNV:vol_dst"

FsxId0e677121b23418546::> snapmirror initialize -destination-path SVMinNV:vol_dst

Operation is queued: snapmirror initialize of destination "SVMinNV:vol_dst"
```
* 作成したSnapMirror関係を確認
    * CLIに入力：*<font color="MediumAquaMarine">snapmirror show</font>*
```:FSx for NetApp ONTAP CLI
FsxId0e677121623418546::> snapmirror show
Source Path          Type   Destination Path   Mirror State   Relationship Status   Total Progress   Healthy   Progress Last Updated
------------------   ----   ----------------   ------------   -------------------   --------------   -------   ---------------------
SVMinTokyo:vol_src   XDP    SVMinNV:vol_dst    Snapmirrored   Idle                  -                true      -
```
:::note info
構成イメージ
![Picture7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2781205/4d88c90e-f602-d952-dbec-04dabcca867a.png)
:::
# 注意事項
* 各RegionのSVMとVolumeを同じ名前しないでください。
* FSx for NetApp ONTAPのSecurity Groupを必ず各自ログイン用のEC2 InstanceからのInbound Allowに設定してください。
* FSx for NetApp ONTAPのSecurity Groupを必ずお互いのVPCからのInbound Allowに設定してください。
* Time outエラーが発生した場合はSecurity GroupとRoute Tableをチェックしてください。
# 最後に
本記事のサジェスチョンと協力をしてくれてM.Y.さん、F.Y.さん、T.H.さんに感謝します。
# 参考リンク
* https://aws.amazon.com/about-aws/global-infrastructure/regions_az/
* https://aws.amazon.com/jp/fsx/netapp-ontap/features/
* https://www.netapp.com/ja/cyber-resilience/data-protection/data-backup-recovery/snapmirror-data-replication/