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

时间:2013-02-19 19:54:51

标签: 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);

如何配置node1node2node3

我已经阅读了一些使用hostname配置实例的设置,并使用这些条目更新/etc/host。但是,我对配置这些东西并不熟悉。

我正在寻找可扩展的解决方案 - 处理添加和删除实例 - 以及自动。

1 个答案:

答案 0 :(得分:0)

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

如果你不能使用代理,我有几个想法。

  1. 如果主机列表是静态的,请为每个memcached主机分配弹性IP。在ec2区域内,这将解析为与其关联的主机的本地IP地址。有了这个想法,您就可以获得应用程序可以使用的常量主机列表。

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