Accesso al ElastiCache cluster o al gruppo di replica - Amazon ElastiCache

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Accesso al ElastiCache cluster o al gruppo di replica

Le tue ElastiCache istanze Amazon sono progettate per essere accessibili tramite un'EC2istanza Amazon.

Se hai avviato l' ElastiCache istanza in un Amazon Virtual Private Cloud (AmazonVPC), puoi accedere all' ElastiCacheistanza da un'EC2istanza Amazon nella stessa AmazonVPC. Oppure, utilizzando il VPC peering, puoi accedere alla tua ElastiCache istanza da un Amazon EC2 in un altro AmazonVPC.

Se hai avviato l' ElastiCache istanza nella EC2 versione Classic, consenti all'EC2istanza di accedere al tuo cluster concedendo al gruppo di EC2 sicurezza Amazon associato all'istanza l'accesso al tuo gruppo di sicurezza della cache. Per impostazione predefinita, l'accesso a un cluster è riservato all'account che lo ha avviato.

Concedi l'accesso al cluster o gruppo di replica

Hai lanciato il tuo cluster in EC2 - VPC

Se hai avviato il cluster in un Amazon Virtual Private Cloud (AmazonVPC), puoi connetterti al ElastiCache cluster solo da un'EC2istanza Amazon in esecuzione nella stessa AmazonVPC. In questo caso sarà necessario concedere al cluster l'ingresso di rete.

Nota

Se si utilizza Local Zones, assicurarsi di averla abilitata. Per ulteriori informazioni, consulta Abilitazione delle zone locali. In questo modo, VPC verrai esteso a quella zona locale e tratterai la sottorete come qualsiasi sottorete in qualsiasi altra zona di disponibilità e le considerazioni relative ai gateway, alle tabelle di routing e ad altre considerazioni relative ai gruppi di sicurezza verranno modificate automaticamente. VPC

Per concedere l'accesso alla rete da un gruppo VPC di sicurezza Amazon a un cluster
  1. Accedi a AWS Management Console e apri la EC2 console Amazon all'indirizzo https://console.aws.amazon.com/ec2/.

  2. Nel riquadro di navigazione, in Rete e sicurezza, scegli Gruppi di sicurezza.

  3. Dall'elenco dei gruppi di sicurezza, scegli il gruppo di sicurezza per il tuo AmazonVPC. A meno che tu non abbia creato un gruppo di sicurezza da ElastiCache utilizzare, questo gruppo di sicurezza verrà denominato predefinito.

  4. Scegli la scheda In entrata, quindi procedi come segue:

    1. Scegli Modifica.

    2. Scegli Aggiungi regola.

    3. Nella colonna Tipo, scegli TCPRegola personalizzata.

    4. Nella casella Intervallo porta, digita il numero di porta per il nodo del cluster. Questo numero deve essere lo stesso specificato durante l'avvio del cluster. La porta predefinita per Memcached è 11211 La porta predefinita per Valkey e Redis è. OSS 6379

    5. Nella casella Source, scegli Anywhere con l'intervallo di porte (0.0.0.0/0) in modo che qualsiasi EC2 istanza Amazon che avvii all'interno di Amazon VPC possa connettersi ai tuoi nodi. ElastiCache

      Importante

      L'apertura del ElastiCache cluster a 0.0.0.0/0 non espone il cluster a Internet perché non ha un indirizzo IP pubblico e quindi non è accessibile dall'esterno di. VPC Tuttavia, il gruppo di sicurezza predefinito può essere applicato ad altre EC2 istanze Amazon nell'account del cliente e tali istanze possono avere un indirizzo IP pubblico. Se eseguono qualche attività sulla porta predefinita, il servizio può essere esposto involontariamente. Pertanto, consigliamo di creare un gruppo VPC di sicurezza che verrà utilizzato esclusivamente da. ElastiCache Per ulteriori informazioni, consulta Gruppi di sicurezza personalizzati.

    6. Seleziona Salva.

Quando avvii un'EC2istanza Amazon su AmazonVPC, quell'istanza sarà in grado di connettersi al tuo ElastiCache cluster.

Accesso alle ElastiCache risorse dall'esterno AWS

Amazon ElastiCache è un AWS servizio che fornisce un archivio chiave-valore in memoria basato sul cloud. Il servizio è progettato per essere accessibile esclusivamente dall'interno. AWS Tuttavia, se il ElastiCache cluster è ospitato all'interno di unVPC, è possibile utilizzare un'istanza Network Address Translation (NAT) per fornire l'accesso dall'esterno.

Requisiti

Per poter accedere alle ElastiCache risorse dall'esterno, è necessario soddisfare i seguenti requisiti AWS:

  • Il cluster deve risiedere all'interno di un'istanza di Network Address Translation () VPC ed è accessibile tramite un'istanza di Network Address Translation (NAT). Non ci sono eccezioni a questo requisito.

  • L'NATistanza deve essere avviata nello VPC stesso ambiente del cluster.

  • L'NATistanza deve essere avviata in una sottorete pubblica separata dal cluster.

  • Un indirizzo IP elastico (EIP) deve essere associato all'NATistanza. La funzionalità di port forwarding di iptables viene utilizzata per inoltrare una porta sull'NATistanza alla porta del nodo cache all'interno di. VPC

