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

标签 linux security networking ssh amazon-ec2

<分区>

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

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

目前只有一台 Web Server,但最终会增加更多。

My first question is, what is the best, most secure way for Amazon EC2 instances to communicate between each other? Currently I'm using SSH, is that the best method?

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

So that's my second question, how do you make use of Amazon instances' Private IPs if they're not static?

我知道这些实例可能不会非常频繁地停止和启动,但是,如果 IP 地址在各种配置文件中,那么必须遍历它们并更改它会很痛苦。

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

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

ServerFault 是发布此问题的更好地方吗?

最佳答案

这可能更像是一个 ServerFault 主题,但我还是会回答。

克服内部 IP 地址动态变化的最简单方法是在集群中运行私有(private) DNS 服务器。我的 Assets 使用 Windows VM,因此我们设置了一个 AD 对来提供 DNS 服务(顺便说一下,还有集中式 VM 登录身份验证)。由于每台机器都是域的成员,并且它的 DNS 指针设置为每个 AD 单元(主要和备用),动态内部 IP 会在更改时自动向 DNS 服务注册 - 因此,而不是引用其他虚拟机的公共(public) IP(例如 79.125.x.x)会产生数据传输成本,或者内部 IP(例如 10.44.x.x)会在重启时发生变化,它们使用持久的 DNS 名称(例如 mydomain.dbserver01)。

我们使用加密通信进行内部和外部数据交换 - 请记住,根据定义,云 VM 本质上不如企业防火墙内的任何东西安全,因此您应该在其安全配置上投入更多。我们的政策是,云 VM 的配置应使其比我们内联网中的同等 VM 安全。

关于linux - Amazon EC2 实例之间通信的最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4818502/

相关文章:

linux - 取消注释文件中的特定行

maven - Mule 安全属性占位符 Maven 设置

python - 尝试连接套接字时出现错误 10051

mysql - 是否可以在 MySQL 服务器上打开 phpMyAdmin 并从网络中的任何计算机上使用它?

linux - 在另一个目录中运行 bash 脚本

Linux + 在数百台 Linux 机器上并行运行 yum update 的最佳方法是什么

php - 使用composer检查php项目中已知漏洞的工具

c++ - Qt GET请求奇怪响应

linux - bash 脚本中的 expect 命令失败

macos - OS X 钥匙串(keychain)编程资源