我的公司目前正在使用 AWS 的 S3fs 和 Ec2。我们已经在 Ec2 实例上安装了我们的 s3 存储桶,但一段时间后(例如一周),一些存储桶自行卸载,我们的服务器实例几乎变得无用。错误是“传输端点未连接”。
S3fs 版本:1.61 从源代码构建
FUSE 版本:2.84.1 从源代码构建
操作系统:Linux、Ubuntu 11.04
是否有某种安全机制来预防(或至少检测)这些问题?
我的公司目前正在使用 AWS 的 S3fs 和 Ec2。我们已经在 Ec2 实例上安装了我们的 s3 存储桶,但一段时间后(例如一周),一些存储桶自行卸载,我们的服务器实例几乎变得无用。错误是“传输端点未连接”。
S3fs 版本:1.61 从源代码构建
FUSE 版本:2.84.1 从源代码构建
操作系统:Linux、Ubuntu 11.04
是否有某种安全机制来预防(或至少检测)这些问题?
s3fs 是一个好主意,但请记住,即使对 s3 的调用可能在某种程度上是内部的(或者我们说“在他们的网络上”),您仍然通过 HTTP 安装文件系统。从长远来看,这不会是稳定的。
也许您可以重新表述您的问题以寻求替代方案并通过使用任何类型的(我猜)共享网络文件系统来分享您尝试完成的工作。我可以看到它的吸引力,但是对于 Amazon EC2,人们通常使用不共享的方法,并且应该避免任何与网络相关的额外内容,以便能够更轻松地回收实例等。
很高兴扩展我的答案。
伟大的洞察力。没有想过这个。但我们可以采取以下 3 个预防措施:
1) 创建一个自动挂载,以便在 EC2 关闭的极不可能的情况下,一旦 EC2 通过/etc/fstab恢复,S3 就会重新挂载
2) 或/和如果您愿意,使用 cron 创建辅助自动挂载:
echo "/usr/bin/s3fs [s3 bucket name] [mountpoint path] -o allow_other" >> automount-s3
sudo mv automount-s3 /usr/sbin
sudo chown root:ubuntu /usr/sbin/automount-s3
sudo chmod +x /usr/sbin/automount-s3
crontab -e
添加这一行
@reboot /usr/sbin/automount-s3
3) 我还将创建另一个每小时 cron 来检查 S3 是否仍然挂载 - 这可以通过检查您的 EC2 路径中是否存在虚拟文件来完成。如果文件不存在,cron 将通过调用“/usr/bin/s3fs -o allow_other [s3 bucket name] [mountpoint path]”进行手动挂载。最好向管理员发送一封电子邮件并将其登录到系统中。