MySQL sur Amazon RDS - Amazon Relational Database Service

MySQL sur Amazon RDS

Amazon RDS prend en charge les instances de base de données qui exécutent plusieurs versions de MySQL. Vous pouvez utiliser les versions majeures suivantes :

  • MySQL 8.0

  • MySQL 5.7

  • MySQL 5.6 (obsolescence planifiée pour le 1er février 2022)

Pour plus d'informations sur la prise en charge des versions mineures, consultez Versions de MySQL sur Amazon RDS.

Vous utilisez d'abord les interfaces ou les outils de gestion Amazon RDS pour créer une instance de base de données Amazon RDS for MySQL. Vous pouvez ensuite redimensionner l'instance de base de données, autoriser les connexions à l'instance de base de données, créer et restaurer à partir de sauvegardes ou d'instantanés, créer des secondaires multi-AZ, créer des réplicas en lecture et superviser les performances de l'instance de base de données. Vous utilisez les applications et les utilitaires MySQL standard pour stocker les données de l'instance de base de données et y accéder.

Amazon RDS for MySQL est conforme à de nombreuses normes du secteur. Par exemple, vous pouvez utiliser des bases de données RDS for MySQL pour générer des applications conformes à la loi HIPAA, et stocker des informations relatives à la santé, y compris des données relatives aux informations de santé protégées (Protected Health Information, PHI) en vertu d'un Accord d'association commerciale conclu avec AWS. Amazon RDS for MySQL satisfait également les exigences de sécurité du Programme fédéral de gestion des risques et des autorisations (FedRAMP) et a obtenu auprès du conseil d'autorisation commun (JAB, Joint Authorization Board) l'autorisation provisoire d'opérer (P-ATO, Provisional Authority to Operate) à niveau d'impact élevé du FedRAMP au sein des régions AWS GovCloud (US). Pour de plus amples informations sur les normes de conformité prises en charge, veuillez consulter Conformité du Cloud AWS.

Pour plus d'informations sur les fonctions de chaque version MySQL, consultez The Main Features of MySQL dans la documentation MySQL.

Tâches courantes de gestion pour Amazon RDS for MySQL

Vous trouverez ci-dessous les tâches courantes de gestion que vous exécutez avec une instance de base de données RDS for MySQL, avec des liens vers la documentation appropriée relative à chaque tâche.

Type de tâche Documentation

Comprendre Amazon RDS

Comprendre les principaux composants d'Amazon RDS, y compris les instances de bases de données, les régions AWS, zones de disponibilité, groupes de sécurité, groupes de paramètres et groupes d'options.

Qu'est-ce que Amazon Relational Database Service (Amazon RDS) ?

Configuration d'Amazon RDS pour la première utilisation

Configurez Amazon RDS de sorte à pouvoir créer des instances de bases de données MySQL dans Amazon Web Services (AWS).

Configuration pour Amazon RDS

Présentation des instances de bases de données d'Amazon RDS

Créez des instances de serveur MySQL virtuelles qui s'exécutent dans AWS. Étant donné que les instances de bases de données sont les blocs de construction d'Amazon RDS, nous vous recommandons de bien comprendre leurs principes.

Instances de base de données Amazon RDS

Création d'une instance de base de données de production

Créer une instance de base de données à des fins de production. Créer une instance implique de choisir une classe d'instance de base de données dotée d'une puissance de traitement et de capacités de mémoire appropriées, et de choisir un type de stockage qui prenne en charge la manière que vous envisagez d'utiliser votre base de données.

Classes d'instances de base de données

Types de stockage Amazon RDS

Création d'une instance de base de données Amazon RDS

Gestion de la sécurité de votre instance de base de données

Par défaut, les instances de bases de données sont créées avec un pare-feu qui empêche d'y accéder. Vous devez créer un groupe de sécurité avec les adresses IP et la configuration réseau voulues pour accéder à l'instance de base de données. Vous pouvez également utiliser des stratégies AWS Identity and Access Management (IAM) pour attribuer des autorisations déterminant qui peut gérer les ressources RDS.

Sécurité dans Amazon RDS

Gestion de l'accès à l'aide de politiques

Contrôle d'accès par groupe de sécurité

Déterminer si vous utilisez une plateforme EC2-VPC ou EC2-Classic

Connexion à votre instance de base de données

Connectez-vous à votre instance de base de données à l'aide d'une application client SQL standard telle que l'utilitaire de ligne de commande MySQL ou MySQL Workbench.

Connexion à une instance de base de données exécutant le moteur de base de données MySQL

Configuration d'une haute disponibilité pour une instance de base de données de production

Assurez un haut niveau de disponibilité grâce à une réplication de secours synchrone dans une autre zone de disponibilité, au basculement automatique, à la tolérance aux pannes pour les instances de base de données à l'aide de déploiements multi-AZ et aux réplicas en lecture.

Déploiements multi-AZ pour une haute disponibilité

