View a markdown version of this page

Utiliser Amazon S3 avec des instances Amazon EC2 - Amazon Elastic Compute Cloud

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utiliser Amazon S3 avec des instances Amazon EC2

Amazon Simple Storage Service (Amazon S3) est un service de stockage d’objets qui offre une capacité de mise à l’échelle, une disponibilité des données, une sécurité et des performances de pointe. Amazon S3 vous permet de stocker et récupérer toute quantité de données dans un large éventail de cas d’utilisation, par exemple des lacs de données, des sites Web, des sauvegardes et des analyses de Big Data, à partir d’une instance Amazon EC2 ou de n’importe quel endroit sur Internet. Pour plus d’informations, consultez la section Qu’est-ce qu’Amazon S3 ?.

Il existe deux manières d'accéder aux données Amazon S3 à partir de vos instances Amazon EC2 :

  • Accès aux fichiers — Utilisez Amazon S3 Files pour monter un compartiment S3 en tant que système de fichiers hautes performances sur votre instance.

  • Accès aux objets : utilisez l'API Amazon S3 ou AWS CLI des AWS SDKs outils tels que wget pour copier des objets depuis et vers S3.

Accès aux fichiers avec Amazon S3 Files

Amazon S3 Files est un système de fichiers sans serveur qui vous permet de monter votre bucket S3 à usage général en tant que système de fichiers hautes performances sur votre instance de calcul. Avec S3 Files, vous pouvez accéder à vos objets S3 sous forme de fichiers en utilisant des opérations de système de fichiers standard telles que la lecture et l'écriture sur le chemin de montage local.

Vous pouvez monter un système de fichiers S3 sur une instance EC2 soit au lancement, soit après le lancement sur une instance en cours d'exécution.

Conditions préalables

Avant de configurer S3 Files avec votre instance EC2, assurez-vous de disposer des éléments suivants :

  • Un système de fichiers S3 et au moins une cible de montage à l'état disponible. Pour plus d'informations sur la création d'un système de fichiers S3, consultez la section Utilisation des fichiers Amazon S3 dans le guide de l'utilisateur Amazon S3.

  • Une instance Linux EC2 associée à un profil d'instance. Pour plus d'informations sur les autorisations requises pour monter le système de fichiers, consultez les rôles et politiques IAM dans le guide de l'utilisateur Amazon S3.

  • Groupes de sécurité qui autorisent le trafic NFS (port 2049) entre votre instance et les cibles de montage du système de fichiers. Pour plus d'informations sur les paramètres de groupe de sécurité requis, consultez la section Groupes de sécurité dans le guide de l'utilisateur Amazon S3.

Pour monter un système de fichiers sur une instance EC2 au lancement à l'aide de la console EC2
  1. Ouvrez la console Amazon EC2 à l’adresse https://console.aws.amazon.com/ec2/.

  2. Choisissez Launch instance (Lancer une instance).

  3. Sous Network settings (Paramètres réseau), effectuez les opérations suivantes :

    1. Choisissez Modifier.

    2. Pour Sous-réseau (subnet), sélectionnez un sous-réseau.

    3. Sélectionnez le groupe de sécurité par défaut pour vous assurer que votre instance EC2 peut accéder à votre système de fichiers S3. Vous ne pouvez pas accéder à votre instance EC2 via Secure Shell (SSH) à l’aide de ce groupe de sécurité. Pour l'accès par SSH, vous pouvez modifier ultérieurement le groupe de sécurité par défaut et ajouter une règle autorisant le SSH, ou ajouter un nouveau groupe de sécurité autorisant le SSH. Vous pouvez utiliser les paramètres suivants :

      1. Type : SSH

      2. Protocole : TCP

      3. Port Range (Plage de ports) : 22

      4. Source : N’importe où 0.0.0.0/0

  4. Sous Configurer le stockage, procédez comme suit :

    1. Sous Systèmes de fichiers, sélectionnez S3 Files.

    2. Choisissez Add shared file system (Ajouter un système de fichiers partagé).

    3. Pour le système de fichiers S3, vos systèmes de fichiers apparaissent dans la zone de disponibilité en fonction du sous-réseau que vous avez sélectionné dans vos paramètres réseau. Choisissez le système de fichiers S3 que vous souhaitez monter. Si vous n'avez aucun système de fichiers, choisissez Créer un nouveau système de fichiers pour en créer un nouveau.

    4. Entrez un chemin de montage local sur votre instance EC2 sur laquelle vous souhaitez monter le système de fichiers (par exemple,/mnt/s3files).

    5. Une commande sera générée pour monter le système de fichiers et l'ajouter à fstab. Vous pouvez ajouter cette commande dans le champ Données utilisateur sous Détails avancés. Votre instance EC2 sera ensuite configurée pour monter le système de fichiers S3 au lancement et à chaque redémarrage. Vous pouvez également exécuter ces commandes dans votre instance EC2 après son lancement.

  5. Sous Détails avancés, associez un profil d'instance à votre instance. Votre rôle IAM doit disposer des autorisations nécessaires pour monter le système de fichiers et accéder au compartiment S3. Pour plus d'informations sur les autorisations requises, consultez les rôles et politiques IAM dans le guide de l'utilisateur Amazon S3.

  6. Choisissez Launch instance (Lancer une instance).

    Après le lancement de l'instance, les utilitaires logiciels requis sont installés et le système de fichiers est monté. Vous pouvez consulter le système de fichiers en accédant à votre chemin de montage local.

