Prise en charge memcached MySQL - Amazon Relational Database Service

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.

Prise en charge memcached MySQL

Amazon RDS prend en charge l'utilisation de l'interface memcached pour les tableaux InnoDB introduits dans MySQL 5.6. L'API memcached permet aux applications d'utiliser les tables InnoDB de la même façon que les magasins de données clé-valeur NoSQL.

L'interface memcached est un cache simple basé sur les clés. Les applications utilisent memcached pour insérer, manipuler et récupérer les paires de données clé-valeur du cache. MySQL 5.6 a présenté un plug-in qui implémente un service démon exposant les données des tables InnoDB via le protocole memcached. Pour de plus amples informations sur le plug-in MySQL memcached, veuillez consulter InnoDB Integration with memcached.

Pour activer la prise en charge memcached d'une instance de base de données RDS for MySQL
  1. Déterminez le groupe de sécurité à utiliser pour contrôler l'accès à l'interface memcached. Si l'ensemble d'applications qui utilise déjà l'interface SQL est identique à celui qui accède à l'interface memcached, vous pouvez utiliser le groupe de sécurité VPC existant utilisé par l'interface SQL. Si un ensemble différent d'applications accède à l'interface memcached, définissez un nouveau groupe de sécurité VPC ou DB. Pour plus d'informations sur la gestion des groupes de sécurité, consultez Contrôle d'accès par groupe de sécurité

  2. Créez un groupe d'options de base de données personnalisé, en sélectionnant MySQL comme type et version du moteur. Pour plus d'informations sur la création d'un groupe d'options, consultez Création d'un groupe d'options.

  3. Ajoutez l'option MEMCACHED au groupe d'options. Spécifiez le port que l'interface memcached utilisera, et le groupe de sécurité à utiliser pour contrôler l'accès à l'interface. Pour plus d'informations sur l'ajout d'options, consultez Ajout d'une option à un groupe d'options.

  4. Modifiez les options pour configurer les paramètres memcached, le cas échéant. Pour plus d'informations sur la modification des paramètres d'options, consultez Modification d'un paramètre d'option.

  5. Appliquez le groupe d'options à une instance. Amazon RDS active la prise en charge de memcached pour cette instance lorsque le groupe d'options est appliqué :

    • Vous activez la prise en charge memcached pour une nouvelle instance en spécifiant le groupe d'options personnalisé lorsque vous lancez l'instance. Pour plus d'informations sur le lancement d'une instance MySQL, consultez Création d'une instance de base de données Amazon RDS.

    • Vous activez la prise en charge memcached pour une instance existante en spécifiant le groupe d'options personnalisé lorsque vous modifiez l'instance. Pour de plus amples informations sur la modification d'une instance de base de données, veuillez consulter Modification d'une instance de base de données Amazon RDS.

  6. Spécifiez les colonnes de vos tables MySQL accessibles via l'interface memcached. Le plug-in memcached crée une table de catalogue appelée containers dans une base de données dédiée appelée innodb_memcache. Vous insérez une ligne dans la table containers pour mapper une table InnoDB et y accéder via memcached. Vous spécifiez une colonne dans la table InnoDB qui est utilisée pour stocker les valeurs de clé memcached, et une ou plusieurs colonnes qui sont utilisées pour stocker les valeurs de données associées à la clé. Vous spécifiez également un nom qu'une application memcached utilise pour faire référence à cet ensemble de colonnes. Pour de plus amples informations sur l'insertion de lignes dans la table containers, veuillez consulter Internals of the InnoDB memcached Plugin. Pour obtenir un exemple de mappage d'une table InnoDB et y accéder via memcached, veuillez consulter Writing Applications for the InnoDB memcached Plugin.

  7. Si les applications qui accèdent à l'interface memcached sont sur différents ordinateurs ou instances EC2 que les applications qui utilisent l'interface SQL, ajoutez les informations de connexion de ces ordinateurs au groupe de sécurité VPC associé à l'instance MySQL. Pour plus d'informations sur la gestion des groupes de sécurité, consultez Contrôle d'accès par groupe de sécurité.

Vous désactivez la prise en charge memcached pour une instance en modifiant l'instance et en spécifiant le groupe d'options par défaut pour votre version MySQL. Pour de plus amples informations sur la modification d'une instance de base de données, veuillez consulter Modification d'une instance de base de données Amazon RDS.

Considérations de sécurité memcached MySQL

Le protocole memcached ne prend pas en charge l'authentification utilisateur. Pour plus d'informations sur les considérations de sécurité relatives à MySQL memcached, consultez Security Considerations for the InnoDB memcached Plugin (Considérations de sécurité relatives au plug-in InnoDB memcached) dans la documentation MySQL.