Considerazioni

Le seguenti considerazioni devono essere tenute a mente quando si accede alle risorse dall'esterno. ElastiCache ElastiCache

  • I client si connettono alla porta EIP e alla porta cache dell'NATistanza. Il port forwarding sull'NATistanza inoltra il traffico al nodo del cluster di cache appropriato.

  • Se un nodo cluster viene aggiunto o sostituito, le regole iptables devono essere aggiornate per riflettere questo cambiamento.

Limitazioni

Questo approccio deve essere utilizzato esclusivamente a scopo di sviluppo e test. Non è consigliato per essere utilizzato per la produzione a causa dei limiti seguenti:

  • L'NATistanza funge da proxy tra client e più cluster. L'aggiunta di un proxy ha impatto sulle prestazioni del cluster di cache. L'impatto aumenta con il numero di cluster di cache a cui si accede tramite l'NATistanza.

  • Il traffico dai client all'NATistanza non è crittografato. Pertanto, dovresti evitare di inviare dati sensibili tramite l'NATistanza.

  • L'NATistanza aggiunge il sovraccarico derivante dalla manutenzione di un'altra istanza.

  • L'NATistanza funge da singolo punto di errore. Per informazioni su come configurare l'alta disponibilità NAT suVPC, consulta High Availability for Amazon VPC NAT Instances: An Example.

Come accedere alle ElastiCache risorse dall'esterno AWS

La procedura seguente mostra come connettersi alle ElastiCache risorse utilizzando un'NATistanza.

Questi passaggi presuppongono quanto segue:

  • iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6380 -j DNAT --to 10.0.1.231:6379

  • iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6381 -j DNAT --to 10.0.1.232:6379

Successivamente è necessario NAT nella direzione opposta:

iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 10.0.0.55

È inoltre necessario abilitare l'inoltro IP, che è disabilitato per impostazione predefinita:

sudo sed -i 's/net.ipv4.ip_forward=0/net.ipv4.ip_forward=1/g' /etc/sysctl.conf sudo sysctl --system

  • Stai accedendo a un cluster Memcached con:

    • Indirizzo IP: 10.0.1.230

    • Porta Memcached predefinita: 11211

    • Gruppo di sicurezza: *10\.0\.0\.55*

  • Stai accedendo a un OSS cluster Valkey o Redis con:

    • Indirizzo IP: 10.0.1.230

    • Porta predefinita: 6379

    • Gruppo di sicurezza: sg-bd56b7da

    • AWS indirizzo IP dell'istanza: sg-bd56b7da

  • L'indirizzo IP del client affidabile è 198.51.100.27.

  • L'NATistanza ha l'indirizzo IP elastico 203.0.113.73.

  • L'NATistanza ha il gruppo di sicurezza sg-ce56b7a9.

