FSx for Windows に関する情報のまとめ

**この記事では、FSx for Windows についての技術的な情報をまとめたものを記載する。**

#FSx for Windows の簡単な説明

Amazon FSx for Windows は、SMB プロトコルを介してアクセスを行う、AWS のファイルサーバー型のマネージドサービスである。
FSx は Windows Server 上に構築され、Active Directory を利用したアクセスコントロールが必須となる。

FSx for Windows を新規で構築する場合、以下の項目が必須となる。

* Single AZ または Multi AZ での配置
* ストレージタイプ HDD / SSD 
* ストレージ容量
* スループットキャパシティ
* VPC / Subnet / SecrityGroup 
* AWS Managed Microsoft Active Directory / 自前の Microsoft Active Directory
　これらはドメイン名 / DNS サーバーの IP / サービスアカウントのユーザー名 が必須となる。

**FSxの構築はバックアップリストアも含め 30分前後の時間を要するため、FSx 上のバックアップリストア運用を行う場合は注意が必要となる。**

#FSx に関する簡単な情報共有
FSx を使用した上で、いくつか判明した事があるので共有。

## Linux のファイル共有は可能
FSx for Window のファイル共有を Linux 上でマウントする事は可能。
詳細は以下に記載があるが、kerberos で認証を行った上で、以下のコマンドからマウントが可能。

https://docs.aws.amazon.com/ja_jp/fsx/latest/WindowsGuide/using-file-shares.html

```
sudo mount -t cifs //file_system_dns_name/file_share mount_point --verbose -o vers=3.0,sec=krb5,cruid=ad_user,rsize=CIFSMaxBufSize,wsize=CIFSMaxBufSize,cache=none,ip=preferred-file-server-Ip
```

**注意点としては、OS の再起動によりマウントは外れるため、fstab等から自動マウントの設定を行う事をお勧めする。**

## ファイル共有するためのセキュリティグループ

まず FSx ファイルシステムから ADへの通信に必要なセキュリティグループの設定。これは FSxファイルシステム側からは、アウトバウンドのみが必要。AD DCのIPアドレスに対して、以下の通信を許可する必要がある。

https://docs.aws.amazon.com/ja_jp/fsx/latest/WindowsGuide/self-manage-prereqs.html

```
    UDP     53, 88, 123, 389, 464
    TCP     53, 88, 135, 389, 445, 464, 636, 3268, 3269, 9389, 49152-65535
```

次に、EC2 インスタンスからファイルシステムへのアクセスに必要なセキュリティグループの設定。クライアントである EC2 インスタンスから FSx ファイルシステムへのインバウンドの、SMB と CIFS による通信が必要となる。以下のプロトコル/ポートによる通信を許可いただく必要がある。

```
 　TCP 445 (SMB)
 　TCP 135 (RPC)
```


## オンラインでのストレージ拡張、ファイルシステムのスループットキャパシティーの変更

2020年6月のアップデートにより、オンラインでのストレージ容量の拡張が可能となった。
オンライン上で拡張出来るサイズとしては、規定サイズから10%以上の拡張が対応可能。例えば 32GiB では 36GiB から拡張が可能となる。
**注意点としては、拡張は可能だが、縮小は出来ない。**

## Windows 上から共有ファイルのシャドウコピー
2019年7月以降、FSx の共有ファイルをWindowsの VSS を使用してシャドウコピーを行う事が可能となった。
Windowsシャドウコピーは、ある時点における Windows ファイルシステムのスナップショットを取得する機能である。これを行う事で、共有ファイル(Fsx for Windows)上からバックアップリストアを行わずに、ある地点へ戻す事が可能となる。

https://docs.aws.amazon.com/ja_jp/fsx/latest/WindowsGuide/shadow-copies-fsxW.html

手順は、FSx for Windows を共有した Windows へログインし、共有ファイルのシャドウコピーを有効化する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1597898/4672151a-f1e0-00c4-350e-e29d25764812.png)

スケジューラーまたは手動でシャドウコピーを取得する。
取得した時間のVersion へリストアすると、共有ファイルはその時間帯の状態へ切り戻しされる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1597898/4c1a82d4-a17b-895d-71ab-8bfe3979c1b3.png)


共有ファイルはリストアされるため、Linux にマウントした共有ファイル上から確認すると、切り戻しがされている事が確認出来る。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1597898/ffaf6ec1-857b-ecfd-61fb-6100d84d497e.png)


## データ重複排除
データの重複排除とは、重複したデータを削減する機能である。
ファイル共有において、複数のユーザーが同じファイルのコピーを多数保存する事が可能なため、データの重複除外を有効にすることで、コストを削減する事が出来る事である。

Amazon FSx for Windows のファイル共有でデータ重複排除を有効にするには、Enable-FSxDedupコマンドを使用する。

```
Invoke-Command -ComputerName amznfsxzzzzzzzz.corp.example.com -ConfigurationName FSxRemoteAdmin -ScriptBlock {Enable-FsxDedup }
```

**重複排除の有効化・無効化は、オンライン上で操作可能となる。**

## 監視
基本的に Cloudwatch から監視を行う事が考えられる。

現状、メトリクス **FreeStorageCapacity** から容量監視、スループットの監視を行う、**SUM(DataReadBytes + DataWriteBytes)/Period (in seconds)**が有用である。

https://docs.aws.amazon.com/ja_jp/fsx/latest/WindowsGuide/monitoring-cloudwatch.html

FSx for windowsの Performance情報は以下の記事が参考となる。

https://docs.aws.amazon.com/fsx/latest/WindowsGuide/performance.html#measure-performance-cw