[アップデート] Amazon FSx for OpenZFSでS3アクセスポイントがサポートされ、ファイルシステム内に保存されたデータにS3 APIでアクセスできるようになりました
NFSファイルサーバー上のファイルをデータの移動なしにS3連携サービスと連携させたい
こんにちは、のんピ(@non____97)です。
皆さんはNFSファイルサーバー上のファイルをデータの移動なしにS3連携サービスと連携させたいなと思ったことはありますか? 私はあります。
既存のデータをデータレイクと連携させる場合や生成AIに読み込ませるときにネックになるのがデータの移動です。
連携対象のサービスがS3互換のインターフェイスしか持っていないことがあります。元となるデータがFSxやEFSにある場合、DataSyncなどのサービスやツールを使って、その連携サービスが使用するS3バケットへデータを同期させる必要があります。データを同期させる場合はデータ同期にかかる時間やコストが気になります。例えばRAG用途でBedrock knowledge baseと連携させたい場合、定期的にデータ同期をしなければ古い情報を返してしまうことになるでしょう。
今回アップデートでAmazon FSx for OpenZFS(以降FSxZ)のボリュームにAmazon S3のアクセスポイントをアタッチできるようになりました。
要するにファイル操作のプロトコルとしてNFS以外にもS3 APIが使用できるようになりました。
これにより、FSxZ上のファイルを移動させずとも、Quick SuiteやAthena、Bedrock Knowledge base、Q BusinessといったS3連携のサービスと連携できるようになります。特に「データを何とかAWSに持って来れたけれども、AWSの各種サービスを利用してデータをもっと活用したい」という場面において非常に嬉しいのではないでしょうか。移動コストが0であるため、分析するためのストレージを別途用意する必要なく、分析処理のみに注力することができます。
オンプレミスからNFSで受け取ったファイルをAWSのデータ分析サービスを用いて処理するといったことも行いやすくなります。

AWS BlogsにもBedrock knowledge baseとの連携例が紹介されていますね。
S3アクセスポイントのアタッチ機能関連のAWS公式ドキュメントは以下です。迷った時はこちらを参照しましょう。
実際に触ってみます。
いきなりまとめ
- FSxZのボリュームにS3アクセスポイントをアタッチできるようになった
- NFS経由で作成したファイルにS3 APIで操作をしたり、S3 API経由で作成したファイルにNFS経由で操作できるようになった
- 一つのボリュームに複数のS3アクセスポイントをアタッチすることも可能
- 主な注意点は以下
- S3アクセスポイント名は同一AWSアカウントとAWSリージョン内で一意である必要がある
- S3アクセスポイント名の末尾に
-ext-s3aliasを付与することはできない - S3アクセスポイントをアタッチできるのは Multi-AZとSingle-AZ HAのファイルシステムのみ
- FSxZファイルシステムにアタッチ可能なS3アクセスポイント数はFSxZファイルシステムに設定したスループットキャパシティに依存する
- S3 ACLはサポートされていない
- ブロックパブリックアクセス設定をオフにすることはできない
- マルチパートアップロードは 5 GB に制限される
- FSxZファイルシステムと同一アカウントでのみS3アクセスポイントをアタッチできる
- アクセスポイントを作成した後は、別のバケットまたはFSx for OpenZFSボリュームに関連付けることはできない
- サーバーサイド暗号化方式で
SSE_FSX以外を指定することはできない
- レイテンシーはS3バケットと同等、パフォーマンスはFSxZファイルシステムのスループットキャパシティとSSD IOPSの影響を受ける
- S3 APIのアクセス制御は以下で行う
- ネットワークオリジン
- アクセスポイントポリシー
- 料金はS3 APIのリクエストのみ
- S3 Express One Zoneと同等
- その他の追加料金はなし
- 「アクセスポイントポリシー上で問題ないのに読み書きができない」という場合はアクセスポイントに設定したUIDとGIDが、対象ディレクトリおよびファイルへの権限を持っているかを確認しよう
- S3 APIで操作をする際に、NFSの世界の権限も意識する必要がある
できること
FSxZのボリュームにS3アクセスポイントをアタッチすることで行うことができる操作は以下のとおりです。
| S3 オペレーション | S3 バケットにアタッチされたアクセスポイント | FSx for OpenZFS ボリュームにアタッチされたアクセスポイント |
|---|---|---|
AbortMultipartUpload |
サポート | サポート対象 |
CompleteMultipartUpload |
サポート対象 | サポート |
CopyObject (同じリージョンへのコピーのみ) |
サポート | 送信元と送信先が同じアクセスポイントである場合にサポートされます |
CreateMultipartUpload |
サポート | サポート対象 |
DeleteObject |
サポート対象 | サポート対象 |
DeleteObjects |
サポート対象 | サポート対象 |
DeleteObjectTagging |
サポート対象 | サポート対象 |
GetBucketAcl |
サポート | サポート外 |
GetBucketCors |
サポート | サポート外 |
GetBucketLocation |
サポート対象 | サポート対象 |
GetBucketNotificationConfiguration |
サポート | サポート外 |
GetBucketPolicy |
サポート | サポート外 |
GetObject |
サポート対象 | サポート対象 |
GetObjectAcl |
サポート | サポート外 |
GetObjectAttributes |
サポート対象 | サポート対象 |
GetObjectLegalHold |
サポート | サポート外 |
GetObjectRetention |
サポート | サポート外 |
GetObjectTagging |
サポート対象 | サポート対象 |
HeadBucket |
サポート対象 | サポート対象 |
HeadObject |
サポート対象 | サポート対象 |
ListMultipartUploads |
サポート対象 | サポート対象 |
ListObjects |
サポート対象 | サポート対象 |
ListObjectsV2 |
サポート対象 | サポート対象 |
ListObjectVersions |
サポート | サポート外 |
ListParts |
サポート対象 | サポート対象 |
Presign |
サポート対象 | サポート対象 |
PutObject |
サポート対象 | サポート対象 |
PutObjectAcl |
サポート | サポート外 |
PutObjectLegalHold |
サポート | サポート外 |
PutObjectRetention |
サポート | サポート外 |
PutObjectTagging |
サポート対象 | サポート対象 |
RestoreObject |
サポート | サポート外 |
UploadPart |
サポート対象 | サポート |
UploadPartCopy (同じリージョンへのコピーのみ) |
サポート | 送信元と送信先が同じアクセスポイントである場合にサポートされます |
抜粋 : アクセスポイントの互換性 - Amazon Simple Storage Service
オブジェクトの操作一通りできそうですね。
注意が必要そうなのはCopyObjectがサポートされていない点でしょうか。S3バケットからデータをコピーする/される際は都度GetObjectとPutObjectを行う必要がありそうです。
性能
S3アクセスポイントの性能は以下のとおりです。
- レイテンシー : S3バケットと同等
- スループットおよびrps : FSxZのスループットキャパシティとSSD IOPS次第
要するに性能を上げたければスループットキャパシティとSSD IOPSを調整しろということのようです。
該当のドキュメントは以下です。
Performance on S3 access points
Amazon S3 access points for FSx for OpenZFS file systems deliver latency in the tens of milliseconds range, consistent with S3 bucket access. Requests per second and throughput performance scale with your Amazon FSx file system's provisioned throughput and SSD. For example, your applications can achieve up to 3,500 PUT or 5,500 GET requests per second (consistent with what you can achieve per Amazon S3 partitioned prefix) and 3.5 GBps of write (PUT) throughput and 10 GBps of read (GET) throughput on a file system provisioned with the maximum throughput capacity level.
制約事項
主な制約事項は以下のとおりです。
- S3アクセスポイント名は同一AWSアカウントとAWSリージョン内で一意である必要がある
- S3アクセスポイント名の末尾に
-ext-s3aliasを付与することはできない - S3アクセスポイントをアタッチできるのは Multi-AZとSingle-AZ HAのファイルシステムのみ
- Single-AZ non-HAでS3アクセスポイントをアタッチしようとすると
Cannot create and attach an S3 access point to file system with 'SINGLE_AZ_2' deployment type.とエラーになる

