Qu'est-ce qu'Amazon S3 : Simple Storage Service ?

MAJ : 26 janvier 2017


Lancé aux Etats-Unis en mars 2006 et en Europe en novembre 2007, Amazon Simple Storage Service - ou S3 - est devenu le service de stockage de référence. Osones vous propose un 101 sur ce service indispensable !


Qu’est ce qu'Amazon S3 ?


Qu'est-ce qu'Amazon S3

Amazon S3 est le service de stockage principal d’Amazon Web Services. Il permet de stocker une quantité « virtuellement » illimité de donnée avec une très haute disponibilité.

La grande particularité d’Amazon S3 réside dans le stockage en mode objet : contrairement au stockage en mode block ou file storage, un objet dans Amazon S3 est composé de data et de metadata, et répond à une API REST.

Les objets Amazon S3 – pouvant aller jusqu’à 5TB – sont stockés dans ce que l’on appelle des « Buckets ». Limités au nombre de 100 par comptes AWS, ces buckets ont un nom unique à travers le monde à la manière d’un enregistrement DNS, et sont accessible, sous réserve d’avoir les bons accès, depuis un endpoint depuis internet. Ces buckets ne doivent donc pas être vus comme des dossiers, Amazon S3 n’étant pas structuré comme un file system.


Contactez des Experts AWS certifiés !

Amazon S3 : les classes de stockage


Sous l’appellation Amazon S3 se cache en fait plusieurs classes de stockages :

- Amazon S3 “classique” :

Amazon Simple Storage Service (S3) est LE service AWS par excellence. Lancé en 2006, ce service de stockage objet peut héberger tous vos fichiers jusqu'à 5 téraoctets en assurant une disponibilité de 99,99% et une durabilité de 99,999999999% (lisez "onze-neuf"). Utilisé par des entreprises comme Netflix, Wetransfer et Dropbox, Amazon S3 permet également de stocker tout type de fichiers statiques accessibles depuis internet : le site et le blog Osones sont par exemple intégralement stockés sur Amazon S3.

Depuis août 2016, Amazon S3 supporte l'IPv6. Pour ce faire, vous pouvez faire pointer vos applications vers le nouveau endpoint « Dual-stack » d’Amazon S3, supportant à la fois IPv4 et IPv6. La plupart du temps, aucune configuration supplémentaire n’est nécessaire, l’IPv6 étant souvent sollicité par défaut côté client. Les applications peuvent également continuer d’utiliser les API existantes sans changement applicatif, en pointant leurs requêtes vers des URL de type http://s3.dualstack.aws-region.amazonaws.com/bucket ou virtuellement hébergées de type http://bucket.s3.dualstack.aws-region.amazonaws.com.


- Amazon S3 RRS (Reduced Redundancy Storage):

Amazon S3 RRS est une version d'Amazon S3 moins redondée. Idéale pour les fichiers dont les masters sont stockés au chaud et qui peuvent être régénérés si besoin. La durabilité tombe alors à 99,99%, mais le prix est réduit d'environ un tiers par rapport à Amazon S3.


- Amazon S3 IA (Infrequent Access Storage):

Amazon S3 IAS est donc le nouveau type de stockage proposé par Amazon. Habilement traduit en français par "Stockage en accès Standard – Peu fréquent", Amazon S3 IA se situe donc entre (feu ?) Amazon S3 RRS et Amazon Glacier. Le principe est simple : les fichiers auxquels vous avez rarement besoin d'accéder sont stockés pour un prix environ 60% inférieur à celui du stockage S3 régulier pour un même niveau de redondance. En contrepartie de ce tarif très avantageux, il faudra montrer patte blanche : les fichiers doivent être stockés au minimum 30 jours sur S3 IA (avec la facturation qui va avec), et le coût de rapatriement de ces données sera de 0,01 USD par gigabyte. Ainsi, Amazon se couvre contre les usages abusifs du service. Si vous en faite effectivement l'usage prévu (stockage de long terme, backups, PRA etc), votre coût de stockage s'en trouvera largement réduit.


- Amazon Glacier:

