AWS——02篇(AWS之服务存储EFS在Amazon EC2上的挂载——针对EC2进行托管文件存储)
- 1. 前言
- 2. 关于Amazon EFS
- 2.1 Amazon EFS全称
- 2.2 什么是Amazon EFS
- 2.3 优点和功能
- 2.4 参考官网
- 3. 创建文件系统
- 3.1 创建 EC2 实例
- 3.2 创建文件系统
- 4. 在Linux实例上挂载Amazon EFS文件系统
- 4.1 查看如何挂载
- 4.2 连接EC2实例
- 4.3 安装amazon-efs-utils
- 4.4 创建efs目录
- 4.5 执行挂载命令进行挂载
- 5. 简单使用
- 5.1 简单演示一下写与读
- 6. 遇到的问题
- 6.1 执行挂载命令超时
- 6.1.1 问题描述
- 6.1.2 解决问题——新建安全组
- 6.1.3 关于2049的备注
1. 前言
- 关于AWS及EC2的入门,请看上篇文章,如下:
AWS——01篇(AWS入门 以及 AWS之EC2实例及简单实用).
2. 关于Amazon EFS
2.1 Amazon EFS全称
- 如下:
- Amazon Elastic File System
- Amazon Elastic File System,可扩展且有弹性的原生云 NFS 文件系统
- Amazon Elastic File System (Amazon EFS)面向通用工作负载提供了一个简单、可扩展且有弹性的文件系统,可与 AWS 云服务和本地资源结合使用。
2.2 什么是Amazon EFS
- 简单解释
- Amazon EFS 是一种云原生数据存储,可为基于Linux的业务应用程序提供简单的可扩展共享文件存储,它可以增长到PB(petabytes),同时提供一致的低遗留数据和高水平的吞吐量,而且它是完全托管的,所以不必担心持续维护Amazon EFS。
- 易于设置,只需使用AWS管理控制平台 API 或命令界面即可创建文件系统,并使其可安全地供您的
EC2
实例的一台或多台Amazon VPC
使用,然后挂载你的文件系统来存储和访问数据,你也可以使用AWS direct connect 或 AWS VPN将本地服务器挂载到EFS,轻松将数据迁移到EFS启用云爆发 或将本地数据备份到EFS。 - EFS文件系统具有弹性,可以在你添加和删除文件时,自动增长和收缩,你可以在两种性能模式之间进行选择,以便根据应用程序需求定制文件系统性能,文件系统的吞吐量会随着容量的增长而自动扩展。对于具有高吞吐量要求和低容量需求的工作负载,吞吐量可以独立于容量进行配置,但频率较低,你可以将 EFS 配置为将数据存储在成本优化的不频繁访问存储类中。
- Amazon EFS 可与你已使用的工具和应用程序配合使用,它专为实现高可用性和持久性而设计,通过EFS可以跨多个可用区存储你冗余的数据。你可以始终这样,当你需要时提供所需的容量,而无需提前预置存储。
- 只为您使用的内容付费,没有最低费用或设置成本,它消除了存储管理任务。
- 总之,概括起来就是:
Amazon Elastic File System (Amazon EFS)提供的是简单、可扩展、完全托管的弹性 NFS 文件系统,可与 AWS 云服务和本地资源结合使用。它可在不中断应用程序的情况下按需扩展至 PB 级,并可在您添加和删除文件时自动扩展或缩减,从而使您无需预置和管理容量便可适应文件系统的增长。Amazon EFS 旨在提供对数千个 Amazon EC2 实例的大规模并行共享访问,使您的应用程序能够始终以低延迟实现高水平的聚合吞吐量和 IOPS。
2.3 优点和功能
- 动态弹性
Amazon EFS 可在您添加或删除文件时自动即时地扩大或缩小您的文件存储容量,不会中断您的应用程序,可在您需要时为您提供所需的存储空间。您只需创建文件系统和开始添加文件,无需提前预置存储。 - 可扩展的性能
Amazon EFS 旨在提供通用工作负载所需的吞吐量、IOPS 和低延迟。吞吐量和 IOPS 可以随文件系统增长而扩展,并且可以在短时间内突增到较高的吞吐量水平,以支持不可预测的文件工作负载性能需求。对于最苛刻的工作负载,Amazon EFS 可以支持超过 10 GB/秒的性能和高达 500000 次 IOPS。 - 完全托管
Amazon EFS 是一项完全托管型服务,可为通用工作负载提供共享文件系统存储。它提供简单的界面,可使您快速创建和配置文件系统并为您管理文件存储基础设施,从而消除部署、修补和维护文件系统基础的复杂性。 - 共享文件存储
Amazon EFS 可为数千个连接提供安全访问。Amazon EC2 实例和本地服务器可以使用传统的文件许可模型、文件锁定功能和分层目录结构通过 NFSv4 协议同时访问 Amazon EFS 共享文件系统。Amazon EC2 实例可以跨可用区和 AWS 区域访问您的文件系统,而本地服务器可以使用 AWS Direct Connect 或 AWS VPN 进行访问。
2.4 参考官网
- 官网地址:https://aws.amazon.com/cn/.
3. 创建文件系统
3.1 创建 EC2 实例
- 我这里已经创建过,具体怎么操作,请看上篇文章:
AWS——01篇(AWS入门 以及 AWS之EC2实例及简单实用). - 查看EC2实例
- 查看VPC ID,后面创建文件系统的时候,默认直接选这个
3.2 创建文件系统
-
创建如下:
4. 在Linux实例上挂载Amazon EFS文件系统
4.1 查看如何挂载
-
首先:
-
然后:
-
接着
-
最后,打开帮助文档
文档地址:https://docs.aws.amazon.com/efs/latest/ug/mounting-fs-mount-helper-ec2-linux.html
4.2 连接EC2实例
- 连接两个EC2实例,一个是
Amazon Linux 2023
,一个是Amazon Linux 2 AMI
(具体怎么连接,看上篇文章),如下:
4.3 安装amazon-efs-utils
- 安装参考地址:
https://docs.aws.amazon.com/efs/latest/ug/installing-amazon-efs-utils.html
- 安装命令:
sudo yum install -y amazon-efs-utils
- 安装如下:
sudo -s yum install -y amazon-efs-utils
4.4 创建efs目录
-
使用以下命令创建一个目录efs,作为文件系统的挂载点,如下:
mkdir efs
4.5 执行挂载命令进行挂载
- 复制挂载命令,如下:
sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport 文件挂载系统的DNS名称:/ efs
- 执行挂载命令,挂载成功的话,如下
df -h
此步骤如有问题,请参考看下面的 《6. 遇到的问题》,找对应的解决方案。 - 挂载第二台EC2实例
用同样的方法,将另一台EC2实例也挂载上去,不多说了。
5. 简单使用
5.1 简单演示一下写与读
- 如下,可以看到,在一台EC2实例上写入的数据,在另一台EC2实例上可以读到(前提是:挂载了EFS),删除也是没问题的,都是弹性的。
6. 遇到的问题
6.1 执行挂载命令超时
6.1.1 问题描述
- 问题描述,如下:
mount.nfs4: Connection timed out
6.1.2 解决问题——新建安全组
- 开放哪个端口呢?
2049
,如下:
接下来就继续吧…… - 首先,查看
EFS系统
所用的安全组,发现用的是默认安全组,如下:
- 然后,我们查看此安全组的入站规则
端口范围已经是全部,为啥不行呢?不知道,新建一个安全组试试吧…… - 然后,再新建安全组,如下:
- 修改
EFS系统
的安全组,如下:
- 修改完成之后,然后再执行挂载命令,问题解决,如下:
6.1.3 关于2049的备注
- EC2 实例 和 EFS系统可以不用同一个安全组,上面我的EC2实例还是之前的创建的安全组,即EC2实例不用开放 2049 端口。