- Single-AZ non-HAでS3アクセスポイントをアタッチしようとすると
- FSxZファイルシステムにアタッチ可能なS3アクセスポイント数はFSxZファイルシステムに設定したスループットキャパシティに依存する
- Single-AZ 2 HA および Multi-AZ ファイルシステムの場合、おおよそ160MBpsあたり4つまで
- S3 ACLはサポートされていない
- ブロックパブリックアクセス設定をオフにすることはできない
- マルチパートアップロードは 5 GB に制限される
- FSxZファイルシステムと同一アカウントでのみS3アクセスポイントをアタッチできる
- アクセスポイントを作成した後は、別のバケットまたはFSx for OpenZFSボリュームに関連付けることはできない
- サーバーサイド暗号化方式で
SSE_FSX以外を指定することはできない
参考 :
- Service quotas on Amazon FSx for OpenZFS resources - FSx for OpenZFS
- Access points naming rules, restrictions, and limitations - FSx for OpenZFS
- Access points naming rules, restrictions, and limitations - Amazon Simple Storage Service
- アクセスポイントの互換性 - OpenZFS 用 FSx
S3アクセスポイントのアタッチ上限は特に注意が必要でしょう。
また、アップロードの上限は5GBということで、サイズが大きいオブジェクトを生成するワークロードにおいて、S3アクセスポイントを出力先としてする場合も注意が必要です。
アクセス制御
S3 APIのアクセス制御は通常のS3アクセスポイントとおおよそ同じく以下で行います。
- ネットワークオリジン
- アクセスポイントポリシー
ブロックパブリックアクセスは全て有効で固定です。
ネットワークオリジンは以下で紹介されているとおり、アクセスポイント作成後は変更できません。注意しましょう。
アクセスポイントを作成するときに、そのアクセスポイントをインターネットからアクセス可能にするか、特定の 仮想プライベートクラウド (VPC) からのリクエストにのみアクセスを制限するかを指定できます。インターネットからアクセス可能なアクセスポイントは、Internet をネットワークオリジンとすると言います。この種のアクセスポイントは、インターネット上のどこからでも利用できます。ただし、このアクセスポイントや、基となるデータソース、関連リソース (リクエストされたオブジェクトなど) に関する他のすべてのアクセス制限に従うことを条件とします。指定された VPC からのみアクセス可能なアクセスポイントは VPC をネットワークオリジンとします。Amazon S3 は、アクセスポイントに対するその VPC からのリクエストを除いて、他のすべてのリクエストを拒否します。
重要
アクセスポイントのネットワークオリジンは、アクセスポイントの作成時にのみ指定できます。アクセスポイントの作成後は、そのネットワークオリジンを変更できません。アクセスポイントを VPC からのアクセスにのみ制限するには、アクセスポイントを作成するリクエストに VpcConfiguration パラメータを含めます。VpcConfiguration パラメータには、アクセスポイントを使用できるようにする VPC ID を指定します。アクセスポイントを介してリクエストが行われた場合、リクエストは VPC から発信されている必要があり、そうでない場合、Amazon S3 はそれを拒否します。
アクセスポイントのネットワークオリジンを取得するには、AWS CLI、AWS SDK、または REST API を使用します。アクセスポイントに VPC 設定が指定されている場合、そのネットワークオリジンは VPC です。それ以外の場合、アクセスポイントのネットワークオリジンは Internet です。
Virtual Private Cloud に制限されたアクセスポイントの作成 - Amazon Simple Storage Service
通常のS3バケットのようにで動作させたいのであれば、ネットワークオリジンはインターネットで良いと考えます。
料金
FSxZのS3アクセスポイントのアタッチ機能の料金は以下のとおりです。
S3 リクエスト
FSx for OpenZFS ファイルシステムにアタッチされた S3 Access Point に対して実行された S3 リクエストについての料金をお支払いいただきます。S3 リクエストのコストは、リクエストタイプに応じて異なります。下記の表に記載されているリクエストの量に基づいて課金されます。API/SDK を使用してリクエストした場合と同額の料金が発生します。
リージョン : アジアパシフィック (東京)
PUT、COPY、POST、LIST リクエスト (1,000 リクエストあたり) GET、他のすべてのリクエスト (1,000 件のリクエストあたり) FSx for OpenZFS USD 0.00108 USD 0.000029
S3アクセスポイントを有効化すること自体については課金は発生せず、S3 APIリクエストについて課金が発生します。
このリクエストの料金ですが、S3の料金を確認したところ、これは同じリージョンS3 Express One Zoneの料金と同じでした。S3 Standardの料金よりもお安く使用できるのは大きいですね。
コスト面でも優れていることから、データの耐久性の向上やライフサイクルポリシーの利用など、S3ならではのメリットを特に必要としない場合は敢えてデータの移動を行わないという戦略も十分あり得るでしょう。
やってみた
検証環境
実際に触ってみます。
検証環境は以下のとおりです。