Amazon Glacier enfin est la classe de stockage d'Amazon proposant de l'archivage à froid. Conçu dans l'optique d'extractions peu fréquentes et inhabituelles, les données sont là pour être conservées sur de très longues durées. Vous pouvez extraire gratuitement chaque mois jusqu'à 5 % de votre stockage mensuel moyen (au prorata par jour). Si vous décidez d'extraire plus que ce volume de données dans le mois, des frais d'extraction vous seront facturés à partir de 0,011 USD par gigaoctet. Point différenciant par rapport à Amazon S3 IA : les données peuvent prendre de 3 à 5h avant d'être rapatriées sur Amazon S3, mais ne sont facturées que 0,007 USD/Go/mois.


Cycle de vie d'Amazon S3

Les différentes classes S3 cités ci-dessus - Amazon S3 RRS (Reduced Redundancy Storage) pour les données non critiques, Amazon S3 IA (Infrequent Access Storage) pour les objets peu utilisés, et Amazon Glacier pour le stockage à froid - permettent la gestion du cycle de vie de vos objets : il est possible de pré-définir des règles qui vont s'appliquer à des buckets particuliers ou à des fichiers utilisant un certain préfixe pour automatiser le cycle de vie. Par exemple, tout fichier stocké sur Amazon S3 devra être déplacé vers Amazon IA après 30 jours.

Types de stockage Amazon S3

Depuis mars 2016, la gestion des cycles de vie d'Amazon S3 s'étend pour inclure deux nouveaux cas particuliers :

- Les "Multipart Uploads" incomplets :

Pour les fichiers dont la taille dépasse les 100 MB, il est recommandé d’avoir recours au système d’upload multipart d’AWS. Ce découpage offre de nombreux avantages :
- Vous avez la possibilité de découper votre fichier en morceaux afin de paralléliser l'upload. En cas d’erreur de transfert lors d’un upload, vous n'aurez qu'à renvoyer la partie manquante.
- Vous pouvez étaler vos upload dans le temps, ce dernier n’étant pas limité entre la réception de la première et de la dernière partie - sauf demande explicite de votre part.
- Vous pouvez uploader un projet avant de l’avoir terminé : vous n’avez pas besoin de connaître le taille de l’objet avant de lancer un upload en multipart.

Depuis mars 2016, il est possible d'appliquer les règles de cycle de vie à ces fichiers fractionnés. Dès lors, vous pouvez automatiser la suppression des fichiers dans le cas d'uploads incomplets.

- Les "Delete markers" expirés :

Amazon S3 propose un service de versioning qui permet de conserver différentes versions d'un même objet, et de retrouver un objet qui aurait été accidentellement supprimé. En effet lorsque le versioning est activé, un DELETE ne permet pas de supprimer définitivement un objet. Au lieu de cela, Amazon insère un "delete marker" dans le bucket, ce marker devenant la nouvelle version du fichier. Vous pourrez toujours accéder à votre objet, mais une requête depuis internet renverra une erreur 404.

Qu'est-ce qu'un Delete marker

Dès lors si le versioning est activé dans vos buckets Amazon S3, toute demande de suppression d'objet après X jours se traduira par la création d'un Delete marker. Si toutes les versions précédentes de votre objet ont été supprimées, alors ces delete markers deviennent inutiles : ils expirent. Ces derniers ne sont pas facturés, mais peuvent parfois ralentir les requêtes LIST de vos buckets. C'est pourquoi AWS se propose désormais de supprimer automatiquement ces "Delete markers" expirés.

Qu'est-ce qu'un Delete marker


Combien coûte Amazon S3 ?

La facturation d'Amazon S3 se décompose selon trois critères :

1/ La volumetrie de fichiers stockés :

Voici le tableau des prix au 1er Janvier 2016 :

UE (Irlande)
S3
standard
S3 IA
Amazon
Glacier
Premier 1 To/mois$0.0300 par Go$0.0125 par Go$0.007 par Go
49 To suivants par mois$0.0295 par Go$0.0125 par Go$0.007 par Go
450 To suivants par mois$0.0290 par Go$0.0125 par Go$0.007 par Go
500 To suivants par mois$0.0285 par Go$0.0125 par Go$0.007 par Go
4 000 To suivants par mois$0.0280 par Go$0.0125 par Go$0.007 par Go
Plus de 5 000 To/mois$0.0275 par Go$0.0125 par Go$0.007 par Go

2/ Le nombre de requêtes :

Pour Amazon S3, il faut compter 1 USD pour 200 000 demandes PUT, COPY, POST ou LIST, ou 250 000 demandes GET. Les requêtes de suppression quant à elles sont gratuites.

