Acceso a su ElastiCache clúster o grupo de replicación - Amazon ElastiCache

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Acceso a su ElastiCache clúster o grupo de replicación

Tus ElastiCache instancias de Amazon están diseñadas para que puedas acceder a ellas a través de una EC2 instancia de Amazon.

Si lanzaste tu ElastiCache instancia en una Amazon Virtual Private Cloud (AmazonVPC), puedes acceder a ella ElastiCache desde una EC2 instancia de Amazon en el mismo AmazonVPC. O bien, mediante el VPC peering, puedes acceder a tu ElastiCache instancia desde un Amazon situado EC2 en otro AmazonVPC.

Si lanzaste tu ElastiCache instancia en EC2 Classic, permites que la EC2 instancia acceda a tu clúster al conceder al grupo de EC2 seguridad de Amazon asociado a la instancia acceso a tu grupo de seguridad de caché. De forma predeterminada, el acceso a un clúster está restringido a la cuenta que lanzó el clúster.

Conceder acceso al clúster o al grupo de reproducción

Lanzó su clúster en EC2 - VPC

Si lanzó su clúster en una Amazon Virtual Private Cloud (AmazonVPC), solo podrá conectarse a su ElastiCache clúster desde una EC2 instancia de Amazon que se ejecute en el mismo AmazonVPC. En este caso, necesitará conceder acceso de red al clúster.

nota

Si utiliza Local Zones, asegúrese de haberlo habilitado. Para obtener más información, consulte Habilitar Local Zones. De este modo, VPC se extenderá a esa zona local y VPC tratará la subred como cualquier subred de cualquier otra zona de disponibilidad y ajustará automáticamente las puertas de enlace, las tablas de enrutamiento y otros grupos de seguridad pertinentes.

Para conceder la entrada de red desde un grupo de VPC seguridad de Amazon a un clúster
  1. Inicia sesión en la EC2 consola de Amazon AWS Management Console y ábrela en https://console.aws.amazon.com/ec2/.

  2. En el panel de navegación, en Network & Security (Redes y seguridad), seleccione Security Groups(Grupos de seguridad).

  3. En la lista de grupos de seguridad, elige el grupo de seguridad para tu AmazonVPC. A menos que haya creado un grupo de seguridad para ElastiCache su uso, este grupo de seguridad se denominará predeterminado.

  4. Elija la pestaña Inbound y haga lo siguiente:

    1. Elija Editar.

    2. Seleccione Agregar regla.

    3. En la columna Tipo, elija TCPRegla personalizada.

    4. En el cuadro Port range, escriba el número de puerto para su nodo de clúster. Este número debe ser el mismo que especificó cuando lanzó el clúster. El puerto predeterminado de Memcached es 11211 El puerto predeterminado de Valkey y Redis es. OSS 6379

    5. En el cuadro Fuente, selecciona Cualquier lugar que tenga el rango de puertos (0.0.0.0/0) para que cualquier EC2 instancia de Amazon que lances en tu Amazon VPC pueda conectarse a tus nodos. ElastiCache

      importante

      Abrir el ElastiCache clúster a 0.0.0.0/0 no lo expone a Internet porque no tiene una dirección IP pública y, por lo tanto, no se puede acceder a él desde fuera. VPC Sin embargo, el grupo de seguridad predeterminado se puede aplicar a otras EC2 instancias de Amazon en la cuenta del cliente y esas instancias pueden tener una dirección IP pública. Si se está ejecutando algo en el puerto predeterminado, ese servicio podría exponerse de forma involuntaria. Por lo tanto, recomendamos crear un grupo de VPC seguridad que sea utilizado exclusivamente por ElastiCache. Para obtener más información, consulte Grupos de seguridad personalizados.

    6. Seleccione Guardar.

Cuando lances una EC2 instancia de Amazon en tu AmazonVPC, esa instancia podrá conectarse a tu ElastiCache clúster.

Acceder a ElastiCache recursos desde fuera AWS

Amazon ElastiCache es un AWS servicio que proporciona un almacén de valores clave en memoria basado en la nube. El servicio está diseñado para que se pueda acceder exclusivamente desde dentro. AWS Sin embargo, si el ElastiCache clúster está alojado en unVPC, puedes usar una instancia de traducción de direcciones de red (NAT) para proporcionar acceso externo.

Requisitos