FSxZファイルシステムはSingle-AZ HAで構築をします。

デフォルトボリュームの子ボリュームvol1を作成します。

ボリューム一覧は以下のとおりです。

S3アクセスポイントのアタッチ
ボリュームへS3アクセスポイントのアタッチを行います。

アクセスポイント名やPOSIXユーザーID、グループID、ネットワークオリジンを設定します。

VPCを選択する場合は単一のVPC IDを指定できます。

先述の通りFSxZファイルシステムにアタッチできるS3アクセスポイント数の上限はそこまで余裕はないため、多数のVPCと連携が必要な場合はインターネットにするのも選択肢に入るでしょう。
アクセスポリシーは空に設定します。

S3アクセスポイントのアタッチメント処理が行われています。

10秒ほどでステータスがAvailableになりました。

S3のコンソールからも先ほどアタッチしたS3アクセスポイントを確認できました。

詳細も以下のように確認できます。

一方、FSxのコンソールからアクセスポイントの詳細を確認しようとすると、アクセスポイントの詳細をロード中にエラーが発生しました。とエラーになってしまいました。

もう一つのボリュームにもS3アクセスポイントをアタッチします。先ほどのものとはユーザーID、グループID、ネットワークオリジンを変更しています。

アクセスポイント一覧は以下のとおりです。

また、以降の検証で使用はしないのですが一つのボリュームに複数のS3アクセスポイントをアタッチできることも確認しました。

