Acceso al clúster - 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 al clúster

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

Si lanzó la ElastiCache instancia en una Amazon Virtual Private Cloud (Amazon VPC), puede acceder a la ElastiCache instancia desde una instancia Amazon EC2 en la misma Amazon VPC. O bien, mediante el emparejamiento de VPC, puede acceder a su ElastiCache instancia desde una Amazon EC2 en una Amazon VPC diferente.

Si lanzó la ElastiCache instancia en EC2 Classic, permite que la instancia EC2 acceda a su clúster al conceder al grupo de seguridad de Amazon EC2 asociado a la instancia acceso a su 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

Ha lanzado 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 instancia de Amazon EC2 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. Inicie sesión en la consola Amazon EC2 AWS Management Console y ábrala 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 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 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 de Memcached es 11211 es. 6379

    5. En el cuadro Origen, elija Cualquier lugar que tenga el rango de puertos (0.0.0.0/0) para que cualquier instancia de Amazon EC2 que lance dentro de su Amazon VPC pueda conectarse a sus 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 instancias de Amazon EC2 en la cuenta del cliente y dichas 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 sea utilizado exclusivamente por. ElastiCache Para obtener más información, consulte Grupos de seguridad personalizados.

    6. Seleccione Save (Guardar).

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

Acceder a los ElastiCache 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

Debe tener en cuenta las siguientes consideraciones al acceder a sus ElastiCache recursos desde el exterior 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*

  • 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 NAT de EC2 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

      • Una para permitir las conexiones TCP de los clientes de confianza a cada puerto de caché que se reenvía desde la instancia NAT (11211 - 11213).

      • Otra para permitir el acceso SSH a los clientes de confianza.

      Grupo de seguridad de la instancia NAT: reglas entrantes
      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
    • Regla de salida que permite las conexiones 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)
    • Regla de entrada del grupo de seguridad del clúster que permite conexiones TCP entre la instancia 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)
  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. 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
  5. 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
  6. 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.