2013-02-19 33 views
0

我在每個EC2 Web服務器實例上使用Memcached。我不確定如何在服務器級別配置Memcache節點的各種主機名。爲EC2實例上的memcached配置主機名

請看下面的例子:

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

如何node1node2node3配置?

我已閱讀了幾個設置,使用hostname配置實例,並使用這些條目更新/etc/host。但是,我對配置這些東西不夠熟悉。

我正在尋找可縮放的解決方案 - 處理添加和刪除實例 - 並自動執行。

+0

這可能是動態的,具有一定數量的主機,或者具有可變數量主機的彈性?如果您打算隨主機數量變化,您使用哪個系統來管理主機擴展? – datasage 2013-02-19 23:19:36

+0

理想彈性。儘管我不會管理自動縮放。除非你可以使用AWS和ELB。儘管如此,我希望在創建新實例時不必配置server + memcached +代碼。 – 2013-02-19 23:28:24

回答

0

這樣做的困難是在您的應用程序中保留主機的更新列表。當主機可以被添加和刪除時,保持這個列表是最新的可能是一個挑戰。您可能能夠使用某種代理,這將有助於爲您的應用程序提供一個持續的端點。

如果你不能使用代理,我有一些想法。

  1. 如果主機列表是靜態的,則爲每個memcached主機分配一個彈性ip。在ec2區域內,這將解析爲與其關聯的主機的本地IP地址。有了這個想法,你有一個你的應用程序可以使用的恆定主機列表。

  2. 如果您打算定期添加/遠程主機,您需要能夠動態更新應用程序將使用的主機列表。您可以查詢具有特定標記的實例的EC2 api,然後獲取所有這些實例的IP地址。將列表緩存在內存或磁盤中,並將其加載到應用程序中。如果每分鐘運行一次,則任何主機更改都應在1分鐘內傳播,除非EC2 api的更新速度較慢。

+0

我不想購買幾個靜態IP。你能否詳細說明選項#2關於標記以及如何將實例的主機名設置爲* ec2-ip-xxx-xxx-xxx *之外的內容? – 2013-02-19 23:53:01

+0

彈性IP不會花費你任何東西,只要他們保持分配給主機。他們沒有被分配的時間被收取費用。你贏了需要擔心設置主機名,你只需要拉取amazon分配給它的任何東西。 – datasage 2013-02-20 00:38:31

+0

是不是ec2彈性ips公開? – U0001 2014-09-30 22:58:47

相關問題