Pour monter un système de fichiers sur une instance EC2 après le lancement
  1. Connectez-vous à votre instance EC2 via Secure Shell (SSH) ou à l'aide d'EC2 Instance Connect dans la console EC2.

  2. Pour monter votre système de fichiers S3, utilisez l'utilitaire amazon-efs-utils d'assistance au montage. En fonction de votre distribution Linux, utilisez l'une des commandes suivantes pour installer le amazon-efs-utils package :

    1. Si vous utilisez Amazon Linux, exécutez la commande suivante pour installer efs-utils depuis les référentiels d'Amazon :

      sudo yum -y install amazon-efs-utils
    2. Si vous utilisez d'autres distributions Linux prises en charge, exécutez la commande suivante :

      curl https://amazon-efs-utils.aws.com/efs-utils-installer.sh | sudo sh -s -- --install
    3. Pour les autres distributions Linux, consultez le dépôt efs-utils sur. GitHub

  3. Créez un répertoire pour le point de montage du système de fichiers à l'aide de la commande suivante :

    sudo mkdir {path/to/mount}
  4. Montez le système de fichiers S3 :

    FS="{YOUR_FILE_SYSTEM_ID}" sudo mount -t s3files $FS:/ {path/to/mount}
  5. Vérifiez que le système de fichiers est monté :

    df -h {path/to/mount}
Pour afficher les objets de votre compartiment S3 sous forme de fichiers

Après avoir effectué les procédures précédentes, vous pouvez désormais lire et écrire des objets S3 sous forme de fichiers sur votre chemin de montage local à l'aide d'opérations de système de fichiers standard. Si votre compartiment S3 contient des objets, vous pouvez les afficher sous forme de fichiers à l'aide de la commande suivante :

ls {path/to/mount}

Accès basé sur les objets

Vous pouvez copier des fichiers depuis et vers Amazon S3 à l'aide de l'API S3 ou des outils HTTP standard. AWS CLI AWS SDKs Si vous disposez des autorisations requises, vous pouvez copier un fichier depuis ou vers Amazon S3 et votre instance en utilisant l'une des méthodes suivantes.

wget
Note

Cette méthode ne fonctionne que pour les objets publics. Si l’objet n’est pas public, vous recevez un message ERROR 403: Forbidden. Si vous recevez cette erreur, vous devez utiliser la console Amazon S3 AWS CLI, AWS l'API, le AWS SDK ou AWS Tools for Windows PowerShell, et vous devez disposer des autorisations requises. Pour plus d’informations, consultez les sections Gestion des identités et des accès pour Amazon S3 et Téléchargement d’un objet dans le Guide de l’utilisateur Amazon S3.

L'wgetutilitaire est un client HTTP et FTP que vous pouvez utiliser pour télécharger des objets publics depuis Amazon S3. Il est installé par défaut dans Amazon Linux et la plupart des autres distributions, et est disponible en téléchargement sur Windows. Pour télécharger un objet Amazon S3, utilisez la commande suivante, en remplaçant l’URL par celle de l’objet à télécharger.

[ec2-user ~]$ wget https://amzn-s3-demo-bucket.s3.amazonaws.com/path-to-file
PowerShell

Vous pouvez utiliser l’AWS Tools for Windows PowerShell pour déplacer des objets vers et depuis Amazon S3.

Utilisez l'Copy-S3Objectapplet de commande pour copier un objet Amazon S3 sur votre instance Windows comme suit.

Copy-S3Object ` -BucketName amzn-s3-demo-bucket ` -Key path-to-file ` -LocalFile my_copied_file.ext

Vous pouvez également ouvrir la console Amazon S3 à l’aide d’un navigateur Web sur l’instance Windows.

AWS CLI

Vous pouvez utiliser le AWS Command Line Interface (AWS CLI) pour télécharger des articles soumis à des restrictions depuis Amazon S3 et pour charger des éléments. Pour plus d’informations notamment sur l’installation et la configuration des outils, consultez la page détaillée sur l’AWS Command Line Interface.

La commande aws s3 cp est similaire à la commande Unix cp. Vous pouvez copier des fichiers depuis Amazon S3 vers votre instance, copier des fichiers depuis votre instance vers Amazon S3 et même copier des fichiers d’un emplacement Amazon S3 vers un autre.

Utilisez la commande suivante pour copier un objet depuis Amazon S3 vers votre instance :

aws s3 cp s3://amzn-s3-demo-bucket/my_folder/my_file.ext my_copied_file.ext

Utilisez la commande suivante pour recopier un objet depuis votre instance dans Amazon S3 :

aws s3 cp my_copied_file.ext s3://amzn-s3-demo-bucket/my_folder/my_file.ext

La commande aws s3 sync peut synchroniser un compartiment Amazon S3 entier vers un répertoire local. Cela peut être utile pour télécharger un ensemble de données et conserver la copie locale up-to-date avec la télécommande. Si vous disposez des autorisations adéquates sur le compartiment Amazon S3, vous pouvez renvoyer votre répertoire local sur le cloud lorsque vous avez terminé, en inversant les emplacements source et de destination dans la commande.

Utilisez la commande suivante pour télécharger un compartiment Amazon S3 complet dans un répertoire local de votre instance :

aws s3 sync s3://amzn-s3-demo-source-bucket local_directory
Amazon S3 API

Vous pouvez utiliser une API pour accéder aux données dans Amazon S3. Vous pouvez utiliser cette API pour développer votre application et l'intégrer à d'autres APIs et SDKs. Pour plus d'informations, consultez les exemples de code pour Amazon S3 utilisés AWS SDKs dans le manuel Amazon Simple Storage Service API Reference.