5

Problema: desidero memorizzare nella cache le informazioni utente in modo che tutte le mie applicazioni possano leggere i dati rapidamente, ma voglio che solo una specifica applicazione sia in grado di scrivere su questa cache.Soluzioni per una cache distribuita sicura

Sono su AWS, quindi una soluzione che mi è venuta in mente era una versione di memcached con due porte: una porta che accetta solo i comandi di lettura e una che accetta le letture e le scritture. Potrei quindi utilizzare i gruppi di sicurezza per controllare l'accesso.

Dato che sono su AWS, se ci sono soluzioni che utilizzano memcached o redis out-of-the-box, sarebbe fantastico.

risposta

3

Suggerisco di utilizzare ElastiCache con una porta aperta su 11211 (Memcached), quindi creare un'istanza EC2, impostare il gruppo di sicurezza in modo che solo questo server possa accedere al cluster ElastiCache. Usa questo server per filtrare le tue applicazioni, in modo che solo una specifica applicazione possa scrivervi. Puoi controllare l'accesso con gruppo di sicurezza, script o iptable. Se non si utilizza VPC, è possibile utilizzare cache security group.

+0

Bene, quindi non è distribuito: ha un singolo punto di errore - quel server di accesso. – jamie

+1

Utilizzare la scalabilità automatica e il bilanciamento del carico, problema risolto. – Kevin

+0

Bene, se ho intenzione di impostare la scalabilità automatica, un bilanciamento del carico e costruire un'applicazione, potrei anche saltare la parte memcache e costruire il tutto da solo, anche se a quel punto, limitarsi a farlo sembrare in dinamo sembra piuttosto buono. La velocità è un problema: APP-> Memcache vs APP-> ELB-> SVC-> Memcache. – jamie

1

Credo che sia possibile farlo usando Redis (invece di Memcached) che è anche disponibile tramite ElastiCache. Una volta creata l'istanza, sarà necessario creare un gruppo di replica e associarlo al cluster di cache già avviato.

È quindi possibile aggiungere istanze al gruppo di replica. Le istanze all'interno del gruppo di replica vengono semplicemente replicate dal Master Cache Cluster (singola istanza di Redis) e quindi sono (di default) di sola lettura.

Quindi, in questa configurazione, si dispone di un nodo master (endpoint singolo) a cui è possibile scrivere e altrettanti nodi di lettura (più endpoint) come si desidera.

È possibile fare un passo avanti nella sicurezza e assegnare diverse regole di routing al gruppo di replica (tramite VPC) in modo che le applicazioni che leggono i dati non abbiano accesso al nodo master (l'unico in grado di scrivere dati).

+0

Tecnicamente ancora un singolo punto di errore (il master), ma un'idea pulita. – jamie

+0

Inoltre, questo potrebbe essere un problema: "Al momento, ElastiCache supporta cluster di cache Redis a nodo singolo." – jamie

Problemi correlati