Stocker des données sur Amazon S3

Documents pareils
AWS avancé. Surveiller votre utilisation d EC2

Cloud Computing Maîtrisez la plate-forme AWS - Amazon Web Services

4. SERVICES WEB REST 46

GUIDE DE DEMARRAGE V1.02

Programmation Web. Madalina Croitoru IUT Montpellier

Créer et partager des fichiers

Utiliser un NAS pour remplacer Dropbox via Cloud Station

Bien architecturer une application REST

L3 informatique TP n o 2 : Les applications réseau

Fiche Technique Windows Azure

Surveiller et contrôler vos applications à travers le Web

FileMaker Server 14. Aide FileMaker Server

Cahier n o 6. Mon ordinateur. Fichiers et dossiers Sauvegarde et classement

Connecteur Zimbra pour Outlook 2007 et 2010 (ZCO) w

Logiciel photothèque professionnel GUIDE D UTILISATION - 1 -

Exploration des technologies web pour créer une interaction entre Mahara et les plateformes professionnelles et sociales

Configurer le Serveur avec une adresse IP Statique (INTERFACE :FastEthernet) : et un masque

UltraBackup NetStation 4. Guide de démarrage rapide

S y m M a i l i n g. S o l u t i o n d e - m a i l i n g. SymMailing est un outil professionnel de création et de gestion de campagnes d ing.

HTTP Commander. Table des matières. 1-Présentation de HTTP Commander

Introduction à. Oracle Application Express

Petite définition : Présentation :

4. Personnalisation du site web de la conférence

Le logiciel internet pour les consultants et entreprises en ressources humaines

Constat ERP 20% ECM 80% ERP (Enterprise Resource Planning) = PGI (Progiciel de Gestion Intégré)

KAJOUT WASSIM INTERNET INFORMATION SERVICES (IIS) 01/03/2013. Compte-rendu sur ISS KAJOUT Wassim

Messagerie sécurisée, fiable et économique

Serveurs de noms Protocoles HTTP et FTP

Introduction aux concepts d ez Publish

A. Architecture du serveur Tomcat 6

Document d accompagnement pour l utilisation du Cartable en ligne Lycée des Métiers Fernand LÉGER 2013/2014

Déploiement d'une application Visual Studio Lightswitch dans Windows Azure.

Diffuser un contenu sur Internet : notions de base... 13

1 - Se connecter au Cartable en ligne

WebDAV en 2 minutes. Tous ces objectifs sont complémentaires et ils sont atteints grâce au seul protocole WebDAV. Scénarii

Devenez un véritable développeur web en 3 mois!

Stellar Phoenix Outlook PST Repair - Technical 5.0 Guide d'installation

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Description des pratiques à adopter pour la mise à jour du layout en utilisant le gestionnaire de conception de Sharepoint 2013

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

Il est courant de souhaiter conserver à

Administration Centrale : Opérations

Développement d applications Internet et réseaux avec LabVIEW. Alexandre STANURSKI National Instruments France

Stockage du fichier dans une table mysql:

Menu Fédérateur. Procédure de réinstallation du logiciel EIC Menu Fédérateur d un ancien poste vers un nouveau poste

Mise en place d un serveur Proxy sous Ubuntu / Debian

Cursus Sage ERP X3 Outils & Développement. Le parcours pédagogique Sage ERP X3 Outils et Développement

OCLOUD BACKUP GUIDE DE REFERENCE POUR ANDROID

Tropimed Guide d'installation

Comment créer des rapports de test professionnels sous LabVIEW? NIDays 2002

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT

NAS 254 Sauvegarde cloud

