2023-01-12 · 5

AWS EFS(Elastic File System)

cloudaws

这篇文章发布已超过两年,内容可能已过时。

什么是 AWS EFS?

EFS(Elastic File System)是一项在 AWS 云服务和本地(on-premise)资源上都能使用的服务,提供简单、可扩展且弹性的文件存储。

EFS 是面向 Linux 实例的高扩展、高共享文件存储:通过挂载到 EC2 Linux 实例的 Network File System(NFS),可以在 VPC 内访问所需文件,也可以访问通过 AWS Direct Connect 连接的本地服务器上的文件。

AWS EFS 的特点

可用性

  • 在 VPC 内创建,EC2 通过文件系统接口访问。
  • 可从多个可用区访问。
  • 数据冗余存储在多个可用区,即使一个可用区损毁,也能从其他 AZ 继续提供服务。
  • 与 EBS 不同,EFS 支持多 AZ(availability zone),且走网络,因此由安全组控制。

扩展

  • 可供数千台 EC2 同时访问,并随文件的增删弹性地自动扩缩(Auto Scaling),也就是说无需提前预配容量。
  • 可扩展至 PB 级数据。
  • 最多可创建 1,000 个文件系统。

存储类

EFS 和 S3 一样有存储类。

  • Standard Class:用于存放经常访问的文件的类
  • Infrequent Access(IA)Class:用于存放保存期长但不常访问的文件的类

生命周期管理

  • 通过 lifecycle,可将不常访问的文件自动移到 EFS IA(Infrequently Accessed),以更低成本使用。

性能模式 / 吞吐模式

  • 吞吐模式方面,大多数文件系统推荐 Bursting Mode,但吞吐量大时推荐 Provisioned Mode。
  • 性能模式方面,访问的 EC2 非常多时建议使用 MAX I/O mode,其余情况推荐 General Mode。

文件挂载

  • 可通过 EFS DNS 名称挂载,供多个实例同时使用。
  • 和块存储一样,文件存储挂载后即可像本地文件系统一样使用。
  • 借助 EFS,可用 AWS DataSync 从现有文件系统传输文件。

文件备份选项

  • DataSync
    • DataSync 在本地存储与 AWS EFS 文件系统之间保持常连接,帮助你在两者间轻松移动数据。
    • DataSync 可用于定期导入/导出大量数据、一次性数据迁移,或数据复制与恢复。
    • 跨区域传输也可以使用 AWS DataSync。
  • AWS Transfer Family
    • 支持 SFTP、FTPS、FTP 的全托管文件传输服务。
    • 可实现 AWS EFS 内外的文件传输。
    • AWS Transfer Family 端点必须与 EFS 文件系统位于同一区域。
  • AWS Backup
    • 自动化并跟踪 AWS EFS 的备份策略与计划。
  • EFS to EFS backup
    • 自动创建 EFS 文件的增量备份

文件系统策略

  • 应用于所有使用 EFS 的 NFS 客户端的 IAM 资源策略。
  • 可设置传输中加密、禁用 root 访问、只读访问等。

VPC & EC2 & EFS 实操

创建 EFS 之前要先建一个 Security Group,因为必须开放 NFS 端口。与其改动现有安全策略,不如新建一个。

先进入 EC2 主界面,点 Security groups,再点 Create security group。

按上图选好 VPC,在 Secure 中选择之前创建的 Security group。接下来去配置 EFS。

进入后点击 Create file system。

点击 Customize。

  • Storage class
    • Standard 是可在多个 AZ 使用的类。
    • One zone 是仅限单个 AZ 使用的类。
  • Automatic backups 决定是否自动备份。
  • Transition into IA 设定最后一次访问后多久无访问就移入 IA 类。
  • Transition out of IA 设定何时从 IA 类转回 Standard 类。
  • Encryption 设定是否保护 EFS 文件系统中的数据。

  • Performance mode 基于 IOPS 设定文件系统性能。某些情况下需要高处理量时选择 Max I/O。
  • Throughput mode 设定 EFS 文件系统的吞吐量。需要瞬时处理大量数据时使用 Bursting。

设置好 VPC,并选好将使用 EFS 文件系统的 Subnet ID。之后选择刚才创建的名为 vpc-efs-sg 的 Security Group 即可。后面的直接跳过。现在点击创建好的 EFS,再点右上角的 Attach。

借助 amazon-efs-utils,可以用上面的命令把它挂载到 EC2。

接着连上 EC2 输入 df -h,可以看到还没有挂载。进入 /var/www/html 创建一个叫 efs 的目录,然后输入刚才找到的 Attach 命令。

之后用 df -h 确认,可以看到已经挂载成功。现在做个测试:进入 efs 目录,下载上次传到 S3 的 index.html。

可以看到下载成功。现在打开网站访问 /efs/index.html,确认是否正常显示。

确认访问正常。接下来在另一台 c1 服务器上同样挂载 EFS 文件系统,查看文件内容并访问网站。

即使是不同 AZ 的 EC2,由于在 EFS 网络中已放行,也能正常挂载,并且能看到刚才在 a1 服务器下载的 index.html 文件。

同样可以正常访问。现在稍微修改一下 index.html,确认改动是否实时生效。

确认改动实时生效,非常完美。

来源


原文(韩语): tistory — 发布于 2023-01-12,已迁移至本博客。本翻译由 AI 协助完成。

评论

删除这条评论?

相关文章

AWS EFS(Elastic File System) · 나봄하랑