Zugreifen auf Ihren ElastiCache Cluster oder Ihre Replikationsgruppe - Amazon ElastiCache

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Zugreifen auf Ihren ElastiCache Cluster oder Ihre Replikationsgruppe

Ihre ElastiCache Amazon-Instances sind für den Zugriff über eine EC2 Amazon-Instance konzipiert.

Wenn Sie Ihre ElastiCache Instance in einer Amazon Virtual Private Cloud (AmazonVPC) gestartet haben, können Sie von einer ElastiCache EC2 Amazon-Instance in demselben Amazon aus auf Ihre Instance zugreifenVPC. Oder Sie können mithilfe von VPC Peering von einem Amazon EC2 in einem anderen Amazon VPC auf Ihre ElastiCache Instance zugreifen.

Wenn Sie Ihre ElastiCache Instance in EC2 Classic gestartet haben, erlauben Sie der EC2 Instance den Zugriff auf Ihren Cluster, indem Sie der mit der Instance verknüpften EC2 Amazon-Sicherheitsgruppe Zugriff auf Ihre Cache-Sicherheitsgruppe gewähren. Standardmäßig ist der Zugriff auf einen Cluster auf das Konto beschränkt, mit dem der Cluster gestartet wurde.

Zugriff auf Ihren Cluster oder die Replikationsgruppe erteilen

Sie haben Ihren Cluster gestartet in EC2 - VPC

Wenn Sie Ihren Cluster in einer Amazon Virtual Private Cloud (AmazonVPC) gestartet haben, können Sie nur von einer EC2 Amazon-Instance aus, die in demselben Amazon läuft, eine Verbindung zu Ihrem ElastiCache Cluster herstellenVPC. In diesem Fall müssen Sie Netzwerkzugang zum Cluster gewähren.

Anmerkung

Wenn Sie Local Zones verwenden, vergewissern Sie sich, dass Sie sie aktiviert haben. Weitere Informationen finden Sie unter Local Zones aktivieren. Auf diese Weise VPC VPC wird Ihr Subnetz auf diese lokale Zone ausgedehnt und Sie behandeln das Subnetz wie jedes andere Subnetz in jeder anderen Availability Zone, und die relevanten Gateways, Routing-Tabellen und andere Überlegungen zu Sicherheitsgruppen werden automatisch angepasst.

So gewähren Sie Netzwerkzugang von einer VPC Amazon-Sicherheitsgruppe zu einem Cluster
  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die EC2 Amazon-Konsole unter https://console.aws.amazon.com/ec2/.

  2. Wählen Sie in der Navigationsleiste unter Network &Security die Option Security Groups aus.

  3. Wählen Sie aus der Liste der Sicherheitsgruppen die Sicherheitsgruppe für Ihr Amazon ausVPC. Sofern Sie keine Sicherheitsgruppe zur ElastiCache Verwendung erstellt haben, wird diese Sicherheitsgruppe als Standard bezeichnet.

  4. Wählen Sie die Registerkarte Inbound und verfahren Sie dann wie folgt:

    1. Wählen Sie Edit aus.

    2. Wählen Sie Regel hinzufügen aus.

    3. Wählen Sie in der Spalte Typ die Option Benutzerdefinierte TCP Regel aus.

    4. Geben Sie in das Feld Port Range die Portnummer Ihres Clusterknotens ein. Diese Nummer muss mit der Nummer übereinstimmen, die Sie beim Starten des Clusters angegeben haben. Der Standardport für Memcached ist 11211 Der Standardport für Valkey und Redis ist. OSS 6379

    5. Wählen Sie im Feld Quelle die Option Anywhere mit dem Portbereich (0.0.0.0/0) aus, sodass jede EC2 Amazon-Instance, die Sie in Ihrem Amazon starten, eine Verbindung zu Ihren VPC Knoten herstellen kann. ElastiCache

      Wichtig

      Wenn Sie den ElastiCache Cluster für 0.0.0.0/0 öffnen, wird der Cluster nicht dem Internet zugänglich gemacht, da er keine öffentliche IP-Adresse hat und daher nicht von außerhalb des darauf zugegriffen werden kann. VPC Die Standardsicherheitsgruppe kann jedoch auf andere EC2 Amazon-Instances im Kundenkonto angewendet werden, und diese Instances können eine öffentliche IP-Adresse haben. Wenn diese Instances zufälligerweise eine Aktion auf dem Standardport ausführen, dann könnte dieser Service unbeabsichtigt zugänglich gemacht werden. Daher empfehlen wir, eine VPC Sicherheitsgruppe zu erstellen, die ausschließlich von verwendet wird ElastiCache. Weitere Informationen finden Sie unter Benutzerdefinierte Sicherheitsgruppen.

    6. Wählen Sie Save (Speichern) aus.