Vous pouvez prendre les mesures suivantes pour aider à augmenter la sécurité de l'interface memcached :

  • Spécifiez un port différent du port par défaut 11211 lorsque vous ajoutez l'option MEMCACHED au groupe d'options.

  • Veillez à associer l'interface memcached avec un groupe de sécurité VPC qui limite l'accès aux adresses client ou instances EC2 fiables et connues. Pour plus d'informations sur la gestion des groupes de sécurité, consultez Contrôle d'accès par groupe de sécurité.

Informations de connexion memcached MySQL

Pour accéder à l'interface memcached, une application doit spécifier le nom DNS de l'instance Amazon RDS et le numéro de port memcached. Par exemple, si une instance possède un nom DNS de my-cache-instance.cg034hpkmmjt.region.rds.amazonaws.com et l'interface memcached utilise le port 11212, les informations de connexion spécifiées dans PHP seront :

<?php $cache = new Memcache; $cache->connect('my-cache-instance.cg034hpkmmjt.region.rds.amazonaws.com',11212); ?>
Pour trouver le nom DNS et le port memcached d'une instance de base de données MySQL
  1. Connectez-vous à la console Amazon RDS AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/rds/.

  2. Dans le coin supérieur droit du AWS Management Console, sélectionnez la région qui contient l'instance de base de données.

  3. Dans la panneau de navigation, choisissez Databases (Bases de données).

  4. Choisissez le nom de l'instance de base de données MySQL pour afficher ses détails.

  5. Dans la section Connexion, notez la valeur du champ Point de terminaison. Le nom DNS est le même que le point de terminaison. Veuillez également noter que le port dans la section Connexion n'est pas utilisé pour accéder à l'interface memcached.

  6. Dans la section Détails, notez le nom répertorié dans le champ Groupe d'options.

  7. Dans le panneau de navigation, choisissez Groupes d'options.

  8. Choisissez le nom du groupe d'options utilisé par l'instance de base de données MySQL pour afficher les détails du groupe d'options. Dans la section Options, notez la valeur du paramètre Port pour l'option MEMCACHED.

Paramètres d'option memcached MySQL

Amazon RDS expose les paramètres memcached MySQL comme paramètres d'option dans l'option Amazon RDS MEMCACHED.

Paramètres memcached MySQL

  • DAEMON_MEMCACHED_R_BATCH_SIZE – Nombre entier qui spécifie combien d'opérations de lecture (get) memcached doivent être effectuées avant d'exécuter un COMMIT pour lancer une nouvelle transaction. Les valeurs autorisées sont comprises entre 1 et 4294967295, et celle par défaut est 1. L'option ne prend pas effet tant que l'instance n'est pas redémarrée.

  • DAEMON_MEMCACHED_W_BATCH_SIZE – Nombre entier qui spécifie combien d'opérations d'écriture memcached comme add, set ou incr doivent être effectuées avant d'exécuter un COMMIT pour lancer une nouvelle transaction. Les valeurs autorisées sont comprises entre 1 et 4294967295, et celle par défaut est 1. L'option ne prend pas effet tant que l'instance n'est pas redémarrée.

  • INNODB_API_BK_COMMIT_INTERVAL – Nombre entier qui spécifie la fréquence d'auto-commit des connexions inactives qui utilisent l'interface memcached InnoDB. Les valeurs autorisées sont comprises entre 1 et 1073741824, et celle par défaut est 5. L'option prend effet immédiatement, sans que vous ayez besoin de redémarrer l'instance.

  • INNODB_API_DISABLE_ROWLOCK – Valeur booléenne qui désactive (1 (vrai)) ou active (0 (faux)) l'utilisation des verrouillages de ligne lorsque vous utilisez l'interface memcached InnoDB. La valeur par défaut est 0 (faux). L'option ne prend pas effet tant que l'instance n'est pas redémarrée.

  • INNODB_API_ENABLE_MDL – Valeur booléenne qui, lorsqu'elle est configurée sur 0 (faux), verrouille la table utilisée par le plug-in memcached InnoDB pour ne pas qu'il puisse être abandonné ou modifié par une instruction DDL via l'interface SQL. La valeur par défaut est 0 (faux). L'option ne prend pas effet tant que l'instance n'est pas redémarrée.

  • INNODB_API_TRX_LEVEL – Nombre entier qui spécifie le niveau d'isolation de la transaction pour les requêtes traitées par l'interface memcached. Les valeurs autorisées sont comprises entre 0 et 3. La valeur par défaut est 0. L'option ne prend pas effet tant que l'instance n'est pas redémarrée.