Configuration d'une instance de base de données dans un Amazon Virtual Private Cloud

Configurez un Virtual Private Cloud (VPC) dans le service Amazon VPC. Un Amazon VPC est un réseau virtuel logiquement isolé des autres réseaux virtuels dans AWS.

Déterminer si vous utilisez une plateforme EC2-VPC ou EC2-Classic

Utilisation d'une instance de base de données dans un VPC

Configuration de fonctionnalités et de paramètres de base de données MySQL spécifiques

Configurez des paramètres de base de données MySQL spécifiques avec un groupe de paramètres pouvant être associé à plusieurs instances de bases de données. Vous pouvez également configurer des caractéristiques de base de données MySQL spécifiques avec un groupe d'options pouvant être associé à plusieurs instances de bases de données.

Utilisation de groupes de paramètres de base de données

Utilisation de groupes d'options

Options pour les instances de base de données MySQL

Modification d'une instance de base de données exécutant le moteur de base de données MySQL

Modifiez les paramètres d'une instance de base de données pour accomplir des tâches telles que l'ajout de stockage supplémentaire ou la modification de la classe d'instance.

Modification d'une instance de base de données Amazon RDS

Configuration de la sauvegarde et de la restauration des bases de données

Configurez la sauvegarde automatique de votre instance de base de données. Vous pouvez également sauvegarder et restaurer vos bases de données manuellement à l'aide de fichiers de sauvegarde complets.

Utilisation des sauvegardes

Sauvegarde et restauration d'une instance de base de données Amazon RDS

Importation et exportation de données

Importez des données à partir d'autres instances de bases de données MySQL, d'instances MySQL s'exécutant à l'extérieur de Amazon RDS et d'autres types de sources de données, et exportez les données vers des instances MySQL s'exécutant à l'extérieur de Amazon RDS.

Restauration d'une sauvegarde dans une instance de base de données MySQL

Surveillance d'une instance de base de données MySQL

Surveillez votre instance de base de données MySQL en utilisant les métriques RDS Amazon CloudWatch, les événements et la supervision améliorée. Affichez des fichiers journaux pour votre instance de base de données MySQL.

Surveillance d'une instance de base de données Amazon RDS

Affichage des métriques d'instances de base de données

Affichage d'évènements Amazon RDS

Utilisation des fichiers journaux de base de données Amazon RDS

Fichiers journaux de base de données MySQL

Réplication de vos données

Créez un réplica en lecture MySQL, dans la même région AWS ou dans une région différente. Vous pouvez utiliser des réplicas en lecture pour l'équilibrage de charge, la reprise après sinistre et le traitement de charges de travail très intenses en lecture des bases de données, telles que l'analyse et la création de rapports.

Utilisation des réplicas en lecture

Réplication avec une instance MySQL ou MariaDB s'exécutant à l'extérieur d'Amazon RDS

Plusieurs sections contiennent également des informations utiles sur l'utilisation d'instances de base de données MySQL :

Versions de MySQL sur Amazon RDS

Dans MySQL, les numéros de version sont organisés en versions X.Y.Z. Dans la terminologie Amazon RDS, X.Y indique la version majeure et Z le numéro de la version mineure. Pour les implémentations Amazon RDS, un changement de version sera considéré majeur si le numéro de version majeure change—par exemple, en passant de la version 5.7 à 8.0. Un changement de version sera considéré mineur seulement si le numéro de version mineure change—par exemple, en allant de la version 5.7.16 à 5.7.21.

Amazon RDS prend actuellement en charge les versions suivantes de MySQL :

Version majeure Version mineure

MySQL 8.0

  • 8.0.26

  • 8.0.25

  • 8.0.23

  • 8.0.21

  • 8.0.20

  • 8.0.19

  • 8.0.17

  • 8.0.16

  • 8.0.15

  • 8.0.13

  • 8.0.11

MySQL 5.7

  • 5.7.34

  • 5.7.33

  • 5.7.31

  • 5.7.30

  • 5.7.28

  • 5.7.26

  • 5.7.25

  • 5.7.24

  • 5.7.23

  • 5.7.22

  • 5.7.21

  • 5.7.19

  • 5.7.17

  • 5.7.16

MySQL 5.6

  • 5.6.51

  • 5.6.49

  • 5.6.48

  • 5.6.46

  • 5.6.44

  • 5.6.43

  • 5.6.41

  • 5.6.40

  • 5.6.39

  • 5.6.37

  • 5.6.35

  • 5.6.34

Vous pouvez spécifier n'importe quelle version MySQL actuellement prise en charge lorsque vous créez une instance de base de données. Vous pouvez spécifier la version majeure (par exemple MySQL 5.7), puis toute version mineure prise en charge pour la version majeure spécifiée. Si aucune version n'est spécifiée, Amazon RDS utilise par défaut une version prise en charge, généralement la plus récente. Si une version majeure est spécifiée, mais qu'une version mineure ne l'est pas, Amazon RDS utilise par défaut une version récente de la version majeure que vous avez spécifiée. Pour afficher la liste des versions prises en charge, ainsi que celles par défaut pour des instances de base de données nouvellement créées, utilisez la commande describe-db-engine-versions de l'AWS CLI.

