eadl:bloc5:fm3:td2

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
eadl:bloc5:fm3:td2 [2026/09/27 19:46] – [1.5 Configurer les rôles IAM] jcheroneadl:bloc5:fm3:td2 [2026/09/28 15:37] (Version actuelle) – jcheron
Ligne 13: Ligne 13:
 Ce TD utilise la console AWS et quelques commandes exécutées depuis un terminal. Il s’agit d’une découverte **manuelle** d’Amazon EMR. N’utilisez ni Terraform ni CloudFormation dans ce TD : l’automatisation de cette infrastructure fera l’objet du TD3. Ce TD utilise la console AWS et quelques commandes exécutées depuis un terminal. Il s’agit d’une découverte **manuelle** d’Amazon EMR. N’utilisez ni Terraform ni CloudFormation dans ce TD : l’automatisation de cette infrastructure fera l’objet du TD3.
  
-AWS est un environnement payant. Chaque binôme doit utiliser le compte, la région et les limites de coûts indiqués par l’enseignant. Ne créez aucune ressource supplémentaire.+AWS est un environnement payant. Pensez à activer une alerte sur AWS Budget si vous dépassez une limite de 5$.
 </WRAP> </WRAP>
  
Ligne 180: Ligne 180:
   - Le nombre de nœuds choisi suffit-il à démontrer une tolérance de panne réelle ? Pourquoi ?   - Le nombre de nœuds choisi suffit-il à démontrer une tolérance de panne réelle ? Pourquoi ?
  
-===== 1.4 Paire de clés EC2 (accès SSH) =====+===== 1.5 Réseau ===== 
 + 
 +Sur un compte AWS standard, un **VPC par défaut** existe déjà dans chaque région, avec un subnet public dans chaque zone de disponibilité. EMR le sélectionne automatiquement : **il n'y a rien à créer ni configurer manuellement** pour ce TD. 
 + 
 +Dans la section réseau de l'assistant de création : 
 + 
 +  1. vérifiez que le VPC proposé est bien le VPC par défaut (``vpc-xxxxxxxx (default)``) ; 
 +  2. un subnet est présélectionné : laissez la valeur proposée ; 
 +  3. les security groups sont créés automatiquement par EMR (un pour le master, un pour les core/task) si vous ne modifiez rien. 
 + 
 +Notez les valeurs proposées automatiquement : 
 + 
 +^ Paramètre réseau ^ Valeur ^ Observation ^ 
 +| VPC |  | par défaut |  
 +| Subnet |  | public (zone de disponibilité) |  
 +| Security group master |  | créé automatiquement par EMR |  
 +| Security group core/task |  | créé automatiquement par EMR |  
 +| Adresse publique du master |  | oui, par défaut sur subnet public |  
 + 
 +<WRAP tip round> 
 +Le security group du master créé par défaut n'autorise pas le SSH entrant. Il faudra l'ouvrir manuellement après la création du cluster (voir section suivante) pour pouvoir vous connecter. 
 +</WRAP> 
 + 
 +Répondez : 
 + 
 +  - Pourquoi un cluster peut-il avoir besoin d'une communication interne même si vous ne vous connectez qu'au master ? 
 +  - Pourquoi les nœuds core et task ne doivent-ils généralement pas être ouverts directement à Internet ? 
 +  - Dans Docker Compose, quelles règles de réseau étaient implicites ou locales ? 
 +===== 1.6 Paire de clés EC2 (accès SSH) =====
  
 Pour pouvoir se connecter en SSH au nœud primaire du cluster (console, exécution manuelle de commandes Hadoop, consultation de fichiers de logs), une **paire de clés EC2** est nécessaire. Pour pouvoir se connecter en SSH au nœud primaire du cluster (console, exécution manuelle de commandes Hadoop, consultation de fichiers de logs), une **paire de clés EC2** est nécessaire.
Ligne 208: Ligne 236:
 Dans la configuration du cluster EMR, section **Sécurité**, sélectionnez cette paire de clés dans le menu déroulant **Paire de clés EC2 (SSH)**. Dans la configuration du cluster EMR, section **Sécurité**, sélectionnez cette paire de clés dans le menu déroulant **Paire de clés EC2 (SSH)**.
  
-===== 1.6 Configurer les rôles IAM =====+===== 1.7 Rôles IAM =====
  
-La console propose des rôles IAM pour EMR et EC2, souvent créés automatiquement ou sélectionnés parmi des rôles par défaut :+EMR nécessite deux rôles IAM pour fonctionner :
  
