Amazon S3 Files:オブジェクト対ファイルの戦いの終わり(そしてAIエージェント時代において重要な理由)

Dev.to / 2026/4/11

📰 ニュースDeveloper Stack & InfrastructureSignals & Early TrendsIdeas & Deep Analysis

要点

  • Amazonは2026年4月7日にS3 Filesをローンチし、S3に保存されたデータをオブジェクトストアから移動することなく、高性能なファイルシステム風のアクセスを可能にしました。
  • この更新は、オブジェクトストレージのセマンティクス(不変のブロブ)と、従来のファイルシステムのワークフロー(編集可能、階層的、バイト単位でアドレス可能なファイル)の間に長年存在していた不整合に対処します。
  • この記事では、S3 Files以前はチームがデータをEFS/EBSに複製することで対応するのが一般的だったほか、S3↔ファイルの同期用パイプラインを独自に構築したり、ファイルベースのツールを動かすための特別なラッパーを用意したりしていたと説明しています。これらはいずれも、コスト、レイテンシー、または運用上の脆さを招いていました。
  • 著者は、この変化は特にAIエージェントやMLパイプラインを構築する人々にとって重要だと主張しています。というのも、エージェントは大規模データセットやデータレイクに対して、反復的にファイルのようなやり取りを行う必要性がますます高まっているためです。
  • ステージングや同期の手間を不要にすることで、S3 Filesはパラダイムシフトとして位置付けられ、アーキテクチャを簡素化しつつ、同期エラーや複製に伴うセキュリティ/コスト境界の重複を減らせる可能性があるとされています。


AWSは、クラウド・インフラにおける最も根深い不満の1つを、ひっそりと解決してしまいました。これまで10年以上、エンジニアは、ハックじみた同期スクリプトを書かされ、冗長なデータのコピーを維持し、複雑なステージング用パイプラインを構築することを強いられてきました。

2026年4月7日、AmazonはS3 Filesをローンチしました。S3からデータを移動することなく、データに対してフルかつ高性能なファイルシステムアクセスを提供する、初のクラウド・オブジェクトストレージです。

これは単なる小さな調整ではありません。パラダイムの転換です。そして、AWS上でAIエージェント、MLパイプライン、データレイクを構築しているなら、「何が変わったのか」を理解する必要があります。

The Problem: Two Worlds That Never Talked

S3 Filesがなぜ重要なのかを理解するには、この20年にわたってクラウド・ストレージを規定してきた、根本的な分断を理解する必要があります。

Object Storage (S3) vs. File Systems

オブジェクトストレージ(S3のようなもの)は、データを原子的で不変の「ブロブ」として扱います。たとえば、ページを編集できない図書館の本だと思ってください。何かを変えるには、まるごと1冊を置き換える必要があります。S3が素晴らしいのはまさにここです。ほぼ無制限のスケール、耐久性は11ナイン、保管コストは驚くほど安く、さらに多数のAWSサービスからネイティブにアクセスできます。

ファイルシステム(EFSやEBSのようなもの)は、編集可能で階層的、アドレス指定可能なコンテンツとしてデータを扱います。ファイルを開いて、バイト4096へシークし、512バイトを書き換えて、閉じることができます。これは、事実上すべてのソフトウェア、あらゆるUnixツール、あらゆるプログラミング言語、あらゆるデータサイエンス・ライブラリが構築されてきたモデルです。

この2つのモデルは、プロトコルのレベルで深く互換性がありません。grepでS3バケットを検索することはできません。S3上のログファイルをtail -fすることもできません。専用のラッパーライブラリを使うか、先にファイルをダウンロードしない限り、pandas.read_csv()をS3に対して直接実行することはできません。

The Old Workarounds And Why They Broke

S3 Filesの前は、エンジニアはこの問題を次の4つのつらい方法で何とかしていました:

