55
Stocker des données sur le Cloud avec S3 4D Summit Europe 2016

4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

Embed Size (px)

Citation preview

Page 1: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

Stocker des données sur le Cloud avec S3

4D Summit Europe 2016

Page 2: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

Bruno LEGAY

A&C Consultingwww.ac-consulting.fr

Page 3: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

Introduction

Page 4: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

Définition de «Cloud

Computing»

Page 5: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

Définition

Cloud computing : “mise à disposition de services hébergés via Internet”

Page 6: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

Caractéristiques

• A la demande• Accès réseau large bande• Réservoir de ressources• Elasticité• Facturation à l’usage

Page 7: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

Modèles de service

• IaaS (Infrastructure as a Service)• PaaS (Plateform as a Service)• SaaS (Software as a Service)

Page 8: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

Modèles de service (suite)

Storage

Network

Servers

Virtualization

OS

Middleware

Runtime

Data

Application

Traditionnel(pour comparaison)

Vous

gér

ez

Storage

Network

Servers

Virtualization

OS

Middleware

Runtime

Data

Application

Infrastructure(as a Service)

Vous

gér

ez

Fournisseur

Storage

Network

Servers

Virtualization

OS

Middleware

Runtime

Data

Application

Platform(as a Service)

Vous

gér

ez

Fournisseur

Storage

Network

Servers

Virtualization

OS

Middleware

Runtime

Data

Application

Software(as a Service)

Fournisseur

Page 9: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

Modèles de déploiement

• Cloud public• Cloud privé• Cloud communautaire• Cloud hybrid

Page 10: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

Pourquoi utiliser le Cloud ?

Page 11: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

Les avantages

• Fiabilité/résilience• Montée en charge• Coût• Sécurité

Page 12: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

Les inconvénients

• Coût (estimation)• Verrouillage fournisseur• Confidentialité / sécurité ?

Page 13: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

Exploiter le Cloud avec 4D

Page 14: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

Un cas d’espèce

• 4D db avec de gros blobs (>30 Mb)

• Document avec des métadonnées• Faible taux de création de blobs• Faible taux de modification de blobs• Faible taux de lecture des blobs

Page 15: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

Le problème

• % de blob dans les données• Gestion des gros fichiers• Backup : intégral vs différentiel

Page 16: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

OptionsStore

Infrastructure managed by

Integritymanaged by

Transaction Security Backup

blob (record) na 4D 4D na yes

blob (data file) na 4D 4D na yes

blob (disk) na 4D 4D na yes

file (local disk) you you you you you

file (shared disk) you you you you you

cloud cloud you you you + cloud you + cloud

Page 17: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

Notre approche

Page 18: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

Everything is an object

• Un fichier est un objet• Un blob est un objet• Mais pour REST un objet est une

«ressource»

Page 19: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

Cloud Object

• Un objet identifié par UUID• Metadonnées• Imagette

Page 20: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

Métadonnées de ressource• chemin/nom de fichier• Date de création, modification• type (pdf, jpg, png, xml, json, etc...)• Taille, empreinte (md5)• Pdf : nombre de pages• Image : résolution, exif, etc...

Page 21: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

Amazon AWS

Page 22: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

Amazon AWS

• Visionnaire• Leader• «Eat your own dog food»• Documentation https://aws.amazon.com/documentation/

Page 23: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

Services• S3 : stockage d’objets• EC2 : machines virtuelles• Glacier : archivage• DynamoDB : NoSQL database• Beanstalk : déploiement d’application• RDS : bases de données

Page 24: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

Créer son compte

• Accès à la Console AWS• Gestion et suivi des services• Obtenir les identifiantso «AccessKeyId» : 20 caractèreso «SecretAccessKey» : 40 caractères

Page 25: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

Les «régions» AWS

• 10 régions• Vérifier la disponibilité du service• Choisir une région (proche de vous)

Page 26: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