Per connetterti alle tue risorse usando un'istanza ElastiCache NAT
  1. Crea un'NATistanza nello VPC stesso cluster di cache ma in una sottorete pubblica.

    Per impostazione predefinita, la VPC procedura guidata avvia un tipo di nodo cache.m1.small. È necessario selezionare una dimensione di nodo in base alle proprie esigenze: È necessario utilizzare EC2 NAT AMI per poter accedere dall'esterno. ElastiCache AWS

    Per informazioni sulla creazione di un'NATistanza, consulta NATIstanze nella Guida per l' AWS VPCutente.

  2. Crea regole di gruppo di sicurezza per il cluster di cache e l'NATistanza.

    Il gruppo di sicurezza dell'NATistanza e l'istanza del cluster devono avere le seguenti regole:

    • Due regole in entrata

      • Con Memcached, la prima regola è consentire TCP le connessioni da client affidabili a ciascuna porta cache inoltrata dall'NATistanza (11211 - 11213).

      • Con Valkey e RedisOSS, la prima regola consiste nel consentire le TCP connessioni da client affidabili a ciascuna porta cache inoltrata dall'istanza (6379 - 6381). NAT

      • Una seconda regola per consentire l'accesso a client affidabili. SSH

      NATinstance security group: regole in entrata con Memcached
      Tipo Protocollo Intervallo porte Origine
      Regola personalizzata TCP TCP 11211-11213 198.51.100.27/32
      SSH TCP 22 198.51.100.27/32
      NATgruppo di sicurezza dell'istanza: regole in entrata con Valkey o Redis OSS
      Tipo Protocollo Intervallo porte Origine
      Regola personalizzata TCP TCP 6379-6380 198.51.100.27/32
      SSH TCP 22 203.0.113.73/32
    • Con Memcached, una regola in uscita per consentire TCP le connessioni alla porta cache (11211).

      NATgruppo di sicurezza dell'istanza - regola in uscita
      Tipo Protocollo Intervallo porte Destinazione
      Regola personalizzata TCP TCP 11211 sg-ce56b7a9 (gruppo di sicurezza per le istanze del cluster)
    • Con Valkey o RedisOSS, una regola in uscita per consentire TCP le connessioni alla porta cache (6379).

      NATgruppo di sicurezza dell'istanza - regola in uscita
      Tipo Protocollo Intervallo porte Destinazione
      Regola personalizzata TCP TCP 6379 sg-ce56b7a9 (gruppo di sicurezza per le istanze del cluster)
    • Con Memcached, una regola in entrata per il gruppo di sicurezza del cluster che consente TCP le connessioni dall'NATistanza alla porta cache (11211).

      Gruppo di sicurezza per le istanze del cluster - Regola in entrata
      Tipo Protocollo Intervallo porte Origine
      Regola personalizzata TCP TCP 11211 sg-bd56b7da (Gruppo di sicurezza) NAT
    • Con Valkey o RedisOSS, una regola in entrata per il gruppo di sicurezza del cluster che consente le TCP connessioni dall'istanza alla porta cache (6379). NAT

      Gruppo di sicurezza per le istanze del cluster - Regola in entrata
      Tipo Protocollo Intervallo porte Origine
      Regola personalizzata TCP TCP 6379 sg-bd56b7da (gruppo di sicurezza del cluster)
  3. Convalidare le regole.

    • Verifica che il client affidabile sia in grado di SSH accedere all'NATistanza.

    • Verifica che il client affidabile sia in grado di connettersi al cluster dall'NATistanza.

  4. Memcached

    Aggiungi una regola iptables all'istanza. NAT

    È necessario aggiungere una regola iptables alla NAT tabella per ogni nodo del cluster per inoltrare la porta cache dall'NATistanza al nodo del cluster. Di seguito è riportato un possibile esempio:

    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 11211 -j DNAT --to 10.0.1.230:11211

    Il numero di porta deve essere univoco per ciascun nodo nel cluster. Ad esempio, se si utilizza un cluster Memcached a tre nodi tramite le porte 11211 - 11213, le regole avrebbero un aspetto simile al seguente:

    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 11211 -j DNAT --to 10.0.1.230:11211 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 11212 -j DNAT --to 10.0.1.231:11211 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 11213 -j DNAT --to 10.0.1.232:11211

    Confermare che il client affidabile possa effettuare la connessione al cluster.

    Il client affidabile deve connettersi all'istanza EIP associata all'NATistanza e alla porta del cluster corrispondente al nodo del cluster appropriato. Ad esempio, la stringa di connessione per PHP potrebbe essere simile alla seguente:

    $memcached->connect( '203.0.113.73', 11211 ); $memcached->connect( '203.0.113.73', 11212 ); $memcached->connect( '203.0.113.73', 11213 );

    È anche possibile utilizzare un client telnet per verificare la connessione. Per esempio:

    telnet 203.0.113.73 11211 telnet 203.0.113.73 11212 telnet 203.0.113.73 11213

    Valkey o Redis OSS

    Aggiungi una regola iptables all'istanza. NAT

    È necessario aggiungere una regola iptables alla NAT tabella per ogni nodo del cluster per inoltrare la porta cache dall'NATistanza al nodo del cluster. Di seguito è riportato un possibile esempio:

    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6379 -j DNAT --to 10.0.1.230:6379

    Il numero di porta deve essere univoco per ciascun nodo nel cluster. Ad esempio, se si lavora con un OSS cluster Redis a tre nodi utilizzando le porte 6379 - 6381, le regole sarebbero le seguenti:

    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6379 -j DNAT --to 10.0.1.230:6379 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6380 -j DNAT --to 10.0.1.231:6379 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6381 -j DNAT --to 10.0.1.232:6379

    Confermare che il client affidabile possa effettuare la connessione al cluster.

    Il client affidabile deve connettersi all'istanza EIP associata all'NATistanza e alla porta del cluster corrispondente al nodo del cluster appropriato. Ad esempio, la stringa di connessione per PHP potrebbe essere simile alla seguente:

    redis->connect( '203.0.113.73', 6379 ); redis->connect( '203.0.113.73', 6380 ); redis->connect( '203.0.113.73', 6381 );

    È anche possibile utilizzare un client telnet per verificare la connessione. Per esempio:

    telnet 203.0.113.73 6379 telnet 203.0.113.73 6380 telnet 203.0.113.73 6381
  5. Salvare la configurazione iptables.

    Salvare le regole dopo averle sottoposte a test e a verifica. Se si sta utilizzando una distribuzione Linux basata su Redhat (ad esempio Amazon Linux), eseguire questo comando:

    service iptables save

Argomenti correlati

Negli argomenti seguenti vengono fornite informazioni aggiuntive.