Važno: Koje hashing i distribucione algoritme koristi tvoj memcached klijent? Ako je u pitanju jednostavno distribuiranje hashovanog kljuca po modulu (hash % number_of_servers) pribavi bolji memcached klijent inače ćeš načiniti nevidljivim svoj celokupni keš svaki put kad dodaš ili ukloniš memcached server (been there, done that).
Tvoja ideja sa centralizovanim serverom nije loša, ali šta misliš o sledećem:
Svakih X minuta svaka EC2 instanca pita AWS API ko su joj braća i na osnovu toga (po potrebi) osvežava svoju listu memcached servera. Time delegiraš odgovornost vođenja centralnog registra svih instanci AWS-u, dok EC2 instance postaju odgovorne za sopstvenu konfiguraciju.
Primer odgovrajućeg API poziva putem
boto-a iz sećanja (
ne koristim više AWS):
Kôd:
# Nagovorite Bluesmana da doda [python] tag
from boto.ec2.connection import EC2Connection
conn = EC2Connection('<aws access key>', '<aws secret key>')
memcached_servers = [x.private_dns_name for x in conn.get_all_instances(filters={'instance-state-name': 'running'})]