On trouvera sur le site du CCDMD un exemple d album construit avec Cantare. (

Copyright Arsys Internet E.U.R.L. Arsys Backup Online. Guide de l utilisateur

Système de messagerie vocale Cisco Unity Express 7.0 Guide de l utilisateur Fonctionnalités avancées

Anatomie d'un cloud IaaS Représentation simplifiée

RÉALISATION D UN SITE DE RENCONTRE

Préparation d un serveur Apache pour Zend Framework

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

Gestion des fichiers sur micro-ordinateur

GUIDE DE DÉMARRAGE RAPIDE

Utiliser SQL Server 2008 R2 Reporting Services comme source de donne es pour Microsoft Excel

FileMaker Server 12. publication Web personnalisée avec XML

Table des Matières. Pages 3-4. A propos d emblue. Page 5. L environnement emblue. Création d une campagne d marketing. Pages 6-15.

Guide exploitant du contrôleur Legrand

Construction d un Site Internet Dynamique avec Joomla René-Yves Hervé, Ph.D.

Évaluation des compétences. Identification du contenu des évaluations. Septembre 2014

L accès à distance du serveur

Windows Server 2008 R2

Les Content Delivery Network (CDN)

Spip 2. Premiers pas pour créer son site web. Anne-Laure Quatravaux Dominique Quatravaux. Avec la contribution de Sandrine Burriel

Guide de démarrage rapide Centre de copies et d'impression Bureau en Gros en ligne

Développement d'applications Web HTML5 L'art et la manière avec Visual Studio 2015 et TFS

INSTALLATION ET CONFIGURATION DE OPENLDAP

WordPress : principes et fonctionnement

Atelier Le gestionnaire de fichier

Pourquoi utiliser SharePoint?

Projet en nouvelles technologies de l information et de la communication

Guide préparatif «Automatiser sa vigie sur Twitter avec R» 1

PARAGON SYSTEM BACKUP 2010

INTERCONNEXION ENT / BCDI / E - SIDOC

Cloud public d Ikoula Documentation de prise en main 2.0

Comment se connecter au dossier partagé?

Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.

Oracle Developer Suite 10g. Guide de l installation. Vista & Seven

Virtual Data Center d Interoute. Prenez la main sur votre Cloud.

SAUVEGARDER SES DONNEES PERSONNELLES

SQL Server Installation Center et SQL Server Management Studio

Configuration des logiciels de messagerie

Déploiement d application Silverlight

Sommaire. 3. Les grands principes de GFS L architecture L accès de fichier en lecture L accès de fichier en écriture Bilan

Procédure pas à pas de découverte de l offre. Service Cloud Cloudwatt

Créca. Ajout aux livrets d informatique. Hiver 2014

Plan d action SMB d une Approche Agile de la BITM Pour les PME

Installation et paramétrage de Fedora dans VirtualBox.

Sauvegarde et protection des documents

WINDOWS SHAREPOINT SERVICES 2007

Transcription:

4 Stocker des données sur Amazon S3 Dans ce chapitre, nous plongeons la tête la première dans Amazon S3, Simple Storage Service (service simple de stockage). Après un aperçu rapide des concepts de S3 les plus importants, nous consacrerons la plus grande partie de ce chapitre à passer en revue le code nécessaire pour manipuler des buckets et des objets sous S3 et son pendant pour la distribution de contenu, CloudFront. Aperçu de S3 S3 est un service de stockage à l échelle d Internet. Toutes les données sont stockées de manière redondante pour prévenir les problèmes dus à une perte de connectivité temporaire ou à des pannes permanentes de matériel. S3 peut gérer de gros volumes de données et un grand nombre d accès concurrents. En mars 2009, S3 contenait déjà plus de 124 milliards d objets et gérait plus de 1 billion de requêtes par an 1. S3 vous permet de stocker vos données dans des conteneurs appelés buckets ou compartiments. Un bucket est une entité de stockage nommée attachée à un compte AWS donné. Vous pouvez créer jusqu à 100 buckets sur votre compte AWS. Le nom des buckets doit être unique globalement ; vous devez donc choisir vos noms avec soin et chercher jusqu à trouver des noms disponibles. Les buckets sont utilisés pour grouper un nombre arbitraire d objets S3. Arbitraire ici veut réellement dire arbitraire il est parfaitement raisonnable de stocker des millions ou des dizaines de millions d objets dans un seul bucket S3. Selon vos besoins, vous pouvez choisir d utiliser plusieurs buckets pour une seule application, ou un bucket par application. 1. http://aws.amazon.com/about-aws/whats-new/2009/03/30/ celebrating-3-years-of-amazon-s3-with-3-months-of-transfer-in-for-3-centsgb/

54 Le Cloud Computing avec Amazon Web Services Vous pouvez stocker tout type de données dans S3. Il peut s agir de fichiers texte tels que des pages HTML, des feuilles de style CSS ou du code source C, ou de fichiers binaires comme des images JPEG, des fichiers de sauvegarde au format tar ou même des données chiffrées (vous pouvez chiffrer les données sensibles avant de les stocker dans S3 si vous le souhaitez). S3 est idéal pour stocker des données web. Tous les objets S3 ont leur propre URL et S3 peut gérer un taux de requêtes très élevé. S3 peut stocker des objets dont la taille atteint jusqu à 5 To. C est une limite que vous n approcherez probablement jamais en pratique, et ce en raison de plusieurs facteurs. Selon la vitesse de votre connexion Internet, télécharger un objet de cette taille sur le serveur prendra des jours, voire des semaines. Si la connexion est interrompue, vous devrez recommencer le téléchargement. Certains outils S3 essaient également de lire entièrement l objet en mémoire avant de commencer sa mise en ligne. Chaque objet S3 a une URL unique formée en concaténant ces composants : le protocole (http:// ou https://) ; le nom du bucket, terminé par "." ; le suffixe S3 (s3.amazonaws.com) ; la clé de l objet précédée de "/". La clé de l objet peut elle-même contenir des caractères "/". Ces caractères font simplement partie du nom de l objet et n ont pas de signification spéciale pour S3. S3 n est pas un système de fichiers hiérarchique et n a donc pas de notion de sous-dossier. Les outils S3 du Chapitre 3 maintiennent l impression polie que "/" est spécial et permettent aux utilisateurs d explorer le contenu d un bucket S3 comme s il contenait effectivement des sous-dossiers. On peut accéder à S3 via deux API. L API SOAP contient des fonctions telles que ListAllMyBuckets, CreateBucket et DeleteBucket. L API HTTP utilise les verbes HTTP standard (GET, PUT, HEAD et DELETE) comme base pour toutes les opérations. L opération GET récupère le contenu d un bucket ou un objet ; l opération PUT crée un nouveau bucket ou objet ; l opération DELETE supprime un bucket ou un objet ; et l opération HEAD récupère des informations sur un objet. Vous pouvez ajouter des métadonnées sous la forme de paires clé-valeur lorsque vous créez un nouvel objet S3. Les métadonnées sont renvoyées sous la forme d en-têtes HTTP lorsque l objet est récupéré avec une requête HTTP GET. L accès à un bucket S3 est contrôlé par une ACL ou liste de contrôle d accès (Access Control List). Une ACL contient jusqu à 100 autorisations (en anglais, grant) ; chacune de ces autorisations contient un destinataire et l étendue des permissions. Grâce aux ACL, vous pouvez donner des accès à des utilisateurs ou à des groupes d utilisateurs spécifiques.

Chapitre 4 Stocker des données s ur Amazon S3 55 Les utilisateurs spécifiques représentent un compte AWS individuel. Le compte peut être spécifié avec une adresse de courrier électronique ou un identifiant canonique d utilisateur, mais il est toujours retourné en tant qu objet CanonicalUser : l adresse de courrier électronique est simplement un confort. Les groupes représentent des classes prédéfinies d utilisateurs, n importe quel utilisateur d AWS ou les utilisateurs anonymes (n importe quelle personne). Le composant "permission" d une ACL indique les accès attribués aux destinataires. Vous pouvez donner des permissions pour des buckets ou des objets, mais la sémantique est légèrement différente, comme l explique le Tableau 4.1. Tableau 4.1 : Permissions appliquées aux buckets et aux objets Permission Appliquée à un bucket Appliquée à un objet READ WRITE Autorisation de dresser la liste des contenus du bucket Autorisation de créer, remplacer ou supprimer tout objet du bucket Autorisation de lire l objet ou ses métadonnées Non pris en charge pour les objets READ_ACP Autorisation de lire l ACL du bucket Autorisation de lire l ACL de l objet WRITE_ACP Autorisation de réécrire l ACL du Autorisation de réécrire l ACL de l objet bucket FULL_CONTROL Toutes les autorisations présentées ici Toutes les autorisations présentées ici Le propriétaire d un bucket ou d un objet a toujours la permission implicite READ_ ACP : on peut toujours accéder à l ACL de ses propres objets. De la même manière, le propriétaire a également implicitement la permission WRITE_ACP, de sorte que l on peut toujours changer l ACL de ses propres objets. La permission FULL_CONTROL n est qu un simple confort et a le même effet que d appliquer les permissions READ, WRITE, READ_ACP et WRITE_ACP. Les permissions sur les buckets et sur les objets sont distinctes. Les permissions sur le bucket n ont pas d influence sur les permissions des objets nouvellement créés : les ACL doivent être définies individuellement pour chaque objet. Le modèle tarifaire de S3 Votre usage de S3 est facturé selon trois critères : la quantité de données stockées ; la quantité de données transférées vers et depuis S3 ;

56 Le Cloud Computing avec Amazon Web Services le nombre de requêtes vers S3. Voyons chacune de ces trois dimensions en détail. Le stockage S3 est facturé en fonction d une unité nommée gigaoctet-mois (gigabyte-month, en anglais). Si vous stockez exactement 1 gigaoctet pendant exactement 1 mois, vous serez facturé 1 gigaoctet-mois, c est-à-dire 0,14 dollar (quatorze cents US) pour des données stockées en Europe 2. Le temps et l espace peuvent être échangés l un contre l autre ; vous pouvez aussi stocker 2 gigaoctets pour un demi-mois ou 30 gigaoctets pour 1 jour pour le même tarif. En interne, S3 utilise une unité de facturation plus fine, l octet-heure. Cela permet à AWS de mesurer votre utilisation avec un degré de précision très élevé et de vous facturer en fonction de cela. Les transferts de données sont facturés en fonction de la quantité de données transférées vers et depuis S3. Les données transférées vers S3 sont facturées 0,10 dollar par gigaoctet. Ce montant est, une fois de plus, proportionnel à la quantité réelle de données transférées. Les données transférées depuis S3 sont facturées sur une échelle mobile commençant à 0,15 dollar par gigaoctet et dégressif en fonction du volume, atteignant 0,08 dollar par gigaoctet pour tout le transfert de données au-delà des 150 premiers téraoctets par mois. Un cas particulier important est celui des transferts de données entre S3 et une instance Amazon EC2 de la même région : ceux-ci sont gratuits. Il existe également des tarifs peu élevés (mais à ne pas négliger) pour chaque requête faite à S3. Les requêtes HTTP GET sont facturées au tarif de 0,01 dollar pour 10 000 requêtes. Les requêtes PUT, COPY, LIST et POST sont facturées au tarif de 0,01 dollar pour 1 000 requêtes. Tout ceci considéré, et compte tenu de l offre de démarrage gratuit d AWS, vous pouvez créer un prototype de votre application S3 pour presque rien et payer plus pour le stockage et les transferts de données au fur et à mesure que votre application améliore sa popularité. ATTENTION Gardez un œil sur le compteur! Vous devez garder à l esprit que le compteur tourne toujours! Si vous écrivez un programme qui examine un de vos buckets S3 toutes les secondes (une requête LIST), vous dépenserez 86 cents par jour, qu il y ait quelque chose de nouveau dans le bucket ou non. Vérifiez toujours vos conditions de fin de boucle avec le plus grand soin. Il est préférable d éviter d écrire une boucle infinie qui vous coûte de l argent à chaque itération. 2. Tous les tarifs AWS sont sujets à changements. Les derniers tarifs pour S3 sont disponibles à l adresse http://aws.amazon.com/s3.

Chapitre 4 Stocker des données s ur Amazon S3 57 Vous pouvez (et devriez) vérifier votre utilisation de S3 à n importe quel moment du mois pour vérifier qu elle correspond à ce à quoi vous vous attendez. Pour cela, connectez-vous au portail AWS et choisissez l option Account Activity dans le menu Your Account. Aperçu de CloudFront CloudFront est un service web pour distribuer du contenu web à haute vitesse avec latence faible. CloudFront est intégré avec S3, ce qui rend très simple de distribuer n importe quel objet public de S3 sur le réseau CloudFront de 18 edge locations (emplacements périphériques) 3. À l heure où nous traduisons ces lignes, les edge locations sont distribués à travers les États-Unis, l Europe et l Asie, comme le montre le Tableau 4.2. Tableau 4.2 : Edge locations du réseau CloudFront États-Unis Europe Asie Ashburn, Virginie Dallas/Fort Worth, Texas Jacksonville, Floride Los Angeles, Californie Miami, Floride Newark, New Jersey New York, New York Palo Alto, Californie Seattle, Washington Saint Louis, Missouri Amsterdam Dublin Francfort Londres Paris Hong Kong Singapour Tokyo CloudFront est très simple à utiliser. Il suffit de créer une distribution pour n importe lequel de vos buckets S3 et CloudFront fait le reste. Le modèle tarifaire de CloudFront L utilisation de CloudFront est facturée selon deux dimensions : les transferts de données ; le nombre de requêtes vers CloudFront. 3. Le nombre et l emplacement de ces points de sortie peuvent changer dans le futur.

58 Le Cloud Computing avec Amazon Web Services Les données transférées vers et depuis CloudFront sont facturées selon une échelle mobile. Démarrant à 0,15 dollar par gigaoctet, les tarifs baissent en fonction du volume, atteignant 0,03 dollar par gigaoctet pour tout transfert sortant au-delà de 1 000 téraoctets par mois. Les volumes de données entre S3 et CloudFront sont également facturés. Les tarifs les plus récents pour CloudFront sont disponibles à l adresse http://aws.amazon.com/cloudfront. De plus, pour 10 000 requêtes HTTP GET traitées par CloudFront, 0,009 dollar est facturé. Programmer S3 et CloudFront Une fois ces remarques préliminaires faites, il est temps de passer à la partie amusante : le code! Dans cette section, vous apprendrez comment dresser la liste de vos buckets, créer de nouveaux buckets et dresser la liste des objets d un bucket de plusieurs manières différentes. Nous couvrirons également le traitement du contenu d un bucket (et nous verrons comment effectuer quelques traitements d image simples) et comment distribuer votre contenu avec CloudFront. IMPORTANT Exécuter le code. Comme nous l avons mentionné dans la section intitulée "Exécuter le code PHP" de cet ouvrage, les programmes de cette section qui commencent avec un dièse et un point d exclamation (#!/usr/bin/php) doivent être démarrés depuis la ligne de commande. Les autres sont prévus pour fonctionner depuis un serveur web. Créer un bucket S3 Avançons à présent et créons un nouveau bucket. Avant de commencer, cependant, nous allons créer un nouveau fichier PHP et l appeler book.inc.php. Celui-ci contient de nombreuses définitions et fonctions communes que nous utiliserons tout au long de cet ouvrage. Je l ai placé dans un sous-répertoire nommé include. La première définition que nous allons ajouter au fichier book.inc.php est le nom du bucket S3 : chap04/include/book.inc.php (extrait) <?php define( BOOK_BUCKET, livre-pearson-aws-cloud ); define( BUCKET_REGION, AmazonS3::REGION_EU_W1);?>

Chapitre 4 Stocker des données s ur Amazon S3 59 Nous avons ici créé une nouvelle constante nommée BOOK_BUCKET et lui avons donné la valeur livre-pearson-aws-cloud. Vous devez bien sûr trouver votre propre nom de bucket : comme mentionné précédemment, les noms de buckets doivent être uniques au niveau global et j ai déjà chipé celui-ci! Nous avons également défini une région privilégiée pour la création du bucket afin que celui-ci soit créé sur des serveurs européens. Voici le code pour créer un nouveau bucket S3 : chap04/create_bucket.php (extrait) #!/usr/bin/php <?php error_reporting(e_all); ❶ require_once( sdk.class.php ); ❷ require_once( include/book.inc.php ); $s3 = new AmazonS3(); ❸ $res = $s3->create_bucket(book_bucket, BUCKET_REGION); if ($res->isok()) ❹ { print( Bucket.BOOK_BUCKET. créé\n ); } else { print( Erreur lors de la création du bucket.book_bucket. \n ); }?> Examinons le code instruction par instruction. ❶ On commence par définir le niveau des rapports d erreur. Cette instruction indique à PHP de signaler tous les avertissements et erreurs. S astreindre à cette discipline de programmation est important et vous permet de connaître les éventuels problèmes plutôt tôt que tard. C est une bonne chose sur le long terme car la plupart des bogues potentiels auront été supprimés avant d apparaître. ❷ Puis on inclut les fichiers nécessaires. La première instruction met en mémoire le fichier sdk.class.php. Ce fichier contient la bibliothèque du SDK que nous utilisons dans cet ouvrage. La deuxième instruction place book.inc.php en mémoire. ❸ Vient alors la partie principale du script. On crée d abord un nouvel objet AmazonS3 et on appelle la méthode create_bucket, l instruction clé de ce script, pour créer un nouveau bucket. Si vous avez personnalisé la définition de BOOK_BUCKET dans book. inc.php, le script créera un bucket pour vous (si ce bucket n existe pas déjà).