La version par défaut de MySQL peut varier selon la région AWS. Pour créer une instance de base de données avec une version mineure spécifique, spécifiez la version mineure lors de la création de l'instance de base de données. Vous pouvez déterminer la version secondaire par défaut d'une région AWS à l'aide de la commande AWS CLI suivante :

aws rds describe-db-engine-versions --default-only --engine mysql --engine-version major-engine-version --region region --query "*[].{Engine:Engine,EngineVersion:EngineVersion}" --output text

Remplacez major-engine-version par la version majeure du moteur et region par la région AWS. Par exemple, la commande de l'AWS CLI suivante renvoie la version du moteur mineur MySQL par défaut pour la version majeure 5.7 et la région AWS USA Ouest (Oregon) (us-west-2) :

aws rds describe-db-engine-versions --default-only --engine mysql --engine-version 5.7 --region us-west-2 --query '*[].{Engine:Engine,EngineVersion:EngineVersion}' --output text

Avec Amazon RDS, vous contrôlez à quel moment vous mettez à niveau votre instance MySQL vers une nouvelle version majeure prise en charge par Amazon RDS. Vous pouvez maintenir la compatibilité avec des versions MySQL spécifiques, tester de nouvelles versions avec votre application avant le déploiement en production et effectuer des mises à niveau de versions majeures aux moments qui correspondent le mieux à votre calendrier.

Lorsque la mise à niveau automatique de versions mineures est activée, votre instance de base de données sera automatiquement mise à niveau vers de nouvelles versions mineures MySQL, celles-ci étant prises en charge par Amazon RDS. Ces correctifs sont appliqués pendant le créneau de maintenance planifié. Vous pouvez modifier une instance de base de données pour activer ou désactiver les mises à niveau automatiques des versions mineures.

Si vous refusez les mises à niveau automatiques planifiées, vous pouvez procéder manuellement à une mise à niveau vers une version mineure prise en charge en suivant la même procédure que pour une mise à jour de la version majeure. Pour plus d'informations, consultez Mise à niveau d'une version du moteur d'une instance de base de données .

Amazon RDS prend actuellement en charge les mises à niveau de version majeure de la version 5.6 à 5.7 de MySQL et de la version 5.7 à 8.0 de MySQL. Étant donné que les mises à niveau de version majeures impliquent quelques risques de compatibilité, elles ne sont pas appliquées automatiquement et vous devez donc faire une demande de modification de l'instance de base de données. Vous devez tester soigneusement toute mise à niveau avant de procéder à la mise à niveau de vos instances de production. Pour plus d'informations sur la mise à niveau d'une instance de base de données MySQL, consultez Mise à niveau du moteur de base de données MySQL.

Vous pouvez tester une instance de base de données par rapport à une nouvelle version avant la mise à niveau. Pour ce faire, créez un instantané de base de données de votre instance de base de données existante, restaurez à partir de l'instantané de base de données pour créer une instance de base de données et lancez une mise à niveau de version pour la nouvelle instance de base de données. Vous pouvez ensuite procéder en toute sécurité à une expérimentation sur le clone mis à niveau de votre instance de base de données avant de décider de mettre à niveau ou pas votre instance de base de données d'origine.

Obsolescence de MySQL version 5.6

Le 1er février 2022, Amazon RDS prévoit de rendre obsolète la prise en charge de MySQL 5.6 selon la planification suivante, qui inclut des recommandations de mise à niveau. Nous vous recommandons de mettre à niveau dès que possible toutes les instances de base de données MySQL 5.6 vers MySQL 5.7 ou version ultérieure. Pour de plus amples informations, veuillez consulter Mise à niveau du moteur de base de données MySQL.

Action ou recommandation Dates

Nous vous recommandons de mettre à niveau manuellement les instances de base de données MySQL 5.6 vers la version de votre choix.

Maintenant – 1er février 2022

Nous vous recommandons de mettre à niveau manuellement les instantanés MySQL 5.6 vers la version de votre choix.

Maintenant – 1er février 2022

Vous ne pouvez plus créer de nouvelles instances de base de données MySQL 5.6.

1er février 2022

Amazon RDS démarre les mises à niveau automatiques de vos instances de base de données MySQL 5.6 vers la version 5.7.

1er mars 2022

Amazon RDS démarre les mises à niveau automatiques vers la version 5.7 pour toutes les instances de base de données MySQL 5.6 restaurées à partir d'instantanés.

1er mars 2022

Pour plus d'informations sur l'obsolescence de Amazon RDS for MySQL 5.6, consultez Annonce : Extension du processus de fin de vie pour Amazon RDS for MySQL 5.6.

Fonctions MySQL non prises en charge par Amazon RDS

