Dns 在EC2实例上配置memcached的主机名

Dns 在EC2实例上配置memcached的主机名,dns,amazon-ec2,memcached,hostname,Dns,Amazon Ec2,Memcached,Hostname,我在每个EC2 web服务器实例上使用Memcached。我不知道如何在服务器级别为memcache节点配置各种主机名 考虑以下示例: <?php $mc = new Memcached() $mc->addServer('node1', 11211); $mc->addServer('node2', 11211); $mc->addServer('node3', 11211); 这样做的困难在于在应用程序中保留更新的主机列表。当可以添加和删除主机时,保持此列表

我在每个EC2 web服务器实例上使用Memcached。我不知道如何在服务器级别为memcache节点配置各种主机名

考虑以下示例:

<?php 
$mc = new Memcached() 
$mc->addServer('node1', 11211); 
$mc->addServer('node2', 11211); 
$mc->addServer('node3', 11211);

这样做的困难在于在应用程序中保留更新的主机列表。当可以添加和删除主机时,保持此列表最新可能是一项挑战。您可以使用某种代理,为您的应用程序提供一个固定的端点,这会有所帮助

如果你不能使用代理,我有几个主意

  • 如果主机列表是静态的,则为每个memcached主机分配一个弹性ip。在ec2区域内,这将解析为与其关联的主机的本地IP地址。有了这个想法,您就有了一个应用程序可以使用的主机的固定列表

  • 如果要定期添加/远程主机,则需要能够动态更新应用程序将使用的主机列表。您可以在EC2API中查询具有特定标记的实例,然后获取所有这些实例的IP地址。将列表缓存在内存或磁盘中,并将其与应用程序一起加载。如果每分钟运行一次,任何主机更改都应在1分钟内传播,除非EC2 api更新缓慢


  • 这是一种对于设置数量的主机可能是动态的,还是对于可变数量的主机可能是弹性的?如果您希望随着主机数量的变化而变化,您将使用哪个系统来管理主机扩展?理想情况下是弹性的。虽然我不会有任何管理自动缩放。除非你能找到AWS和ELB。尽管如此,我还是希望在创建新实例时不必配置server+memcached+代码。我不想购买几个静态IP。您能否详细说明关于标记的选项#2,以及我如何将实例的主机名设置为ec2 ip xxx xxx xxx以外的其他内容?弹性ip只要分配给主机,就不会花费任何费用。您将按未分配的时间收费。你根本不需要担心主机名的设置,你只需要拉取亚马逊分配给它的任何东西。ec2不是公共的吗?