我应该将 AWS EFS 安装在 public 还是私有子网上?

Should I mount AWS EFS on public or private subnet?

这个简单的问题,在文档中找不到答案。

有人知道这个问题的最佳实践吗?

我假设它是私有的,但想了解为什么是这样。

您应该只将您希望从 VPC 外部访问的东西放在 public 子网中。最佳做法是只在 public 子网中使用 public 负载均衡器和 NAT 网关。这通过确保您的重要资源只能从 VPC 内部访问来确保额外级别的网络安全。

所以在这种情况下,您可能希望将 EFS 挂载到您的私有子网中。

在 AWS 中,我们通常使用私有子网进行大多数服务集成。某些服务在连接到 public 子网时不起作用。例如Lambda 在连接到 VPC 时,如果使用 public 子网则无法正常工作。 Glue Jobs 和 Crawlers 也是如此。

[编辑:感谢 MarkB 的贡献] 这是因为像 Lambda 函数之类的 ENI 没有分配 public IP 地址,只有私有 IP .所以他们需要一个到 NAT 网关的路由来访问 VPC 之外的东西,只有私有子网可以有一个到 NAT 网关的路由。