亚马逊AWS官方博客
推出 S3 Files:使 S3 存储桶能够以文件系统形式直接访问
我非常高兴地宣布,Amazon S3 Files 正式推出。这是一款全新的文件系统,能够将任意 AWS 计算资源与 Amazon Simple Storage Service(Amazon S3)无缝连接。
十多年前,我作为 AWS 培训师,曾花费大量时间讲解对象存储与文件系统的根本区别。我最喜欢的类比是:将 S3 对象比作图书馆里的书(不能只改一页,必须替换整本书),而电脑上的文件可以逐页修改。我画过图、打过各种比方,并帮助客户理解为什么不同工作负载需要不同的存储类型。而今天,这两者的界限变得更加灵活。
借助 S3 Files,Amazon S3 成为全球首个、也是唯一一个提供功能齐全的高性能文件系统访问能力的云对象存储服务。它使您的存储桶能够直接作为文件系统进行访问。这意味着对文件系统上数据的更改会自动反映到 S3 存储桶中,并且您可以对同步行为进行精细控制。S3 Files 可同时附加到多个计算资源,从而实现集群间无重复数据共享。
在此之前,您必须在 Amazon S3 的低成本、持久性、可以原生使用其数据的服务或文件系统的交互功能之间做出选择。S3 Files 消除了这一取舍难题。S3 可以成为组织所有数据的统一中枢。可以从任意 AWS 计算实例、容器或函数访问该服务,用于运行生产应用程序、训练机器学习模型或构建代理式人工智能系统。
您可以在 Amazon Elastic Compute Cloud(Amazon EC2)实例、在 Amazon Elastic Container Service(Amazon ECS)或 Amazon Elastic Kubernetes Service(Amazon EKS)容器上运行的容器或 AWS Lambda 函数中,将任意通用型 S3 存储桶作为原生文件系统访问。该文件系统会将 S3 对象显示为文件和目录,支持所有 Network File System(NFS)v4.1+ 操作,包括创建、读取、修改和删除文件。
当您通过文件系统处理特定文件和目录时,相关的元数据和内容会置于文件系统的高性能存储中。默认情况下,受益于低延迟访问的文件在高性能存储中存储和提供。对于未存储在高性能存储中的文件(例如需要大量顺序读取的文件),S3 Files 会直接从 Amazon S3 读取,以最大程度地提高吞吐量。对于字节范围读取,只会传输请求的数据(字节),从而最大程度地减少数据移动并降低成本。
该系统还支持智能预取,以预测您的数据访问需求。您还可以精细控制将哪些内容放入高性能存储。您可以决定是加载完整文件数据,还是仅加载元数据,这意味着您可以根据自身的特定访问模式进行优化。
在底层,S3 Files 采用 Amazon Elastic File System(Amazon EFS),活跃数据延迟约为 1 毫秒。该文件系统支持多个计算资源并行访问,并提供 NFS 关闭-打开一致性,非常适合需要交互式、共享式、可修改数据的工作负载,例如代理式人工智能代理通过文件工具协作、机器学习训练管道处理数据集等场景。
下面我将演示如何开始使用该系统。
创建我的第一个 Amazon S3 文件系统,可以直接从 EC2 实例安装和使用该系统。
我已准备好一个 EC2 实例和一个通用存储桶。在本演示中,我将使用常规文件系统命令配置 S3 文件系统并从 EC2 实例访问存储桶。
在本演示中,我将使用 AWS 管理控制台。您也可以使用 AWS 命令行界面(AWS CLI)或基础设施即代码(IaC)。
这是此演示的架构图。
在控制台的 Amazon S3 部分,我选择文件系统,然后选择创建文件系统。
我输入要作为文件系统公开的存储桶的名称,然后选择创建文件系统。
第 2 步:发现挂载目标。
挂载目标是虚拟私有云(VPC)内的网络端点,用于 EC2 访问 S3 文件系统。
控制台会自动创建挂载目标。我记下了挂载目标选项卡上的挂载目标 ID。
使用 CLI 时,需要两个单独的命令来创建文件系统及其挂载目标。我先使用 create-file-system 创建 S3 文件系统。然后使用 create-mount target 创建挂载目标。
第 3 步:在我的 EC2 实例上挂载文件系统。
在文件系统连接到 EC2 实例后,我键入:
sudo mkdir /home/ec2-user/s3files sudo mount -t s3files fs-0aa860d05df9afdfe:/ /home/ec2-user/s3files
现在就可以使用标准文件操作,直接通过 ~/s3files 中的挂载文件系统来处理 S3 数据。
当我对文件系统中的文件进行更新时,S3 会自动管理所有更新,并在几分钟内将现有对象上的所有更新作为新对象或新版本导出到 S3 存储桶中。
对 S3 存储桶上的对象所做的更改会在几秒钟内显示在文件系统中,但有时可能需要一分钟或更长时间。
# Create a file on the EC2 file system
echo "Hello S3 Files" > s3files/hello.txt
# and verify it's here
ls -al s3files/hello.txt
-rw-r--r--.1 ec2-user ec2-user 15 Oct 22 13:03 s3files/hello.txt
# See? the file is also on S3
aws s3 ls s3://s3files-aws-news-blog/hello.txt
2025-10-22 13:04:04 15 hello.txt
# And the content is identical!
aws s3 cp s3://s3files-aws-news-blog/hello.txt . && cat hello.txt
Hello S3 Files
注意事项
接下来,我将分享一些重要的技术细节,我认为这些细节会对您有用。
- S3 Files 与 AWS Identity and Access Management(IAM)集成,以进行访问控制和加密。您可以使用身份资源和资源策略,在文件系统级别和对象级别管理权限。
- 数据在传输过程中始终使用 TLS 1.3 加密,静态数据默认使用 Amazon S3 托管密钥(SSE‑S3)加密,也支持通过 AWS Key Management Service(AWS KMS)使用客户自主管理型密钥。
- S3 Files 对文件和目录采用 POSIX 权限,并且会根据作为对象元数据存储在 S3 存储桶中的文件权限来检查用户 ID(UID)和组 ID(GID)。
- 您可以通过 Amazon CloudWatch 指标监控 S3 Files 的驱动器性能和更新,并通过 AWS CloudTrail 来记录管理事件。
- 验证您的 EC2 实例上是否安装了最新版本的 EFS 驱动程序(amazon-efs-utils package)。该软件包已预安装在 AWS 提供的亚马逊机器映像(AMI)上。在撰写本文时,您可以将其更新到最新版本。
- 在这篇文章中,我演示了如何在 EC2 实例上使用 S3 Files。您也可以在 ECS 或 EKS 容器(无论是否基于 AWS Fargate)以及 Lambda 函数中将 S3 存储桶挂载为文件系统。
在与客户交流时,我经常被问到另一个问题是:如何为自己的工作负载选择合适的文件服务。我知道您在想什么:AWS 及其看似功能重叠的服务总是需要云架构师在评审会议上反复推敲。下面我就帮大家把这件事讲清楚。
S3 Files 最适合需要通过高性能文件系统接口,对存储在 Amazon S3 中的数据进行交互式、共享访问的场景。对于多种计算资源(包括生产应用程序、使用 Python 库与 CLI 工具的代理式人工智能代理,或机器学习(ML)训练管道)需要协同读写、修改数据的工作负载,它是理想选择。您可以在计算集群间实现无数据冗余的共享访问,实现亚毫秒级延迟,并与 S3 存储桶自动保持同步。
对于从本地 NAS 环境迁移的工作负载,Amazon FSx 能够提供您需要的熟悉功能和兼容性。Amazon FSx 也非常适合使用适用于 Lustre 的 Amazon FSx 的高性能计算(HPC)和 GPU 集群存储。如果您的应用程序需要适用于 NetApp ONTAP 的 Amazon FSx、适用于 OpenZFS 的 Amazon FSx 或适用于 Windows File Server 的 Amazon FSx 的特定文件系统功能,该服务尤其适用。
定价和可用性
S3 Files 现已在所有商业 AWS 区域中推出。
您需要为存储在 S3 文件系统中的数据部分、文件系统上的小文件读取和所有写入操作,以及文件系统与 S3 存储桶之间数据同步期间产生的 S3 请求付费。Amazon S3 定价页面包含所有详细信息。
根据与客户的交流,我相信 S3 Files 可以通过消除数据孤岛、复杂的同步工作以及对象和文件之间的手动数据移动来帮助简化云架构。无论您是运行已经可用于文件系统的生产工具,构建依赖于基于文件的 Python 库和 shell 脚本的代理式人工智能系统,还是为机器学习训练准备数据集,S3 Files 都能让这类交互式、共享式、层级化的工作负载直接访问 S3 数据,不必再在 S3 的高持久性、低成本优势与文件系统的交互能力之间做取舍。现在,您可以将 Amazon S3 作为组织所有数据的统一存储平台,并且可以从任意 AWS 计算实例、容器和函数中直接访问数据。
要了解更多信息并开始使用,请访问 S3 Files 文档。
非常期待了解您将如何使用这项新功能。欢迎在下方评论区分享您的反馈。



