2012-08-13 3 views
1

J'ai lancé un Amazon EC2 avec Amazon Linux et Amazon-EBS en tant que volume racine. J'ai aussi commencé tomcat7 et mysql 5.5 sur ce volume EBS.Copie de tomcat et mysql d'un volume Amazon EBS vers un autre

Plus tard, j'ai décidé de passer d'Amazon Linux à Ubuntu. Pour ce faire, j'ai besoin de lancer une autre instance Amazon EC2 avec un nouveau volume racine EBS. Maintenant, je veux copier tomcat7 et mysql de l'ancien volume EBS vers un nouveau. J'ai des tables et des données dans mysql que je ne veux pas perdre et une application fonctionnant sur tomcat. Comment s'y prendre?

Répondre

3

Un couple de pensées et de suggestions. Tout d'abord, si vous devez avoir une charge importante sur votre base de données, l'exécuter sur un volume soutenu par EBS n'est probablement pas une bonne idée car le stockage soutenu par EBS est incroyablement lent par rapport au local/éphémère de la machine. stockage (/ mnt). Maintenant, évidemment, vous ne voulez pas de données DB sur le stockage éphémère, donc il n'y a vraiment rien que vous pouvez faire à ce sujet si vous voulez exécuter MySQL sur EC2. Donc, ma suggestion serait d'utiliser une instance RDS pour votre DB si vos besoins en infrastructure le permettent. Deuxièmement, s'il s'agit d'une application de production, il est certain que vous aurez des temps d'arrêt au cours de cette transition. La question est de savoir si vous devez absolument minimiser le temps d'arrêt. Si oui, alors vous devez avoir une idée de la taille de votre base de données. Est-ce que ça va prendre beaucoup de temps à décharger/charger? Si ce n'est pas le cas, vous pourriez probablement lancer votre nouvelle instance et la tester sur une ancienne copie de votre base de données, puis vider et charger la base de données en cours au moment de la transition.

S'il s'agit d'une base de données volumineuse, vous pouvez peut-être activer la journalisation binaire MySQL. Effectuez ensuite une sauvegarde de la base de données à une position de journal binaire connue. Ensuite, installez ce vidage sur votre nouvelle instance. Ensuite, lorsque vous êtes prêt à basculer, vous pouvez rejouer les journaux binaires sur la nouvelle instance pour l'actualiser. De même, vous pouvez simplement configurer la base de données sur la nouvelle instance en tant que réplique jusqu'à la transition, auquel cas vous en faites le maître. Vous pouvez même envisager d'utiliser rsync pour synchroniser les fichiers de base de données physiques si vous ne voulez pas vous tromper avec la journalisation binaire, même si cela peut être problématique si vous n'êtes pas familier avec les fichiers de base de données physiques. .

En ce qui concerne votre application, il devrait être beaucoup plus simple de migrer en supposant qu'il ne s'agit que d'une collection de fichiers. Je ne voudrais pas copier l'installation de Tomcat7 elle-même, mais plutôt installer Tomcat sur Ubuntu et ensuite ajuster la configuration pour correspondre au courant.

En ce qui concerne le parterre de coupe lui-même va, cela devrait être assez simple et varie en approche selon que vous utilisez une adresse IP élastique pour votre serveur ou si elle se cache derrière un équilibreur de charge,

+0

+1, merci . Pas encore en production. RDS est plus rapide que MySQL installé sur EBS et EC2. –

+0

@codingcrow Bien sûr cela dépend de l'instance EC2 par rapport aux tailles d'instance RDS et autres, mais généralement dans le monde Amazon Web Services, il est préférable d'utiliser RDS, sauf si vous avez vraiment besoin d'une configuration MySQL spécifique , Grappes de DB, etc.). Vous pouvez également obtenir une meilleure protection contre les pannes AWS et les pannes matérielles (elles se produisent) en utilisant une installation RDS multizone. Il permet également de modifier la taille de la base de données (disons que vous avez besoin d'une base de données plus grande au fur et à mesure de la croissance de l'application), de créer des réplicas en lecture, des clichés de base de données, etc. –

Questions connexes