Amazon RDS ne prend pas en charge actuellement les fonctions MySQL suivantes :

  • Plug-in d'authentification

  • Erreur de journalisation dans le journal système

  • Plug-in de réplication de groupe

  • Chiffrement d'espace de tables InnoDB

  • Plug-in de niveau de sécurité du mot de passe

  • Variables système persistantes

  • Réplication semi-synchrone

  • Espace de table transportable

  • Plug-in X

Note

Les ID de transaction globaux sont pris en charge pour RDS for MySQL 5.7.23 et versions 5.7 ultérieures, ainsi que pour MySQL 8.0.26 et les versions 8.0 ultérieures. Les identifiants de transaction globaux ne sont pas pris en charge pour les versions RDS for MySQL 5.6.

Pour offrir une expérience de service géré, Amazon RDS ne fournit pas l'accès shell aux instances de base de données. Il restreint également l'accès à certaines procédures système et tables qui requièrent des privilèges avancés. Amazon RDS prend en charge l'accès aux bases de données sur une instance de base de données en utilisant toute application cliente SQL standard. Amazon RDS ne permet pas d'accès d'hôte direct à une instance de base de données via Telnet, Secure Shell (SSH) ou une connexion Bureau à distance Windows. Lorsque vous créez une instance de base de données, le rôle db_owner vous est attribué pour toutes les bases de données sur cette instance, et vous disposez de toutes les autorisations au niveau de la base de données, sauf celles qui sont utilisées pour les sauvegardes. Amazon RDS gère les sauvegardes pour vous.

Moteurs de stockage pris en charge pour RDS for MySQL

Même si MySQL prend en charge plusieurs moteurs de stockage aux capacités diverses, ils ne sont pas tous optimisés pour la récupération et la durabilité des données. Amazon RDS prend entièrement en charge le moteur de stockage InnoDB pour les instances de base de données MySQL. Les fonctions de restauration à un instant dans le passé et de restauration d'instantané d'Amazon RDS nécessitent un moteur de stockage tolérant aux incidents, et sont uniquement prises en charge pour le moteur de stockage InnoDB. Vous devez exécuter une instance de MySQL 5.6, ou version ultérieure, pour utiliser l'interface memcached InnoDB. Pour de plus amples informations, veuillez consulter Prise en charge memcached MySQL.

Le Federated Storage Engine n'est pour l'instant pas pris en charge par Amazon RDS for MySQL.

Pour les schémas créés par l'utilisateur, le moteur de stockage MyISAM ne prend pas en charge une récupération fiable et peut causer la perte ou la corruption des données quand MySQL est redémarré après une récupération, empêchant la restauration à un instant dans le passé et la restauration d'instantané de fonctionner comme prévu. Néanmoins, si vous choisissez tout de même d'utiliser MyISAM avec Amazon RDS, les instantanés peuvent être utiles dans certaines conditions.

Note

Les tables système du schéma mysql peuvent être dans le stockage MyISAM.

Si vous souhaitez convertir des tables MyISAM existantes en tables InnoDB, vous pouvez utiliser la commande ALTER TABLE (par exemple, alter table TABLE_NAME engine=innodb;). N'oubliez pas que MyISAM et InnoDB ont des forces et des faiblesses différentes, vous devriez donc commencer par évaluer de façon exhaustive l'impact de ce basculement sur vos applications.

Les version MySQL 5.1 et 5.5 ne sont plus prises en charge dans Amazon RDS. Cependant, vous pouvez restaurer des instantanés MySQL 5.1 et 5.5 existants. Lorsque vous restaurez un instantané MySQL 5.1 ou 5.5, l'instance de base de données est automatiquement mise à niveau vers MySQL 5.6.

Comportement de stockage plein pour Amazon RDS for MySQL

Lorsque le stockage devient plein pour une instance de base de données MySQL, cela peut entraîner des incohérences de métadonnées, des incohérences de dictionnaire et des tables orphelines. Pour éviter ces problèmes, Amazon RDS arrête automatiquement une instance de base de données qui atteint l'état storage-full.

Une instance de base de données MySQL atteint l'état storage-full dans les cas suivants :

  • L'instance de base de données possède moins de 20 000 Mio de stockage et le stockage disponible atteint 200 Mio ou moins.

  • L'instance de base de données possède plus de 102 400 Mio de stockage et le stockage disponible atteint 1024 Mio ou moins.

  • L'instance de base de données possède entre 20 000 Mio et 102 400 Mio de stockage et dispose de moins de 1 % du stockage disponible.

Après l'arrêt automatique par Amazon RDS d'une instance de base de données car elle a atteint l'état storage-full, vous pouvez toujours la modifier. Pour redémarrer l'instance de base de données, effectuez au moins l'une des opérations suivantes :

Après avoir effectué l'une de ces modifications, l'instance de base de données est automatiquement redémarrée. Pour plus d'informations sur la modification d'une instance de base de données , consultez Modification d'une instance de base de données Amazon RDS.