3/ La bande passante descendante :

Le transfert de données sortantes depuis Amazon S3 vers Internet est facturé $0.090 par Go entre 1 Go/mois et 10To/mois, puis est dégressif au delà.


Terminologie d'Amazon S3 :

Difficile de comprendre Amazon S3 sans être capable d’en déchiffrer les codes. Certains termes sont importants à connaître pour s’y retrouver :

Console Amazon S3

- Les buckets:

Point névralgique de S3, ce sont les buckets qui vont recevoir les objets fraîchement uploadés. Chaque bucket aura un nom unique au niveau mondial, nom qui se retrouvera dans l’URL publique du fichier. Il faudra donc choisir ce dernier avec soin. Autre point important : un bucket n’est pas un dossier ! Amazon limite à 100 le nombre de bucket autorisé par compte, justement pour éviter les abus. Enfin, c’est au niveau du bucket lui même que l’on applique les différentes propriétés.

- Permissions:

Grâce aux “access policy” il est possible de gérer qui à accès au bucket, et les actions qu’il peut avoir. Il est par exemple possible d’interdire la suppression de fichiers.

- Static Web Hosting:

C’est cette feature qui doit être activée pour permettre au bucket d'héberger un site ou blog statique.

- Logging:

Vous pouvez garder des logs sur les accès et actions liées à vos Buckets.

- Events / Triggers:

Ici il est possible de configurer l’envoi de notifications vers d’autres services AWS à partir de triggers (PUT, DELETE etc), par exemple vers AWS Lambda.

Vignettes générée depuis Amazon S3 avec Amazon Lambda

- Versioning:

Le versioning permet de conserver un historique des modifications apportées au fichier. Il permet aussi de retrouver un fichier qui aurait été accidentellement supprimé. Attention, la mise en place du versioning sur S3 implique des coûts supplémentaires, chaque version étant considérée comme un fichier à part entière.

- Lifecycle:

Il est possible de gérer le cycle de vie des fichier stockés sur S3. Il est par exemple possible de demander la migration d’un fichier d’Amazon S3 vers Amazon Glacier après X jours.

- Cross-Region Replication:

L’option cross-region replication réplique chaque objet ajouté dans un bucket S3 (exemple : Irlande) vers un bucket S3 d’une autre région (exemple : Singapoure).

- Tags:

Cette propriété permet d’organiser vos bucket et de suivre vos ressources et leurs utilisations et le coût lié.

- Requester Pays:

Ici Amazon vous laisse la possibilité de distinguer les coûts de stockage (au Go/mois) des coûts d’utilisation des données (nombre de requêtes et bande passante). Le Requester Pays propose de faire porter ce coût d’utilisation à l’utilisateur téléchargeant vos données. Couplé à Amazon DevPay, il est même possible de faire un profit sur la mise à disposition de vos datas en fixant un tarif à votre discrétion - moyennant la prise d’un pourcentage par Amazon.

- Amazon S3 Transfer Acceleration :

Amazon S3 Transfer Acceleration permet d'accelerer les téléchargements directs. Il n'y a pas besoin d'utiliser des protocoles personalisés ou d'appliance particulière : une simple case à cocher suffit ! Afin de vous proposer des uploads jusqu'à 6 fois plus rapides, AWS se repose sur les POP (Point Of Presence) de son CDN CloudFront. Ce service sera particulièrement utile lors du transfert de données entre différentes régions AWS et/ou continents, ainsi que pour le transfert de fichiers très volumineux.


Amazon S3 Transfer Acceleration

Si le débit montant vers AWS est généralement gratuit, le choix de cet accelerateur vous coutera 0,04 USD par Go uploadé. Le débit déscendant pourra également profiter de cette acceleration. Il faudra alors ajouter 0,04 USD/Go aux coût habituel de la bande descendante de S3 vers internet.



Voilà, vous savez tout ! Vous êtes désormais au top sur Amazon S3 :) Allez plus loin avec notre acrticle pour tout savoir sur Amazon RDS !

N'hésitez pas à nous faire vos retours sur notre twitter @Osones, ou à contacter nos Experts si vous avez besoin d'aide !

Vous pouvez aussi rejoindre le groupe LinkedIn des Utilisateurs Francophones d'Amazon Web Services (AWS).

AWS user group FR

La discussion continue !

Nous attendons vos questions, remarques & mots doux sur notre Twitter :