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

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

我一直在为即将开展的项目设置 Amazon EC2 实例。它们都是微型实例,运行 Ubuntu Server 64 位。以下是我迄今为止的设置:

  • 网络服务器-- 阿帕奇
  • 数据库服务器--MySQL
  • 开发服务器--Apache 和 MySQL
  • 文件服务器-- SVN 和 Bacula(备份到 S3 存储桶)

目前只有一个 Web 服务器,但最终将会有更多。

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

据亚马逊称,使用弹性 IP 地址相互通信的实例将收取数据传输费用。但是,使用私有 IP 地址通信的实例可以免费进行通信。不幸的是,如果实例停止并重新启动,私有 IP 似乎会发生变化。

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

我知道实例可能不会频繁地停止和启动,但是,如果 IP 地址位于各种配置文件中,那么必须浏览所有配置文件并进行更改将很麻烦。

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

笔记: 我以前从未使用过 Bacula,而且我还没有设置它,但我假设它需要客户端的 IP 地址来备份它们。

答案1

请参阅 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

答案2

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

答案3

  • 最安全的通讯方式

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

  • 非静态私有 IP

由于没有办法拥有静态私有 IP,因此您可以使用某种自动服务器部署来实现这一点,有几种工具,如 mcollective、capistrano 或 func,它们允许您将新实例注册到中央指定服务器,并在此基础上在多台机器上生成操作

相关内容