MySQL Security sur Amazon RDS

La sécurité des instances de bases de données MySQL est gérée à trois niveaux :

  • AWS Identity and Access Management contrôle les personnes autorisées à exécuter des actions de gestion Amazon RDS sur des instances de base de données. Lorsque vous vous connectez à AWS en utilisant les informations d'identification IAM, votre compte IAM doit disposer des stratégies IAM qui accordent les autorisations requises pour exécuter les opérations de gestion d'Amazon RDS. Pour de plus amples informations, veuillez consulter Identity and Access Management dans Amazon RDS.

  • Lorsque vous créez une instance de base de données, vous utilisez un groupe de sécurité VPC ou un groupe de sécurité DB pour contrôler les appareils et les instances Amazon EC2 qui peuvent ouvrir des connexions au point de terminaison et au port de l'instance de base de données. Ces connexions peuvent être effectuées à l'aide du protocole SSL (Secure Socket Layer). En outre, les règles de pare-feu de votre entreprise peuvent contrôler si les appareils en cours d'exécution dans votre entreprise peuvent ouvrir des connexions à l'instance de base de données.

  • Pour authentifier la connexion et les autorisations d'une instance de base de données MySQL, vous pouvez adopter l'une des approches suivantes, ou les combiner.

    Vous pouvez adopter la même approche qu'avec une instance autonome de MySQL. Les commandes telles que CREATE USER, RENAME USER, GRANT, REVOKE et SET PASSWORD fonctionnent de la même façon que dans les bases de données sur site, comme le fait la modification directe des tables du schéma de base de données. Pour de plus amples informations, veuillez consulter Access Control and Account Management dans la documentation MySQL.

    Vous pouvez également utiliser l'authentification de base de données IAM. L'authentification de base de données IAM vous permet de vous authentifier sur votre instance de base de données à l'aide d'un utilisateur IAM ou d'un rôle IAM et d'un jeton d'authentification. Un jeton d'authentification est une valeur unique qui est générée à l'aide du processus de signature Signature Version 4. L'authentification de base de données IAM vous permet d'utiliser les mêmes informations d'identification pour contrôler l'accès à vos ressources AWS et à vos bases de données. Pour de plus amples informations, veuillez consulter Authentification de base de données IAM pour MySQL et PostgreSQL.

Lorsque vous créez une instance de base de données Amazon RDS, l'utilisateur principal a les privilèges par défaut suivants :

  • alter

  • alter routine

  • create

  • create routine

  • create temporary tables

  • create user

  • create view

  • delete

  • drop

  • event

  • execute

  • grant option

  • index

  • insert

  • lock tables

  • process

  • references

  • replication client

  • replication slave (MySQL 5.6 and later)

  • select

  • show databases

  • show view

  • trigger

  • update

Note

Bien qu'il soit possible de supprimer l'utilisateur maître sur l'instance de base de données, il n'est pas recommandé de le faire. Pour recréer l'utilisateur maître, utilisez l'opération d'API RDS ModifyDBInstance ou la commande d'AWS CLI modify-db-instance et spécifiez un nouveau mot de passe d'identifiant principal avec le paramètre approprié. Si l'utilisateur maître n'existe pas dans l'instance, il est créé avec le mot de passe spécifié.

Pour fournir des services de gestion à chaque instance de base de données, l'utilisateur rdsadmin est créé lors de la création de l'instance de base de données. Les tentatives de supprimer, renommer et modifier le mot de passe du compte rdsadmin, ou d'en modifier les privilèges, génèrent une erreur.

Pour autoriser la gestion de l'instance de base de données, les commandes standard kill et kill_query ont fait l'objet de restrictions. Les commandes Amazon RDS rds_kill et rds_kill_query sont fournies pour vous permettre de mettre fin aux requêtes ou aux sessions utilisateur sur les instances de base de données.

Utilisation du plug-in de validation de mot de passe

MySQL fournit le plug-in validate_password pour assurer une sécurité améliorée. Le plug-in applique des stratégies de mot de passe à l'aide de paramètres du groupe de paramètres de base de données pour votre instance de base de données MySQL. Le plug-in est pris en charge pour les instances de base de données exécutant MySQL version 5.6, 5.7 et 8.0. Pour de plus amples informations sur le plug-in validate_password, veuillez consulter Plug-in de validation de mot de passe dans la documentation MySQL.

Pour activer le plug-in validate_password pour une instance de base de données MySQL

  1. Connectez-vous à votre instance de base de données MySQL et exécutez la commande suivante.

    INSTALL PLUGIN validate_password SONAME 'validate_password.so';
  2. Configurez les paramètres du plug-in dans le groupe de paramètres de base de données utilisé par l'instance de base de données.

    Pour de plus amples informations sur les paramètres, veuillez consulter Password Validation Plugin Options and Variables dans la documentation MySQL.

    Pour plus d'informations sur la modification des paramètres d'instance de base de données, consultez Modification de paramètres dans un groupe de paramètres de bases de données.

