我可以使用在 EC2 实例和我的本地计算机之间创建共享吗?

Can I use create a share between an EC2 instances and my local machine?

只是为了给你一个背景...我是 aws 世界和提供的所有服务的新手。

我有一个遗留应用程序,我需要与客户端共享一些二进制文件,我试图将 ec2 实例(Amazon Linux AMI)与 samba 一起使用,将其映射到 windows 本地机器。 作为试用,我能够与另一个 ec2 实例(相同的 vpc)建立连接。但是我无法使用我的 windows 机器甚至我拥有的 linux 虚拟机来做到这一点。 此概念 ec2 实例的入站规则已完全开放(允许所有流量)。

主要问题

可以吗?在 ec2 实例与(通过互联网)本地计算机之间共享文件系统?


只想说: S3 存储不是一个选项。 在我所在的地区,FSX 仍然没有实现,并且由于延迟原因是不行的。

想问多少就问多少,我会尽快回答的。 好心人。

TL;DR - 这是可能的,但没有 'simple' 解决方案(在我看来)。

我想到了两个您可以实施的可能解决方案,我们开始吧...

1:AWS EFS、AWS Direct Connect 和 Docker

一种可能的解决方案是使用 AWS Elastic File System (EFS), AWS Direct Connect and a Docker Linux 容器。

缺点

  1. 如果您是第一次接触上述 AWS 服务或Docker,那么了解它们会有点费力
  2. EFS pricing - 没那么便宜,还要考虑进出流量,最好用定价页面的计算器
  3. EFS performance - 如果您只共享文件,那应该没问题,但如果您希望获得高速,请记住它不是 EBS 卷,因此要获得更高的速度,您需要支付更多费用钱
  4. AWS Direct Connect pricing - 您还需要考虑到这一点
  5. 安全性 - 我不确定您的数据有多敏感,但您需要确保创建一个非常严格的 VPC,具有安全组和网络访问列表规则 - 阅读 VPC Security Best Practices

实施解决方案的步骤

遵循 Walkthrough: Create and Mount a File System On-Premises with AWS Direct Connect and VPN,此外,这里是如何将其与 Docker

结合的步骤
  1. (可选)为了使其更容易一些 - 对于 Windows 到 "support" Linux 文件系统,您应该使用 Windows Git Bash. If you're not sure how to use install 3rd-party apps in Windows Git Bash (like aws-vault) then read this blog post
  2. 创建 EFS in AWS, and mount it to your EC2 instance, read more about it here
  3. 使用 AWS Direct Connect 从本地 Windows 机器连接到您的 VPC
  4. 在您的本地计算机上安装 Docker for Windows
  5. 创建 Docker Volume, and mount the same EFS to that volume -
  6. 测试它 - SSH 到您的 EC2 实例,在 EFS 卷上创建一个文件,然后检查您的本地 Docker Linux 容器,该文件出现在 EFS 卷上

我省略了安全步骤,因为这取决于您希望解决方案的严格程度。

2:使用 S3 作为共享文件系统

您可以试用这个工具 s3fs-fuse, but you'll still need to use a Docker Linux container since you're on Windows. I haven't tested it but it looks promising. You can read this blog post,这是一个关于如何操作的分步教程,并且还分享了一些其他可能的解决方案。