Debes cumplir los siguientes requisitos para poder acceder a tus ElastiCache recursos desde el exterior AWS:

  • El clúster debe residir dentro de una instancia de traducción de direcciones de red (NAT) VPC y acceder a él a través de ella. Este requisito no tiene excepciones.

  • La NAT instancia debe lanzarse en el mismo lugar VPC que el clúster.

  • La NAT instancia debe lanzarse en una subred pública independiente del clúster.

  • Se debe asociar una dirección IP elástica (EIP) a la NAT instancia. La función de reenvío de puertos de iptables se utiliza para reenviar un puerto de la NAT instancia al puerto del nodo de caché dentro del. VPC

Consideraciones

Debe tener en cuenta las siguientes consideraciones al acceder a sus ElastiCache recursos desde el exterior. ElastiCache

  • Los clientes se conectan al puerto EIP y a la memoria caché de la NAT instancia. El reenvío de puertos de la NAT instancia reenvía el tráfico al nodo del clúster de caché correspondiente.

  • Si un nodo del clúster se añade o se reemplaza, las reglas de tablas IP deben actualizarse para reflejar este cambio.

Limitaciones

Este enfoque solo debe usarse con fines de prueba y desarrollo. No se recomienda su uso para la producción debido a las limitaciones siguientes:

  • La NAT instancia actúa como un proxy entre los clientes y varios clústeres. La adición de un proxy afecta al desempeño del clúster de caché. El impacto aumenta con la cantidad de clústeres de caché a los que se accede a través de la NAT instancia.

  • El tráfico de los clientes a la NAT instancia no está cifrado. Por lo tanto, debe evitar enviar datos confidenciales a través de la NAT instancia.

  • La NAT instancia añade la sobrecarga que supone el mantenimiento de otra instancia.

  • La NAT instancia sirve como punto único de error. Para obtener información sobre cómo configurar la alta disponibilidad NAT enVPC, consulte Alta disponibilidad para VPC NAT instancias de Amazon: un ejemplo.

¿Cómo acceder a ElastiCache los recursos desde el exterior AWS

El siguiente procedimiento muestra cómo conectarse a ElastiCache los recursos mediante una NAT instancia.

En los pasos que se describen a continuación se da por sentado lo siguiente:

  • 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

A continuación, necesita NAT ir en la dirección opuesta:

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

También debe activar el reenvío de IP, que está desactivado de forma predeterminada:

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

  • Está accediendo a un clúster de Memcached con:

    • Dirección IP: 10.0.1.230

    • Puerto de Memcached predeterminado: 11 211

    • Grupo de seguridad: *10\.0\.0\.55*

  • Está accediendo a un OSS clúster de Valkey o Redis con:

    • Dirección IP: 10.0.1.230

    • Puerto predeterminado: 6379

    • Grupo de seguridad: sg-bd56b7da

    • AWS Dirección IP de la instancia: sg-bd56b7da

  • El cliente tiene de confianza tiene la dirección IP 198.51.100.27.

  • La NAT instancia tiene la dirección IP elástica 203.0.113.73.

  • La NAT instancia tiene el grupo de seguridad sg-ce56b7a9.