Après avoir installé et activé le plug-in password_validate, réinitialisez les mots de passe existants conformément à vos nouvelles stratégies de validation.

Amazon RDS ne valide pas les mots de passe. L'instance de base de données MySQL DB effectue la validation de mot de passe. Si vous définissez un mot de passe utilisateur avec l'AWS Management Console, la commande d'modify-db-instance AWS CLI ou l'action d'API RDS ModifyDBInstance, la modification peut aboutir même si le nouveau mot de passe ne répond pas à vos stratégies de mot de passe. Cependant, un nouveau mot de passe est défini dans l'instance de base de données MySQL uniquement s'il satisfait les stratégies de mot de passe. Dans ce cas, Amazon RDS enregistre l'événement suivant.

"RDS-EVENT-0067" - An attempt to reset the master password for the DB instance has failed.

Pour de plus amples informations sur les événements Amazon RDS, veuillez consulte Utilisation de la notification d'évènement Amazon RDS.

Utilisation de SSL avec une instance de base de données MySQL

Amazon RDS prend en charge les connexions SSL avec les instances de base de données exécutant le moteur de base de données MySQL.

Amazon RDS crée un certificat SSL et l'installe sur l'instance de base de données quand Amazon RDS alloue l'instance. Ces certificats sont signés par une autorité de certification. Le certificat SSL inclut le point de terminaison de l'instance de base de données en tant que nom commun du certificat SSL pour assurer une protection contre les attaques par usurpation.

Un certificat SSL créé par Amazon RDS est l'entité racine approuvée et doit fonctionner dans la plupart des cas, mais il peut échouer si votre application n'accepte pas les chaînes de certificats. Si votre application ne les accepte pas, vous devrez peut-être utiliser un certificat intermédiaire pour vous connecter à votre région AWS. Par exemple, vous devez utiliser un certificat intermédiaire pour vous connecter aux régions AWS GovCloud (US) à l'aide de SSL.

Pour de plus amples informations sur le téléchargement de certificats, veuillez consulter Utilisation de SSL/TLS pour chiffrer une connexion à une de base de données instance. Pour en savoir plus sur l'utilisation de SSL avec MySQL, consultez Mise à jour des applications pour se connecter aux instances de bases de données MySQL à l'aide des nouveaux certificats SSL/TLS.

MySQL utilise yaSSL pour les connexions sécurisées dans les versions suivantes :

  • MySQL version 5.7.19 et versions 5.7 antérieures

  • MySQL version 5.6.37 et versions 5.6 antérieures

MySQL utilise OpenSSL pour les connexions sécurisées dans les versions suivantes :

  • MySQL version 8.0

  • MySQL version 5.7.21 et versions 5.7 ultérieures

  • MySQL version 5.6.39 et versions 5.6 ultérieures

Amazon RDS for MySQL prend pas en charge le protocole TLS (Transport Layer Security) versions 1.0, 1.1 et 1.2. Le tableau suivant affiche la prise en charge du protocole TLS pour les versions MySQL.

Version MySQL TLS 1.0 TLS 1.1 TLS 1.2

MySQL 8.0

Pris en charge

Pris en charge

Pris en charge

MySQL 5.7

Pris en charge

Pris en charge

Pris en charge pour MySQL 5.7.21 et versions ultérieures

MySQL 5.6

Pris en charge

Pris en charge pour MySQL 5.6.46 et versions ultérieures

Pris en charge pour MySQL 5.6.46 et versions ultérieures

Pour chiffrer les connexions à l'aide du client mysql par défaut, lancez le client mysql à l'aide du paramètre --ssl-ca pour référencer la clé publique, comme illustré dans l'exemple suivant.

L'exemple suivant montre comment lancer le client à l'aide du paramètre --ssl-ca pour MySQL 5.7 ou version ultérieure.

mysql -h myinstance.c9akciq32.rds-us-east-1.amazonaws.com --ssl-ca=[full path]rds-combined-ca-bundle.pem --ssl-mode=VERIFY_IDENTITY

L'exemple suivant montre comment lancer le client à l'aide du paramètre --ssl-ca pour MySQL 5.6 ou version antérieure.

mysql -h myinstance.c9akciq32.rds-us-east-1.amazonaws.com --ssl-ca=[full path]rds-combined-ca-bundle.pem --ssl-verify-server-cert

Pour plus d'informations sur le téléchargement de solutions groupées de certificat, consultez Utilisation de SSL/TLS pour chiffrer une connexion à une de base de données instance.

Vous pouvez exiger des connexions SSL pour des comptes d'utilisateur spécifiques. Par exemple, vous pouvez utiliser l'une des instructions suivantes, selon votre version MySQL, pour exiger des connexions SSL sur le compte utilisateur encrypted_user.

Pour MySQL 5.7 et les versions ultérieures, utilisez la déclaration suivante.

ALTER USER 'encrypted_user'@'%' REQUIRE SSL;

