Accès à votre ElastiCache cluster ou à votre groupe de réplication - Amazon ElastiCache

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Accès à votre ElastiCache cluster ou à votre groupe de réplication

Vos ElastiCache instances Amazon sont conçues pour être accessibles via une EC2 instance Amazon.

Si vous avez lancé votre ElastiCache instance dans un Amazon Virtual Private Cloud (AmazonVPC), vous pouvez accéder à votre ElastiCache instance depuis une EC2 instance Amazon du même AmazonVPC. Ou bien, en utilisant le VPC peering, vous pouvez accéder à votre ElastiCache instance depuis un Amazon situé EC2 dans un autre AmazonVPC.

Si vous avez lancé votre ElastiCache instance dans EC2 Classic, vous autorisez l'EC2instance à accéder à votre cluster en accordant au groupe de EC2 sécurité Amazon associé à l'instance l'accès à votre groupe de sécurité du cache. Par défaut, l'accès au cluster est limité au compte qui a lancé le cluster.

Octroi de l'accès à votre cluster ou groupe de réplication

Vous avez lancé votre cluster dans EC2 - VPC

Si vous avez lancé votre cluster dans un Amazon Virtual Private Cloud (AmazonVPC), vous ne pouvez vous ElastiCache y connecter qu'à partir d'une EC2 instance Amazon exécutée sur le même AmazonVPC. Dans ce cas, vous devez accorder l'accès au réseau au cluster.

Note

Si vous utilisez les zones locales (Local Zones), assurez-vous que vous les avez activées. Pour de plus amples informations, veuillez consulter Activation des zones locales. Ce faisant, vous VPC êtes étendu à cette zone locale et vous VPC traiterez le sous-réseau comme n'importe quel sous-réseau de toute autre zone de disponibilité. Les passerelles, tables de routage et autres considérations relatives aux groupes de sécurité pertinentes seront automatiquement ajustées.

Pour autoriser l'accès au réseau depuis un groupe de VPC sécurité Amazon vers un cluster
  1. Connectez-vous à la EC2 console Amazon AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/ec2/.

  2. Dans le volet de navigation, sous Réseau et sécurité, choisissez Groupes de sécurité.

  3. Dans la liste des groupes de sécurité, choisissez le groupe de sécurité pour votre AmazonVPC. À moins que vous n'ayez créé un groupe de sécurité à ElastiCache utiliser, ce groupe de sécurité sera nommé par défaut.

  4. Choisissez l'onglet Entrant et effectuez les opérations suivantes :

    1. Choisissez Edit (Modifier).

    2. Choisissez Ajouter une règle.

    3. Dans la colonne Type, sélectionnez TCPRègle personnalisée.

    4. Dans la zone Port range, tapez le numéro de port de votre nœud de cluster de Ce numéro doit être le même que celui que vous avez spécifié lorsque vous avez lancé le cluster. Le port par défaut pour Memcached est 11211 Le port par défaut pour Valkey et Redis est. OSS 6379

    5. Dans le champ Source, choisissez Anywhere dont la plage de ports est comprise (0.0.0.0/0) afin que toute EC2 instance Amazon que vous lancez au sein de votre Amazon VPC puisse se connecter à vos nœuds. ElastiCache

      Important

      L'ouverture du ElastiCache cluster à 0.0.0.0/0 n'expose pas le cluster à Internet car il ne possède aucune adresse IP publique et n'est donc pas accessible depuis l'extérieur de. VPC Cependant, le groupe de sécurité par défaut peut être appliqué à d'autres EC2 instances Amazon du compte du client, et ces instances peuvent avoir une adresse IP publique. Si ces instances exécutent un service sur le port par défaut, ce service peut être exposé accidentellement. Par conséquent, nous vous recommandons de créer un groupe de VPC sécurité qui sera utilisé exclusivement par ElastiCache. Pour plus d'informations, consultez Groupes de sécurité personnalisés.

    6. Choisissez Save (Enregistrer).

Lorsque vous lancez une EC2 instance Amazon sur votre AmazonVPC, cette instance pourra se connecter à votre ElastiCache cluster.

Accès aux ElastiCache ressources depuis l'extérieur AWS

Amazon ElastiCache est un AWS service qui fournit un stockage de valeurs clés en mémoire basé sur le cloud. Le service est conçu pour être accessible exclusivement de l'intérieur AWS. Toutefois, si le ElastiCache cluster est hébergé dans une instanceVPC, vous pouvez utiliser une instance de traduction d'adresses réseau (NAT) pour fournir un accès externe.

