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 lanzó la ElastiCache instancia en una Amazon Virtual Private Cloud (Amazon VPC), puede acceder a la ElastiCache instancia desde una instancia de Amazon en la EC2 misma Amazon VPC. O bien, mediante la interconexión de VPC, puedes acceder a tu ElastiCache instancia desde una Amazon EC2 en una Amazon VPC diferente.

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ó el clúster en una Amazon Virtual Private Cloud (Amazon VPC), solo podrá conectarse al ElastiCache clúster desde una EC2 instancia de Amazon que se ejecute en la misma Amazon VPC. 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. Al hacerlo, la VPC se extiende a esa zona local y tratará la subred como cualquier subred en cualquier otra zona de disponibilidad. Las gateways relevantes, las tablas de enrutamiento y otras consideraciones del grupo de seguridad se ajustarán de forma automática.

Para conceder acceso de red desde un grupo de seguridad de Amazon VPC 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, elija el grupo de seguridad para su Amazon VPC. A menos que hayas 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 Type, elija Custom TCP rule.

    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 para Memcached es 11211. El puerto predeterminado para Valkey y Redis OSS es 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 dentro de 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 de la 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 seguridad de VPC que se use exclusivamente ElastiCache. Para obtener más información, consulte Grupos de seguridad personalizados.

    6. Seleccione Guardar.

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

Acceder a ElastiCache los recursos desde el exterior 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 una VPC, puede usar una instancia de traducción de direcciones de red (NAT) para proporcionar acceso externo.

Requisitos

Debe cumplir los siguientes requisitos para poder acceder a sus ElastiCache recursos desde el exterior AWS:

  • El clúster debe estar en una VPC y el acceso debe hacerse a través de una instancia de Traducción de direcciones de red (NAT). Este requisito no tiene excepciones.

  • La instancia NAT debe lanzarse en la misma VPC que el clúster.

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

  • Es necesario asociar una dirección IP elástica (EIP) a la instancia NAT. La característica de reenvío de puertos de las tablas IP se usa para reenviar un puerto de la instancia NAT al puerto del nodo de caché de la VPC.

Consideraciones

Tenga en cuenta las consideraciones siguientes a la hora de acceder a sus recursos de ElastiCache desde fuera de ElastiCache.

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

  • 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 instancia NAT actúa como proxy entre los clientes y múltiples clústeres. La adición de un proxy afecta al desempeño del clúster de caché. El impacto aumenta con el número de clústeres de caché a los que se accede mediante la instancia NAT.

  • El tráfico de los clientes a la instancia NAT está sin cifrar. Por lo tanto, debe evitar el envío de información confidencial a través de la instancia NAT.

  • La instancia NAT requiere, además, el mantenimiento de otra instancia.

  • La instancia NAT sirve como único punto de error. Para obtener información acerca de cómo configurar NAT de alta disponibilidad en una VPC, consulte Alta disponibilidad para instancias NAT de Amazon VPC: 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 instancia de NAT.

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 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 clúster de Valkey o Redis OSS 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 instancia NAT tiene la dirección IP elástica 203.0.113.73.

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

Para conectarse a sus recursos mediante una instancia NAT ElastiCache
  1. Cree una instancia NAT en la misma VPC que su clúster de caché, pero en una subred pública.

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

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

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

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

    • Dos reglas de entrada

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

      • Con Valkey y Redis OSS, la primera regla es permitir las conexiones de TCP desde los clientes de confianza a cada puerto de caché que se reenvía desde la instancia de NAT (6379 - 6381).

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

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

      Grupo de seguridad de la instancia NAT: regla saliente
      Tipo Protocolo Rango de puerto Destino
      Regla TCP personalizada TCP 11211 sg-ce56b7a9 (grupo de seguridad de la instancia de clúster)
    • Con Valkey o Redis OSS, una regla de salida que permite las conexiones de TCP con el puerto de caché (6379).

      Grupo de seguridad de la instancia NAT: regla saliente
      Tipo Protocolo Rango de puerto Destino
      Regla TCP personalizada TCP 6379 sg-ce56b7a9 (grupo de seguridad de la instancia de clúster)
    • Con Memcached, una regla de entrada del grupo de seguridad del clúster que permite conexiones de TCP entre la instancia de NAT y el puerto de caché (11211).

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

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

    • Confirme que el cliente de confianza es capaz de conectarse mediante SSH a la instancia NAT.

    • Confirme que el cliente de confianza es capaz de conectarse al clúster desde la instancia NAT.

  4. Memcached

    Añada una regla de tablas IP a la instancia NAT.

    La regla de tablas de IP deben añadirse a la tabla NAT para que todos los nodos del clúster reenvíen el puerto de caché de la instancia NAT 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 deben conectarse a la EIP asociada con la instancia NAT y el puerto del clúster correspondiente al nodo de clúster adecuado. Por ejemplo, la cadena de conexión para PHP puede ser parecida a la siguiente:

    $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

    Valkey o Redis OSS

    Añada una regla de tablas IP a la instancia NAT.

    La regla de tablas de IP deben añadirse a la tabla NAT para que todos los nodos del clúster reenvíen el puerto de caché de la instancia NAT 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 trabaja con un clúster de Redis OSS de tres nodos que utiliza los puertos 6379 - 6381, las reglas serían similares a las que se muestran a continuación:

    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 deben conectarse a la EIP asociada con la instancia NAT y el puerto del clúster correspondiente al nodo de clúster adecuado. Por ejemplo, la cadena de conexión para PHP puede ser parecida a la siguiente:

    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.