对于亚马逊云Amazon EC2云服务器我们应该是相当熟悉的。且目前依旧亚马逊云有提供新客注册赠送12个月的EC2云服务器和三个月的轻量服务器等上百个云产品的福利。对于一般的业务而言,云服务器自带的存储是够用的,如果不够用我们可以选择扩容或者是第三方云存储的静态分离技术。
在这篇文章中,我们需要介绍的是利用Amazon EFS(Amazon Elastic File System)弹性云存储对EC2扩容,而且是无限的扩容。当然对于商家而言,新客注册有提供12个月的免费5GB存储,可以满足基本的业务需求。网上有很多教程,但是并不完整,比如挂载的时候我们无法正确的连接。所以,我准备用一篇详细的教程来解决这个问题,实现EC2服务器的挂载EFS无盘存储,实现EC2的无限扩容磁盘。
如果我们还没有亚马逊AWS云账户可以申请得到100+免费云资格。点击这个注册申请。
创建安全组
这里需要创建2个安全组,一个是EFS的安全组,一个是EC2的安全组。
这里我们先创建一个EC2的安全组,我们暂且放行所有的流量。如果我们实际的生产业务用途的话,可以单独放行一些必须要的端口。
然后我们还需要添加一个EFS的专用安全组,这里我们创建安全组的时候对于出入站的规则搜索NFS可以看到,必须要放行2049端口。这样,我们可以将2个安全组设置完毕。
开创EC2云服务器
安全组创建完毕之后,我们就需要先开通EC2云服务器。
这里我们喜欢用Amazon Linux系统,选择免费镜像配置。
还必须要创建密钥对,这个我们登录SSH的时候用密钥登录。这里需要注意的是,默认的系统用户名是ec2-user,而不是root。如果我们需要用到root权限是需要登录ec2-user之后,再重建设置root密码之后再可以su切换到root用户。这个不在当前的教学内容中。
我们可以看到上图,选择我们创建的EC2的安全组。
服务器创建后可以知道公网IP,以及我们需要得到上图的可用区,这个很重要,后面创建EFS存储的时候,你单独配置权限地区的时候需要选择。
创建EFS存储空间
其他都准备完毕,我们这里就需要创建文件系统。
我这里就不直接默认创建,而是自定义创建,万一有需要设置的还可以选择。
这里我只是用到的EC2服务器中的,所以我单独就指向权限用到的可用区。
这里不要选错,这里要选择安全组用我们单独的EFS安全组规则。
EC2挂载EFS
上面的操作都完毕之后,我们就要SSH登录EC2挂载EFS。
sudo yum update -y
sudo yum install -y amazon-efs-utils
登录SSH后,我们先安装必要的组件。
然后我们需要创建需要挂载的目录,这里我暂且就以efs目录。
sudo mkdir /efs
然后挂载,这里我们可以到EFS界面。
看到上图的连接菜单。
然后参考挂载命令工具。当然需要微调你的目录。
sudo mount -t efs -o tls fs-0eafb27b79ed88878:/ /efs
这是我的挂载命令,你们自己用的根据自己实际。
如果挂载没有报错说明权限是畅通的,如果报错可能需要检查安全组的问题。然后挂载后我们可以看到挂载成功的目录。
最后,我们还需要设置权限,因为挂载完的 efs 目录的属主和组是 root:root,所以直接sudo为root是可以写入的。但是在实际应用中,大部分时候运行身份可能不是root,而是非root身份。一般用户如Amazon Linux的默认证书登录用户ec2-user是没权限写入的,因此可修改下他们的属主。不建议修改为权限777,这样过于不安全。
sudo chown ec2-user:ec2-user /efs
这样子ec2-user身份就有权限写入。
挂载的方式有很多,也可以使用 NFS 客户端挂载。
完毕。
本文出处:老蒋部落 » 完整的记录Amazon EC2挂载EFS扩容存储空间的教程 | 欢迎分享( 公众号:老蒋朋友圈 )