1. データの複製
S3データをEFSボリュームやEBSマウントにコピーします。これでファイルベースのツールは動くようになりますが、データのコピーが2つになり、コストも2倍、セキュリティ境界も2つ、そして同期の問題は、どちらか一方が変わった瞬間に発生します。

2. カスタム同期パイプライン
パイプライン(多くの場合AWS DataSync、rsyncジョブ、またはLambda関数)を構築し、S3とファイルシステムの間で定期的にデータをプッシュします。これはレイテンシ、運用の複雑さを増やし、2つのストアが同期からズレるとバグの頻出原因になりがちです。

3. SDKラッパー
s3fsboto3fsspecのようなライブラリを使い、S3 APIの上にファイルシステムのインターフェースを疑似的に提供します。これは動きますが、遅く、真のファイルセマンティクス(ロック、原子的な追記、ディレクトリのリネーム)をサポートせず、さらにすべてのアプリケーションでコード変更が必要になります。

4. 制約を受け入れる
多くのチームは、オブジェクトモデルに合わせてシステムを設計してしまいます。データアクセスパターンを全面的に組み替え、既存ツールを諦め、アプリケーションを書き直してS3 APIを直接使うようにします。高コストで壊れやすく、ロックインを生みます。

これら4つの回避策はすべて共通の問題を抱えています。S3の経済性とファイルシステムの使いやすさのどちらかを選ばせてしまうことです。両方を手に入れることはできませんでした。

The Solution: S3 Files

S3 Filesは、このトレードオフを完全に解消します。

内部ではAmazon EFS上に構築されており、S3 FilesはS3バケットの同期されたファイルシステムビューを作成します。これをマウントすると、EC2インスタンス、ECSコンテナ、EKSポッド、またはLambda関数からは通常のファイルシステムとして見えます。標準的なUnixコマンドが使えます。既存のアプリケーションも動きます。コード変更は不要です。

ただし重要なのは、データはS3から一切出ていかないという点です。これはコピーではなく、ファイルシステム上の「見え方(ビュー)」です。

How It Works

S3ファイルシステムを作成すると:

  1. マウントターゲットの作成 S3 Filesは、VPC内にネットワークエンドポイント(マウントターゲット)を作成し、EFSによりバックアップされます。
  2. メタデータ同期 ディレクトリに最初にアクセスすると、S3 FilesがS3からオブジェクトメタデータを取り込み、同期されたディレクトリビューを構築します。
  3. インテリジェントなデータ提供 128KB未満のファイルは、高性能なEFSストレージへ取り込まれて、低レイテンシなアクセスを実現します。より大きなファイル(連続した読み取りのストリーミングに適したもの)は、最大スループットを得るためにS3から直接提供されます。
  4. 双方向同期 ファイルシステム経由で行う変更(ファイルの作成、編集、削除)は、自動的にS3へ反映されます。オブジェクトは常に最新です。

その結果:lscatgrepsedcpmvを実行してファイルを編集でき、その下にあるS3オブジェクトは、あらゆる操作をリアルタイムに反映します。

Key Technical Specs

機能 詳細
プロトコル NFS v4.1+
計算ターゲット EC2、ECS、EKS(Fargateを含む)、Lambda
同時接続 同時に数千
読み取りスループット 複数TB/sの集計
キャッシュ 自動のホットデータキャッシュ
権限 POSIX(UID/GIDをS3オブジェクトのメタデータとして保存)
暗号化 転送中はTLS 1.3、保管中はSSE-S3またはKMS
移行が必要 不要 — 既存バケットで動作
可用性 34のAWSリージョンでGA

Why This Is a Big Deal for the AI Agent Era

私たちは、単発のターンごとのAIインタラクションから、複数のAIモデル、ツール、ワーカーが非同期に協力して長期的なタスクを完了させるエージェント型AIシステムのパイプラインへの移行の真っただ中にいます。

これらのシステムは、従来のアプリケーションとは根本的に異なるストレージ要件を持っています。そして、S3のオブジェクトモデルが、その最大の摩擦ポイントの1つであることは、静かに見過ごされていました。