-  - rôle de service EMR ; +  * un **rôle de service EMR** (permet à EMR de gérer les ressources EC2, réseau, etc. en votre nom) ; 
-  - profil d’instance EC2 pour les nœuds ; +  * un **rôle de profil d'instance EC2** (attaché aux nœuds du cluster, permet l'accès à S3, CloudWatch, etc.).
-  - rôle souvent associé à l’auto-scaling selon les options retenues.+
  
-Choisissez l’option de création recommandée par la console, sans ajouter de permissions administrateur « pour simplifier ».+Dans la section **Rôle IAM**, AWS propose deux options pour chacun de ces deux rôles :
  
-^ Élément IAM ^ Valeur sélectionnée ^ À quoi sert-il ? ^ +  * **Choisir une fonction du service existant** : sélectionne un rôle déjà créé auparavant ; 
-| EMR service role |  | autoriser EMR à gérer les ressources nécessaires |  +  * **Créer une fonction du service** : AWS crée automatiquement le rôle nécessaire.
-| EC2 instance profile |  | permettre aux instances d’appeler les services autorisés, notamment S3 selon la configuration |  +
-| Rôle d’auto-scaling |  | seulement si l’option est utilisée | +
  
-<WRAP important round> +<WRAP tip round> 
-**Ne confondez pas authentification et autorisation.** La clé SSH permet l’accès système à une instance autorisée. Les rôles IAM permettent aux services et aux instances d’appeler d’autres services AWS. Une clé SSH ne donne pas, à elle seule, les droits S3. +**Cas attendu : votre compte est un compte AWS standard (personnel, free tier ou passé en basic)**
-</WRAP>+
  
