我应该将 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 网关的路由。
这个简单的问题,在文档中找不到答案。
有人知道这个问题的最佳实践吗?
我假设它是私有的,但想了解为什么是这样。
您应该只将您希望从 VPC 外部访问的东西放在 public 子网中。最佳做法是只在 public 子网中使用 public 负载均衡器和 NAT 网关。这通过确保您的重要资源只能从 VPC 内部访问来确保额外级别的网络安全。
所以在这种情况下,您可能希望将 EFS 挂载到您的私有子网中。
在 AWS 中,我们通常使用私有子网进行大多数服务集成。某些服务在连接到 public 子网时不起作用。例如Lambda 在连接到 VPC 时,如果使用 public 子网则无法正常工作。 Glue Jobs 和 Crawlers 也是如此。
[编辑:感谢 MarkB 的贡献] 这是因为像 Lambda 函数之类的 ENI 没有分配 public IP 地址,只有私有 IP .所以他们需要一个到 NAT 网关的路由来访问 VPC 之外的东西,只有私有子网可以有一个到 NAT 网关的路由。