Problem 1: Agents Need Shared, Mutable State

AIエージェントのパイプラインは、たとえば次のようになります:

Document Ingestion Agent → Chunking Agent → Embedding Agent → Retrieval Agent → Answer Agent

各ステージは、前のステージが書いた内容を読み取り、必要に応じてそれを変更し、次へ引き渡す必要があります。ファイルシステムの世界では、これは些細なことです。誰もが同じディレクトリを読み書きするだけです。S3のオブジェクトの世界では、これには事前署名URL、慎重なキー命名規則、ポーリングループ、そしてカスタムの調整ロジックが必要になります。

S3 Filesの解決策:すべてのエージェントが、ファイルシステムとして同じS3バケットをマウントします。ステージの出力はファイルです。次のステージは、それをファイルとして読み取ります。標準的なUnixのセマンティクスが協調を処理します。独自のつなぎ込みコードは不要です。

Problem 2: AI Agents Use File-Based Tools Natively

現代のAIコーディングエージェント(Claude Code、Copilot、Cursorのようなもの)は、シェルツールgrepfindawkdiffgitを中心に作られています。エージェントがデータを扱う必要があるとき、学習データがそれで飽和しているからこそ、本能的にこれらのツールに手を伸ばします。

S3ファイルが登場する前は、エージェントにS3データを扱わせるには、boto3のスキルを与え、オブジェクトキーのパターンを教え、ラッパーのツール群を書く必要がありました。これは摩擦であり、レイテンシーの原因となり、エラーの発生面積も広げます。

S3 Filesソリューション: エージェントがS3バケットをマウントします。これで自然な環境で動作できるようになります。grep -r "pattern" /mnt/s3data/ がそのまま機能します。

問題3:共有ファイルシステムなしではマルチエージェントのメモリがステートレスになる

長時間稼働するマルチエージェントシステムには、永続的なメモリが必要です。エージェント呼び出しをまたいでも残る、中間結果、チェックポイント、そして推論のトレースを書き込む能力です。S3の最終的整合性モデルとイミュータブル(不変)オブジェクトでは、この種の細粒度の可変状態を保つことは脆く、壊れやすいものでした。

S3 Filesソリューション: エージェントはメモリファイルを書き込み、ログに追記し、状態JSONファイルをローカルディスク上で行うのとまったく同じように更新します。ファイルシステムが整合性を処理します。

利用例:S3 Filesが強い場面(そして慎重に考えるべき場面)

強い適合ユースケース

1. マルチエージェントAIパイプライン
シナリオ: ドキュメント処理パイプライン。取り込みエージェントがドキュメントをダウンロードし、パースエージェントがテキストを抽出し、エンリッチメントエージェントがメタデータを追加し、インデックス作成エージェントが検索インデックスを構築します。

S3 Filesが勝つ理由: すべてのエージェントが、1つのマウントされたボリュームを共有します。データ受け渡しのためのエージェント間メッセージングキューは不要です。ステージNの出力ファイルは、すぐにステージN+1から読み取れます。各エージェントが何をしたかの監査ログは、単にログファイルとして追記されるだけです。

2. ML学習データの準備
シナリオ: データサイエンスチームが、学習ジョブに投入する前に、S3に保存された5TBの画像データセットをクリーンアップし、正規化し、拡張(オーグメント)する必要があります。

S3 Filesが勝つ理由: データサイエンティストは、マウントされたバケットに対してrsyncfind、Pythonスクリプト、ffmpegを直接使えます。まずEBSへステージングする必要がありません。クリーンなデータセットは、コピー手順なしでSageMakerの学習ジョブのためにS3ですぐ利用可能になります。

3. クラウドへのレガシーアプリケーション移行
シナリオ: 設定ファイルを読み取り、ログファイルを書き込み、ローカルファイルシステムからドキュメントを処理するオンプレミスのアプリケーションを、AWSへ移す必要があります。

