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.
Zugriff auf Ihren ElastiCache Cluster oder Replikationsgruppe
Ihre ElastiCache Amazon-Instances sind so konzipiert, dass auf sie über eine Amazon EC2-Instance zugegriffen werden kann.
Wenn Sie Ihre ElastiCache Instance in einer Amazon Virtual Private Cloud (Amazon VPC) gestartet haben, können Sie über eine Amazon ElastiCache EC2-Instance in derselben Amazon VPC auf Ihre Instance zugreifen. Oder mithilfe von VPC-Peering können Sie von einer Amazon EC2 in einer anderen Amazon VPC aus auf Ihre ElastiCache Instance zugreifen.
Wenn Sie Ihre ElastiCache Instance in EC2 Classic gestartet haben, gestatten Sie der EC2-Instance den Zugriff auf Ihren Cluster, indem Sie der Amazon EC2-Sicherheitsgruppe, die der Instance zugeordnet ist, 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.
Gewähren Sie Zugriff auf Ihren Clusteroder Replikationsgruppe
Sie haben Ihren Cluster gestartet in EC2-VPC
Wenn Sie Ihren Cluster in einer Amazon Virtual Private Cloud (Amazon VPC) gestartet haben, können Sie nur von einer Amazon EC2-Instance aus, die in derselben Amazon VPC ausgeführt wird, eine Verbindung zu Ihrem ElastiCache Cluster herstellen. 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. Dadurch wird Ihre VPC auf diese Local Zone ausgedehnt, und Ihre VPC behandelt das Subnetz wie jedes andere Subnetz in jeder anderen Availability Zone, und relevante Gateways, Routentabellen und andere Sicherheitsgruppen werden automatisch angepasst.
So gewähren Sie einem Cluster den Netzwerkeingang aus einer Amazon-VPC-Sicherheitsgruppe
Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon EC2-Konsole unter. https://console.aws.amazon.com/ec2/
-
Wählen Sie in der Navigationsleiste unter Network &Security die Option Security Groups aus.
-
Wählen Sie aus der Liste der Sicherheitsgruppen die Sicherheitsgruppe Ihrer Amazon VPC aus. Sofern Sie keine Sicherheitsgruppe zur ElastiCache Verwendung erstellt haben, wird diese Sicherheitsgruppe als Standard bezeichnet.
-
Wählen Sie die Registerkarte Inbound und verfahren Sie dann wie folgt:
-
Wählen Sie Bearbeiten aus.
-
Wählen Sie Regel hinzufügen aus.
-
Wählen Sie in der Spalte Typ die Option Benutzerdefinierte TCP-Regel aus.
-
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
11211Der Standardport für Valkey und Redis OSS ist.6379 -
Wählen Sie im Feld Quelle die Option Anywhere aus, die den Portbereich (0.0.0) hat. 0/0), sodass jede Amazon EC2-Instance, die Sie in Ihrer Amazon VPC starten, eine Verbindung zu Ihren Knoten herstellen kann. ElastiCache
Wichtig
Öffnen des ElastiCache Clusters auf 0.0.0. 0/0 stellt den Cluster nicht dem Internet zur Verfügung, da er keine öffentliche IP-Adresse hat und daher von außerhalb der VPC nicht darauf zugegriffen werden kann. Die Standardsicherheitsgruppe kann jedoch auf andere Amazon-EC2-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 wird empfohlen, eine VPC-Sicherheitsgruppe einzurichten, die ausschließlich von ElastiCache genutzt wird. Weitere Informationen finden Sie unter Benutzerdefinierte Sicherheitsgruppen.
-
Wählen Sie Speichern.
-
Wenn Sie eine Amazon EC2-Instance in Ihrer Amazon VPC starten, kann diese Instance eine Verbindung zu Ihrem Cluster herstellen. ElastiCache
Zugriff auf ElastiCache Ressourcen von außen AWS
Amazon ElastiCache ist ein AWS Dienst, der Cloud-basierte In-Memory-Key-Value-Speicher bereitstellt. Der Dienst ist so konzipiert, dass ausschließlich von innen zugegriffen werden kann. AWS Wenn der ElastiCache Cluster jedoch in einer VPC gehostet wird, können Sie eine EC2-Instance verwenden, die für Network Address Translation (NAT) mit Portweiterleitung konfiguriert ist, um den Zugriff von außen zu ermöglichen.
Wichtig
Dieser Ansatz sollte nur zu Test- und Entwicklungszwecken verwendet werden. Für Produktionsworkloads, die externen Zugriff erfordern, sollten Sie stattdessen die Verwendung von AWS Site-to-Site VPN oder AWS Client-VPN in Betracht ziehen.
Voraussetzungen
Die folgenden Anforderungen müssen erfüllt sein, damit Sie von außen AWS auf Ihre ElastiCache Ressourcen zugreifen können:
-
Der Cluster muss sich innerhalb einer VPC befinden und über eine Network Address Translation (NAT)-Instance zugänglich sein. Für diese Anforderung gibt es keine Ausnahmen.
-
Die EC2-Instance für die Portweiterleitung muss in derselben VPC wie der Cluster gestartet werden.
-
Die Port-Forwarding-EC2-Instance muss in einem öffentlichen Subnetz gestartet werden, das vom Cluster getrennt ist.
-
Der EC2-Instance muss eine Elastic IP Address (EIP) zugeordnet sein. Die Portweiterleitungsfunktion von iptables wird verwendet, um einen Port auf der Instance an den Cache-Node-Port innerhalb der VPC weiterzuleiten.
Überlegungen
Beachten Sie beim Zugriff auf Ihre ElastiCache -Ressourcen von außerhalb von ElastiCache die folgenden Punkte.
-
Clients stellen eine Verbindung mit der EIP und dem Cache-Port der NAT-Instance her. Die Portweiterleitung auf der NAT-Instance leitet den Datenverkehr an den entsprechenden Clusterknoten 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-Instance fungiert als Proxy zwischen Clients und mehreren Clustern. Das Hinzufügen eines Proxys wirkt sich auf die Leistung des Clusters aus. Die Auswirkung steigt mit der Anzahl der Cluster, auf die Sie über die NAT-Instance zugreifen.
-
Der Datenverkehr von den Clients zur NAT-Instance ist nicht verschlüsselt. Daher sollten Sie keine sensiblen Daten über die NAT-Instance senden.
-
Die NAT-Instance bedeutet zusätzlichen Aufwand durch Verwalten einer weiteren Instance.
-
Die NAT-Instance dient als einzelne Fehlerquelle. Für eine hohe Verfügbarkeit sollten Sie stattdessen die Verwendung eines NAT-Gateways in Betracht ziehen.
Wie greife ich von außen auf ElastiCache Ressourcen zu AWS
Das folgende Verfahren zeigt, wie Sie mithilfe einer NAT-Instance 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:6379iptables -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 Redis OSS-Cluster zu mit:
-
IP-Adresse – 10.0.1.230
-
Standardport — 6379
-
Sicherheitsgruppe – sg-bd56b7da
-
AWS Instanz-IP-Adresse — 198.99.100.27
-
-
Die IP-Adresse Ihres vertrauenswürdigen Clients lautet 198.51.100.27.
-
Ihre NAT-Instance hat die Elastic IP-Adresse 203.0.113.73.
-
Die Sicherheitsgruppe Ihrer NAT-Instance lautet sg-ce56b7a9.
Um mithilfe einer NAT-Instance eine Verbindung zu Ihren ElastiCache Ressourcen herzustellen
-
Starten Sie eine EC2-Instance in derselben VPC wie Ihr Cluster, jedoch in einem öffentlichen Subnetz. Diese Instance fungiert als Ihr Host. NAT/port-forwarding
Verwenden Sie ein aktuelles Amazon Linux 2023 AMI (oder ein anderes Linux-AMI Ihrer Wahl). Wählen Sie eine Instance-Größe aus, die auf Ihrem erwarteten Datenverkehr basiert. Die Instance benötigt ein öffentliches Subnetz, eine Elastic IP-Adresse und aktiviertes IP-Forwarding.
Informationen zum Starten von EC2-Instances finden Sie unter Starten einer Instance im Amazon Elastic Compute Cloud-Benutzerhandbuch.
-
Erstellen Sie Sicherheitsgruppenregeln für den Cluster und die NAT-Instance.
Die Sicherheitsgruppe der NAT-Instance und die Cluster-Instance sollten folgende Regeln besitzen:
-
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 OSS besteht die erste Regel darin, TCP-Verbindungen von vertrauenswürdigen Clients zu jedem Cache-Port zuzulassen, der von der NAT-Instance weitergeleitet wird (6379 — 6381).
-
Eine zweite Regel, um SSH-Zugriff auf vertrauenswürdige Clients zu ermöglichen.
Sicherheitsgruppe für NAT-Instances — Regeln für eingehenden Verkehr mit Memcached Typ Protocol (Protokoll) Port-Bereich Quelle Zielbereich TCP 11211 –11213 198.51.100. 27/32 SSH TCP 22 198,51,100. 27/32 NAT-Instance-Sicherheitsgruppe — Regeln für eingehenden Datenverkehr mit Valkey oder Redis OSS Typ Protocol (Protokoll) Port-Bereich Quelle Zielbereich TCP 6379-6380 198.51.100. 27/32 SSH TCP 22 203,0.113. 73/32 -
-
Mit Memcached eine ausgehende Regel, die TCP-Verbindungen zum Cache-Port (11211) zulässt.
Sicherheitsgruppe der NAT-Instance – Regeln für ausgehenden Datenverkehr Typ Protocol (Protokoll) Port-Bereich Ziel Zielbereich TCP 11211 sg-ce56b7a9 (NAT-Sicherheitsgruppe) -
Bei Valkey oder Redis OSS eine Regel für ausgehenden Datenverkehr, die TCP-Verbindungen zum Cache-Port (6379) zulässt.
Sicherheitsgruppe der NAT-Instance – Regeln für ausgehenden Datenverkehr Typ Protocol (Protokoll) Port-Bereich Ziel Zielbereich TCP 6379 sg-ce56b7a9 (NAT-Sicherheitsgruppe) -
Bei Memcached eine Regel für eingehenden Datenverkehr für die Sicherheitsgruppe des Clusters, die TCP-Verbindungen von der NAT-Instance zum Cache-Port zulässt (11211).
Sicherheitsgruppe der Cluster-Instance – Regel für eingehenden Datenverkehr Typ Protocol (Protokoll) Port-Bereich Quelle Zielbereich TCP 11211 sg-ce56b7a9 (NAT-Sicherheitsgruppe) -
Bei Valkey oder Redis OSS eine eingehende Regel für die Sicherheitsgruppe des Clusters, die TCP-Verbindungen von der NAT-Instance zum Cache-Port zulässt (6379).
Sicherheitsgruppe der Cluster-Instance – Regel für eingehenden Datenverkehr Typ Protocol (Protokoll) Port-Bereich Quelle Zielbereich TCP 6379 sg-ce56b7a9 (NAT-Sicherheitsgruppe)
-
-
Validieren Sie die Regeln.
-
Bestätigen Sie, dass der vertrauenswürdige Client eine SSH-Verbindung mit der NAT-Instance herstellen kann.
-
Bestätigen Sie, dass der vertrauenswürdige Client eine Verbindung mit dem Cluster über die NAT-Instance herstellen kann.
-
-
Memcached
Fügen Sie der NAT-Instance eine iptables-Regel hinzu.
Eine iptables-Regel muss der NAT-Tabelle für jeden Knoten im Cluster hinzugefügt werden, um den Cache-Port von der NAT-Instance an den Cluster-Knoten 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:11211Die 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:11211Bestätigen Sie, dass der vertrauenswürdige Client eine Verbindung mit dem Cluster herstellen kann.
Der vertrauenswürdige Client sollte eine Verbindung mit dem EIP herstellen, der der NAT-Instance zugewiesen ist, und dem Cluster-Port, der dem entsprechenden Cluster-Knoten entspricht. Die Verbindungszeichenfolge für PHP sieht beispielsweise wie folgt aus:
$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. Beispiel:
telnet 203.0.113.73 11211 telnet 203.0.113.73 11212 telnet 203.0.113.73 11213Valkey oder Redis OSS
Fügen Sie der NAT-Instance eine iptables-Regel hinzu.
Eine iptables-Regel muss der NAT-Tabelle für jeden Knoten im Cluster hinzugefügt werden, um den Cache-Port von der NAT-Instance an den Cluster-Knoten 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:6379Die Portnummer muss für jeden Knoten im Cluster eindeutig sein. Wenn Sie beispielsweise mit einem Redis OSS-Cluster mit drei Knoten arbeiten, der die Ports 6379 — 6381 verwendet, 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:6379Bestätigen Sie, dass der vertrauenswürdige Client eine Verbindung mit dem Cluster herstellen kann.
Der vertrauenswürdige Client sollte eine Verbindung mit dem EIP herstellen, der der NAT-Instance zugewiesen ist, und dem Cluster-Port, der dem entsprechenden Cluster-Knoten entspricht. Die Verbindungszeichenfolge für PHP sieht beispielsweise wie folgt aus:
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. Beispiel:
telnet 203.0.113.73 6379 telnet 203.0.113.73 6380 telnet 203.0.113.73 6381 -
Speichern Sie die iptables-Konfiguration.
Speichern Sie die Regeln, nachdem Sie sie getestet und überprüft haben. Wenn Sie eine Redhat-based Linux-Distribution (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.