Pour MySQL 5.6 et les versions antérieures, utilisez la déclaration suivante.

GRANT USAGE ON *.* TO 'encrypted_user'@'%' REQUIRE SSL;

Pour de plus amples informations sur les connexions SSL avec MySQL, veuillez consulter la section sur l'utilisation de connexions chiffrées dans la documentation MySQL.

Utilisation de memcached et d'autres options avec MySQL

La plupart des moteurs de base de données Amazon RDS prennent en charge des groupes d'options qui vous permettent de sélectionner des fonctions supplémentaires pour votre instance de base de données. Les instances de bases de données sur MySQL version 5.6 et versions ultérieures prennent en charge l'option memcached, un cache simple basée sur les clés. Pour plus d'informations sur memcached et d'autres options, consultez Options pour les instances de base de données MySQL. Pour plus d'informations sur l'utilisation de groupes d'options, consultez Utilisation de groupes d'options.

Préparation du cache InnoDB

La préparation du cache InnoDB peut fournir des gains de performances pour votre instance de base de données MySQL en enregistrant l'état actuel du pool de mémoires tampons lorsque l'instance de base de données est arrêtée, puis en rechargeant le pool de mémoires tampons à partir des informations enregistrées au démarrage de l'instance de base de données. Cette approche contourne la nécessité de « préparer » le pool de mémoires tampons à partir d'une utilisation normale de la base de données et précharge à la place le pool de mémoires tampons avec les pages des requêtes courantes connues. Le fichier qui stocke les informations du pool de tampons enregistré stocke uniquement les métadonnées pour les pages qui sont dans le pool de mémoires tampons et pas les pages elles-mêmes. Par conséquent, le fichier ne nécessite pas un important espace de stockage. La taille du fichier représente environ 0,2 pour cent de la taille du cache. Par exemple, pour un cache 64 Gio, la taille du fichier de préparation de cache est de 128 Mio. Pour de plus amples informations sur la préparation du cache InnoDB, veuillez consulter Saving and Restoring the Buffer Pool State dans la documentation MySQL.

MySQL sur Amazon RDS prend en charge la préparation de cache InnoDB pour MySQL version 5.6 et ultérieure. Pour activer la préparation du cache InnoDB, définissez les paramètres innodb_buffer_pool_dump_at_shutdown et innodb_buffer_pool_load_at_startup avec la valeur 1 dans le groupe de paramètres de votre instance de base de données. La modification de ces valeurs dans un groupe de paramètres affecte toutes les instances de bases de données MySQL qui utilisent ce groupe de paramètres. Pour activer la préparation du cache InnoDB pour des instances de bases de données MySQL spécifiques, vous devrez peut-être créer un groupe de paramètres pour ces instances. Pour plus d'informations sur les groupes de paramètres, consultez Utilisation de groupes de paramètres de base de données.

La préparation du cache InnoDB fournit principalement une amélioration des performances pour les instances de bases de données qui utilisent le stockage standard. Si vous utilisez le stockage PIOPS, vous ne constatez généralement pas d'amélioration significative des performances.

Important

Si votre instance de base de données MySQL ne se ferme pas normalement, comme lors d'un basculement, l'état du pool de mémoires tampons n'est pas enregistré sur le disque. Dans ce cas, MySQL charge n'importe quel fichier du pool de mémoires tampons disponible au redémarrage de l'instance de base de données. Il n'en résulte aucun dommage, mais le pool de tampons restauré peut ne pas refléter l'état le plus récent du pool de tampons avant le redémarrage. Pour vous assurer d'avoir un état récent du pool de mémoires tampons disponible afin de préparer le cache InnoDB au démarrage, il est recommandé que vous vidiez régulièrement le pool de mémoires tampons « à la demande ». Vous pouvez vider ou charger le pool de mémoires tampons à la demande si votre instance de base de données exécute MySQL version 5.6.19 ou ultérieure.

Vous pouvez créer un événement pour vider le pool de mémoires tampons automatiquement et à intervalles réguliers. Par exemple, l'instruction suivante crée un événement nommé periodic_buffer_pool_dump qui vide le pool de mémoires tampons toutes les heures.

CREATE EVENT periodic_buffer_pool_dump ON SCHEDULE EVERY 1 HOUR DO CALL mysql.rds_innodb_buffer_pool_dump_now();

Pour de plus amples informations sur les événements MySQL, veuillez consulter Syntaxe d'événement dans la documentation MySQL.

Vidage et chargement du pool de tampons à la demande

Pour MySQL version 5.6.19 et ultérieure, vous pouvez enregistrer et charger le cache InnoDB « à la demande ».

Fuseau horaire local pour les instances de bases de données MySQL

Par défaut, le fuseau horaire d'une instance de base de données MySQL est le fuseau UTC (temps universel). Vous pouvez à la place définir le fuseau horaire de votre instance de base de données sur le fuseau horaire local de votre application.

