Stocker des données sur le
Cloud avec S3
4D Summit Europe 2016
Bruno LEGAY
A&C Consulting
www.ac-consulting.fr
Introduction
Définition de
«Cloud
Computing»
Définition
Cloud computing :“mise à
disposition de services hébergés
via Internet”
Caractéristiques
• A la demande
• Accès réseau large bande
• Réservoir de ressources
• Elasticité
• Facturation à l’usage
Modèles de service
• IaaS (Infrastructure as a Service)
• PaaS (Plateform as a Service)
• SaaS (Software as a Service)
Modèles de service (suite)
Storage
Network
Servers
Virtualization
OS
Middleware
Runtime
Data
Application
Traditionnel
(pou...
Modèles de déploiement
• Cloud public
• Cloud privé
• Cloud communautaire
• Cloud hybrid
Pourquoi utiliser
le Cloud ?
Les avantages
• Fiabilité/résilience
• Montée en charge
• Coût
• Sécurité
Les inconvénients
• Coût (estimation)
• Verrouillage fournisseur
• Confidentialité / sécurité ?
Exploiter le Cloud
avec 4D
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
• F...
Le problème
• % de blob dans les données
• Gestion des gros fichiers
• Backup : intégral vs différentiel
Options
Store
Infrastructure
managed by
Integrity
managed by
Transaction Security Backup
blob (record) na 4D 4D na yes
blo...
Notre approche
Everything is an object
• Un fichier est un objet
• Un blob est un objet
• Mais pour REST un objet est une
«ressource»
Cloud Object
• Un objet identifié par UUID
• Metadonnées
• Imagette
Métadonnées de ressource
• chemin/nom de fichier
• Date de création, modification
• type (pdf, jpg, png, xml, json, etc...)
...
Amazon AWS
Amazon AWS
• Visionnaire
• Leader
• «Eat your own dog food»
• Documentation
https://aws.amazon.com/documentation/
Services
• S3 : stockage d’objets
• EC2 : machines virtuelles
• Glacier : archivage
• DynamoDB : NoSQL database
• Beanstal...
Créer son compte
• Accès à la Console AWS
• Gestion et suivi des services
• Obtenir les identifiants
o «AccessKeyId» : 20 c...
Les «régions» AWS
• 10 régions
• Vérifier la disponibilité du service
• Choisir une région (proche de vous)
Région Continent Localisation
us-east-1 US East N. Virginia
us-west-2 US West Oregon
us-west-1 US West N. California
us-go...
AWS endpoint
• La partie Host/domain de l’URL
• Exemple :
s3-eu-central-1.amazonaws.com
S3 service EU - Frankfurt
Les outils et APIs AWS
• Online : AWS Management Console
• Outil : AWS CLI
• SDKs (Java, PHP, Python, Ruby, etc)
• APIs :
...
AWS ligne de commande
• Outil basé sur Python
• Unifié pour tous les services
• Cross platform
• Peut être utilisé dans 4D ...
AWS ligne de commande
(suite)
• Télécharger installer
• Configurer
$ aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7E...
• Exemple :
• Sortie : json, text (tab / table)
• Documentation
http://docs.aws.amazon.com/cli/latest/reference/
$ aws <se...
Les APIs AWS
• Basés sur REST
• Mécanisme d’authentification
commun
• APIs spécifiques à chaque service
Le service S3
d’Amazon
Tarifs S3
• 100 Gb ≈ 3$/mois
• Les tarifs dépendent de la région
• Calculatrice de coût
http://calculator.s3.amazonaws.com...
Les ressources S3
• «Bucket» (conteneur racine)
• Objet
• Identifié par une «clé»
• Exemple de clé :
map/
map/images/
map/i...
Les propriétés d’objet S3
• Basiques (clé, taille, dates, ...)
• Date d’expiration
• Stockage (standard, reduced, ...)
• C...
Url S3
• Deux syntaxes possibles
• Exemples avec le bucket «myBucket» :
https://myBucket.s3-eu-central-1.amazonaws.com
htt...
Url S3 (suite)
• Avec la clé
https://s3-eu-central-1.amazonaws.com/myBucket/map/images/logo.png
https://myBucket.s3-eu-cen...
Les services S3 avec cli
• Deux services
• s3
• s3 api
• Documentation
http://docs.aws.amazon.com/cli/latest/reference/s3a...
Les opérations REST S3
• Opérations sur les «buckets»
• Opérations sur les objets
• Les réponses de S3 au format XML ou
JS...
S3 auth/signature
• Deux méthodes possibles
• Entêtes HTTP
• Paramètres «Query string»
• Documentation
http://docs.aws.ama...
La signature AWS
La signature S3
Le composant AWS
L’assistant CLI
// call once (AWS client needs to be configured)
AWS_cliPathSet ("/Users/ble/.local/lib/aws/bin/aws")
// h...
L’assistant CLI (suite)
// http://docs.aws.amazon.com/cli/latest/reference/s3api/
// we will use json :-)
// first get inf...
L’assistant CLI (suite)
// wouldn't it be nice if we could get the json directly from the AWS_cliRun ?
// list objects in ...
L’assistant CLI (suite)
// get a resource into a blob
C_POINTEUR($vp_nil)
C_BLOB($vp_blob)
AWS_cliRun ("s3 cp s3://ac-cons...
L’API REST AWS API
C_TEXTE($vt_region;$vt_AWSAccessKeyId;$vt_AWSSecretKey)
C_BOOLEEN($vb_interprocess)
$vt_region:="us-wes...
TABLEAU TEXT($tt_requestHeadersArray;0)
TABLEAU TEXT($tt_responseHeadersArray;0)
C_BLOB($vx_requestBodyBlob;$vx_responseBo...
Démonstration
Questions
& Réponses
Votre avis compte beaucoup pour nous
Visitez summit.4d.com
Sélectionnez l’agenda, la session et
Wifi gratuit : Novotel_Char...
Merci !
Bruno LEGAY
A&C Consulting
www.ac-consulting.fr
www.linkedin.com/in/brunolegay
4D Summit Europe 2016 - Conférence d'A&C Consulting : "Stocker des données sur le cloud avec S3"
Prochain SlideShare
Chargement dans…5
×

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

536 vues

Publié le

Le « cloud » est le nouveau mot-clé pour créer le buzz dans l’IT. Grâce aux nouvelles apps, accessoires, etc., nous utilisons ou stockons tous des données dans le cloud parfois sans parfois s’en rendre compte. Amazon, au-delà de son si populaire site marchand, dispose d’un vaste catalogue de web services (AWS). Au sein de ces services, l’un d’entre eux dipose d’un grand potentiel pour les développeurs 4D. Il s’agit d’Amazon Simple Storage Service (S3). S3 constitue la solution Amazon de stockage sur le Cloud.

Publié dans : Internet
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
536
Sur SlideShare
0
Issues des intégrations
0
Intégrations
3
Actions
Partages
0
Téléchargements
23
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

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

  1. 1. Stocker des données sur le Cloud avec S3 4D Summit Europe 2016
  2. 2. Bruno LEGAY A&C Consulting www.ac-consulting.fr
  3. 3. Introduction
  4. 4. Définition de «Cloud Computing»
  5. 5. Définition Cloud computing :“mise à disposition de services hébergés via Internet”
  6. 6. Caractéristiques • A la demande • Accès réseau large bande • Réservoir de ressources • Elasticité • Facturation à l’usage
  7. 7. Modèles de service • IaaS (Infrastructure as a Service) • PaaS (Plateform as a Service) • SaaS (Software as a Service)
  8. 8. Modèles de service (suite) Storage Network Servers Virtualization OS Middleware Runtime Data Application Traditionnel (pour comparaison) Vousgérez Storage Network Servers Virtualization OS Middleware Runtime Data Application Infrastructure (as a Service) Vousgérez Fournisseur Storage Network Servers Virtualization OS Middleware Runtime Data Application Platform (as a Service) Vousgérez Fournisseur Storage Network Servers Virtualization OS Middleware Runtime Data Application Software (as a Service) Fournisseur
  9. 9. Modèles de déploiement • Cloud public • Cloud privé • Cloud communautaire • Cloud hybrid
  10. 10. Pourquoi utiliser le Cloud ?
  11. 11. Les avantages • Fiabilité/résilience • Montée en charge • Coût • Sécurité
  12. 12. Les inconvénients • Coût (estimation) • Verrouillage fournisseur • Confidentialité / sécurité ?
  13. 13. Exploiter le Cloud avec 4D
  14. 14. 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
  15. 15. Le problème • % de blob dans les données • Gestion des gros fichiers • Backup : intégral vs différentiel
  16. 16. Options Store Infrastructure managed by Integrity managed 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
  17. 17. Notre approche
  18. 18. Everything is an object • Un fichier est un objet • Un blob est un objet • Mais pour REST un objet est une «ressource»
  19. 19. Cloud Object • Un objet identifié par UUID • Metadonnées • Imagette
  20. 20. 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...
  21. 21. Amazon AWS
  22. 22. Amazon AWS • Visionnaire • Leader • «Eat your own dog food» • Documentation https://aws.amazon.com/documentation/
  23. 23. Services • S3 : stockage d’objets • EC2 : machines virtuelles • Glacier : archivage • DynamoDB : NoSQL database • Beanstalk : déploiement d’application • RDS : bases de données
  24. 24. Créer son compte • Accès à la Console AWS • Gestion et suivi des services • Obtenir les identifiants o «AccessKeyId» : 20 caractères o «SecretAccessKey» : 40 caractères
  25. 25. Les «régions» AWS • 10 régions • Vérifier la disponibilité du service • Choisir une région (proche de vous)
  26. 26. Région Continent Localisation us-east-1 US East N. Virginia us-west-2 US West Oregon us-west-1 US West N. California us-gov US West ? eu-west-1 EU Ireland eu-central-1 EU Frankfurt ap-southeast-1 Asia Pacific Singapore ap-northeast-1 Asia Pacific Tokyo ap-southeast-2 Asia Pacific Sydney ap-northeast-2 Asia Pacific Seoul cn-north-1 Asia Pacific Beijing sa-east-1 South America Sao Paulo
  27. 27. AWS endpoint • La partie Host/domain de l’URL • Exemple : s3-eu-central-1.amazonaws.com S3 service EU - Frankfurt
  28. 28. Les outils et APIs AWS • Online : AWS Management Console • Outil : AWS CLI • SDKs (Java, PHP, Python, Ruby, etc) • APIs : o RESTful APIs o SOAP APIs : déprécié
  29. 29. 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)
  30. 30. AWS ligne de commande (suite) • Télécharger installer • Configurer $ aws configure AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY Default region name [None]: us-west-2 Default output format [None]: ENTER
  31. 31. • 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
  32. 32. Les APIs AWS • Basés sur REST • Mécanisme d’authentification commun • APIs spécifiques à chaque service
  33. 33. Le service S3 d’Amazon
  34. 34. 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
  35. 35. Les ressources S3 • «Bucket» (conteneur racine) • Objet • Identifié par une «clé» • Exemple de clé : map/ map/images/ map/images/logo.png
  36. 36. 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
  37. 37. 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
  38. 38. 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»
  39. 39. 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 ...
  40. 40. 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.html http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectOps.html
  41. 41. S3 auth/signature • Deux méthodes possibles • Entêtes HTTP • Paramètres «Query string» • Documentation http://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4- header-based-auth.html http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4- query-string-auth.html
  42. 42. La signature AWS
  43. 43. La signature S3
  44. 44. Le composant AWS
  45. 45. 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)
  46. 46. 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 json C_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": {} // }
  47. 47. L’assistant CLI (suite) // wouldn't it be nice if we could get the json directly from the AWS_cliRun ? // list objects in the bucket C_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": {} // }
  48. 48. L’assistant CLI (suite) // get a resource into a blob C_POINTEUR($vp_nil) C_BLOB($vp_blob) AWS_cliRun ("s3 cp s3://ac-consulting-test/test/demo/imagePrivate.png -" ;Faux;$vp_nil;->$vp_blob)
  49. 49. 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 calls AWS_paramSet ($vt_region;$vt_AWSAccessKeyId;$vt_AWSSecretKey;$vb_interprocess) Gestion des identifiants
  50. 50. 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 API Appel à l’API S3
  51. 51. Démonstration
  52. 52. Questions & Réponses
  53. 53. Votre avis compte beaucoup pour nous Visitez summit.4d.com Sélectionnez l’agenda, la session et Wifi gratuit : Novotel_Charenton pas de mot de passe En participant à l’enquête, vous pouvez gagner des prix remis lors de la session des questions/réponses de jeudi
  54. 54. Merci ! Bruno LEGAY A&C Consulting www.ac-consulting.fr www.linkedin.com/in/brunolegay

×