ただし、スループットキャパシティに対応した数以上のS3アクセスポイントをアタッチしようとすると、以下のようにエラーになりました。
Amazon FSx is unable to process this request because your file system has more than 4 S3 Access Points attached to it. Amazon FSx does not support having more than 4 S3 Access Points for an OPENZFS file system with 160 MBps of throughput capacity.
NFSで追加したファイルをS3 APIで読み込み
まず、NFSで追加したファイルをS3 APIで読み込みます。
FSxZをNFSv4.2でマウントします。
$ df -hT
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs tmpfs 453M 0 453M 0% /dev/shm
tmpfs tmpfs 181M 408K 181M 1% /run
/dev/nvme0n1p1 xfs 8.0G 2.8G 5.3G 35% /
tmpfs tmpfs 453M 0 453M 0% /tmp
/dev/nvme0n1p128 vfat 10M 1.3M 8.7M 13% /boot/efi
$ ls -l /mnt/
total 0
drwxr-xr-x. 2 root root 6 Oct 15 08:36 express-s3
drwxr-xr-x. 2 root root 6 Sep 22 09:02 fsxl
drwxr-xr-x. 2 root root 6 Sep 30 04:42 fsxz
drwxr-xr-x. 2 root root 22 Oct 15 08:43 s3
$ ls -ld /mnt/fsxz
drwxr-xr-x. 2 root root 6 Sep 30 04:42 /mnt/fsxz
$ sudo mount -t nfs -o noatime,nfsvers=4.2,sync,nconnect=16,rsize=1048576,wsize=1048576 fs-0cf9019876e46ac08.fsx.us-east-1.amazonaws.com:/fsx/ /mnt/fsxz
$ df -hT
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs tmpfs 453M 0 453M 0% /dev/shm
tmpfs tmpfs 181M 420K 181M 1% /run
/dev/nvme0n1p1 xfs 8.0G 2.8G 5.3G 35% /
tmpfs tmpfs 453M 0 453M 0% /tmp
/dev/nvme0n1p128 vfat 10M 1.3M 8.7M 13% /boot/efi
tmpfs tmpfs 91M 0 91M 0% /run/user/0
fs-0cf9019876e46ac08.fsx.us-east-1.amazonaws.com:/fsx nfs4 64G 0 64G 0% /mnt/fsxz
$ mount | grep nfs
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
fs-0cf9019876e46ac08.fsx.us-east-1.amazonaws.com:/fsx on /mnt/fsxz type nfs4 (rw,noatime,sync,vers=4.2,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,nconnect=16,timeo=600,retrans=2,sec=sys,clientaddr=10.10.0.11,local_lock=none,addr=10.10.0.4)
$ ls -l /mnt/fsxz
total 25
drwxrwxrwx. 3 root root 3 Nov 10 05:20 vol1
$ ls -l /mnt/fsxz/vol1
total 0
$ df -hT -t nfs4
Filesystem Type Size Used Avail Use% Mounted on
fs-0cf9019876e46ac08.fsx.us-east-1.amazonaws.com:/fsx nfs4 64G 0 64G 0% /mnt/fsxz
fs-0cf9019876e46ac08.fsx.us-east-1.amazonaws.com:/fsx/vol1 nfs4 16G 0 16G 0% /mnt/fsxz/vol1
明示的なマウントコマンドを実行しなくとも、fsxボリュームから辿ることでvol1もマウントされました。
それでは、FSxZボリュームに適当にファイルを追加します。
$ sudo mkdir -p /mnt/fsxz/tier1/tier2
$ sudo mkdir -p /mnt/fsxz/vol1/tier1/tier2
$ echo "/mnt/fsxz/tier1/text1.txt" | sudo tee /mnt/fsxz/tier1/text1.txt > /dev/null
$ echo "/mnt/fsxz/tier1/text2.txt" | sudo tee /mnt/fsxz/tier1/text2.txt > /dev/null
$ echo "/mnt/fsxz/tier1/tier2/text1.txt" | sudo tee /mnt/fsxz/tier1/tier2/text1.txt > /dev/null
$ echo "/mnt/fsxz/vol1/text1.txt" | sudo tee /mnt/fsxz/vol1/text1.txt > /dev/null
$ echo "/mnt/fsxz/vol1/text2.txt" | sudo tee /mnt/fsxz/vol1/text2.txt > /dev/null
$ echo "/mnt/fsxz/vol1/tier1/text1.txt" | sudo tee /mnt/fsxz/vol1/tier1/text1.txt > /dev/null
$ echo "/mnt/fsxz/vol1/tier1/tier2/text1.txt" | sudo tee /mnt/fsxz/vol1/tier1/tier2/text1.txt > /dev/null
$ tree /mnt/fsxz
/mnt/fsxz
├── tier1
│ ├── text1.txt
│ ├── text2.txt
│ └── tier2
│ └── text1.txt
└── vol1
├── text1.txt
├── text2.txt
└── tier1
├── text1.txt
└── tier2
└── text1.txt
それでは、追加したファイルに対してS3 APIを用いて読み込みできるか確認します。
EC2インスタンスから以下のようにAWS CLIで実行します。
$ aws s3 ls non-97-fsxz-s3-f-xwwqkuy7iok1jwyf6j8sy9btybeoguse1b-ext-s3alias
PRE tier1/
$ aws s3 ls s3://arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-fsx-1
PRE tier1/
$ aws s3 ls arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-fsx-1
PRE tier1/
$ aws s3 ls non-97-fsxz-s3-f-xwwqkuy7iok1jwyf6j8sy9btybeoguse1b-ext-s3alias --recursive
2025-11-10 05:44:06 26 tier1/text1.txt
2025-11-10 05:44:36 26 tier1/text2.txt
2025-11-10 05:45:04 32 tier1/tier2/text1.txt
$ aws s3 ls s3://arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-vol1-1 --recursive
2025-11-10 05:46:05 25 text1.txt
2025-11-10 05:46:16 25 text2.txt
2025-11-10 05:46:36 31 tier1/text1.txt
2025-11-10 05:47:43 37 tier1/tier2/text1.txt
$ aws s3api head-object \
--bucket arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-vol1-1 \
--key tier1/text1.txt
{
"AcceptRanges": "bytes",
"LastModified": "2025-11-10T05:46:36+00:00",
"ContentLength": 31,
"ETag": "\"229c69e65bc10692d959d91cefe9ee96-1\"",
"ContentType": "binary/octet-stream",
"ServerSideEncryption": "aws:fsx",
"Metadata": {},
"StorageClass": "FSX_OPENZFS",
"PartsCount": 0
}
$ aws s3api list-objects-v2 --bucket arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-fsx-1
{
"Contents": [
{
"Key": "tier1/text1.txt",
"LastModified": "2025-11-10T05:44:06.147000+00:00",
"ETag": "\"48a7c02dbbb8c760e444b794d14f927d-1\"",
"Size": 26,
"StorageClass": "FSX_OPENZFS"
},
{
"Key": "tier1/text2.txt",
"LastModified": "2025-11-10T05:44:36.586000+00:00",
"ETag": "\"2d350d31d8c7dbf1e5e7ac04dd8ba348-1\"",
"Size": 26,
"StorageClass": "FSX_OPENZFS"
},
{
"Key": "tier1/tier2/text1.txt",
"LastModified": "2025-11-10T05:45:04.486000+00:00",
"ETag": "\"065d3e18b45b4a528001d1887b3b15bf-1\"",
"Size": 32,
"StorageClass": "FSX_OPENZFS"
}
],
"RequestCharged": null,
"Prefix": ""
}
$ aws s3api list-objects-v2 --bucket arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-vol1-1
{
"Contents": [
{
"Key": "text1.txt",
"LastModified": "2025-11-10T05:46:05.945000+00:00",
"ETag": "\"d00560f61be2d5c7b18e36cf8a28b346-1\"",
"Size": 25,
"StorageClass": "FSX_OPENZFS"
},
{
"Key": "text2.txt",
"LastModified": "2025-11-10T05:46:16.955000+00:00",
"ETag": "\"712007676fbd015d6d297293e0b8de16-1\"",
"Size": 25,
"StorageClass": "FSX_OPENZFS"
},
{
"Key": "tier1/text1.txt",
"LastModified": "2025-11-10T05:46:36.085000+00:00",
"ETag": "\"229c69e65bc10692d959d91cefe9ee96-1\"",
"Size": 31,
"StorageClass": "FSX_OPENZFS"
},
{
"Key": "tier1/tier2/text1.txt",
"LastModified": "2025-11-10T05:47:43.694000+00:00",
"ETag": "\"b96b3a3da95e008e1c4c39996320b58f-1\"",
"Size": 37,
"StorageClass": "FSX_OPENZFS"
}
],
"RequestCharged": null,
"Prefix": ""
}
NFSで追加したファイルの確認ができました。fsx(/fsx)とvol1(/fsx/vol1)のようにジャンクションパスが階層構造になっている場合はaws s3 lsの結果はどうなるのかなと思ったのですが、別ボリュームなので個別でアクセスが必要ということも分かりました。
S3 APIで取得したオブジェクトを標準出力で出力します。
$ aws s3 cp s3://arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-fsx-1/tier1/text1.txt -
/mnt/fsxz/tier1/text1.txt
$ aws s3 cp s3://arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-vol1-1/tier1/tier2/text1.txt -
/mnt/fsxz/vol1/tier1/tier2/text1.txt
問題なく動作しました。
手元の端末でも確認します。
> aws s3 cp s3://arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-fsx-1/tier1/text1.txt -
/mnt/fsxz/tier1/text1.txt
> aws s3 cp s3://arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-vol1-1/tier1/tier2/text1.txt -
download failed: s3://arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-vol1-1/tier1/tier2/text1.txt to - An error occurred (403) when calling the HeadObject operation: Forbidden
> aws s3api list-objects-v2 --bucket arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-fsx-1
{
"Contents": [
{
"Key": "tier1/text1.txt",
"LastModified": "2025-11-10T05:44:06.147000+00:00",
"ETag": "\"48a7c02dbbb8c760e444b794d14f927d-1\"",
"Size": 26,
"StorageClass": "FSX_OPENZFS"
},
{
"Key": "tier1/text2.txt",
"LastModified": "2025-11-10T05:44:36.586000+00:00",
"ETag": "\"2d350d31d8c7dbf1e5e7ac04dd8ba348-1\"",
"Size": 26,
"StorageClass": "FSX_OPENZFS"
},
{
"Key": "tier1/tier2/text1.txt",
"LastModified": "2025-11-10T05:45:04.486000+00:00",
"ETag": "\"065d3e18b45b4a528001d1887b3b15bf-1\"",
"Size": 32,
"StorageClass": "FSX_OPENZFS"
}
],
"RequestCharged": null,
"Prefix": ""
}
> aws s3api list-objects-v2 --bucket arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-vol1-1
An error occurred (AccessDenied) when calling the ListObjectsV2 operation: User: arn:aws:sts::<AWSアカウントID>:assumed-role/<IAMロール名>/<セッション名> is not authorized to perform: s3:ListBucket on resource: "arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-vol1-1" with an explicit deny in a resource-based policy
ボリュームfsxのS3アクセスポイントを介した操作では問題なく操作できましたが、ネットワークオリジンをインターネットではなくVPCにしているためvol1のS3アクセスポイントを介した操作ではエラーとなりました。
S3 APIを用いたファイルの追加
続いて、S3 APIを用いたファイルの追加を行います。
手元の端末からAWS CLIを用いてローカルのファイルをアップロードします。
> aws s3api put-object \
--bucket arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-fsx-1 \
--key 5.non-97-fsxz-s3-fsx-1_1.png \
--body images/5.non-97-fsxz-s3-fsx-1_1.png
{
"ETag": "\"3bd4fc525042a56825bbdd0ddcddcfdf\"",
"ChecksumCRC64NVME": "B2C1KBBWVsc=",
"ChecksumType": "FULL_OBJECT",
"ServerSideEncryption": "aws:fsx"
}
> echo test.txt > test.txt
> aws s3api put-object \
--bucket arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-fsx-1 \
--key test.txt \
--body test.txt
{
"ETag": "\"bbfa1f311a5828452b953d1335cbf027\"",
"ChecksumCRC64NVME": "Q6hHjd9gzNc=",
"ChecksumType": "FULL_OBJECT",
"ServerSideEncryption": "aws:fsx"
}
> aws s3api head-object \
--bucket arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-fsx-1 \
--key 5.non-97-fsxz-s3-fsx-1_1.png
{
"AcceptRanges": "bytes",
"LastModified": "2025-11-10T07:18:47+00:00",
"ContentLength": 254424,
"ETag": "\"3bd4fc525042a56825bbdd0ddcddcfdf\"",
"ContentType": "binary/octet-stream",
"ServerSideEncryption": "aws:fsx",
"Metadata": {},
"StorageClass": "FSX_OPENZFS",
"PartsCount": 0
}
> aws s3api head-object \
--bucket arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-fsx-1 \
--key test.txt
{
"AcceptRanges": "bytes",
"LastModified": "2025-11-10T07:30:25+00:00",
"ContentLength": 9,
"ETag": "\"bbfa1f311a5828452b953d1335cbf027\"",
"ContentType": "binary/octet-stream",
"ServerSideEncryption": "aws:fsx",
"Metadata": {},
"StorageClass": "FSX_OPENZFS",
"PartsCount": 0
}
問題なくアップロードできました。
NFSクライアントからファイルを確認します。
$ ls -l /mnt/fsxz/
total 298
-rw-r--r--. 1 ec2-user ec2-user 254424 Nov 10 07:18 5.non-97-fsxz-s3-fsx-1_1.png
-rw-r--r--. 1 ec2-user ec2-user 9 Nov 10 07:30 test.txt
drwxr-xr-x. 3 nobody nobody 5 Nov 10 05:44 tier1
drwxrwxrwx. 4 root root 6 Nov 10 05:46 vol1
$ ls -ln /mnt/fsxz/
total 298
-rw-r--r--. 1 1000 1000 254424 Nov 10 07:18 5.non-97-fsxz-s3-fsx-1_1.png
-rw-r--r--. 1 1000 1000 9 Nov 10 07:30 test.txt
drwxr-xr-x. 3 65534 65534 5 Nov 10 05:44 tier1
drwxrwxrwx. 4 0 0 6 Nov 10 05:46 vol1
$ cat /mnt/fsxz/test.txt
test.txt
確かに追加されていますね。また、追加されたファイルのUIDとGIDがS3アクセスポイントで指定したものになっていました。
EC2インスタンスからも同様にローカルのファイルをPutObjectでアップロードします。
$ ls -l test.txt
-rw-rw-r--. 1 ec2-user ec2-user 88905 Oct 15 06:28 test.txt
$ head test.txt
test1
test2
test3
test4
test5
test6
test7
test8
test9
test10
$ aws s3api put-object \
--bucket arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-vol1-1 \
--key test.txt \
--body test.txt
{
"ETag": "\"6dcf56682273030af2ba93015d5090fd\"",
"ChecksumCRC64NVME": "5saWoFcRI4E=",
"ChecksumType": "FULL_OBJECT",
"ServerSideEncryption": "aws:fsx"
}
$ ls -l /mnt/fsxz/vol1
total 54
-rw-r--r--. 1 root root 88905 Nov 10 09:14 test.txt
-rw-r--r--. 1 nobody nobody 25 Nov 10 05:46 text1.txt
-rw-r--r--. 1 nobody nobody 25 Nov 10 05:46 text2.txt
drwxr-xr-x. 3 nobody nobody 4 Nov 10 05:47 tier1
$ ls -ln /mnt/fsxz/vol1
total 54
-rw-r--r--. 1 0 0 88905 Nov 10 09:14 test.txt
-rw-r--r--. 1 65534 65534 25 Nov 10 05:46 text1.txt
-rw-r--r--. 1 65534 65534 25 Nov 10 05:46 text2.txt
drwxr-xr-x. 3 65534 65534 4 Nov 10 05:47 tier1
問題なく行えました。こちらのS3アクセスポイントではUIDとGIDを0にしたため、rootにマッピングされていますね。
S3バケット間とのCopyObjectを行えないことの確認
次にS3バケット間とのCopyObjectを行えないことを確認します。
適当なS3バケットにオブジェクトをコピーしようとします。
> aws s3api copy-object \
--copy-source arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-fsx-1/object/test.txt \
--bucket aurora-postgresql-log \
--key test.txt
An error occurred (NotImplemented) when calling the CopyObject operation: An access point you provided implies functionality that is not implemented
はい、アクセスポイントで実装されていない機能を呼び出そうとしてエラーになりました。
次に同一のS3アクセスポイント間でオブジェクトをコピーします。
> aws s3api copy-object \
--copy-source arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-fsx-1/object/test.txt \
--bucket arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-fsx-1 \
--key test_copy.txt
{
"ServerSideEncryption": "aws:fsx",
"CopyObjectResult": {
"ETag": "\"e8ecf27f2bf8177075f0e3231e371782-1\"",
"LastModified": "2025-11-10T07:57:47.143000+00:00",
"ChecksumType": "FULL_OBJECT"
}
}
こちらは正常に完了しました。
アクセスポイントポリシーを用いたアクセス制限
次にアクセスポイントポリシーを用いたアクセス制限を行います。
以下のように、fsxボリュームにアタッチしたS3アクセスポイントにポリシーを設定します。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement1",
"Effect": "Deny",
"Principal": {
"AWS": "arn:aws:iam::<AWSアカウントID>:root"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-fsx-1/object/tier1/tier2/*"
}
]
}
tier1/tier2/配下の操作をできないようにしています。
動作確認をします。
$ aws s3api head-object \
--bucket arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-fsx-1 \
--key tier1/text1.txt
{
"AcceptRanges": "bytes",
"LastModified": "2025-11-10T05:44:06+00:00",
"ContentLength": 26,
"ETag": "\"48a7c02dbbb8c760e444b794d14f927d-1\"",
"ContentType": "binary/octet-stream",
"ServerSideEncryption": "aws:fsx",
"Metadata": {},
"StorageClass": "FSX_OPENZFS",
"PartsCount": 0
}
$ aws s3api head-object \
--bucket arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-fsx-1 \
--key tier1/tier2/text1.txt
An error occurred (403) when calling the HeadObject operation: Forbidden
$ aws s3api copy-object \
--copy-source arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-fsx-1/object/test.txt \
--bucket arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-fsx-1 \
--key tier1/tier2/test_copy.txt
An error occurred (AccessDenied) when calling the CopyObject operation: User: arn:aws:sts::<AWSアカウントID>:assumed-role/AmazonSSMRoleForInstancesQuickSetup/i-0e3b2df10bad6f2ac is not authorized to perform: s3:PutObject on resource: "arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-fsx-1/object/tier1/tier2/test_copy.txt" with an explicit deny in a resource-based policy
意図したとおりでtier1/tier2配下のオブジェクトの参照および、追加をする際に拒否されました。
他の操作に影響がないことを確認するために、NFSクライアントから作成したディレクトリ配下にオブジェクトをコピーしようとします。
$ aws s3api copy-object \
--copy-source arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-fsx-1/object/test.txt \
--bucket arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-fsx-1 \
--key tier1/test_copy.txt
An error occurred (AccessDenied) when calling the CopyObject operation: Access Denied
アクセスポイントポリシーに該当したことによる発生したエラーとエラーメッセージは異なりますが、拒否されてしまいます。
一方で、新規にディレクトリを作成するようにオブジェクトキーを作成すると正常に処理が完了しました。
$ aws s3api copy-object \
--copy-source arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-fsx-1/object/test.txt \
--bucket arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-fsx-1 \
--key test/test_copy.txt
$ ls -l /mnt/fsxz
total 315
-rw-r--r--. 1 ec2-user ec2-user 254424 Nov 10 07:18 5.non-97-fsxz-s3-fsx-1_1.png
drwxrwxrwx. 2 ec2-user ec2-user 3 Nov 10 08:19 test
-rw-r--r--. 1 ec2-user ec2-user 9 Nov 10 07:30 test.txt
-rw-r--r--. 1 ec2-user ec2-user 9 Nov 10 08:15 test_copy.txt
drwxr-xr-x. 3 nobody nobody 5 Nov 10 05:44 tier1
drwxrwxrwx. 4 root root 6 Nov 10 05:46 vol1
$ ls -l /mnt/fsxz/test
total 9
-rw-r--r--. 1 ec2-user ec2-user 9 Nov 10 08:19 test_copy.txt
この挙動から親ディレクトリの権限をしっかりと見ていそうです。つまりはバケットポリシーで許可されている = 何でも書き込みできるという訳ではなく、NFSの世界の権限も気にする必要があるようです。
改めて動作確認をします。
適当にディレクトリを作成し、そこにオブジェクトを作成しようとします。
$ sudo mkdir -p /mnt/fsxz/test2
$ ls -ld /mnt/fsxz/test2
drwxr-xr-x. 2 nobody nobody 2 Nov 10 08:21 /mnt/fsxz/test2
$ ls -ld /mnt/fsxz/
drwxrwxrwx. 7 root root 10 Nov 10 08:21 /mnt/fsxz/
$ aws s3api copy-object \
--copy-source arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-fsx-1/object/test.txt \
--bucket arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-fsx-1 \
--key test2/test_copy.txt
An error occurred (AccessDenied) when calling the CopyObject operation: Access Denied
拒否されました。
それでは、先ほど作成したディレクトリのパーミッションを777に変更した上で、同一の操作を行います。
$ sudo chmod 777 /mnt/fsxz/test2
$ ls -ld /mnt/fsxz/test2
drwxrwxrwx. 2 nobody nobody 2 Nov 10 08:21 /mnt/fsxz/test2
$ aws s3api copy-object \
--copy-source arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-fsx-1/object/test.txt \
--bucket arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-fsx-1 \
--key test2/test_copy.txt
{
"ServerSideEncryption": "aws:fsx",
"CopyObjectResult": {
"ETag": "\"5cd9f761885518d61394c57bca32a916-1\"",
"LastModified": "2025-11-10T08:30:43.540000+00:00",
"ChecksumType": "FULL_OBJECT"
}
}
問題なく受け付けられました。「アクセスポイントポリシー上で問題ないのに読み書きができない」という場合はアクセスポイントに設定したUIDとGIDが、対象ディレクトリおよびファイルへの権限を持っているか確認しましょう。
続いて、マルチバイト文字を含むアクセスポイントポリシーが正常に動作するか確認します。
テスト1/test_copy.txtというキーでオブジェクトを作成します。
$ aws s3api copy-object \
--copy-source arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-fsx-1/object/test.txt \
--bucket arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-fsx-1 \
--key テスト1/test_copy.txt
{
"ServerSideEncryption": "aws:fsx",
"CopyObjectResult": {
"ETag": "\"027e305d44e8962718d21086fe978473-1\"",
"LastModified": "2025-11-10T08:31:53.679000+00:00",
"ChecksumType": "FULL_OBJECT"
}
}
$ ls -l /mnt/fsxz
total 316
-rw-r--r--. 1 ec2-user ec2-user 254424 Nov 10 07:18 5.non-97-fsxz-s3-fsx-1_1.png
drwxrwxrwx. 2 ec2-user ec2-user 3 Nov 10 08:19 test
-rw-r--r--. 1 ec2-user ec2-user 9 Nov 10 07:30 test.txt
drwxrwxrwx. 2 nobody nobody 3 Nov 10 08:30 test2
-rw-r--r--. 1 ec2-user ec2-user 9 Nov 10 08:15 test_copy.txt
drwxr-xr-x. 3 nobody nobody 5 Nov 10 05:44 tier1
drwxrwxrwx. 4 root root 6 Nov 10 05:46 vol1
drwxrwxrwx. 2 ec2-user ec2-user 3 Nov 10 08:31 テスト1
$ ls -l /mnt/fsxz/テスト1
total 9
-rw-r--r--. 1 ec2-user ec2-user 9 Nov 10 08:31 test_copy.txt
アクセスポイントポリシーを変更して、テスト1/*の操作を拒否するようにします。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement1",
"Effect": "Deny",
"Principal": {
"AWS": "arn:aws:iam::<AWSアカウントID>:root"
},
"Action": "s3:*",
"Resource": [
"arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-fsx-1/object/tier1/tier2/*",
"arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-fsx-1/object/テスト1/*"
]
}
]
}
この状態でテスト1/*へ操作をしようとします。
$ aws s3api copy-object \
--copy-source arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-fsx-1/object/test.txt \
--bucket arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-fsx-1 \
--key テスト1/test_copy2.txt
An error occurred (AccessDenied) when calling the CopyObject operation: User: arn:aws:sts::<AWSアカウントID>:assumed-role/AmazonSSMRoleForInstancesQuickSetup/i-0e3b2df10bad6f2ac is not authorized to perform: s3:PutObject on resource: "arn:aws:s3:us-east-1:984900217833:accesspoint/non-97-fsxz-s3-fsx-1/object/テスト1/test_copy2.txt" with an explicit deny in a resource-based policy
$ aws s3api copy-object \
--copy-source arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-fsx-1/object/test.txt \
--bucket arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-fsx-1 \
--key テスト2/test_copy.txt
{
"ServerSideEncryption": "aws:fsx",
"CopyObjectResult": {
"ETag": "\"e3afeaba70ff69abe239b4d956df25c9-1\"",
"LastModified": "2025-11-10T08:33:51.658000+00:00",
"ChecksumType": "FULL_OBJECT"
}
}
$ aws s3api head-object \
--bucket arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-fsx-1 \
--key テスト1/text_copy.txt
An error occurred (403) when calling the HeadObject operation: Forbidden
$ aws s3api head-object \
--bucket arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-fsx-1 \
--key テスト2/test_copy.txt
{
"AcceptRanges": "bytes",
"LastModified": "2025-11-10T08:33:51+00:00",
"ContentLength": 9,
"ETag": "\"e3afeaba70ff69abe239b4d956df25c9-1\"",
"ContentType": "binary/octet-stream",
"ServerSideEncryption": "aws:fsx",
"Metadata": {},
"StorageClass": "FSX_OPENZFS",
"PartsCount": 0
}
はい、明示的な拒否をしていないプレフィックス配下の読み書きは行えましたが、テスト1/*の該当するオブジェクトの操作は拒否されました。
ということで仮に日本語のようにマルチバイト文字を含んでいたとしても、アクセスポイントポリシーの制御はできそうですね。
ただし、アクセスポイントポリシーの上限は20KBという制約事項があります。マルチバイト文字を使って制御する量が多いと、こちらの制限に達することもあると思います。注意しましょう。
Access point policies are limited to 20 KB in size.
Access points naming rules, restrictions, and limitations - Amazon Simple Storage Service
大容量ファイルの操作
最後に大容量ファイルの操作の挙動を確認します。
マルチパートアップロードの上限が5GBという制約事項があるため、6GBのファイルをアップロードできるかを確認します。
まず、FSxZのボリュームに6GiBのファイルをNFS経由で書き込みます。
$ sudo dd if=/dev/urandom of=/mnt/fsxz/1MB_random_pattern_block_6GiB bs=1M count=6144 iflag=fullblock
6144+0 records in
6144+0 records out
6442450944 bytes (6.4 GB, 6.0 GiB) copied, 51.8133 s, 124 MB/s
$ ls -l /mnt/fsxz/1MB_random_pattern_block_6GiB
-rw-r--r--. 1 nobody nobody 6442450944 Nov 10 08:46 /mnt/fsxz/1MB_random_pattern_block_6GiB
aws s3 cpでファイルをアップロードします。
$ aws s3 cp /mnt/fsxz/1MB_random_pattern_block_6GiB s3://arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-fsx-1/1MB_random_pattern_block_6GiB_copy
Completed 506.0 MiB/6.0 GiB (83.2 MiB/s) with 1 file(s) remaining
あともうちょっとです。
$ aws s3 cp /mnt/fsxz/1MB_random_pattern_block_6GiB s3://arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-fsx-1/1MB_random_pattern_block_6GiB_copy
Completed 6.0 GiB/6.0 GiB (71.1 MiB/s) with 1 file(s) remaining
すると、最後の最後で最大サイズを超過しているとエラーになりました。
$ aws s3 cp /mnt/fsxz/1MB_random_pattern_block_6GiB s3://arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-fsx-1/1MB_random_pattern_block_6GiB_copy
upload failed: ../../mnt/fsxz/1MB_random_pattern_block_6GiB to s3://arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-fsx-1/1MB_random_pattern_block_6GiB_copy An error occurred (EntityTooLarge) when calling the CompleteMultipartUpload operation (reached max retries: 2): Your proposed upload exceeds the maximum allowed size
確かに5GB以上のファイルはアップロードできないことが分かりました。5GB以上のファイルをアップロードしたい場合はNFS経由で行いましょう。
6GiBのファイルのダウンロードも行います。
$ aws s3 cp s3://arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-fsx-1/1MB_random_pattern_block_6GiB /mnt/fsxz/1MB_random_pattern_block_6GiB_copy
Completed 1.1 GiB/6.0 GiB (104.5 MiB/s) with 1 file(s) remaining
しばらくすると正常に完了しました。
$ aws s3 cp s3://arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-fsx-1/1MB_random_pattern_block_6GiB /mnt/fsxz/1MB_random_pattern_block_6GiB_copy
download: s3://arn:aws:s3:us-east-1:<AWSアカウントID>:accesspoint/non-97-fsxz-s3-fsx-1/1MB_random_pattern_block_6GiB to ../../mnt/fsxz/1MB_random_pattern_block_6GiB_copy
$ ls -l /mnt/fsxz
total 12574014
-rw-r--r--. 1 nobody nobody 6442450944 Nov 10 08:46 1MB_random_pattern_block_6GiB
-rw-rw-r--. 1 ec2-user ec2-user 6442450944 Nov 10 08:46 1MB_random_pattern_block_6GiB_copy
-rw-r--r--. 1 ec2-user ec2-user 254424 Nov 10 07:18 5.non-97-fsxz-s3-fsx-1_1.png
drwxrwxrwx. 2 ec2-user ec2-user 3 Nov 10 08:19 test
-rw-r--r--. 1 ec2-user ec2-user 9 Nov 10 07:30 test.txt
drwxrwxrwx. 2 nobody nobody 3 Nov 10 08:30 test2
-rw-r--r--. 1 ec2-user ec2-user 9 Nov 10 08:15 test_copy.txt
drwxr-xr-x. 3 nobody nobody 5 Nov 10 05:44 tier1
drwxrwxrwx. 4 root root 6 Nov 10 05:46 vol1
drwxrwxrwx. 2 ec2-user ec2-user 3 Nov 10 08:31 テスト1
drwxrwxrwx. 2 ec2-user ec2-user 3 Nov 10 08:33 テスト2
$ date
Mon Nov 10 08:57:26 UTC 2025
良い感じですね。
ちなみに、こちらの検証をしていた際のCloudWatchメトリクスは以下のとおりです。


S3 APIを介したファイルの読み書きに合わせて各種スループットやIOPSが激しく動いていることが分かります。
データの移動なしにS3 APIの口が必要なサービスと連携する必要な場合に
Amazon FSx for OpenZFSでS3アクセスポイントがサポートされ、ファイルシステム内に保存されたデータにS3 APIでアクセスできるようになったアップデートを紹介しました。
データの移動なしにS3 APIの口が必要なサービスと連携したい場合は必須です。個人的には早くAmazon FSx for NetApp ONTAPにも来てほしいですね。
この記事が誰かの助けになれば幸いです。
以上、クラウド事業本部 コンサルティング部の のんピ(@non____97)でした!