Para conectarse a sus recursos mediante una instancia ElastiCache NAT
  1. Crea una NAT instancia en el mismo lugar VPC que tu clúster de caché, pero en una subred pública.

    De forma predeterminada, el VPC asistente lanzará un nodo del tipo cache.m1.small. Seleccione un tamaño de nodo en función de sus necesidades. Debe usarlo EC2 NAT AMI para poder acceder desde el exterior. ElastiCache AWS

    Para obtener información sobre la creación de una NAT instancia, consulte NATInstancias en la Guía del AWS VPC usuario.

  2. Cree reglas de grupos de seguridad para el clúster y la NAT instancia de caché.

    El grupo de seguridad de la NAT instancia y la instancia del clúster deben tener las siguientes reglas:

    • Dos reglas de entrada

      • Con Memcached, la primera regla es permitir TCP las conexiones de clientes de confianza a cada puerto de caché reenviado desde la NAT instancia (11211 - 11213).

      • Con Valkey y RedisOSS, la primera regla es permitir las TCP conexiones de los clientes de confianza a cada puerto de caché reenviado desde la NAT instancia (6379 - 6381).

      • Una segunda regla para permitir el SSH acceso a clientes de confianza.

      NATgrupo de seguridad de instancias: reglas de entrada con Memcached
      Tipo Protocolo Intervalo de puertos Origen
      Regla personalizada TCP TCP 11211-11213 198.51.100.27/32
      SSH TCP 22 198.51.100.27/32
      NATgrupo de seguridad de instancias: reglas de entrada con Valkey o Redis OSS
      Tipo Protocolo Intervalo de puertos Origen
      Regla personalizada TCP TCP 6379-6380 198.51.100.27/32
      SSH TCP 22 203.0.113.73/32
    • Con Memcached, una regla de salida que permite TCP las conexiones al puerto de caché (11211).

      NATgrupo de seguridad de instancias: regla de salida
      Tipo Protocolo Rango de puerto Destino
      Regla personalizada TCP TCP 11211 sg-ce56b7a9 (grupo de seguridad de la instancia de clúster)
    • Con Valkey o RedisOSS, una regla de salida que permite TCP las conexiones al puerto de caché (6379).

      NATgrupo de seguridad de instancias: regla de salida
      Tipo Protocolo Rango de puerto Destino
      Regla personalizada TCP TCP 6379 sg-ce56b7a9 (grupo de seguridad de la instancia de clúster)
    • Con Memcached, una regla de entrada para el grupo de seguridad del clúster que permite TCP las conexiones desde la NAT instancia al puerto de caché (11211).

      Grupo de seguridad de la instancia del clúster: regla entrante
      Tipo Protocolo Intervalo de puertos Origen
      Regla personalizada TCP TCP 11211 sg-bd56b7da (grupo de seguridad) NAT
    • Con Valkey o RedisOSS, una regla de entrada para el grupo de seguridad del clúster que permite las TCP conexiones desde la instancia al puerto de caché (6379). NAT

      Grupo de seguridad de la instancia del clúster: regla entrante
      Tipo Protocolo Intervalo de puertos Origen
      Regla personalizada TCP TCP 6379 sg-bd56b7da (grupo de seguridad del clúster)
  3. Valide las reglas.

    • Confirma que el cliente de confianza puede acceder SSH a la NAT instancia.

    • Confirma que el cliente de confianza puede conectarse al clúster desde la NAT instancia.

  4. Memcached

    Agrega una regla de iptables a la NAT instancia.

    Se debe agregar una regla de iptables a la NAT tabla para cada nodo del clúster para reenviar el puerto de caché de la NAT instancia al nodo del clúster. Un ejemplo de esto sería el siguiente:

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

    El número de puerto debe ser único para cada nodo del clúster. Por ejemplo, si trabaja con un clúster de Memcached de tres nodos que usan los puertos 11211 - 11213, las reglas deben ser similares a las que se muestran a continuación:

    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

    Confirme que el cliente de confianza es capaz de conectarse al clúster.

    El cliente de confianza debe conectarse al puerto EIP asociado a la NAT instancia y al puerto del clúster correspondiente al nodo del clúster correspondiente. Por ejemplo, la cadena de conexión de PHP podría tener el siguiente aspecto:

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

    También puede usar un cliente de Telnet para comprobar la conexión. Por ejemplo:

    telnet 203.0.113.73 11211 telnet 203.0.113.73 11212 telnet 203.0.113.73 11213

    Valle de Redis OSS

    Agrega una regla de iptables a la instancia. NAT

    Se debe agregar una regla de iptables a la NAT tabla para cada nodo del clúster para reenviar el puerto de caché de la NAT instancia al nodo del clúster. Un ejemplo de esto sería el siguiente:

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

    El número de puerto debe ser único para cada nodo del clúster. Por ejemplo, si trabajas con un OSS clúster de Redis de tres nodos con los puertos 6379 a 6381, las reglas serían las siguientes:

    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

    Confirme que el cliente de confianza es capaz de conectarse al clúster.

    El cliente de confianza debe conectarse al puerto EIP asociado a la NAT instancia y al puerto del clúster correspondiente al nodo del clúster correspondiente. Por ejemplo, la cadena de conexión de PHP podría tener el siguiente aspecto:

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

    También puede usar un cliente de Telnet para comprobar la conexión. Por ejemplo:

    telnet 203.0.113.73 6379 telnet 203.0.113.73 6380 telnet 203.0.113.73 6381
  5. Guarde la configuración de tablas IP.

    Guarde las reglas tras realizar las pruebas y verificarlas. Si usa una distribución de Linux basada en Redhat (como Amazon Linux) ejecute el comando siguiente:

    service iptables save

Temas relacionados de

Los temas siguientes pueden ser de su interés.