Accès à votre cluster - 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 cluster

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

Si vous avez lancé votre instance ElastiCache dans un Amazon Virtual Private Cloud (Amazon VPC), vous pouvez accéder à votre instance ElastiCache depuis une instance Amazon EC2 dans le même Amazon VPC. En utilisant l'appairage de VPC, vous pouvez accéder à votre instance ElastiCache depuis une instance Amazon EC2 située dans un Amazon VPC différent.

Si vous avez lancé votre instance ElastiCache dans un environnement EC2 Classic, vous autorisez l'instance Amazon EC2 à accéder à votre cluster en donnant au groupe de sécurité Amazon EC2 associé à cette instance 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

Vous avez lancé votre cluster dans EC2-VPC

Si vous avez lancé votre cluster dans un Amazon Virtual Private Cloud (Amazon VPC), vous pouvez vous connecter à votre cluster ElastiCache uniquement à partir d'une instance Amazon EC2 exécutée dans le même Amazon VPC. 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, votre VPC est étendu à cette zone locale et votre VPC traitera le sous-réseau comme n'importe quel sous-réseau dans toute autre zone de disponibilité et les passerelles, tables de routage et autres considérations de groupe de sécurité. sera automatiquement ajusté.

Pour accorder l'accès réseau à un cluster, à partir d'un groupe de sécurité Amazon VPC
  1. Connectez-vous à la AWS Management Console et ouvrez la console Amazon EC2 à 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é de votre Amazon VPC. À moins d'avoir créé un groupe de sécurité pour qu'il soit utilisé par ElastiCache, ce groupe de sécurité sera nommé default.

  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, choisissez Règle TCP 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 .

    5. Dans la zone Source, choisissez N'importe où qui a la plage de ports (0.0.0.0/0) afin que toute instance Amazon EC2 que vous lancez dans votre Amazon VPC puisse se connecter à vos nœuds ElastiCache.

      Important

      L'ouverture du cluster ElastiCache sur 0.0.0.0/0 n'expose pas le cluster sur Internet, car celui-ci n'a pas d'adresse IP publique et n'est donc pas accessible hors du VPC. Toutefois, le groupe de sécurité par défaut peut être appliqué aux autres instances Amazon EC2 dans le compte du client et ces instances peuvent voir une adresse IP publique. Si ces instances exécutent un service sur le port par défaut, ce service peut être exposé accidentellement. Nous vous recommandons donc de créer un groupe de sécurité VPC 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 instance Amazon EC2 dans votre Amazon VPC, cette instance sera en mesure de vous connecter à votre cluster ElastiCache.

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

Amazon ElastiCache est un service AWS qui fournit un magasin de clés/valeurs en mémoire sur le Cloud. Le service est conçu pour être accessible exclusivement dans le cadre d’AWS. Toutefois, si le cluster ElastiCache est hébergé dans un VPC, vous pouvez utiliser une instance de traduction d’adresses réseau (NAT) pour fournir un accès extérieur.

Prérequis

Pour permettre l’accès à vos ressources ElastiCache en dehors d’AWS, les critères suivants doivent être satisfaits :

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

  • L'instance NAT doit être lancée dans le même VPC que le cluster.

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

  • Une adresse IP Elastic (EIP) doit être associée à l'instance NAT. La fonction de réacheminement d'iptables permet de rediriger un port de l'instance NAT vers le port du nœud de cache dans le cadre du VPC.

Considérations

N’oubliez pas de prendre en compte les éléments suivants lorsque vous accédez à vos ressources ElastiCache en dehors d’ElastiCache.

  • Les clients se connectent au port EIP et au port cache de l'instance NAT. Le réacheminement du port de l'instance NAT redirige le trafic vers le nœud du 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'instance NAT 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. Ce mauvais impact augmente avec le nombre de clusters de cache auquel vous accédez via l'instance NAT.

  • Le trafic depuis les clients vers l'instance NAT n'est pas chiffré. Par conséquent, vous devez éviter d'envoyer des données sensibles via l'instance NAT.

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

  • L'instance NAT constitue un point de défaillance unique. Pour plus d'informations sur la façon de configurer une solution haute disponibilité des instances NAT sur VPC, veuillez consulter Solution haute disponibilité des instances NAT sur Amazon VPC : un exemple.

Comment accéder aux ressources ElastiCache en dehors d’AWS

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

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

Vous avez ensuite besoin de l’instance 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*

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

  • Votre instance NAT a l'adresse IP Elastic 203.0.113.73.

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

Pour vous connecter à vos ressources ElastiCache à l’aide d’une instance NAT
  1. Créez une instance NAT dans le même VPC que votre cluster de cache, mais dans un sous-réseau public.

    Par défaut, l'assistant VPC lancera un type de nœud cache.m1.small. Vous devez sélectionner une taille de nœud selon vos besoins. Vous devez utiliser l’AMI NAT EC2 pour pouvoir accéder à ElastiCache en dehors d’AWS.

    Pour plus d’informations sur la création d’une instance NAT, consultez Instances NAT dans le Guide de l’utilisateur AWS VPC.

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

    Le groupe de sécurité de l’instance NAT et l’instance de cluster doivent avoir les règles suivantes :

    • Deux règles de trafic entrant

      • Une pour autoriser les connexions TCP à partir des clients de confiance pour chaque port de cache réacheminé depuis l'instance NAT (11211-11213).

      • Une deuxième pour autoriser un accès SSH aux clients de confiance.

      Groupe de sécurité de l’instance NAT - Règles de trafic entrant
      Type Protocole Plage de ports Source
      Destination TCP 11211-11213 198.51.100.27/32
      SSH TCP 22 198.51.100.27/32
    • Une règle de trafic sortant pour autoriser les connexions TCP vers le port de cache (11211).

      Groupe de sécurité de l’instance NAT - Règle de trafic sortant
      Type Protocole Plage de ports Destination
      Destination TCP 11211 sg-ce56b7a9 (groupe de sécurité de l’instance de cluster)
    • Règle de trafic entrant pour le groupe de sécurité du cluster qui autorise les connexions TCP entre l'instance NAT 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
      Destination TCP 11211 sg-bd56b7da (groupe de sécurité NAT)
  3. Validez les règles.

    • Vérifiez que le client de confiance peut accéder à l'instance NAT via SSH.

    • Vérifiez que le client de confiance peut se connecter au cluster à partir de l'instance NAT.

  4. Ajoutez une règle iptables à l'instance NAT.

    Une règle iptables doit être ajoutée à la table NAT pour chaque nœud dans le cluster pour rediriger le port de cache depuis l'instance NAT vers le nœud de 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
  5. Vérifiez que le client de confiance peut se connecter au cluster.

    Le client de confiance doit se connecter à l'EIP associée à l'instance NAT et au port de cluster correspondant au nœud de cluster approprié. Par exemple, la chaîne de connexion pour PHP pourrait 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
  6. 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.