異なる OS のサーバ間で同一 S3 バケットを参照する方法を教えてください

2023.12.22

困っていること

異なる OS のサーバ間で同一 S3 バケットを参照したいと考えています。

  • Linux NFS タイプ
  • Windows SMB タイプ

実現可能な AWS サービスや方法があれば教えてください。

どう対応すればいいの?

現時点で考えられる方法としましては、以下がございます。

  • S3 Storage Gateway
  • FSx for NetApp ONTAP
  • REST API を使用した HTTPS による通信での S3 バケット参照

S3 Storage Gateway

Storage Gateway を使用する場合、複数のファイル共有が連携する S3 バケットのプレフィックスが異なっていれば、同一バケットに SMB と NFS を共存させることは可能です。 以下のような例では実現が可能です。

  • NFS(Linux)共有: s3://bucket_name/NFS/
  • SMB(Windows)共有: s3://bucket_name/SMB/

一方で、同じプレフィックスを持つオブジェクトを SMB と NFS の両方から操作するといったご要件の場合には、実現することは叶いません。

参考資料 (P25)

ファイルのメタデータは、S3 オブジェクトメタデータに保存するため、同じ S3 バケットに NFS と SMB のファイル共有を設定することはできない

FSx for NetApp ONTAP

同じデータへのマルチプロトコルアクセス (NFS と SMB の同時アクセス) がサポートされている AWS サービスとしましては、FSx for NetApp ONTAP が考えられます。弊社ブログなどもご参考に、ご要件を満たせるかご確認ください。

REST API を使用した HTTPS による通信での S3 バケット参照

代替案ではあるものの、AWS CLIAWS SDK など REST API を使用した HTTPS 通信での S3 バケット参照をご検討ください。 REST API であれば、異なる OS のサーバー間で同一 S3 バケットを参照することが可能なので、ご検討ください。

補足

AWS におけるファイルストレージサービスの選び方について記載している、以下 AWS ブログをご参照されることもお勧めします。

AWS のファイルストレージサービスは、Amazon Elastic File System(EFS)や、Amazon FSx for Windows File Server、Amazon FSx for NetApp ONTAP、Amazon FSx for OpenZFS などの複数のサービスが利用できます。

現在利用しているファイル共有サーバや NAS を AWS に移行することを検討されている方々にとって、これらの AWS ファイルストレージサービスの中から、どのサービスを選択すればいいかお悩みではないでしょうか。この記事では、どのように AWS のファイルストレージサービスを選択すればいいかについて、参考となる考え方を説明します。

参考資料