Pour définir le fuseau horaire local d'une instance de base de données, définissez le paramètre time_zone du groupe de paramètres de votre instance de base de données avec l'une des valeurs prises en charge et répertoriées plus bas dans cette section. Lorsque vous définissez le paramètre time_zone d'un groupe de paramètres, toutes les instances de base de données et tous les réplicas en lecture qui ont recours à ce groupe de paramètres sont modifiés de façon à utiliser le nouveau fuseau horaire local. Pour plus d'informations sur la définition des paramètres d'un groupe de paramètres, consultez Utilisation de groupes de paramètres de base de données.

Une fois que vous avez défini le fuseau horaire local, toutes les nouvelles connexions à la base de données reflètent la modification. Si des connexions à votre base de données sont ouvertes lorsque vous modifiez le fuseau horaire local, la mise à jour du fuseau horaire local n'apparaît pas tant que vous n'avez pas fermé la connexion et n'en avez pas ouvert une nouvelle.

Vous pouvez définir un fuseau horaire local différent pour une instance de base de données et un ou plusieurs de ses réplicas en lecture. Pour ce faire, utilisez un autre groupe de paramètres pour l'instance de base de données et les réplicas, et définissez le paramètre time_zone de chaque groupe de paramètres avec un autre fuseau horaire local.

Si la réplication s'effectue entre les régions AWS, l'instance de base de données source et le réplica en lecture utilisent des groupes de paramètres différents (les groupes de paramètres sont propres à chaque région AWS). Pour que chaque instance utilise le même fuseau horaire local, vous devez définir le paramètre time_zone dans les groupes de paramètres de l'instance et du réplica en lecture.

Lorsque vous restaurez une instance de base de données à partir d'un instantané de base de données, le fuseau horaire local a la valeur UTC. Vous pouvez mettre à jour le fuseau horaire sur votre fuseau horaire local une fois la restauration terminée. Si vous restaurez une instance de base de données à un instant dans le passé, le fuseau horaire local de l'instance de base de données restaurée est le paramètre de fuseau horaire du groupe de paramètres de l'instance de base de données restaurée.

Vous pouvez définir votre fuseau horaire local avec l'une des valeurs suivantes.

Africa/Cairo

Asia/Riyadh

Africa/Casablanca

Asia/Seoul

Africa/Harare

Asia/Shanghai

Africa/Monrovia

Asia/Singapore

Africa/Nairobi

Asia/Taipei

Africa/Tripoli

Asia/Tehran

Africa/Windhoek

Asia/Tokyo

America/Araguaina

Asia/Ulaanbaatar

America/Asuncion

Asia/Vladivostok

America/Bogota

Asia/Yakutsk

America/Buenos_Aires

Asia/Yerevan

America/Caracas

Atlantic/Azores

America/Chihuahua

Australia/Adelaide

America/Cuiaba

Australia/Brisbane

America/Denver

Australia/Darwin

America/Fortaleza

Australia/Hobart

America/Guatemala

Australia/Perth

America/Halifax

Australia/Sydney

America/Manaus

Brazil/East

America/Matamoros

Canada/Newfoundland

America/Monterrey

Canada/Saskatchewan

America/Montevideo

Canada/Yukon

America/Phoenix

Europe/Amsterdam

America/Santiago

Europe/Athens

America/Tijuana

Europe/Dublin

Asia/Amman

Europe/Helsinki

Asia/Ashgabat

Europe/Istanbul

Asia/Baghdad

Europe/Kaliningrad

Asia/Baku

Europe/Moscow

Asia/Bangkok

Europe/Paris

Asia/Beirut

Europe/Prague

Asia/Calcutta

Europe/Sarajevo

Asia/Damascus

Pacific/Auckland

Asia/Dhaka

Pacific/Fiji

Asia/Irkutsk

Pacific/Guam

Asia/Jerusalem

Pacific/Honolulu

Asia/Kabul

Pacific/Samoa

Asia/Karachi

US/Alaska

Asia/Kathmandu

US/Central

Asia/Krasnoyarsk

US/Eastern

Asia/Magadan

US/East-Indiana

Asia/Muscat

US/Pacific

Asia/Novosibirsk

UTC

Limites et problèmes connus pour Amazon RDS for MySQL

Il existe des limites et des problèmes connus liés à l'utilisation de MySQL sur Amazon RDS for MySQL. Pour de plus amples informations, veuillez consulter Limites et problèmes connus pour Amazon RDS pour MySQL.

Versions rendues obsolètes pour Amazon RDS for MySQL

Les versions Amazon RDS for MySQL 5.1 et 5.5 sont rendues obsolètes.

Pour plus d'informations sur l'obsolescence de Amazon RDS for MySQL 5.5, consultez Annonce : Extension du processus de fin de vie pour Amazon RDS for MySQL 5.5.

Pour de plus amples informations sur la stratégie d'obsolescence Amazon RDS for MySQL, veuillez consulter FAQ Amazon RDS.