我应该在 Amazon VPC 中的哪里设置暂存环境?并进行测试?

我应该在 Amazon VPC 中的哪里设置暂存环境?并进行测试?

我在俄勒冈州的 Amazon VPC 中为我的服务设置了生产环境:

  • 2 个可用区域
  • 每个可用区域有 1 个公共子网(包括堡垒、nat 和 ELB)和 3 个私有子网(数据库、Web 服务器和配置/监督)。
  • 11 个安全组

目前大约有 25 台虚拟机,并且希望能够增加。

现在我要设置暂存环境,但我不确定把它放在哪里:

  1. 我应该简单地将暂存实例放在生产实例旁边?基本上,只需重复使用相同的 Amazon 区域、相同的可用区域、相同的子网和相同的安全组?我只需要创建指向暂存实例的新 ELB,就这么简单。
  2. 或者我应该将暂存实例放在自己的子网中,但仍在同一个区域/可用区?但是公共子网必须相同,因为您不能在单个可用区中拥有两个公共子网。拥有单独的子网可能会使管理变得更容易,而且我可以拥有专用的路由规则,以通过不同的 nat 实例,甚至可能是不同的堡垒。更复杂,但安全性更严格。不过,我认为我可能不需要将安全组增加一倍,因为我可以拥有一个整体网络 ACL,禁止生产和暂存子网之间的流量。
  3. 或者我应该在不同的 VPC 中复制整个设置由于每个 Amazon 区域只能有一个 VPC,因此我必须在单独的区域中执行此操作。

暂存环境的重点是与生产环境完全相同(或尽可能接近)。因此,在不同的 Amazon 区域设置暂存环境感觉不对:这排除了选项 3,不是吗?

选项 1 最接近尽可能接近生产的目标。但是,在同一个子网中拥有暂存环境和生产环境感觉有点像潜在的安全问题,对吧?所以我有点倾向于选项 2,但我想知道潜在的安全问题是否严重到足以证明需要管理两倍的子网?

那么测试环境呢?它也应该与生产环境相似,但不需要太过接近:所有东西都可以放在几个实例上,不需要 ELB 和一切。也许这个环境可以全部放在同一个 VPC 中的单个专用子网中?在同一个 VPC 中,它可以轻松访问 git 存储库和 chef 服务器以及监督工具和 openvpn 访问等。

我相信很多人都有过这样的考虑,您对此有什么看法?

谢谢。

答案1

我认为选项 3 是最佳隔离级别,可防止生产环境受到暂存环境变化的影响。另外,您假设每个区域一个 VPC 似乎是错误的。据我所知,您可以在一个区域内创建多个 VPC。

“由于每个亚马逊区域只能拥有一个 VPC,因此我必须在单独的区域中执行此操作。”

答案2

我建议你去选项 2随着 AWS 基础设施的增长,您将需要目录服务(名称服务器、用户目录、VM 目录、查找服务等)。如果您有两个 VPC,共享目录服务将不容易。此外,如果您需要代码存储库(例如 GitHub)或构建工具(例如 Jenkins),那么为 DEV、Staging 和 Production 设置三个独立的 VPC 会使事情变得非常复杂。

答案3

我建议为每个环境设置一个单独的 vpc。所有共享资源都可以放在一个共享 vpc 中,并且每个环境都可以与共享 vpc 对等

相关内容