-Question : quelles permissions minimales votre job doit-il avoir pour lire `s3://.../input/` et écrire `s3://.../output/` ? Pourquoi est-il préférable de limiter les droits au bucket et aux préfixes du TD ?+Sur ce type de compte, vous disposez normalement des droits IAM complets. Choisissez **Créer une fonction du service** pour les deux champs. AWS génère automatiquement les rôles nécessaires, généralement nommés : 
 +  - ``EMR_DefaultRole`` ou ``AmazonEMR-ServiceRole-xxxx`` (rôle de service) ; 
 +  - ``EMR_EC2_DefaultRole`` ou ``AmazonEMR-InstanceProfile-xxxx`` (profil d'instance EC2).
  
-===== 1.6 Choisir le réseau =====+Ces rôles seront ensuite proposés automatiquement lors des prochaines créations de cluster. C'est le cas normal et attendu pour ce TD. 
 +</WRAP>
  
-Dans la section réseau :+<WRAP important> 
 +**Cas exceptionnel : erreur de création (droits IAM restreints ou rôle déjà partiellement créé)**
  
-  1. sélectionnez le VPC pédagogique indiqué ; +Il peut arriver, même sur un compte standard, qu'**un des deux rôles existe déjà** (par exemple suite à un essai antérieur) **sans que le second n'existe**. Ce n'est pas incohérent : ce sont deux ressources IAM indépendantes.
-  2. choisissez le subnet autorisé ; +
-  3. si le master doit être joint en SSH depuis Internet, vérifiez que le subnet est public et qu’une route vers une Internet Gateway existe, selon la consigne de l’enseignant ; +
-  4. choisissez ou créez les security groups recommandés par la formation ; +
-  5. activez l’accès SSH uniquement depuis votre adresse IP lorsque la console le permet, jamais depuis `0.0.0.0/0` sauf démonstration explicitement encadrée et immédiatement supprimée.+
  
-Notez :+Si vous tentez **Créer une fonction du service** pour le champ **Fonction du service EC2** et obtenez une erreur du type :
  
-^ Paramètre réseau ^ Valeur ^ Observation ^ +<code> 
-| VPC |  |  |  +Échec de la création du rôle EMR_EC2_DefaultRole. Vous n'obtenez peut-être pas l'autorisation nécessaire pour effectuer cette action. 
-| Subnet |  | public, privé ou autre |  +</code>
-| Security group master |  | ports autorisés |  +
-| Security group core/task |  | accès interne entre nœuds |  +
-| Adresse publique du master |  | oui / non | +
  
-Répondez :+**Marche à suivre dans ce cas :**
  
-  - Pourquoi un cluster peut-il avoir besoin d’une communication interne même si vous ne vous connectez qu’au master ? +  - Retournez sur **Choisir une fonction du service existant** pour le champ **Fonction du service EC2** ; 
-  - Pourquoi les nœuds core et task ne doivent-ils généralement pas être ouverts directement à Internet ? +  - vérifiez si un rôle apparaît dans la liste déroulante, par exemple ``EMR_EC2_DefaultRole`` (déjà créé lors d'un essai précédent) ; 
-  - Dans Docker Compose, quelles règles de réseau étaient implicites ou locales ?+  - sélectionnez-le s'il apparaît. 
 +</WRAP>
  
-===== 1.7 Associer la clé SSH et créer le cluster =====+===== 1.8 Associer la clé SSH et créer le cluster =====
  
 1. Sélectionnez la paire de clés EC2 fournie ou créée pour le TD. 1. Sélectionnez la paire de clés EC2 fournie ou créée pour le TD.
Ligne 266: Ligne 288:
 </WRAP> </WRAP>
  
-===== Bilan de la mission 1 ===== 
- 
-Complétez : 
- 
-  - Le temps entre le clic sur « créer » et l’état utilisable est de : `__________`. 
-  - Les choix qui ont demandé le plus de réflexion sont : `__________`. 
-  - La différence principale entre un cluster EMR et les conteneurs du TD1 est : `__________`. 
- 
----- 
  
 ====== Mission 2 — Explorer le cluster depuis le master ====== ====== Mission 2 — Explorer le cluster depuis le master ======
Ligne 290: Ligne 303:
 </sxh> </sxh>
  
-Le nom d’utilisateur dépend de l’image et de la configuration affichées par l’enseignant. Pour une AMI EMR standard, `hadoop` est couramment utilisé ; ne remplacez pas ce nom au hasard si la consigne de votre compte indique autre chose.+Le nom d’utilisateur dépend de l’image. Pour une AMI EMR standard, `hadoop` est couramment utilisé ; ne remplacez pas ce nom au hasard si la consigne de votre compte indique autre chose.
  
 À la première connexion, vérifiez l’empreinte proposée. Si vous obtenez `Permission denied (publickey)`, contrôlez le chemin de la clé, `chmod 400`, le nom d’utilisateur et la règle SSH du security group. À la première connexion, vérifiez l’empreinte proposée. Si vous obtenez `Permission denied (publickey)`, contrôlez le chemin de la clé, `chmod 400`, le nom d’utilisateur et la règle SSH du security group.
Ligne 377: Ligne 390:
 ===== 3.2 Mettre en place un tunnel local ===== ===== 3.2 Mettre en place un tunnel local =====
  
-Gardez une première session SSH ouverte. Dans un second terminal, créez des redirections locales vers les ports web du master. Les numéros de ports peuvent varier selon la release ; utilisez ceux affichés dans la console ou par l’enseignant.+Gardez une première session SSH ouverte. Dans un second terminal, créez des redirections locales vers les ports web du master. Les numéros de ports peuvent varier selon la release ; utilisez ceux affichés dans la console.
  
 <sxh bash> <sxh bash>
Ligne 605: Ligne 618:
 </sxh> </sxh>
  
-Hadoop refuse généralement d’écrire dans un répertoire de sortie déjà présent. Utilisez un nouveau préfixe ou supprimez uniquement votre ancien résultat de test si l’enseignant l’autorise.+Hadoop refuse généralement d’écrire dans un répertoire de sortie déjà présent.
  
 ===== 5.3 Lancer le job ===== ===== 5.3 Lancer le job =====
Ligne 690: Ligne 703:
 | Task |  |  |  |  |  | Task |  |  |  |  | 
  
-Le coût réel dépend notamment de la région, du type d’instance, du modèle de facturation, des options EMR, du stockage et d’éventuels transferts. Utilisez l’outil d’estimation ou la page tarifaire validée par l’enseignant plutôt que de mémoriser un montant.+Le coût réel dépend notamment de la région, du type d’instance, du modèle de facturation, des options EMR, du stockage et d’éventuels transferts.
  
 Pour une estimation simplifiée : Pour une estimation simplifiée :
Ligne 795: Ligne 808:
 <sxh bash> <sxh bash>
 aws s3 ls s3://NOM_DU_BUCKET/td2/binomeXX/ --recursive aws s3 ls s3://NOM_DU_BUCKET/td2/binomeXX/ --recursive
-# À exécuter seulement si l'enseignant demande la suppression : 
 aws s3 rm s3://NOM_DU_BUCKET/td2/binomeXX/ --recursive aws s3 rm s3://NOM_DU_BUCKET/td2/binomeXX/ --recursive
 </sxh> </sxh>
Ligne 899: Ligne 911:
  
 <WRAP important round> <WRAP important round>
-Dernière vérification avant de quitter AWS : votre cluster est terminé, vos instances de test ne tournent plus, et les objets S3 restants correspondent exactement à la consigne de l’enseignant.+Dernière vérification avant de quitter AWS : votre cluster est terminé, vos instances de test ne tournent plus, et les objets S3 sont supprimés.
 </WRAP> </WRAP>
  
  • eadl/bloc5/fm3/td2.1790531180.txt.gz
  • Dernière modification : il y a 21 heures
  • de jcheron