Wenn Sie eine EC2 Amazon-Instance in Ihrem Amazon startenVPC, kann diese Instance eine Verbindung zu Ihrem ElastiCache Cluster herstellen.

Zugriff auf ElastiCache Ressourcen von außen AWS

Amazon ElastiCache ist ein AWS Service, der einen cloudbasierten In-Memory-Key-Value-Speicher bereitstellt. Der Service ist so konzipiert, dass er ausschließlich von innen abgerufen werden kann. AWS Wenn der ElastiCache Cluster jedoch in einer gehostet wirdVPC, können Sie eine Network Address Translation (NAT) -Instanz verwenden, um den Zugriff von außen zu ermöglichen.

Voraussetzungen

Die folgenden Anforderungen müssen erfüllt sein, damit Sie von außerhalb auf Ihre ElastiCache Ressourcen zugreifen können AWS:

  • Der Cluster muss sich in einer Network Address Translation () -Instance befinden VPC und der Zugriff darauf ist über eine Network Address Translation (NAT) -Instanz möglich. Für diese Anforderung gibt es keine Ausnahmen.

  • Die NAT Instanz muss in derselben Weise VPC wie der Cluster gestartet werden.

  • Die NAT Instance muss in einem vom Cluster getrennten öffentlichen Subnetz gestartet werden.

  • Der NAT Instance muss eine Elastic IP-Adresse (EIP) zugeordnet sein. Die Portweiterleitungsfunktion von iptables wird verwendet, um einen Port auf der NAT Instance an den Cache-Node-Port innerhalb von weiterzuleiten. VPC

Überlegungen

Die folgenden Überlegungen sollten berücksichtigt werden, wenn Sie von außen ElastiCache auf Ihre ElastiCache Ressourcen zugreifen.

  • Clients stellen eine Verbindung zum EIP und zum Cache-Port der NAT Instance her. Die Portweiterleitung auf der NAT Instance leitet den Datenverkehr an den entsprechenden Cache-Cluster-Knoten weiter.

  • Wenn ein Cluster-Knoten hinzugefügt oder ersetzt wird, müssen die iptables-Regeln entsprechend aktualisiert werden.

Einschränkungen

Dieser Ansatz sollte nur zu Test- und Entwicklungszwecken verwendet werden. Er wird aufgrund der folgenden Einschränkungen nicht für die Produktion empfohlen:

  • Die NAT Instanz fungiert als Proxy zwischen Clients und mehreren Clustern. Ein zusätzlicher Proxy beeinträchtigt die Leistung des Cache-Clusters. Die Auswirkung nimmt mit der Anzahl der Cache-Cluster zu, auf die Sie über die NAT Instance zugreifen.

  • Der Datenverkehr von den Clients zur NAT Instance ist unverschlüsselt. Daher sollten Sie vermeiden, sensible Daten über die NAT Instance zu senden.

  • Die NAT Instanz erhöht den Mehraufwand für die Wartung einer anderen Instanz.

  • Die NAT Instanz dient als zentrale Fehlerquelle. Informationen zur Einrichtung von Hochverfügbarkeit NAT auf VPC finden Sie unter Hochverfügbarkeit für VPC NAT Amazon-Instances: Ein Beispiel.

Wie greife ich von außen auf ElastiCache Ressourcen zu AWS

Das folgende Verfahren zeigt, wie Sie mithilfe einer NAT Instanz eine Verbindung zu Ihren ElastiCache Ressourcen herstellen.

Diese Schritte setzen Folgendes voraus:

  • 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

Als Nächstes benötigen Sie NAT in die entgegengesetzte Richtung:

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