Prérequis

Les conditions suivantes doivent être remplies pour que vous puissiez accéder à vos ElastiCache ressources depuis l'extérieur AWS :

  • Le cluster doit résider dans une instance VPC et être accessible via une instance de traduction d'adresses réseau (NAT). Cette exigence ne souffre aucune exception.

  • L'NATinstance doit être lancée en même temps VPC que le cluster.

  • L'NATinstance doit être lancée dans un sous-réseau public distinct du cluster.

  • Une adresse IP élastique (EIP) doit être associée à l'NATinstance. La fonctionnalité de redirection de port d'iptables est utilisée pour transférer un port de l'NATinstance vers le port du nœud de cache situé dans leVPC.

Considérations

Les considérations suivantes doivent être prises en compte lorsque vous accédez à vos ElastiCache ressources depuis l'extérieur ElastiCache.

  • Les clients se connectent au port de cache EIP et de l'NATinstance. Le transfert de port sur l'NATinstance transfère le trafic vers le nœud de cluster de cache approprié.

  • Si un nœud de cluster est ajouté ou remplacé, les règles iptables doivent être mises à jour pour prendre en compte ce changement.

Limites

Cette approche doit être utilisée à des fins de test et de développement uniquement. Elle est déconseillée dans le cadre d'une utilisation en production en raison des limitations suivantes :

  • L'NATinstance agit comme un proxy entre les clients et plusieurs clusters. L'ajout d'un proxy a une incidence négative sur les performances du cluster de cache. L'impact augmente avec le nombre de clusters de cache auxquels vous accédez via l'NATinstance.

  • Le trafic entre les clients et l'NATinstance n'est pas chiffré. Par conséquent, vous devez éviter d'envoyer des données sensibles via l'NATinstance.

  • L'NATinstance ajoute la surcharge liée à la maintenance d'une autre instance.

  • L'NATinstance sert de point de défaillance unique. Pour plus d'informations sur la manière de configurer la haute disponibilité NAT surVPC, consultez High Availability for Amazon VPC NAT Instances : An Example.

Comment accéder aux ElastiCache ressources depuis l'extérieur AWS

La procédure suivante explique comment vous connecter à vos ElastiCache ressources à l'aide d'une NAT instance.

Ces étapes supposent les faits suivants :

  • 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

Ensuite, vous devez NAT dans le sens opposé :

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

Vous devez également activer le transfert IP, qui est désactivé par défaut :

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

  • Vous accédez à un cluster Memcached avec les éléments suivants :

    • Adresse IP : 10.0.1.230

    • Port Memcached par défaut : 11211

    • Groupe de sécurité : *10\.0\.0\.55*

  • Vous accédez à un OSS cluster Valkey ou Redis avec :

    • Adresse IP : 10.0.1.230

    • Port par défaut : 6379

    • Groupe de sécurité : sg-bd56b7da

    • AWS adresse IP de l'instance — sg-bd56b7da

  • Votre client de confiance a l'adresse IP 198.51.100.27.

  • Votre NAT instance possède l'adresse IP élastique 203.0.113.73.

  • Votre NAT instance possède le groupe de sécurité sg-ce56b7a9.

