Formation DevOps | Formation AWS Services : Workshop S3 -2
AWSDEV – WORKSHOP
AMAZON S3 PART 2
Procedure de connexion : Si vous n’avez pas de compte AWS
- Se connecter à la console à l’URL suivante :
-
S’authentifier avec le compte IAM
- Nom d’utilisateur et mot de passe : remis par le formateur
S3 : GETTING START
Objectifs :
- Savoir utiliser un bucket S3 pour publier du contenu Web
- Utiliser un bucket S3 pour rediriger des requêtes Web vers un autre bucket S3
- Activer le versioning des objets sur un bucket S3 et manipuler des objets
La première partie du workshop consiste à mettre en place 2 sites web statiques en utilisant des buckets S3, avec une redirection du premier vers le second.
Les requêtes Web au premier bucket sont retournées avec un code de redirection HTTP (301 : moved permanently) vers le second bucket.
Commencer par créer un bucket S3 pour le web hosting, avec un nom unique dans la région Paris (Menu Services > S3 > Create Bucket :
Activer le « Static Web Hosting » et cliquer sur « Save » :
Pour que le bucket de hosting soit accessible depuis Internet, il faut autoriser les connexions anonymes via une bucket policy (Permissions > Add bucket policy):
{
“Version”:“2012-10-17”,
“Statement”:[{
“Sid”:“PublicReadGetObject”,
“Effect”:“Allow”,
“Principal”: “*”,
“Action”:[“s3:GetObject”],
“Resource”:[“arn:aws:s3:::mypubweb1/*”
]
}
]
}
A ce stade, le bucket est prêt à servir du contenu statique sur Internet.
Faut que le bucket soit public pour que ça soit accessible depuis internet .
Pour vous en assurer, créer un fichier « index.html » contenant un texte faisant référence au nom de votre bucket, et l’uploader sur le bucket, à la racine.
Tester dans un navigateur que le bucket répond correctement (son endpoint DNS est indiqué dans la section « Static Web Hosting » des « Properties »).
Nous allons maintenant créer un second bucket publique, et activer une redirection du bucket 1 vers celui-ci.
Créer un second bucket S3 :
Comme précédemment, activer le « Static Web Hosting » et placer une bucket policy pour l’exposer sur Internet.
Placez-y également un fichier index.html contenant une référence au nom de ce second bucket :
Créer une redirection HTTP du premier bucket mypubweb1 vers le bucket mypubweb2. Attention à la syntaxe de l’URL de redirection (pas de HTTPS, et le suffixe doit être s3-website-eu-west-1.amazonaws.com) :
Tester le bon fonctionnement de la redirection en se connectant à l’URL suivante depuis un navigateur (attention au cache qui peut donner des faux résultats) :
http://mypubweb1.s3-website-eu-west-1.amazonaws.com 🡪 This is mypubweb2 bucket
La suite de ce workshop est consacrée à la manipulation d’objets versionnés depuis une instance EC2. Nous allons utiliser le bucket mypubweb2, en commençant par activer le versioning :
Démarrer maintenant l’instance « instanceS3 », puis s’y connecter en SSH (demander au formateur les identifiant/mot de passe).
Il faut autoriser le rôle IAM de l’instance à manipuler des objets sur le bucket mypubweb2. Aller dans le Menu Services > Identity and Access Management > Roles > ec2_role > Permissions > Inline Policies, et éditer la policy « S3access » :
https://www.alexhyett.com/terraform-s3-static-website-hosting/
Ajouter le statement suivant (en corrigeant le nom du bucket dans la policy) :
{
“Effect”: “Allow”,
“Action”: [
“s3:List*”,
“s3:Put*”,
“s3:Get*”,
“s3:Delete*”
],
“Resource”: [
“arn:aws:s3:::mypubweb2/*”,
“arn:aws:s3:::mypubweb2” ]
}
Pour information les commandes CLI s3api que nous allons utiliser sont décrites ici :
https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html
Depuis l’instance, en SSH, créer un fichier et l’uploader sur le bucket.
$ echo v1 > file
$ aws s3api put-object --bucket mypubweb2 --key myfile.txt --body file
{
“VersionId”: “K39O5zKIN13FPO_np1B4y6cqP_D4Wb0m”,
“ETag”: “\“4f98f59e877ecb84ff75ef0fab45bac5\””
}
Modifier le contenu du fichier, et le copier à nouveau : il existe maintenant deux versions du fichier
$ echo v2 > file
$ aws s3api put-object --bucket mypubweb2 --key myfile.txt --body file
{
“VersionId”: “MRvEbEkgW1rqSe8XDOF01mOkgk8Eie7V”,
…
}
A ce stade vous pouvez consulter, depuis la console Web S3, les différentes versions des fichiers, en cliquant sur le bouton « Versions : afficher tous les répertoires » :
Supprimer l’objet :
$ aws s3api delete-object --bucket mypubweb2 --key myfile.txt
{
“VersionId”: “RrRvG9NLPsueRqhd0zEqZsyjjt8cbn1E”,
“DeleteMarker”: true
}
Vous pouvez observer dans la console S3 que l’objet a maintenant un « Delete Marker » positionné :
Si on tente d’y accéder, il est réputé ne plus exister :
$ curl -i mypubweb2.s3-website-eu-west-1.amazonaws.com/myfile.txt
HTTP/1.1 404 Not Found
Afin de le restaurer, il suffit de supprimer le « Delete marker » (pour cela il faut dans un premier temps requêter l’ID du « Delete marker » pour dans un second temps le supprimer) :
Suppression du « Delete marker » :
Les accès au fichier sont rétablis :
Pour restaurer la v1, on peut recopier le fichier et le placer en haut de la pile, comme illustré dans le schéma suivant :
Pour cela, commencer par lister les versions du fichier :
Télécharger localement l’objet correspondant à la première version de notre fichier (la plus ancienne créée sur le bucket) :
Enfin, l’uploader à nouveau sur le bucket, afin de le placer en haut de la pile :
Vérifier que c’est bien la v1 du fichier qui a été restaurée :
$ curl mypubweb2.s3-website-eu-west-1.amazonaws.com/myfile.txt
v1
Terminer le workshop :
- Stopper l’instance (ne pas la terminer)
- Supprimer les 3 buckets
Decouvrez plus d’Offres de la plateform ItGalaxy.io :
Découvrez notre gamme complète de services et formations pour accélérer votre carrière.
1. Nous contactez
- Description: Besoin de Formation et des Solutions cloud complètes pour vos applications
- Links:
2. Infra as a Service
- Description: Infrastructure cloud évolutive et sécurisée
- Links:
3. Projets Développeurs
- Description: Découvrez des opportunités passionnantes pour les développeurs
- Links:
4. Développeurs
- Description: Rejoignez notre communauté de développeurs
- Links:
5. Formations Complètes
- Description: Accédez à des formations professionnelles de haute qualité
- Links:
6. Marketplace
- Description: Découvrez notre place de marché de services
- Links:
7. Blogs
- Description: Découvrez nos blogs
- Links:
- comment creer une application mobile ?
- Comment monitorer un site web ?
- Command Checkout in git ?
- Comment git checkout to commit ?
- supprimer une branche git
- dockercoin
- kubernetes c est quoi
- architecture kubernetes
- Installer Gitlab Runner ?
- .gitlab-ci.yml exemples
- CI/CD
- svelte 5 vs solid
- svelte vs lit
- solidjs vs qwik
- alpine vs vue
- Plateform Freelance 2025
- Creation d’un site Web gratuitement
This website is powered by ItGalaxy.io