Région Continent Localisationus-east-1 US East N. Virginiaus-west-2 US West Oregonus-west-1 US West N. Californiaus-gov US West ?eu-west-1 EU Irelandeu-central-1 EU Frankfurtap-southeast-1 Asia Pacific Singaporeap-northeast-1 Asia Pacific Tokyoap-southeast-2 Asia Pacific Sydneyap-northeast-2 Asia Pacific Seoulcn-north-1 Asia Pacific Beijingsa-east-1 South America Sao Paulo

Page 27: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"
Page 28: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

AWS endpoint

• La partie Host/domain de l’URL• Exemple :

s3-eu-central-1.amazonaws.com

S3 service EU - Frankfurt

Page 29: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

Les outils et APIs AWS

• Online : AWS Management Console• Outil : AWS CLI• SDKs (Java, PHP, Python, Ruby, etc)• APIs :

o RESTful APIso SOAP APIs : déprécié

Page 30: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

AWS ligne de commande

• Outil basé sur Python• Unifié pour tous les services• Cross platform• Peut être utilisé dans 4D avec LPE

(LANCER PROCESS EXTERNE)

Page 31: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

AWS ligne de commande (suite)

• Télécharger installer• Configurer

$ aws configureAWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLEAWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEYDefault region name [None]: us-west-2Default output format [None]: ENTER

Page 32: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

• Exemple : • Sortie : json, text (tab / table)• Documentation

http://docs.aws.amazon.com/cli/latest/reference/

$ aws <service> ...

AWS ligne de commande (suite)

• Syntaxe spécifique au service

Page 33: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

Les APIs AWS

• Basés sur REST• Mécanisme d’authentification

commun • APIs spécifiques à chaque service

Page 34: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

Le service S3 d’Amazon

Page 35: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

Tarifs S3• 100 Gb ≈ 3$/mois• Les tarifs dépendent de la région• Calculatrice de coût

http://calculator.s3.amazonaws.com/index.html

Page 36: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

Les ressources S3• «Bucket» (conteneur racine)• Objet• Identifié par une «cl黕 Exemple de clé :

map/map/images/map/images/logo.png

Page 37: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

Les propriétés d’objet S3• Basiques (clé, taille, dates, ...)• Date d’expiration• Stockage (standard, reduced, ...)• Cryptage (none, AES-256)• Permissions• Métadonnées

Page 38: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

Url S3• Deux syntaxes possibles• Exemples avec le bucket «myBucket» :

https://myBucket.s3-eu-central-1.amazonaws.com

https://s3-eu-central-1.amazonaws.com/myBucket

Page 39: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

Url S3 (suite)• Avec la clé

https://s3-eu-central-1.amazonaws.com/myBucket/map/images/logo.png

https://myBucket.s3-eu-central-1.amazonaws.com/map/images/logo.png

https://myBucket.s3-eu-central-1.amazonaws.com/<object_key>

https://s3-eu-central-1.amazonaws.com/myBucket/map/images/logo.png?acl

• Avec la clé et une «query string»

Page 40: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

Les services S3 avec cli• Deux services• s3 • s3 api• Documentation

http://docs.aws.amazon.com/cli/latest/reference/s3api/http://docs.aws.amazon.com/cli/latest/reference/s3/

$ aws s3 ...

$ aws s3api ...

Page 41: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

Les opérations REST S3• Opérations sur les «buckets»• Opérations sur les objets• Les réponses de S3 au format XML ou

JSON• Documentation

http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketOps.htmlhttp://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectOps.html

Page 43: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

La signature AWS

Page 44: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

La signature S3

Page 45: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

Le composant AWS

Page 46: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

L’assistant CLI

// call once (AWS client needs to be configured)AWS_cliPathSet ("/Users/ble/.local/lib/aws/bin/aws")

// http://docs.aws.amazon.com/cli/latest/reference/s3/C_POINTEUR($vp_nil)C_TEXTE($vt_list)AWS_cliRun ("s3 ls s3://ac-consulting-test/test/demo/"\ ;Faux;$vp_nil;->$vt_list)ALERTE($vt_list)

Page 47: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

L’assistant CLI (suite) // http://docs.aws.amazon.com/cli/latest/reference/s3api/ // we will use json :-)