Pour vous connecter à vos ElastiCache ressources à l'aide d'une NAT instance
  1. Créez une NAT instance VPC identique à celle de votre cluster de cache, mais dans un sous-réseau public.

    Par défaut, l'VPCassistant lance un type de nœud cache.m1.small. Vous devez sélectionner une taille de nœud selon vos besoins. Vous devez l'utiliser EC2 NAT AMI pour pouvoir y accéder ElastiCache depuis l'extérieur AWS.

    Pour plus d'informations sur la création d'une NAT instance, consultez la section NATInstances dans le guide de AWS VPC l'utilisateur.

  2. Créez des règles de groupe de sécurité pour le cluster de cache et l'NATinstance.

    Le groupe de sécurité d'NATinstance et l'instance de cluster doivent respecter les règles suivantes :

    • Deux règles de trafic entrant

      • Avec Memcached, la première règle est d'autoriser TCP les connexions des clients de confiance à chaque port de cache transféré depuis l'NATinstance (11211 - 11213).

      • Avec Valkey et RedisOSS, la première règle est d'autoriser TCP les connexions des clients de confiance à chaque port de cache transféré depuis l'NATinstance (6379 - 6381).

      • Une deuxième règle pour autoriser l'SSHaccès à des clients de confiance.

      NATgroupe de sécurité d'instance - règles entrantes avec Memcached
      Type Protocole Plage de ports Source
      TCPRègle personnalisée TCP 11211-11213 198.51.100.27/32
      SSH TCP 22 198.51.100.27/32
      NATgroupe de sécurité d'instance - règles entrantes avec Valkey ou Redis OSS
      Type Protocole Plage de ports Source
      TCPRègle personnalisée TCP 6379-6380 198.51.100.27/32
      SSH TCP 22 203.0.113.73/32
    • Avec Memcached, une règle sortante autorisant les TCP connexions au port de cache (11211).

      NATgroupe de sécurité d'instance - règle sortante
      Type Protocole Plage de ports Destination
      TCPRègle personnalisée TCP 11211 sg-ce56b7a9 (groupe de sécurité de l’instance de cluster)
    • Avec Valkey ou RedisOSS, une règle sortante pour autoriser les TCP connexions au port de cache (6379).

      NATgroupe de sécurité d'instance - règle sortante
      Type Protocole Plage de ports Destination
      TCPRègle personnalisée TCP 6379 sg-ce56b7a9 (groupe de sécurité de l’instance de cluster)
    • Avec Memcached, règle entrante pour le groupe de sécurité du cluster qui autorise les TCP connexions entre l'NATinstance et le port de cache (11211).

      Groupe de sécurité de l’instance de cluster - Règle de trafic entrant
      Type Protocole Plage de ports Source
      TCPRègle personnalisée TCP 11211 sg-bd56b7da (groupe de sécurité) NAT
    • Avec Valkey ou RedisOSS, règle entrante pour le groupe de sécurité du cluster qui autorise les TCP connexions entre l'NATinstance et le port de cache (6379).

      Groupe de sécurité de l’instance de cluster - Règle de trafic entrant
      Type Protocole Plage de ports Source
      TCPRègle personnalisée TCP 6379 sg-bd56b7da (groupe de sécurité du cluster)
  3. Validez les règles.

    • Vérifiez que le client de confiance est en mesure d'SSHaccéder à l'NATinstance.

    • Vérifiez que le client de confiance est capable de se connecter au cluster depuis l'NATinstance.

  4. Memcached

    Ajoutez une règle iptables à l'NATinstance.

    Une règle iptables doit être ajoutée à la NAT table pour chaque nœud du cluster afin de transférer le port de cache de l'NATinstance au nœud du cluster. Voici un exemple possible :

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

    Le numéro de port doit être unique pour chaque nœud du cluster. Par exemple, si vous utilisez un cluster de Memcached de trois nœuds avec les ports 11211 – 11213, les règles devraient se présenter comme suit :

    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

    Vérifiez que le client de confiance peut se connecter au cluster.

    Le client de confiance doit se connecter au port EIP associé à l'NATinstance et au port de cluster correspondant au nœud de cluster approprié. Par exemple, la chaîne de connexion pour PHP peut ressembler à ce qui suit :

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

    Un client Telnet peut également être utilisé pour vérifier la connexion. Par exemple :

    telnet 203.0.113.73 11211 telnet 203.0.113.73 11212 telnet 203.0.113.73 11213

    Valkey ou Redis OSS

    Ajoutez une règle iptables à l'NATinstance.

    Une règle iptables doit être ajoutée à la NAT table pour chaque nœud du cluster afin de transférer le port de cache de l'NATinstance au nœud du cluster. Voici un exemple possible :

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

    Le numéro de port doit être unique pour chaque nœud du cluster. Par exemple, si vous travaillez avec un OSS cluster Redis à trois nœuds utilisant les ports 6379 à 6381, les règles seront les suivantes :

    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

    Vérifiez que le client de confiance peut se connecter au cluster.

    Le client de confiance doit se connecter au port EIP associé à l'NATinstance et au port de cluster correspondant au nœud de cluster approprié. Par exemple, la chaîne de connexion pour PHP peut ressembler à ce qui suit :

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

    Un client Telnet peut également être utilisé pour vérifier la connexion. Par exemple :

    telnet 203.0.113.73 6379 telnet 203.0.113.73 6380 telnet 203.0.113.73 6381
  5. Enregistrez la configuration iptables.

    Enregistrez les règles après les avoir testées et vérifiées. Si vous utilisez une distribution Linux basée sur Redhat (comme Amazon Linux), exécutez la commande suivante :

    service iptables save

Rubriques en relation

Les rubriques suivantes sont susceptibles de vous intéresser.