在可扩展架构中管理主机和 iptables

在可扩展架构中管理主机和 iptables

假设我在 3 个应用服务器前面有一个负载均衡器。

假设我在某些 IP 上也提供这些服务:

  • Postgres 服务器
  • Redis 服务器
  • ElasticSearch 服务器
  • Memcached 服务器 1
  • Memcached 服务器 2
  • Memcached 服务器 3

因此,6 个节点位于 6 个不同的 IP 地址。当然,我的 3 个应用服务器中的每一个都需要与上述 6 个服务器通信。

然后,为了让它更有趣一点,我还有 3 个工作服务器。每个工作服务器也与上述 6 个服务器通信,但幸运的是,工作服务器和应用程序永远不需要相互通信。

现在到了关键时刻。一切都在 Digital Ocean VPS 上。这意味着:您没有私有网络,没有私有 IP。您在每台机器上只有单独的随机 IP 地址。您无法掩盖它们或做任何事情。

因此,为了构建一个安全的环境,我必须配置一些 iptables。例如:

  1. 打开应用服务器以供负载均衡服务器访问
  2. 开放redis、ES、PG、各memcached服务器供各app的IP和各worker的IP访问

这意味着每次我添加一个应用程序或工作程序时,我还必须在上述 6 台服务器中重新配置 iptables 以欢迎新的应用程序或工作程序。

有没有办法简化此类设置?

我在想——如果在应用程序/工作器和上述 6 台机器之间有一台网关机器会怎么样。这样,所有交互都会始终通过网关服务器进行,​​当我添加新应用程序或工作器时,我不需要教 6 台服务器让它进入。

如果我选择这种方式,那么我希望一台 512mb 的小型服务器可以处理这个问题,而且几乎没有任何开销。或者会有吗?

请帮助以最佳方式处理这种情况。我希望得到尽可能具体的答案。我认为这不是太具体,因为这种通用架构非常常见,而且 Digital Ocean 越来越受欢迎。许多人会非常感激这里的具体解决方案。

答案1

如果其他人在这里寻找解决方案,那么没有解决方案。您必须管理节点之间的多对多关系,并重新配置它们各自的 iptables 和主机。网关机器方法可能有效,但我没有采用它。

相关内容