Article original : How to Move a Single Fly Machine and Volume to a New Region with flyctl
Fly.io permet aux utilisateurs de déployer leurs applications sur des machines virtuelles dans des régions où leurs applications sont principalement utilisées. Une application Fly peut également être déployée dans plusieurs régions.
Vous pouvez souhaiter déplacer votre application Fly vers une nouvelle région si vous rencontrez des problèmes de performance, une latence élevée ou des problèmes de conformité de résidence des données. Placer votre application plus près de vos utilisateurs peut réduire la latence et améliorer le temps de réponse.
De plus, aligner votre stockage de données avec les exigences de conformité régionales peut prévenir les problèmes juridiques. Globalement, ces changements améliorent l'expérience utilisateur avec votre application.
Cet article expliquera comment déplacer en douceur une application Fly qui inclut une seule Fly Machine et un Fly Volume attaché, d'une région Fly à une autre en utilisant les commandes flyctl.
Prérequis
- Compte Fly.io
flyctlinstallé- Interface de ligne de commande (CLI)
Pour commencer
Pour commencer, vous devrez vérifier si vous avez déjà flyctl installé et également l'authentifier.
Comment vérifier l'installation de flyctl
Vous pouvez vérifier que vous avez flyctl installé en utilisant la commande ci-dessous. Si ce n'est pas le cas, utilisez ce guide pour l'installer.
fly version
Sortie de fly version
Cela montre la version que vous avez installée.
Comment authentifier flyctl
Connectez le terminal à votre compte via le CLI en utilisant :
fly auth login
Lorsque le navigateur s'ouvre, connectez-vous si vous n'êtes pas déjà connecté et procédez à l'authentification de votre CLI.
Après avoir authentifié votre compte, retournez au CLI.
Comment confirmer la région de l'application
Accédez au dossier racine de votre projet et exécutez la commande suivante pour déterminer la région actuelle de votre application :
fly status
Sortie de fly status
La région actuelle de l'application est lhr, la commande montre des informations supplémentaires sur l'application, y compris le nom de l'application, le propriétaire, le nom d'hôte, l'image et les détails de la machine.
Comment vérifier le nombre de volumes disponibles
Exécutez la commande suivante pour lister tous les volumes :
fly volumes list
Sortie de fly volumes list
Il devrait y avoir un seul volume qui existe et il devrait déjà être attaché à une machine. Vous pouvez utiliser ce guide pour créer une application avec une seule machine avec un volume attaché.
Comment vérifier que le volume est attaché à une machine
Pour vous assurer que le volume est attaché à une machine, exécutez :
fly machine list
Sortie de fly machine list
À partir de la sortie, vous pouvez déterminer s'il y a un volume attaché à la machine.
Liste des régions Fly
Pour déterminer la nouvelle région vers laquelle vous souhaitez déplacer la machine et le volume, utilisez la commande suivante pour afficher la liste des régions disponibles :
fly platform regions
Sortie de fly platform regions
Pour cet article, la machine et le volume seront déplacés vers la région syd.
Forker le volume disponible vers une nouvelle région
Vous pouvez créer une copie d'un volume existant et le placer dans une nouvelle région en le forkant en utilisant l'ID de volume actuel pour créer un fork :
fly volumes fork vol_4yj0k93z118j9x14 --region syd
Résultat :
Sortie de fly volumes fork
Cela montre des informations sur le nouveau volume créé.
fly volumes list
Sortie de fly volumes list
L'état actuel du nouveau volume forké dans une nouvelle région sera dans un état hydrating pendant quelques minutes avant de passer à created.
fly volumes list
Sortie de fly volumes list
L'image ci-dessus montre l'état actuel après la fin de hydrating.
Vous avez réussi à créer un nouveau volume dans une autre région contenant des données du volume existant dans l'ancienne région.
Comment cloner la machine existante
Fly possède la fonctionnalité de clonage pour répliquer une machine et vous pouvez l'utiliser en obtenant l'ID de la machine existante.
fly machine list
Sortie de fly machine list
Après avoir récupéré l'ID de la machine, utilisez la commande ci-dessous pour cloner la machine et attacher le nouveau volume en utilisant la même région que le nouveau volume créé :
Par exemple :
fly machine clone <machine id> --region <region code> --attach-volume <volume id>:<destination_mount_path>
Il est important de noter que le destination_mount_path doit être un chemin différent de / qui est le répertoire racine de l'application. Il doit être un chemin unique /zata.
fly machine clone 5683977a624218 --region syd --attach-volume vol_vzkd2l6yxnk72p9v:/zata
Sortie de fly machine clone
Vous avez réussi à créer un clone de la machine existante et à attacher le volume forké.
Comment vérifier l'attachement du volume
Pour vérifier si le volume a été attaché avec succès :
fly volumes list
Sortie de fly volumes list
Le volume est maintenant attaché à une machine.
Pour vérifier si la machine a été attachée avec succès :
fly machine list
Sortie de fly machine list
La machine a maintenant un volume attaché.
Vous avez réussi à déplacer la machine et le volume vers une nouvelle région.
Comment afficher les régions disponibles de l'application
Actuellement, l'application existe dans deux régions différentes et vous pouvez voir cela en utilisant la commande suivante :
fly scale show
Sortie de fly scale show
L'application fonctionne maintenant dans lhr et syd.
Comment mettre à jour le fichier fly.toml distant
Ajoutez la nouvelle région au fichier fly.toml primary_region = 'syd', mettez à jour la destination du volume à destination = '/zata', et déployez les changements.
fly deploy
Sortie de fly deploy
Une fois cela réussi, les changements apportés au fichier fly.toml seront dans la configuration distante.
Comment détruire l'ancienne machine
Vous avez réussi à déplacer votre machine et le volume attaché vers une nouvelle région et puisque nous n'avons plus besoin de la machine dans l'ancienne région lhr, vous devrez la nettoyer. La première approche consiste à arrêter la machine en utilisant l'ID.
Arrêter l'ancienne machine
fly machine stop <old_machine_id>
Sortie de fly machine stop
Pour confirmer si cela a réussi, utilisez :
fly machine list
Sortie de fly machine list
L'état de la machine a été mis à jour à stopped
Détruire l'ancienne machine
fly machine destroy <old_machine_id>
Sortie de fly machine destroy
Exécutez la commande ci-dessous pour vérifier si la machine existe toujours.
fly machine list
Sortie de fly machine list
La machine dans l'ancienne région a été supprimée avec succès.
Comment détruire le volume non attaché
Après avoir détruit la machine avec succès, le volume qui lui était attaché est maintenant non attaché et peut également être détruit.
fly volumes list
Sortie de fly volumes list
Utilisez l'ID du volume non attaché et exécutez la commande ci-dessous :
fly volumes destroy <old_volume_id>
Sortie de fly volumes destroy
Le volume non attaché a maintenant été détruit.
Sortie de fly volumes list
Un seul volume existe et est attaché à une machine dans la nouvelle région.
Comment vérifier l'état de l'instance
Vérifiez les logs pour voir l'état de l'instance :
fly logs
Les logs montrent que l'application fonctionne sans aucun problème.
Conclusion
Déplacer une application Fly.io vers une nouvelle région implique de forker le volume existant, de cloner la machine existante avec le volume forké vers une nouvelle région, de mettre à jour fly.toml, de déployer les changements et de supprimer l'ancienne machine et le volume.
En suivant ces directives, vous assurez une transition fluide et réussie avec une perturbation minimale.
Si vous avez des questions, vous pouvez toujours me trouver sur X (anciennement Twitter)