Formation DevOps | Formation AWS Services : 3- Service EC2
AMAZON ELASTIC COMPUTE CLOUD (EC2) ET AMAZON ELASTIC BLOCK STORE (EBS)
EC2 : serveurs virtualisés
- Existe dans un sous-réseau
» Donc dans l’AZ d’un VPC d’unerégion - Capacité dépendant du type (famille.taille)
» t2.micro, t2.medium, m4.xlarge,m4.2xlarge - Taux de disponibilité : 99,95 %
EC2 : serveurs virtualisés
-
Template serveurs préconfigurés : AMI
» AMI : Amazon MachineImage
» Choix important (Linux, Windows, Appliance,…) -
Possibilité de réaliser ses propres AMIs
» Modifier une AMI existante et en faire unmodèle
» Importer une image d’un autre format (ESX,Hyper-V, Xen) -
Idéalpour les expérimentations, ou application web à faibletrafic
-
usage général, ressourceséquilibrées
-
optimisées pour Traitement par lot, encodage vidéos, lecalcul serveurs Web à fort trafic,…
-
optimisées pour Cache mémoire, labases de mémoiredonnées,…
-
Encodage vidéos, diffusion de contenu 3D,…
-
optimisées pour Entrepôt de données, clusters,le stockage haute … performance (SSD, E/Sélevées)
Familles d’instances
-
t2 (t1)
-
m4 (m3, m1)
-
c4 (c3)
-
r3
-
g2
-
i2
-
Pour chaque famille, une dimension » nano > … > large > … >10xlarge
» Chaque palier double leprécèdent
» En capacité et en prix
○ 2 x t2.medium = 1 xt2.large -
Nombreuses combinaisons cpu/ram/disque/réseau »http://www.ec2instances.info/
Modèle de coûts
- Instances facturées à la seconde
» Varie selon larégion
○ Sao Paulo plus cher qu’enParis
» Optionspayantes
○ Augmenter la granularité du monitoring de 5mn à 1mn (+3,5 $ / mois)
○ Optimiser les échanges entre l’instance et sonstockage
○ … - Varie selon l’OS
» Les frais supplémentaires liés aux licences peuvent être intégrés au coût horaire
(par ex. pourWindows)
Modes de consommation des instances
A la demande Paiement à la seconde sans engagement
Use cases : dev,build,tests
Ponctuelles (Spot)
Achat aux enchères selon un cours variable , Aucune garantie dedisponibilité
Use cases : tests,simulations
Paiement au mois ou à l’avance ou une combinaison des deux, engagement d’utilisation de 1 à 3 ans, jusqu’à -70% deréduction
Modes de consommation des instances
Réservées standard Réservées programmées
Se démarrent àtoutmoment Se démarrent à fréquences fixes,définies paravance
Use cases : charges stables 24h/7d
Paiement au mois; engagement d’utilisation de 1 an, jusqu’à -10% de réduction
Use cases : batchs, charges récurrentes
EC2 Instances : pricing (région Paris / novembre 2020)
- Instances (à la demande)
» Environ 50 types» La moins chère : t2.nano : $0,0059 / h
» La plus chère : x1.32xlarge : $16,148 / h - Instances linux(réservées)
» Jusqu’à -70% de réduction pour 3 ans d’engagement - Instances linux(spot)
» x1.32xlarge : $8,8/h au lieu de $16/h - Données sortantes vers:
» Internet : $0,09 $ / GB (dégressif)
» Une autre zone : $0,01 / GB
» Une autre région : $0,02 / GB
Stockage des instances (type block)
- 2 types
» Non persistant : Instance Store (différentd’EBS)
○ Disponibles selon le typed’instance
○ Pas desnapshots
» Persistant : EBS (Elastic BlockStore)
○ Equivalent à unSAN
○ Sélection possible de la capacité et de laperformance
○ Snapshots et migrationspossibles
Instance Store
- Non persistant
» Si utilisé comme volume root, il persiste en casde reboot mais pas en
cas de stop/start - Stockage de travail temporaire : caches, buffers, …
- Dépend du type d’instance, par ex. :
» m3.xlarge : 2 x 40 GBSSD
» m1.xlarge : 4 x 420 GBMagnétique - Peut-être monté directement depuis l’instance
» fdisk –l oulsblk - Intégré à l’instance, pas de coût supplémentaire
EBS
- Disponibilité de 99,999 %
» Répliqué automatiquement au sein d’une même zonede disponibilité sans
surcoût - Possibilité de réaliser des snapshots
» Migrer un volume vers une autre zone ou une autrerégion
» Augmenter lacapacité
» Partager avec un autre compte AWS (partenaire, client,…) - Possibilité de chiffrer les volumes avec une gestion des clés en tant que
service - Certaines instances sont optimisées EBS
» Bande passante dédiée pour lestockage
Types EBS : SSD : Solid StateDrive
◻ EBS : 4 familles de stockage
- SSD (Solid State Drives) : • Magnétique optimisé
» Jusqu’à 16 TB bande passante :
» 10.000IOPS » Jusqu’à 16TB
» Jusqu’à 500IOPS - Magnétique froid : iops » Jusqu’à 16 TB » Jusqu’à 16TB »20.000IOPS » Jusqu’à 250IOPS
EC2 : opérations sur les instances
- Création (“launch” ou “run”)
- Reboot (“reboot”)
- Arrêt (“stop”)
- Démarrage (“start”)
- Suppression (“terminate”)
Création d’une instance (« launch » ou « run »)
» 2 modes : EC2-CLASSIC etEC2-VPC
○ EC2-CLASSIC : mode “historique” qui fonctionnait sans VPC, à
ne pasutiliser
○ EC2-VPC : à sélectionner
» 2 types de volume root : INSTANCE STORE etEBS
○ Inconvénients du mode INSTANCE STORE : stockage non
persistant, pas de stop / start possible, temps de boot non
optimisable
Reboot d’une instance
» Conserve la même IP et recordDNS
» Le stockage “instance store”persiste
» L’heure de billing n’est pasréinitialisée
Arrêt d’une instance (“stop”)
» Seulement possible avec un “root device”EBS
○ “EBS-backed instance”
» Signal à l’OS de faire unshutdown
» Statut passe de “stopping” à“stopped”
» Etat“stopped”
○ Instance non facturée (sauf pour l’hébergement du volumeEBS)
○ Possibilité de détacher le volume root EBS et de l’attacher sur une autre instance
○ Possibilité de le modifier et de le réattacher à la mêmeinstance
○ L’adresse IP privée estconservée
○ L’adresse IP public change, à moins qu’elle ne soitélastique
○ EIP désassocier (Elastic IP) d’une: adresse instanceIP public réservable via la console Web, qu’on peut associer et
Démarrage d’une instance (“start”)
» Le statut change en“pending”
» Stockage “Ephemeral”perdu
» Le statut passe à“running”
○ La facturation commence à la second
○ Attribution de 2 enregistrementsDNS
✧Privé : n’est résolu qu’en interne(VPC)
✧Public : résolu publiquement (sauf si instance dans un réseau privé)
Suppression d’une instance (“terminate”)
» L’instance est définitivementsupprimée
» Le statut passe de “shutting down” à“terminated”
» Le volume de stockage “root” est sauvegardée uniquement dans un des 2 cas suivants:
» Un snapshot du volume à été réalisépréalablement
» L’option “DeleteOnTermination” a été désactivée (active par défaut)
» La facturation s’arrête pour l’instance (mais continuepour l’éventuel volume EBS conservé)
» Possibilité d’activer une option de protection contre les terminaisons
» Il faut désactiver cette option manuellement avant de pouvoir terminer une instance
» Permet de se protéger contre une erreur demanipulation
Cloud-Init && Userdata
Le package cloud-init effectue des tâches de configuration communes (et d’autres tâches) pour les instances au démarrage :
✓ Définir les paramètres régionaux par défaut.
✓ Définir le nom d’hôte.
✓ Analyser et gérer les données utilisateur.
✓ Générer des clés SSH privées d’hôte.
✓ Ajouter des clés SSH publiques d’utilisateur à .ssh/authorized_keyspour une connexion et une administration faciles.
✓ Préparer les référentiels pour la gestion des packages.
✓ Gérer les actions de package définies dans le userdata.
✓ Exécuter les scripts utilisateur trouvés dans les données utilisateur.
✓ Monter les volumes de stockage d’instance 163
Obtenir des informations contextuelles sur l’instance
- Meta-data : informations spécifiques à l’instance
- Associées à l’instance au moment de sacréation
»Exemple : Instance-Id, subnet-Id, clé SSH publique, … - Accessible depuis l’instance vial’URL
»http://169.254.169.254/latest/meta-data - Exemple:
$curl http://169.254.169.254/latest/meta-data/instance-id i- 12365432
AMAZON ELASTIC COMPUTE CLOUD (EC2) && CloudInit
Cloud-Init && Userdata
http://169.254.169.254/latest/meta-data Cloud-Init ip
Configurer une instance
-
User-data : exécuter des commandes au démarrage
»Permet d’envoyer des instructions à l’OS depuis l’hyperviseur lors de la création de l’instance
»S’exécute au premier boot (possibilité de le faire s’exécuter à chaque boot)
»Attribut de l’instance : possible de le modifier (stop / start)
Userdata
Configurer une instance
- User-data
»Script exécuté au boot du serveur linux
»Logs dans/var/log/cloud-init.log
»Exemple:
#!/bin/bash
# Install apache and php
yum -y install httpd php
# Start web server
service httpd start
Configurer une instance
- User-data
»Exemple de création avec la CLI
*$ aws ec2 run-instances ami-978d91fe *
*–key-name my-key-pair *
*–instance-type m3.large *
–user-data file://my_script_bash.txt
Monitoring d’une instance
- CloudWatch : diverses métriques (CPU, réseau, disque, status check
failed)
Monitoring d’une instance
- Status Checks : contrôles les systèmes et des matériels
- Réalisés toutes les minutes
Monitoring d’une instance
- 2 types de checks:
- “System status”
» Incidents matériels (réseau, serveur,…)
» Attendre intervention AWS ou stop / start de l’instance pour la migrer vers un autre
serveurphysique - “Instance status”
» Problème de configuration réseau ou logicielle (partition corrompue, kernel
incompatible, mémoire saturée,…)
» Rebooter l’instance et/ou corriger lesconfigurations
Scheduled events : maintenance programmée
» Evénements planifiés parAWS
» Notificationdu client pare-mail
» Actions planifiées visibles dans la console EC2
» Maintenance électrique ouréseau
» S’attendre à un reboot de l’instance et / ou perte momentanée du réseau
Quelques attributs d’uneinstances
- InstanceInitiatedShutdownBehavior
» Que » faire Stopper ou terminer, en cas de shutdown auchoix au niveau OS? - DeleteOnTermination
» Activer ou pas la suppression automatique cas de suppression del’instance du volume root EBS en - Type del’instance
» Possibilité une largede le modifier, par exemple pour passer d’une medium à
» Nécessite un reboot del’instance - User-data
» Code qui s’exécute au démarrage del’instance
Attributs de base pour la création d’une instance
Sélection d’une AMI : Amazon Machine Image
- Modèles de serveurs à customiser
- Possibilité de créer ses propres AMIs
- Ex : Amazon Linux AMI
» Pré-installée avec la CLIAWS
» Cloud-init (user-data) : permet de faire exécuter du codeau démarrage del’instance
» Gestionnaire de paquets yum, repositories dans chaque régionAWS
» Installe par défaut les updates de sécurité audémarrage
» Distribution légère, basée surCentOS
» 2 releases majeures /an
Sélection d’une Key
- Paire de clé publique / clé privée générée via la console Web ou par CLI/API
- La clé publique est installée automatiquement sur l’instance lors de sa
création - La clé privée est en possession de l’utilisateur (non stockée chez AWS)
- La clé privée permet de se connecter à distance enSSH
- Pas d’authentification par mot de passe
- Pas de login « root » (mais « sudo »ok)
» User pour Centos : user « centos » ; Ubuntu : user « ubuntu»
» User pour AMI-Linux : user « ec2-user» - ssh -i key.pemcentos@10.0.0.20
Sélection d’un sous-réseau
- Choisir un sous-réseau dans lequel va démarrer l’instance
- Choisir un sous-réseau publique si nécessité d’exposer l’instance
sur internet - Sinon, choisir un sous-réseau privé
- L’instance se voit attribuer une adresse IP par DHCP
Sélection d’un security group
- Au moins 1 security group par instance, au maximum 4
- Autoriser la connexion en SSH
Identifiant de l’instance
- Format : i-<8 digits>, par ex. i-1a2b3c4d
- Passage à 17 digits en décembre 2016
Troubleshooting
- Si une instance s’est terminée / stoppée /démarrée
» Consulter Instance > Description > Statetransition reason
○ VolumeLimitExceeded, User initiated shutdown,etc.
Troubleshooting
- Si une instance s’estterminée
» Cela peut-être une règle d’Auto Scaling, une règle Events, une
mauvaise configuration de volume root paramètre « Device », etc.
○ VolumeLimitExceeded, User initiated shutdown,etc.
Troubleshooting
- Si il est impossible de se connecter à uneinstance
» Vérifier la clé SSH et lelogin
○ $ chmod 600 key.pem
○ Login AMI Amazon : ec2-user, CentOS : centos, Ubuntu : ubuntu
○ Troubleshoot : $ ssh–vvv
» Vérifier le security group del’instance
○ Mon adresse IP est-elle bien celle que j’imagine? (proxy / VPN / …)
Troubleshooting
» Vérifier que vous pouvez sortir en SSH depuisvotre réseau
» Vérifier l’activité de l’instance (CPUload)
- Si l’instance ne démarrepas
» Consulter les logs « console»
○ Permet de voir les erreurs au boot (kernel panic,…)
○ Instance > Actions > Instance Settings > Get SystemLog
○ Visualiser la console via un screenshot
○ Instance > Actions > Instance Settings > GetScreenshot
Bonnes pratiques
- Utiliser les tags pour tracer et identifier lesressources
- Revoir fréquemment les règles de securitygroup
» Leastpermissive - Eviter l’usage des login/password pour accéder aux instances
- Interdire l’accès distant en tant que root
- Appliquer fréquemment les patchs de sécurité sur lesOSs
Bonnes pratiques
- Ne pas mettre de data « applicative » une EC2
»Utiliser EBS avec DeleteOnTerminationàfalse
»Utiliser S3 - Réaliserfréquemment des snapshots
Bonnes pratiques
- Se déployer dans le maximumd’AZs
- Concevoir l’architecture pour gérer l’allocation dynamique d’adresses IP
- Monitorer les événements et programmer desalertes
- Toujours se préparer à la prochainepanne
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