AWS EC2 - 如果服务器出现故障并重新启动,其他服务器如何连接到它?

AWS EC2 - 如果服务器出现故障并重新启动,其他服务器如何连接到它?

假设我在 Amazon EC2 上有一个应用程序服务器和一个数据库服务器。如果数据库服务器发生故障并重新启动,应用服务器如何知道数据库服务器的新内部 IP 并自动继续使用它?

答案1

重新启动将保留其设置。如果您启动新实例,则需要某种方法来管理 IP。启动脚本可能是可行的方法。提取实例元数据并更新配置文件(可能在 S3 中)或 DNS 条目。您还可以使用弹性 IP 并配置 cname,该 cname 将解析为 EC2 环境中的内部地址。为此,分配一个弹性 IP 并记下公共 DNS 字符串(有一个模式,但最好检查一下)并使用它创建 cname 记录。弹性 IP cname 的优势在于您不必等待 DNS 传播。

答案2

您可以通过在应用服务器上编写一个简单的面向外部的更新 URL,让数据库服务器告诉应用服务器它在哪里。您可以从启动元数据来自数据库服务器。也许是数据库服务器上 rc.local 中的一个简单 shell 脚本(假设您使用的是 Linux 实例):

LOCALIP=`curl http://169.254.169.254/latest/meta-data/local-ipv4`
curl http://<yourexternalappname.com>/updatedbip?ip=$LOCALIP&somesharedsecret=<password>

相关内容