Amazon RDS configure ces paramètres memcached MySQL, ils ne peuvent pas être modifiés : DAEMON_MEMCACHED_LIB_NAME, DAEMON_MEMCACHED_LIB_PATH et INNODB_API_ENABLE_BINLOG. Les paramètres que les administrateurs MySQL configurent en utilisant daemon_memcached_options sont disponibles comme paramètres d'options MEMCACHED individuels dans Amazon RDS.

Paramètres MySQL daemon_memcached_options

  • BINDING_PROTOCOL– Chaîne qui spécifie le protocole de liaison à utiliser. Les valeurs autorisées sont auto, ascii ou binary. La valeur par défaut est auto, ce qui signifie que le serveur négocie automatiquement le protocole avec le client. L'option ne prend pas effet tant que l'instance n'est pas redémarrée.

  • BACKLOG_QUEUE_LIMIT – Nombre entier qui spécifie combien de connexions réseau peuvent être en attente de traitement par memcached. L'augmentation de cette limite peut réduire les erreurs reçues par un client qui ne peut pas se connecter à l'instance memcached, mais n'améliore pas les performances du serveur. Les valeurs autorisées sont comprises entre 1 et 2048, et celle par défaut est 1024. L'option ne prend pas effet tant que l'instance n'est pas redémarrée.

  • CAS_DISABLED – Valeur booléenne qui active (1 (vrai)) ou désactive (0 (faux)) l'utilisation de la fonction CAS (Compare and Swap), ce qui réduit la taille par élément de 8 octets. La valeur par défaut est 0 (faux). L'option ne prend pas effet tant que l'instance n'est pas redémarrée.

  • CHUNK_SIZE – Nombre entier qui spécifie la taille minimum du bloc, en octets, à attribuer à la clé, à la valeur et aux indicateurs de l'élément le plus petit. Les valeurs autorisées sont comprises entre 1 et 48. La valeur par défaut est 48 et vous pouvez considérablement améliorer l'efficacité de la mémoire avec une valeur inférieure. L'option ne prend pas effet tant que l'instance n'est pas redémarrée.

  • CHUNK_SIZE_GROWTH_FACTOR – Nombre flottant qui contrôle la taille des nouveaux blocs. La taille d'un nouveau bloc correspond à la taille du bloc précédent multipliée par CHUNK_SIZE_GROWTH_FACTOR. Les valeurs autorisées sont comprises entre 1 et 2, et celle par défaut est 1.25. L'option ne prend pas effet tant que l'instance n'est pas redémarrée.

  • ERROR_ON_MEMORY_EXHAUSTED – Valeur booléenne qui, lorsqu'elle est configurée sur 1 (vrai), spécifie que memcached renverra une erreur plutôt que d'expulser les éléments lorsqu'il n'y a plus de mémoire pour les stocker. S'il est configuré sur 0 (faux), memcached expulse les éléments s'il n'y a plus de mémoire. La valeur par défaut est 0 (faux). L'option ne prend pas effet tant que l'instance n'est pas redémarrée.

  • MAX_SIMULTANEOUS_CONNECTIONS – Nombre entier qui spécifie le nombre maximum de connexions simultanées. La configuration de cette valeur sur n'importe quel chiffre inférieur à 10 empêche MySQL de démarrer. Les valeurs autorisées sont comprises entre 10 et 1024, et celle par défaut est 1024. L'option ne prend pas effet tant que l'instance n'est pas redémarrée.

  • VERBOSITY – Chaîne qui spécifie le niveau d'informations consignées dans le journal d'erreurs MySQL par le service memcached. La valeur par défaut est v. L'option ne prend pas effet tant que l'instance n'est pas redémarrée. Les valeurs autorisées sont :

    • v – Journalise les erreurs et avertissements pendant l'exécution de la boucle principale d'évènements.

    • vv – Outre les informations consignées par v, journalise également la commande de chaque client et la réponse.

    • vvv – Outre les informations consignées par vv, journalise également les transitions d'état interne.

Amazon RDS configure ces paramètres MySQL DAEMON_MEMCACHED_OPTIONS, ils ne peuvent pas être modifiés : DAEMON_PROCESS, LARGE_MEMORY_PAGES, MAXIMUM_CORE_FILE_LIMIT, MAX_ITEM_SIZE, LOCK_DOWN_PAGE_MEMORY, MASK, IDFILE, REQUESTS_PER_EVENT, SOCKET et USER.