Amazon Simple Storage Service
Amazon Simple Storage Service ou S3 est un service de stockage objet dans le cloud. L’interface S3 est une API REST basée sur l’usage de conteneurs, des espaces cloisonnés également dénommés ‘bucket’. Le stockage dans ces conteneurs est horizontal, c’est à dire non-structuré.
À chaque objet est associé des métadonnées. Les requêtes vers un point d’accès S3 sont authentifiées à l’aide d’un protocole de signature développé par Amazon. Il permet de garantir l’intégrité du contenu et d’authentifier l’utilisateur.
Depuis son apparition en 2006, S3 est devenu un standard implicite du stockage objet, et de nombreux services proposent un point d’accès compatible, c’est à dire qu’ils exposent une interface similaire. C’est le cas de services de stockage cloud comme Microsoft Azure, Google Cloud ou IBM COS, mais également de solutions pour le déploiement de services de stockage comme Ceph, HCP et Swift. Offrir une compatibilité S3 est donc une ouverture vers un grand nombre de solutions compatibles différentes. Il faut cependant garder à l’esprit que ce n’est qu’une interface. Le fonctionnement et les conditions d’utilisation varient d’une implémentation à l’autre. Pour chaque nouvelle implémentation considérée, une étude des fonctionnalités prises en charge et du comportement global de l’interface avec le système est nécessaire. La majorité des documentations des solutions décrivent le niveau d’implémentation en terme de fonctionnalités disponibles, comme pour celle de Ceph par exemple.
S3 au sein d’Amazon Web Services
S3 fait partie de la grande famille de services cloud d’Amazon. Un certain nombre de spécificités propres à l’interface S3 prennent uniquement sens au sein de cet environnement. Par exemple, un conteneur peut être associé à une région, c’est à dire une localisation parmi les centres disponibles auprès d’Amazon. L’intérêt d’un tel système est d’assurer que les données sensibles restent dans un pays choisi par l’utilisateur, mais aussi de réduire le temps d’accès aux ressources en fonction de la position des accesseurs potentiels.
Un système de classes de stockage est mis en place. Pour chaque objet, la classe de stockage détermine conjointement le mode de facturation et la qualité de service. Par exemple, la classe ‘Infrequent Access’ propose une facturation plus élevée à l’extraction mais moins conséquente en terme de conservation par rapport à la classe ‘Standard’, ce qui la rend plus intéressante pour la conservation à long terme pour une disponibilité équivalente. Il existe également une classe de stockage destinée à l’archivage à long terme, Glacier. Elle sacrifie cependant le temps d’accès pour réduire les coûts. Ce comportement peut être configuré pour nécessiter plusieurs minutes voire plusieurs heures avant de retourner la ressource demandée.
De nombreux autres services AWS peuvent utiliser des documents et données disponibles sur un bucket S3, comme Amazon Lambda pour des opérations par lot ou Amazon Elasticsearch Service pour l’indexation.
Stratégie d’intégration du magasin d’archives S3
Pour l’intégration d’un connecteur S3 au sein de Spark Archives, nous avons décidé de prioriser la compatibilité avec le plus d’implémentations possible plutôt qu’une prise en charge du maximum de fonctionnalités propres à AWS. Ainsi, cette nouvelle interface permet d’ouvrir conjointement l’application à une externalisation des processus de stockage dans une grande variété de plateformes cloud, mais également d’offrir aux utilisateurs un plus large choix de solutions pouvant être déployées au sein de l’entreprise. Nous avons gardé la possibilité de configurer une région ainsi qu’une classe de stockage pour un magasin d’archives, car ce sont des fonctionnalités essentielles du service d’Amazon. Il reste cependant une réserve vis-à-vis d’Amazon Glacier, qui n’est pas compatible avec le niveau de disponibilité que nous proposons pour l’archivage électronique.
Ce connecteur S3 s’inscrit dans une démarche visant à favoriser l’archivage hétérogène de documents avec Spark Archives. Cela permet, en fonction de la sensibilité des archives, de les confier à un service tiers ou de les conserver localement. De plus, cela offre la possibilité de conserver de manière redondante une même archive en cloud et localement, afin de profiter de la qualité de service et du niveau de fiabilité propres à chaque paradigme. S3 rejoint à présent les deux technologies de stockage déjà disponibles dans Spark Archives, les magasins Spark Archives développés en interne et Hitachi Content Platform, qui est le sujet d’un précédent article. L’aiguillage des archives au sein de l’application se charge d’acheminer les documents aux bons magasins, en fonction du paramétrage, des plans de classement et du référentiel des services propriétaires.
Pour en savoir plus :
- Pour mieux comprendre S3 et tout particulièrement son intégration au sein d’AWS, la documentation produit S3 est un bon moyen d’aller plus loin et de découvrir des exemples concrets de son utilisation dans des application SaaS notamment.
- Pour une approche plus technique du fonctionnement de l’interface, nous vous conseillons la documentation de l’API S3.