# Amazon S3 Files で、S3 バケットがそのままファイルシステムに！

こんにちは、しぃちゃんだよ！今日は S3 が「ファイルシステム」になっちゃう、なんだかワクワクする発表を紹介するね。

## なにが発表されたの？

[AWS の Blog](https://aws.amazon.com/s3/features/files/) で、**Amazon S3 Files** が登場したよ。これは S3 バケットを NFS v4.1+ のファイルシステムとしてマウントできる新機能なの。Amazon EC2 / Amazon ECS / Amazon EKS / AWS Lambda から、S3 のオブジェクトを普通のファイルやディレクトリみたいに読み書きできちゃうんだって。

## 今までどうだったの？

これまで S3 はオブジェクトストレージで、`GetObject` や `PutObject` みたいな API 経由でアクセスするのが基本だったの。だから「ファイルをパスで開いて読み書きする」前提の既存ツールやアプリは、そのままだと S3 に直接つなげなかったんだよね。データをいったんローカルにコピーして…っていう手間がついて回ってた。

## これで何が変わるの？

S3 Files をマウントすれば、`ls` や `cat`、`mkdir` みたいないつものファイルコマンドで S3 のデータをそのまま扱えるようになるの！しかもクラスタ間でデータを複製せずに共有できるし、ファイルシステムと S3 バケットは自動で同期されるんだって(書き込みは数分、読み込みは数秒で反映)。アクティブなデータには約 1ms のレイテンシで、キャッシュもよしなに効かせてくれるよ。

## 深く潜ってみよう

裏側では [Amazon EFS](https://aws.amazon.com/efs) を高性能なストレージバックエンドとして使っていて、アクセスパターンを見越した先読み(プリフェッチ)や、メタデータだけ/ファイル全体のキャッシュを細かく制御できるようになってるの。バイト範囲読み込みで、転送量とコストを抑える工夫もあるよ。一貫性は NFS の close-to-open モデルだから、複数から同時にアクセスしても扱いやすいね。

セキュリティ面もしっかりで、アクセス制御は IAM、通信は TLS 1.3、保存時は SSE-S3 か自分の KMS キーで暗号化できるの。POSIX のパーミッションをオブジェクトのメタデータに対してチェックしてくれるのもポイント。ファイルシステムとオブジェクトの両レベルでの権限管理は [はじめかたガイド](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-files-getting-started.html) が詳しいよ。監視は Amazon CloudWatch のメトリクスと、管理イベント用の AWS CloudTrail で見られるんだって。

使い方はシンプルで、S3 コンソールの File systems から Create file system を選んでバケット名を入れるだけ。あとはマウントターゲットの ID を確認して、EC2 でこんな感じにマウントするよ。

```
sudo mount -t s3files fs-xxxxxxxx:/ /mnt/s3files
```

提供は全商用 AWS リージョン。料金はデータストレージ分・小さいファイルの読み込み・すべての書き込み・同期時の S3 リクエストにかかるみたい。詳しい金額は [S3 の料金ページ](https://aws.amazon.com/s3/pricing/) を見てね。もっと知りたい人は [S3 Files のドキュメント](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-files.html) もチェック！

## まとめ

- **Amazon S3 Files** で、S3 バケットを NFS v4.1+ のファイルシステムとしてマウントできるようになったよ
- EC2 / ECS / EKS / Lambda から、普通のファイルコマンドで S3 のデータを読み書きできる
- 裏側は Amazon EFS で、先読み・キャッシュ制御・バイト範囲読み込みでコストと速度を両立
- IAM・TLS 1.3・SSE-S3 / KMS でセキュリティも安心、全商用リージョンで利用可能
- 「S3 に貯めたデータを、既存のファイルベースのアプリやワークロードからそのまま触りたい」人にぴったりの発表だね！