// first get informations of the object with the "head-object" the json as text and parse the jsonC_TEXTE($vt_json)C_POINTEUR($vp_nil)AWS_cliRun ("s3api "+\ "head-object "+\ "--bucket ac-consulting-test "+\ "--key test/demo/imagePrivate.png";\ Faux;$vp_nil;->$vt_json)

C_OBJET($vo_objectProperties)$vo_objectProperties:=JSON Parse($vt_json) // { // "AcceptRanges": "bytes", // "ContentType": "image/png", // "LastModified": "Mon, 04 Jan 2016 09:43:06 GMT", // "ContentLength": 288548, // "ETag": "\"43ef6cf259c8183e4c79d584ca03733c\"", // "StorageClass": "REDUCED_REDUNDANCY", // "ServerSideEncryption": "AES256", // "Metadata": {} // }

Page 48: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

L’assistant CLI (suite) // wouldn't it be nice if we could get the json directly from the AWS_cliRun ?

// list objects in the bucketC_POINTEUR($vp_nil)C_OBJET($vo_objectProperties)EFFACER VARIABLE($vo_objectProperties)AWS_cliRun ("s3api "+\ "head-object "+\ "--bucket ac-consulting-test "+\ "--key test/demo/imagePrivate.png";\ Faux;$vp_nil;->$vo_objectProperties) // { // "AcceptRanges": "bytes", // "ContentType": "image/png", // "LastModified": "Mon, 04 Jan 2016 09:43:06 GMT", // "ContentLength": 288548, // "ETag": "\"43ef6cf259c8183e4c79d584ca03733c\"", // "StorageClass": "REDUCED_REDUNDANCY", // "ServerSideEncryption": "AES256", // "Metadata": {} // }

Page 49: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

L’assistant CLI (suite)

// get a resource into a blobC_POINTEUR($vp_nil)C_BLOB($vp_blob)AWS_cliRun ("s3 cp s3://ac-consulting-test/test/demo/imagePrivate.png -"\ ;Faux;$vp_nil;->$vp_blob)

Page 50: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

L’API REST AWS API

C_TEXTE($vt_region;$vt_AWSAccessKeyId;$vt_AWSSecretKey)C_BOOLEEN($vb_interprocess)

$vt_region:="us-west-2"$vt_AWSAccessKeyId:="AKIAIOSFODNN7EXAMPLE"$vt_AWSSecretKey:="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"$vb_interprocess:=Vrai

// The parameters are set for the next S3_restApi callsAWS_paramSet ($vt_region;$vt_AWSAccessKeyId;$vt_AWSSecretKey;$vb_interprocess)

Gestion des identifiants

Page 51: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

TABLEAU TEXT($tt_requestHeadersArray;0)TABLEAU TEXT($tt_responseHeadersArray;0)C_BLOB($vx_requestBodyBlob;$vx_responseBodyBlob)C_TEXTE($vt_httpVerb;$vt_bucket;$vt_uri)$vt_httpVerb:=HTTP Méthode GET //"GET" $vt_bucket:="ac-consulting-test"$vt_uri:="/"

C_ENTIER LONG($vl_httpReponseStatus) //200 <=> OK$vl_httpReponseStatus:=S3_restApi ($vt_httpVerb;$vt_bucket;$vt_uri;\ ->$tt_requestHeadersArray;\ ->$vx_requestBodyBlob;\ ->$tt_responseHeadersArray;\ ->$vx_responseBodyBlob)

L’API REST AWS APIAppel à l’API S3

Page 52: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

Démonstration

Page 53: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

Questions & Réponses

Page 54: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

Votre avis compte beaucoup pour nous

Visitez summit.4d.comSélectionnez l’agenda, la session et

Wifi gratuit : Novotel_Charentonpas de mot de passe

En participant à l’enquête, vous pouvez gagner des prix remislors de la session des questions/réponses de jeudi

Page 55: 4D Summit Europe 2016 - Conférence dA&C Consulting : "Stocker des données sur le cloud avec S3"

Merci !

Bruno LEGAYA&C Consulting

www.ac-consulting.frwww.linkedin.com/in/brunolegay