Formation DevOps | Formation AWS Services : 3- Service EC2

www.itgalaxy.io

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


4. Développeurs


5. Formations Complètes


6. Marketplace

7. Blogs


This website is powered by ItGalaxy.io