2015-10-14 316 views
0

亲爱的同胞开发商,硒EC2实例

我的问题很简单,但我无法找到答案的任何地方,也许我缺少一些路由/代理教育。

它是这样的:

  • 我实例运行硒和从PHP API我写
  • 目标应用程序,我与EC2的几个seleniums测试一堆其他的软件提供了多种EC2实例实例正在接受来自受限IP列表的入站连接
  • 如何告诉我的硒测试始终使用相同的公用IP访问目标应用程序?

我的第一个猜测是通过单个EC2实例将来自所有硒EC2实例的流量代理/代理,该EC2实例将具有一个公共IP,我可以在目标应用程序中设置该实例。

然后我迷失了(淹死)到AWS VPC,其他事情等等。

你能帮我一下吗?

预先感谢您。

回答

2

哇,你实际上在这里问了很多。

这听起来像你想通过只允许你的Selenium实例(和其他实例)来访问它来保护你的应用程序。

这样做的最明显的方法是为您的Selenium实例提供一个静态IP,其中Amazon称为弹性IP。在向亚马逊询问更多内容之前,您只能获得每个地区5个IP。所以如果你有超过1或2个Selenium实例,这将是不实际的。

如果你不使用VPC,你应该考虑设置它。起初看起来有点复杂,但它使得你在这里试图做的事情变得非常简单。

使用VPC,只要它们在同一个区域内,您就可以让所有实例通过其内部IP地址相互通话。

如果它们不在同一个区域中,则可以在每个区域中设置一个NAT实例。您为NAT实例分配一个弹性IP。然后,该区域中的所有其他实例将通过NAT实例访问其区域外的服务器。从外部服务器的角度来看,它们的源IP将是NAT的IP。

那么这一切会给你什么?

好吧,让我们假设您将所有实例设置在VPC中的同一区域中。然后,您可以将您的应用程序服务器分配给安全组,以允许来自您的硒实例的内部IP的传入HTTP/HTTPS连接。您甚至可以在您的VPC中为您的应用程序和Selenium实例创建不同的子网,并设置安全组以允许来自整个硒子网的传入连接。对每种服务器类型进行子网划分可能对您的使用情况有所帮助。这实际上取决于您想要通过VPC网络控制多少。

我不认为解释如何设置VPC是在这个答案的范围内。我真的认为设置VPC对你来说是正确的选择。一个良好的开端将是亚马逊的文档:

https://aws.amazon.com/documentation/vpc/

这也将是值得的谷歌搜索关于设置的VPC之类的博客条目。其他人在建立他们的第一个VPC时犯了许多错误,您可以通过阅读它们来避免这些错误。

+0

很好的回答,谢谢你的时间。我肯定会考虑VPC –