


Utilisation d'AWS Elastic File System (EFS) dans Go : un guide complet
Avec l'application généralisée de la technologie du cloud computing et des applications conteneurisées, de plus en plus d'entreprises commencent à migrer leurs applications des serveurs physiques traditionnels vers des environnements cloud pour le déploiement et l'exploitation. L'utilisation de systèmes de stockage hautes performances dans des environnements cloud est un problème très important, et AWS Elastic File System (EFS) est un puissant système de fichiers distribué qui peut offrir une haute disponibilité, des performances élevées, sans serveur et une évolutivité.
EFS peut accéder et partager des fichiers en temps réel à partir de plusieurs instances EC2 et évolue automatiquement pour répondre aux besoins de capacité et de performances. Dans cet article, nous examinerons en profondeur comment utiliser AWS Elastic File System (EFS) dans Go.
Paramètres d'environnement
Avant d'utiliser EFS, vous devez d'abord configurer le bon environnement. Nous avons besoin d'un compte AWS, d'AWS SDK for Go et de paramètres régionaux Go.
Installer AWS SDK for Go
Vous pouvez installer AWS SDK for Go avec la commande suivante :
$ go get github.com/aws/aws-sdk-go/aws $ go get github.com/aws/aws-sdk-go/aws/session
Pour vérifier que le AWS SDK est correctement installé, vous pouvez écrire le programme de test suivant :
package main import ( "fmt" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/session" ) func main() { // Specify the AWS Region to use. sess, err := session.NewSessionWithOptions(session.Options{ Config: aws.Config{ Region: aws.String("us-west-2"), }, }) if err != nil { fmt.Println(err) return } // Create an S3 service client. s3 := NewS3(sess) // Verify the client by listing all buckets buckets, err := s3.ListBuckets(nil) if err != nil { fmt.Println(err) return } fmt.Println("Buckets:") for _, b := range buckets.Buckets { fmt.Printf("* %s created on %s ", aws.StringValue(b.Name), aws.TimeValue(b.CreationDate)) } }
Si tout se passe bien, la sortie contiendra la liste AWS des compartiments S3.
Créer un système de fichiers EFS
Avant d'utiliser EFS, vous devez créer un système de fichiers. Créez un système de fichiers EFS en suivant ces étapes :
- Connectez-vous à la console AWS.
- Sélectionnez EFS (Elastic File System) dans la liste des services.
- Cliquez sur le bouton Créer un système de fichiers.
- Dans la page Créer un système de fichiers, sélectionnez votre VPC et votre sous-réseau (vous devez sélectionner l'un des sous-réseaux publics pour qu'EFS connecte toutes les instances EC2).
- Dans la section Groupe de sécurité, sélectionnez un groupe de sécurité qui doit autoriser tout le trafic entrant et sortant de l'instance EC2.
- Dans la section Système de fichiers et mode de performances, sélectionnez l'option Par défaut.
- Cliquez sur Créer un système de fichiers.
Lors de la création d'un système de fichiers, le système créera automatiquement un groupe de sécurité dédié à EFS pour vous permettre d'autoriser tout le trafic de données depuis le VPC. Vous pouvez remplacer cette option par vos propres règles de groupe de sécurité.
Installer le pilote EFS
Afin d'intégrer votre application Go à EFS, vous devez installer le pilote AWS EFS. Sur Amazon Linux ou RHEL, vous pouvez installer le pilote EFS en suivant ces étapes :
- Exécutez la commande suivante pour installer les dépendances du pilote EFS :
$ sudo yum install gcc libstdc++-devel gcc-c++ fuse fuse-devel automake openssl-devel git
- Téléchargez et créez le pilote EFS :
$ git clone https://github.com/aws-efs-utils/efs-utils $ cd efs-utils $ ./build-deb.sh
- Installez le Pilote EFS Procédure :
$ sudo yum install ./build/amazon-efs-utils*rpm
- Confirmez que le pilote EFS est correctement installé. Cela peut être vérifié avec la commande suivante :
$ sudo mount -t efs fs-XXXXX:/ /mnt/efs
où fs-XXXXX est l'ID de votre système de fichiers EFS. S'il n'y a aucun message d'erreur dans la sortie, l'installation a réussi.
Utilisation d'EFS
Après avoir installé le pilote EFS et créé le système de fichiers EFS, vous pouvez connecter votre application Go au système de fichiers EFS. Voici quelques bonnes pratiques pour utiliser EFS :
Dans les programmes, utilisez le système de fichiers EFS via la bibliothèque standard du système d'exploitation. Dans l'environnement du langage Go, vous pouvez utiliser le package syscall ou le package os pour vous connecter au système de fichiers EFS.
Voici un exemple d'extrait de programme pour se connecter à EFS :
package main import ( "fmt" "os" "syscall" ) func main() { // Mount EFS. if err := syscall.Mount("fs-XXXXX.efs.us-west-2.amazonaws.com:/", "/mnt/efs", "nfs4", 0, "rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2"); err != nil { fmt.Println("Unable to mount EFS file system:", err) os.Exit(1) } // List the files in the EFS file system. if files, err := os.ReadDir("/mnt/efs"); err != nil { fmt.Println("Unable to read files in EFS:", err) } else { fmt.Println("Files in EFS:") for _, file := range files { fmt.Println(file.Name()) } } // Unmount EFS when done. if err := syscall.Unmount("/mnt/efs", 0); err != nil { fmt.Println("Unable to unmount EFS file system:", err) os.Exit(1) } }
Dans l'extrait de code ci-dessus, nous avons utilisé un appel système pour monter le système de fichiers EFS et répertorier les fichiers qu'il contient. À la fin du programme, nous avons utilisé un appel système pour démonter le système de fichiers.
Étant donné qu'EFS est une API RESTful, il prend en charge toutes les opérations standard du système de fichiers telles que la création, la lecture, l'écriture et la suppression de fichiers. Dans l'environnement du langage Go, vous pouvez utiliser les fonctions du package os pour effectuer ces opérations.
Voici un exemple de programme pour créer un fichier sur EFS :
package main import ( "fmt" "os" ) func main() { // Create a new file in EFS. if file, err := os.Create("/mnt/efs/myfile.txt"); err != nil { fmt.Println("Unable to create file:", err) os.Exit(1) } else { defer file.Close() fmt.Println("File created successfully.") } }
Dans l'exemple ci-dessus, nous utilisons la fonction Create du package os pour créer un nouveau fichier sur le système de fichiers EFS. Ce fichier doit être fermé avant la fin du programme.
Conclusion
AWS Elastic File System (EFS) est un puissant système de fichiers distribué qui offre haute disponibilité, performances, sans serveur et évolutivité. Dans l'environnement du langage Go, vous pouvez utiliser le package syscall ou le package os dans la bibliothèque standard pour vous connecter au système de fichiers EFS et utiliser toutes ses fonctions. Grâce aux conseils de cet article, vous devriez déjà connaître quelques bonnes pratiques pour utiliser EFS, afin de pouvoir utiliser pleinement les fonctions d'EFS dans l'environnement linguistique Go.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

La bibliothèque utilisée pour le fonctionnement du numéro de point flottante dans le langage go présente comment s'assurer que la précision est ...

Problème de threading de file d'attente dans Go Crawler Colly explore le problème de l'utilisation de la bibliothèque Crawler Crawler dans le langage Go, les développeurs rencontrent souvent des problèmes avec les threads et les files d'attente de demande. � ...

La différence entre l'impression de chaîne dans le langage go: la différence dans l'effet de l'utilisation de fonctions println et string () est en Go ...

Le problème de l'utilisation de Redessstream pour implémenter les files d'attente de messages dans le langage GO consiste à utiliser le langage GO et redis ...

Que dois-je faire si les étiquettes de structure personnalisées à Goland ne sont pas affichées? Lorsque vous utilisez Goland pour le développement du langage GO, de nombreux développeurs rencontreront des balises de structure personnalisées ...

Deux façons de définir les structures dans le langage GO: la différence entre les mots clés VAR et le type. Lorsque vous définissez des structures, GO Language voit souvent deux façons d'écrire différentes: d'abord ...

Quelles bibliothèques de GO sont développées par de grandes entreprises ou des projets open source bien connus? Lors de la programmation en Go, les développeurs rencontrent souvent des besoins communs, ...

Lorsque vous utilisez SQL.Open, pourquoi le DSN ne signale-t-il pas une erreur? En langue go, sql.open ...
