所以我一直在试图创build一个像系统一样的Dropbox来允许多个EC2实例使用相同的文件。 我正在编写实际上自己修改文件的程序,而且我并不担心并发修改错误的问题,因为我已经devise了解决scheme。 现在,我能find的最接近的办法就是使用NFS,这看起来像是来自天堂的一线阳光。 (而且它也没有看起来那么复杂!)现在,我几乎把它全部设置好了,然后我头撞到了一堵砖墙上。 我一直在以下教程: http : //hunterford.me/amazon-ec2-and-nfs/
我做的唯一不同的是取代这条线:
/var/www/test ec2-180-71-131-129.compute-1.amazonaws.com(rw,async)
用这一行:
/home/ec2-user/Players *(rw,async)
我改变了第一部分,因为那是我想要放置我想要分享的文件的地方。 第二部分我改变了,因为我不知道我应该放在那里,他说我可以放一个通配符。 (我知道你们现在都在c,,我也是)我没有得到一个错误,所以我去了。 其他一切顺利,我确实设立了所有开放的港口的安全组织。
当我去我的另一台机器上安装文件时:
mount -t nfs {MY_FIRST_MACHINES_DNS_HERE}:/home/ec2-user/Players /home-ec2-user/Players
现在,先坐在那里一会儿,然后眨眼间。 最终超时。 有没有人看到我做错了什么? 坦率地说,这可能是任何事情,因为我不知道我在做什么,当谈到NFS。 我一直在t1.micro实例上使用标准(Free Tier)Amazon Linux AMI,以及16GB的通用SSD存储。
尝试将mount命令中的nfs更改为nfs4。 NFS v3和更早版本依赖于许多守护进程和端口映射才能正常工作。 NFSv4只需要nfsd和端口2049 / tcp。
关于*,只需将其replace为客户端实例的IP地址即可。 如果您有超过1个,只需添加他们就好:
/ mount / point ip1(options1)ip2(options2)…
从2017年起,最简单的方法就是AWS Elastic File System(EFS) ,它与NFS v4.1兼容。 您支付每GB 0.30到0.36美元存储,没有预先分配的磁盘,所以如果你删除文件,你立即支付less。 这在每个地区都不可用。
延迟明显高于EBS,这足以在一些使用情况下增加可衡量的延迟,例如虚拟主机。 吞吐量是非常好的。 我预计AWS正在进行改进。 build议进行性能testing以确保满足您的需求。