Sie müssen auch die IP-Weiterleitung aktivieren, die standardmäßig deaktiviert ist:

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

  • Ihr Zugriff auf einen Memcached-Cluster erfolgt mit:

    • IP-Adresse – 10.0.1.230

    • Memcached-Standardport – 11211

    • Sicherheitsgruppe – *10\.0\.0\.55*

  • Sie greifen auf einen Valkey- oder OSS Redis-Cluster zu mit:

    • IP-Adresse – 10.0.1.230

    • Standardport — 6379

    • Sicherheitsgruppe – sg-bd56b7da

    • AWS Instanz-IP-Adresse — sg-bd56b7da

  • Die IP-Adresse Ihres vertrauenswürdigen Clients lautet 198.51.100.27.

  • Ihre NAT Instance hat die Elastic IP-Adresse 203.0.113.73.

  • Ihre NAT Instance hat die Sicherheitsgruppe sg-ce56b7a9.

So stellen Sie mithilfe einer Instance eine Verbindung zu Ihren Ressourcen her ElastiCache NAT
  1. Erstellen Sie eine NAT Instanz im selben VPC wie Ihr Cache-Cluster, jedoch in einem öffentlichen Subnetz.

    Standardmäßig startet der VPC Assistent den Knotentyp cache.m1.small. Wählen Sie eine Knotengröße aus, die Ihren Anforderungen entspricht. Sie müssen verwenden EC2 NATAMI, um von außen darauf zugreifen zu können. ElastiCache AWS

    Informationen zum Erstellen einer NAT Instanz finden Sie im AWS VPC Benutzerhandbuch unter NATInstanzen.

  2. Erstellen Sie Sicherheitsgruppenregeln für den Cache-Cluster und die NAT Instanz.

    Die NAT Instanz-Sicherheitsgruppe und die Clusterinstanz sollten die folgenden Regeln haben:

    • Zwei Regeln für eingehenden Datenverkehr

      • Bei Memcached besteht die erste Regel darin, TCP Verbindungen von vertrauenswürdigen Clients zu jedem Cache-Port zuzulassen, der von der NAT Instance weitergeleitet wird (11211 — 11213).

      • Bei Valkey und Redis besteht die erste Regel darinOSS, TCP Verbindungen von vertrauenswürdigen Clients zu jedem Cache-Port zuzulassen, der von der NAT Instanz weitergeleitet wird (6379 — 6381).

      • Eine zweite Regel ermöglicht den SSH Zugriff auf vertrauenswürdige Clients.

      NATInstanz-Sicherheitsgruppe — Regeln für eingehenden Datenverkehr mit Memcached
      Typ Protocol (Protokoll) Port-Bereich Quelle
      TCPBenutzerdefinierte Regel TCP 11211 –11213 198.51.100.27/32
      SSH TCP 22 198.51.100.27/32
      NATInstanz-Sicherheitsgruppe — Regeln für eingehenden Datenverkehr mit Valkey oder Redis OSS
      Typ Protocol (Protokoll) Port-Bereich Quelle
      TCPBenutzerdefinierte Regel TCP 6379-6380 198.51.100.27/32
      SSH TCP 22 203.0.113.73/32
    • Bei Memcached handelt es sich um eine ausgehende Regel, die TCP Verbindungen zum Cache-Port (11211) zulässt.

      NATInstanz-Sicherheitsgruppe — ausgehende Regel
      Typ Protocol (Protokoll) Port-Bereich Bestimmungsort
      Benutzerdefinierte Regel TCP TCP 11211 sg-ce56b7a9 (Sicherheitsgruppe der Cluster-Instance)
    • Mit Valkey oder RedisOSS, einer ausgehenden Regel, die TCP Verbindungen zum Cache-Port (6379) zulässt.

      NATInstanz-Sicherheitsgruppe — ausgehende Regel
      Typ Protocol (Protokoll) Port-Bereich Bestimmungsort
      Benutzerdefinierte Regel TCP TCP 6379 sg-ce56b7a9 (Sicherheitsgruppe der Cluster-Instance)
    • Mit Memcached, einer eingehenden Regel für die Sicherheitsgruppe des Clusters, die TCP Verbindungen von der NAT Instance zum Cache-Port (11211) zulässt.

      Sicherheitsgruppe der Cluster-Instance – Regel für eingehenden Datenverkehr
      Typ Protocol (Protokoll) Port-Bereich Quelle
      Benutzerdefinierte Regel TCP TCP 11211 sg-bd56b7da (Sicherheitsgruppe) NAT
    • Mit Valkey oder RedisOSS, einer eingehenden Regel für die Sicherheitsgruppe des Clusters, die TCP Verbindungen von der Instance zum Cache-Port (6379) zulässt. NAT

      Sicherheitsgruppe der Cluster-Instance – Regel für eingehenden Datenverkehr
      Typ Protocol (Protokoll) Port-Bereich Quelle
      Benutzerdefinierte Regel TCP TCP 6379 sg-bd56b7da (Cluster-Sicherheitsgruppe)
  3. Validieren Sie die Regeln.

    • Vergewissern Sie sich, dass der vertrauenswürdige Client Zugriff SSH auf die NAT Instanz hat.

    • Vergewissern Sie sich, dass der vertrauenswürdige Client von der NAT Instanz aus eine Verbindung zum Cluster herstellen kann.

  4. Memcached

    Fügen Sie der Instanz eine iptables-Regel hinzu. NAT

    Für jeden Knoten im Cluster muss der NAT Tabelle eine iptables-Regel hinzugefügt werden, um den Cache-Port von der NAT Instanz an den Clusterknoten weiterzuleiten. Ein Beispiel könnte folgendermaßen aussehen:

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

    Die Portnummer muss für jeden Knoten im Cluster eindeutig sein. Wenn Sie z. B. mit einem aus drei Knoten bestehenden Memcached-Cluster unter Verwendung der Ports 11211 – 11213 arbeiten, sehen die Regeln wie folgt aus:

    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

    Bestätigen Sie, dass der vertrauenswürdige Client eine Verbindung mit dem Cluster herstellen kann.

    Der vertrauenswürdige Client sollte eine Verbindung zu dem mit der NAT Instanz EIP verknüpften und dem Cluster-Port herstellen, der dem entsprechenden Clusterknoten entspricht. Die Verbindungszeichenfolge für PHP könnte beispielsweise wie folgt aussehen:

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

    Zum Überprüfen der Verbindung kann auch ein Telnet-Client verwendet werden. Beispielsweise:

    telnet 203.0.113.73 11211 telnet 203.0.113.73 11212 telnet 203.0.113.73 11213

    Valkey oder Redis OSS

    Fügen Sie der Instanz eine iptables-Regel hinzu. NAT

    Für jeden Knoten im Cluster muss der NAT Tabelle eine iptables-Regel hinzugefügt werden, um den Cache-Port von der NAT Instanz an den Clusterknoten weiterzuleiten. Ein Beispiel könnte folgendermaßen aussehen:

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

    Die Portnummer muss für jeden Knoten im Cluster eindeutig sein. Wenn Sie beispielsweise mit einem OSS Redis-Cluster mit drei Knoten arbeiten und die Ports 6379 — 6381 verwenden, würden die Regeln wie folgt aussehen:

    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

    Bestätigen Sie, dass der vertrauenswürdige Client eine Verbindung mit dem Cluster herstellen kann.

    Der vertrauenswürdige Client sollte eine Verbindung zu dem der EIP NAT Instanz und dem Cluster-Port herstellen, der dem entsprechenden Clusterknoten entspricht. Die Verbindungszeichenfolge für PHP könnte beispielsweise wie folgt aussehen:

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

    Zum Überprüfen der Verbindung kann auch ein Telnet-Client verwendet werden. Beispielsweise:

    telnet 203.0.113.73 6379 telnet 203.0.113.73 6380 telnet 203.0.113.73 6381
  5. Speichern Sie die iptables-Konfiguration.

    Speichern Sie die Regeln, nachdem Sie sie getestet und überprüft haben. Wenn Sie eine Redhat-Linux-Verteilung (wie Amazon Linux) verwenden, führen Sie den folgenden Befehl aus:

    service iptables save

Verwandte Themen

Die folgenden Themen können von zusätzlichem Interesse sein.