S3 Filesが勝つ理由: コード変更ゼロ。アプリケーションがローカルファイルシステムとして期待する場所にS3バケットをマウントするだけです。アプリケーションはS3と通信していることを認識しません。

4. 共用アナリティクスのワークロード
シナリオ: 200台のEC2スポットインスタンスが並行してデータ処理ジョブを実行し、すべてがS3上の同じ生データレイクを読み取る必要があります。さらに、結果を共有する出力プレフィックスへ書き込む必要があります。

S3 Filesが勝つ理由: 200台すべてのインスタンスが同じS3ファイルシステムをマウントします。読み取りスループットは複数TB/sへスケールします。結果は集約のステップなしで、直接S3へ書き込まれます。

5. AIエージェントのメモリとチェックポイント

シナリオ: 長時間稼働する研究用エージェント(数時間または数日間)が、推論チェーンを永続化し、中間の発見を保存し、途中で中断された場合はチェックポイントから再開する必要があります。

S3 Filesが勝つ理由: エージェントはマウントされたパスへ書き込みます。チェックポイントは通常のファイルです。再開は、それらのファイルを読み直すだけです。メモリは耐久性があり(S3により支えられている)、しかも安価です。

6. 複数チーム間でのデータ協業

シナリオ: データエンジニアリング、ML、アナリティクスの各チームがすべて同じ生データを扱いますが、使うツールは異なります(Spark、PyTorch DataLoader、そしてSQLエンジンなど)。

S3 Filesが勝つ理由: 1つのS3バケットを、ファイルベースのツールからはファイルシステム経由で、Athena、EMR、SageMakerのようなサービスからはS3 API経由で同時に利用できます。データサイロはありません。

トレードオフの考慮点:もう一度考えるべきタイミング

S3 Filesは、すべてのワークロードに対して常に正解というわけではありません。慎重に考えるべきポイントは以下です:

1. 大きなファイルに対する高頻度のランダム書き込み
S3の基盤となる経済性とアーキテクチャは、大きな連続読み取り向けに最適化されています。細粒度のランダム書き込みには向いていません。もし、トランザクション型データベースがWALを書き込むように、大きなファイルの小さなバイト範囲を常に変更するようなワークロードがあるなら、S3 Filesは専用のEBSでは得られない遅延を導入する可能性があります。データベースのワークロードでは、EBSが依然として適切な選択です。

2. 厳密なPOSIXロックのセマンティクス
アプリケーションが、調整のためのflock()のアドバイザリロック、またはPOSIXのバイト範囲ロックに依存している場合は、慎重にテストしてください。NFSベースのファイルシステム(EFSが裏で提供するもの)は、分散ロックに関する制限がよく知られています。強いロック保証が必要なら、慎重に評価してください。

3. サブミリ秒のレイテンシ要件
S3 Filesは速いですが、「速い」とはここではマイクロ秒ではなくミリ秒の意味です。ストレージアクセス時間がクリティカルパスに入るようなレイテンシ重視のシステムを構築していて、サブミリ秒の応答が必要なら、Provisioned IOPS付きのEBSが依然として正しい手段です。S3 Filesは極端なレイテンシではなく、スループットとスケーラビリティ向けに最適化されています。

4. ホットデータに対するスケール時のコスト
EFSの料金(S3 Filesの土台になっている)は、コールドな生S3ストレージのGBあたり単価より高くなります。数ペタバイト規模でめったにアクセスされないアーカイブデータがあり、その上にファイルシステムレイヤを追加する場合は、コストを慎重に見積もってください。ファイルシステム経由で低頻度にアクセスするコールド/アーカイブデータであれば、追加のEFSコストが正当化されない可能性があります。本物のアーカイブには、S3 Glacierが引き続き適切です。

