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
  • flyctl installé
  • 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

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

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

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

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

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 :

fly volumes fork Sortie de fly volumes fork

Cela montre des informations sur le nouveau volume créé.

fly volumes list

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

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

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

fly machine clone 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

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

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

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

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>

fly machine stop Sortie de fly machine stop

Pour confirmer si cela a réussi, utilisez :

fly machine list

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>

fly machine destroy Sortie de fly machine destroy

Exécutez la commande ci-dessous pour vérifier si la machine existe toujours.

fly machine list

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

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>

fly volumes destroy Sortie de fly volumes destroy

Le volume non attaché a maintenant été détruit.

fly volumes list 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)

Ressources :