Depuis sa création, il y a eu un nombre croissant de migrations vers un environnement basé sur le cloud. Après tout, le cloud computing peut offrir de nombreux avantages aux entreprises, en particulier à celles qui travaillent avec le Big Data.
Cependant, à mesure que la demande augmente, les coûts augmentent également, et vous pourriez vous retrouver dans une situation où les dépenses mensuelles liées au cloud deviennent trop élevées, et les inconvénients l'emportent rapidement sur les avantages d'opérer dans le cloud. Ou peut-être avez-vous des exigences de sécurité ou de conformité qui vous obligent à avoir un contrôle plus direct de vos systèmes. Cela peut finalement vous inciter à migrer vers un environnement sur site.
AWS fournit des outils de surveillance et de gestion pour exécuter notre système dans le cloud tout en ayant une visibilité et un contrôle pour l'optimisation. Cependant, lorsque nous nous trouvons prêts pour une solution sur site, il peut être difficile de migrer nos données et de recréer tous les outils pour gérer correctement nos systèmes.
Dans ce blog, nous expliquerons comment vous pouvez migrer vos systèmes d'AWS vers un centre de données sur site et comment ClusterControl peut vous aider à rationaliser le processus.
Concepts
Avant de nous lancer, couvrons quelques concepts de base sur Amazon Cloud et ClusterControl.
AWS
Amazon Web Services (AWS) est une infrastructure en tant que plate-forme de service composée d'un grand nombre de services indépendants et semi-indépendants. L'objectif de la plate-forme Infrastructure en tant que service est d'offrir, sur une base de produits, des services qui nécessitaient auparavant l'achat de composants d'infrastructure à forte intensité de capital tels que des serveurs haut de gamme, des routeurs réseau et des commutateurs, et pour les grandes entreprises, même leurs propres centres de données.
RDS
Amazon Relational Database Service (RDS) facilite la configuration, l'exploitation et la mise à l'échelle d'une base de données relationnelle dans le cloud. Il offre une capacité économique et redimensionnable tout en automatisant les tâches d'administration chronophages telles que le provisionnement du matériel, la configuration de la base de données, les correctifs et les sauvegardes.
Amazon RDS est disponible sur plusieurs types d'instances de base de données et vous propose six systèmes de gestion de base de données familiers parmi lesquels choisir, notamment Amazon Aurora, PostgreSQL, MySQL, MariaDB, Oracle Database et SQL Server.
EC2
Amazon Elastic Compute Cloud (EC2) est un service qui fournit une capacité de calcul sécurisée et redimensionnable dans le cloud. Il est conçu pour faciliter le cloud computing à l'échelle du Web pour les développeurs.
L'interface Web simple d'Amazon EC2 vous permet d'obtenir et de configurer la capacité avec un minimum de friction. Il vous offre un contrôle total de vos ressources informatiques et vous permet de fonctionner sur l'environnement informatique éprouvé d'Amazon.
ClusterControl
ClusterControl est un système de gestion complet pour les bases de données open source qui automatise le déploiement, les fonctions de gestion et la surveillance de la santé et des performances à partir d'un seul écran.
ClusterControl prend en charge le déploiement, la gestion, la surveillance et la mise à l'échelle de différentes technologies de base de données dans n'importe quel environnement.
Pourquoi migrer vers On-Prem ?
Comme nous l'avons mentionné précédemment, les raisons les plus courantes de migrer d'AWS vers un environnement sur site sont les coûts, la sécurité, la conformité ou l'exécution d'applications locales. Dans AWS, vous ne savez pas ce qui se passe sous le capot de l'infrastructure. Vous savez seulement si tout fonctionne. Si vous rencontrez des performances médiocres ou des anomalies, la seule solution est de contacter le support Amazon.
Exemple de scénario de migration
Dans AWS, vous avez deux produits différents liés à ce blog :EC2 et RDS.
La principale différence entre eux est que dans EC2, vous avez un accès SSH au serveur et devez gérer vous-même la base de données. RDS est un service de base de données hébergé et vous n'avez accès qu'à l'instance de base de données.
Dans RDS, comme vous n'avez pas d'accès SSH, vous devez créer un vidage et l'importer dans le nouveau serveur, ou configurer la réplication et promouvoir la réplique vers le nouveau serveur principal. Pour les deux options, le processus est manuel. Vous pouvez également ajouter un équilibreur de charge pour améliorer ce processus. Nous avons couvert cette tâche dans ces blogs :Partie 1 et Partie 2.
Donc, concentrons-nous sur la migration depuis EC2.
Dans notre exemple, voyons comment migrer MySQL d'AWS EC2 vers un centre de données sur site. Nous utiliserons un environnement de réplication MySQL, mais ces étapes devraient fonctionner pour d'autres technologies telles que PostgreSQL.
Nous supposerons que votre base de données MySQL principale s'exécute sur une instance EC2. Dans le centre de données sur site, nous supposerons également que vous avez installé ClusterControl et un nouveau serveur de base de données vers lequel migrer.
Dans la console de gestion AWS, vous devriez avoir quelque chose comme ceci dans l'EC2 rubrique instances :
Tout d'abord, vous devrez importer votre nœud principal actuel exécuté sur EC2 à ClusterControl. Pour ce processus d'importation, vous devez ouvrir le port 3306 en modifiant le groupe de sécurité associé à l'instance EC2.
Après cela, dans ClusterControl, accédez à la section Import :
Là, vous pouvez choisir la technologie de base de données, dans cet exemple MySQL Replication, et vous devez spécifier l'utilisateur, la clé ou le mot de passe et le port pour vous connecter à votre serveur via SSH. Vous devez également fournir le nom de votre nouveau cluster.
Après avoir configuré les informations d'accès SSH, vous devez définir certaines informations de base de données telles que les informations d'identification, le port et le basedir de l'administrateur de la base de données. Vous pouvez également activer les fonctionnalités ClusterControl Node AutoRecovery et Cluster AutoRecovery pour le nouveau cluster.
Ensuite, vous devez ajouter votre serveur en utilisant l'adresse IP ou le nom d'hôte et appuyer sur Importer.
Une fois cela fait, vous pouvez surveiller l'état de la tâche d'importation à partir du Moniteur d'activité ClusterControl.
Une fois la tâche terminée, vous verrez votre nœud de base de données dans l'écran principal Écran ClusterControl :
Assurez-vous d'activer la génération de binlog dans votre base de données principale actuelle.
Maintenant, vous pouvez ajouter votre futur nouveau nœud principal en tant que nouveau réplica à partir de votre base de données principale actuelle. Pour cela, allez dans ClusterControl -> Select Cluster -> Cluster Actions -> Add Replication Slave.
Ici, vous devez ajouter le nom d'hôte ou l'adresse IP de la nouvelle réplique serveur, et si vous voulez que ClusterControl installe le logiciel pour vous.
Assurez-vous que vous disposez d'une connectivité d'AWS aux ports 3306 et 9999 sur le serveur sur site.
ClusterControl met en scène le réplica avec les données en prenant une sauvegarde à chaud du primaire, en le diffusant vers le réplica et en le restaurant là-bas. Une fois restauré, le nœud de réplique est connecté au nœud principal afin qu'il puisse rattraper les événements et se synchroniser. Notez que pour les bases de données volumineuses exécutées avec une certaine charge, vous souhaiterez peut-être éviter la charge supplémentaire de cette opération sur le nœud principal. Dans ce cas, il est possible de créer d'abord le nœud de réplica à partir d'une sauvegarde existante, puis de connecter le réplica, afin qu'il rattrape le nœud principal.
Après cette tâche, vous devriez avoir quelque chose comme ceci :
Vous pouvez également vérifier votre topologie dans la section ClusterControl Topology.
Ensuite, vous devez promouvoir le réplica en primaire (ClusterControl -> Select Cluster -> Node Actions -> Promote Slave) et modifiez le point de terminaison dans votre application.
Pour améliorer cette topologie, vous pouvez ajouter un équilibreur de charge pour gérer le trafic du serveur d'application à la base de données. Lorsque vous utilisez un équilibreur de charge, vous n'aurez pas besoin de modifier le point de terminaison de votre application pendant la migration ; l'équilibreur de charge modifiera le nœud principal de manière transparente.
Il existe plusieurs façons d'effectuer cette tâche, et vous devriez pouvoir adoptez une telle stratégie pour votre environnement, en fonction de votre infrastructure, de votre sécurité, etc.
Pour des raisons de sécurité, vous devez envisager d'utiliser un VPN entre AWS et l'environnement sur site.
Dans le cas d'une topologie multi-maître comme Galera Cluster, il vous suffit d'ajouter les nœuds que vous souhaitez sur site, mais faites attention à la latence. Vous pouvez utiliser, par exemple, différents segments Galera pour réduire l'utilisation du réseau.
Considérations relatives à la migration
Enfin, voici quelques considérations à prendre en compte si vous souhaitez quitter AWS et commencer à utiliser votre propre environnement :
- Monitoring :n'oubliez pas d'utiliser un système de monitoring. Vous devez savoir ce qui se passe dans votre système tout le temps !
- Stratégie de reprise après sinistre :vous devriez envisager un bon DRP. En général, vous devez disposer des informations à trois emplacements physiques différents :principal, réplica et sauvegarde.
- Haute disponibilité :de nos jours, la haute disponibilité est indispensable dans la plupart des environnements de production. Vous devez donc réfléchir à la meilleure solution de haute disponibilité en fonction de votre infrastructure.
- Évolutivité :vous devriez être en mesure d'évoluer si nécessaire à l'avenir ou pour un événement spécifique.
- Rollback :si vous souhaitez migrer d'AWS vers un environnement sur site, gardez à l'esprit que quelque chose peut mal tourner (comme dans tout type de migration), vous devez donc avoir un plan de rollback.
- Supposons que vous recherchiez une sorte d'environnement hybride, avec des instances exécutées sur AWS et sur site. Dans ce cas, ClusterControl est un excellent choix pour la surveillance, la gestion de la disponibilité, les sauvegardes, la mise à l'échelle, etc. Essayez-le !
Conclusion
Parfois, opérer dans le cloud n'est tout simplement pas la meilleure solution et vous devrez peut-être migrer vers une solution sur site. Nous espérons que ce blog vous a fourni des informations utiles sur la migration de vos données MySQL vers votre centre de données sur site à partir d'AWS et sur la manière dont ClusterControl fournit les outils dont vous avez besoin pour gérer correctement vos systèmes.
Une fois que vous avez terminé votre migration avec succès, mettez à niveau votre système de surveillance avec des stratégies proactives telles que les alertes prédictives. Consultez notre article récemment mis à jour sur la surveillance des bases de données avec ClusterControl pour en savoir plus.
Pour plus de mises à jour sur les conseils et les meilleures pratiques de gestion de base de données, assurez-vous de vous abonner à notre blog, flux RSS et suivez-nous sur LinkedIn et Twitter.