Amazon EC2实例之间进行通信的最佳实践是什么?


41

我一直在为即将到来的项目设置Amazon EC2实例。它们都是微型实例,运行Ubuntu Server 64位。到目前为止,这是我设置的内容:

  • Web服务器 -Apache
  • 数据库服务器 -MySQL
  • 开发服务器 -Apache和MySQL
  • 文件服务器 -SVN和Bacula(已备份到S3存储桶)

当前,只有一台Web服务器,但最终会有更多。

我的第一个问题是,Amazon EC2实例之间相互通信的最佳,最安全的方法是什么?目前,我正在使用SSH,这是最好的方法吗?

根据Amazon的说法,使用其弹性IP地址在其之间进行通信的实例将收取数据传输费。但是,实例使用其专用IP地址进行通信可以免费这样做。不幸的是,如果实例停止并重新启动,则私有IP似乎会更改。

这是我的第二个问题,如果Amazon实例的私有IP不是静态的,那么如何利用它们呢?

我知道实例可能不会非常频繁地停止和启动,但是仍然,如果IP地址在各种配置文件中,则必须仔细检查所有实例并进行更改会很痛苦。

我主要关心的是Web服务器,它们需要访问数据库服务器和文件服务器,而在执行备份时它们需要访问所有实例。

注意: 我以前从未使用过Bacula,也没有设置它,但是我假设它需要客户端的IP地址来备份它们。


2
+1-我会喜欢弹性的私有IP。另请注意,我认为您无法通过私有IP在区域之间进行通信。
Joel K

我认为您会发现一个m1.small会比多个t1.micro提供更好的性能。然后,升级到c1.medium。然后,开始启动多个c1.medium或使用更大的实例类型。但是请注意,m1.small和c1.medium仅支持32位,而不支持64位。
埃里克·哈蒙德

Answers:


29

查看Eric Hammond的文章,该文章解释了如何甚至从EC2内部使用弹性IP地址。此方法不会导致任何带宽费用,因为从EC2内部解析弹性IP地址(按名称)将返回专用IP地址。

http://alestic.com/2009/06/ec2-elastic-ip-internal

有关更多选项,我有一篇文章研究了一些替代方法:

http://shlomoswidler.com/2010/06/track-changes-to-your-dynamic-cloud-services-automatically.html


感谢您的答复。尽管我以前从未设置过DNS,但我越来越多地认为动态DNS是必经之路。您是否知道任何提供详细操作步骤的网站?
ks78 2011年

6

将您的EC2实例部署到AWS虚拟私有云(VPC)中。配置VPC时,您会将CIDR分配给VPC中的所有EC2实例,内部IP将是静态的。


到目前为止,这是最好的方法。
ceejayoz 2014年

2
  • 最安全的通讯方式

SSH是在不同服务器之间传输数据的一种非常好的方法,但是如果您正在寻找诸如永久连接(例如到数据库)的连接,则可以使用任何类型的加密隧道软件,例如 stunnel

  • 非静态私有IP

由于无法使用静态私有IP,您可以为此使用某种自动服务器部署,因此可以使用mcollective,capistrano或func等多种工具将新实例注册到中央指定服务器并在多个指定服务器上生成操作基于该机器


我最初在StackOverflow上发布了相同的问题。有人建议使用DNS服务器,因此,如果私有IP发生更改,则没有关系,因为他们将使用DNS提供的名称进行通信。您对该解决方案有何看法?
ks78 2011年

1
如果您能够保持动态DNS区域为最新状态,这不是一个坏的解决方案,尽管由于您需要在所有实例中同时使用该DNS和主DNS服务器,所以它也会给您带来单点故障,这就是为什么我建议使用mcollective或capistrano的原因,因为这也将为您提供跨节点执行复杂操作的优势
lynxman 2011年

谢谢。我只是想知道您对该解决方案有何看法。我将研究mcollective和capistrano。
ks78 2011年

很抱歉恢复旧线程,但是私有IP在ec2上仍然不是静态的吗?这不是我在全新的ec2设置上看到的-在我停止服务器并且私有IP地址尚未更改之后,网络接口仍然存在。如果需要,我似乎也可以选择辅助私有IP地址。
icyitscold 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.