5. 同じファイルへの読み取りと書き込みが混在する並行性
S3 Filesは双方向の同期を提供しますが、厳密な書き込み同士の競合セマンティクスを持つ分散ファイルシステムではありません。同じファイルを複数の書き手が同時に変更している場合は、ローカルファイルシステムのように振る舞うと決めつける前に、整合性モデルを理解してください。最も明快なパターンは「単一書き手・複数読み手」です。

クイックスタート:10分で動かす

# 手順1:S3ファイルシステムを作成(コンソールまたはCLI)
aws s3 create-file-system \
  --bucket my-data-bucket \
  --file-system-name my-s3-fs

# 手順2:VPC内にマウントターゲットを作成
# (コンソールで実施:S3 → ファイルシステム → あなたのFS → マウントターゲットを作成)

# 手順3:EC2インスタンスにEFSユーティリティをインストール
sudo apt-get install -y amazon-efs-utils   # Ubuntu
# または
sudo yum install -y amazon-efs-utils       # Amazon Linux

# 手順4:ファイルシステムをマウント
sudo mkdir /mnt/s3data
sudo mount -t efs -o tls fs-XXXXXXXX:/ /mnt/s3data

# 手順5:ローカルディレクトリと同じように使う
ls /mnt/s3data/
grep -r "search_term" /mnt/s3data/logs/
cp /local/file.csv /mnt/s3data/uploads/

コンテナ(EKS)では、S3ファイルシステムIDを永続ボリュームクレームとして指定してEFS CSIドライバを使用します。Lambdaでは、EFSファイルシステムを関数の設定内のマウントポイントとして追加します。

全体像:S3がユニバーサルなデータハブになる

AWSは、組織のあらゆるデータの単一の真実の情報源としてS3を確立するため、静かに、しかし着実に取り組んできました。S3 TablesはIcebergテーブルのサポートを追加しました。S3 Vectorsは、AI埋め込みのためのネイティブなベクターストレージを追加しました。S3 Filesはファイルシステムへのアクセスを追加します。

パターンは明確です。S3が、単なるオブジェクトストレージから、あらゆる種類のデータ処理を同じバケットから重複や移動なしで提供できるユニバーサルなデータプラットフォームへと変貌しつつあるのです。これにより、構造化、半構造化、非構造化、ベクター、そしてファイルベースのワークロードに対応できます。

AIエージェントのアーキテクチャにおいて、これは非常に大きな意味を持ちます。エージェントは今や次のことができます。

  • 生のドキュメントをS3オブジェクトとして保存する
  • テキスト処理のためにファイルシステム経由でそれらにアクセスする
  • S3 TablesとAthenaを通じて構造化されたメタデータをクエリする
  • S3 Vectorsでセマンティック埋め込みを検索する
  • 結果をファイルとして書き込み、それが自動的にS3オブジェクトになる

1つのバケット。1つのセキュリティ境界。1つの請求。あなたのデータも、あなたのアクセスパターンもすべて。

それが、AWSがこれから目指している未来です。S3 Filesは、そのパズルの中でも最も重要なピースの1つです。

結論

オブジェクト対ファイルの分断は、計算の根本的な法則ではありませんでした。それは20年前に行われた技術的な妥協が、やがて建築上のドグマとして固まってしまっただけです。S3 Filesは、その妥協を崩しながら、S3が素晴らしい理由を壊しません。

AIエージェント、MLパイプライン、またはファイルベースのツールがS3データと並行して動く必要があるあらゆるシステムを構築しているなら、今日からS3 Filesを評価すべきです。移行コストはゼロ、コード変更もゼロ。現在34のリージョンで利用可能です。

最高のインフラは目に見えません。S3 Filesは、最善の形であなたのストレージを見えなくします。つまり、どこで計算しているかに関係なく、どんな形式でツールが期待しているかに関係なく、とにかく“そのまま動く”のです。

S3 Filesについて質問がある、またはどのように使っているかを共有したいですか?下にコメントするか、LinkedInで私とつながってください。