Tous les produits
Search
Centre de documentation

DataWorks:Équilibrage de charge et haute disponibilité pour les nœuds SSH

Dernière mise à jour :Aug 10, 2026

Alibaba Cloud Network Load Balancer (NLB) assure un équilibrage de charge intelligent pour les nœuds SSH DataWorks, évitant les points de défaillance uniques et simplifiant la configuration et la maintenance des tâches.

Contexte

Dans DataWorks, une source de données SSH est généralement configurée avec l'adresse hôte d'une instance ECS fixe. Si cet hôte devient défectueux, par exemple en raison d'un plantage ou d'un épuisement des ressources, les nœuds SSH peuvent échouer. Pour résoudre ce problème, ajoutez plusieurs instances ECS à un groupe de serveurs d'une instance Network Load Balancer (NLB). NLB utilise son algorithme interne pour distribuer les demandes de tâches aux instances ECS disponibles et vérifie continuellement leur état de santé. Si une instance ECS tombe en panne, NLB achemine automatiquement les demandes vers d'autres instances saines. Cela empêche toute interruption des tâches due à la défaillance d'une seule instance et garantit une haute disponibilité.

Comme illustré dans la figure précédente :

  • Sans équilibrage de charge : les tâches des nœuds SSH DataWorks ne peuvent s'exécuter que sur l'instance ECS connectée. Si cette instance est surchargée ou tombe en panne, les tâches sont retardées ou interrompues.

  • Avec équilibrage de charge : les tâches des nœuds SSH DataWorks sont automatiquement acheminées vers une instance ECS du groupe de serveurs selon la politique NLB. NLB effectue également des contrôles d'intégrité sur le groupe de serveurs. S'il détecte une instance ECS défectueuse, il achemine automatiquement les tâches vers d'autres instances saines, assurant ainsi la continuité et la haute disponibilité.

Cette solution atténue l'épuisement des ressources et les points de défaillance uniques, améliorant ainsi la fiabilité des tâches.

Prérequis

  • L'utilisateur RAM que vous souhaitez utiliser est ajouté à votre espace de travail.

    Si vous souhaitez utiliser un utilisateur RAM pour développer des tâches, vous devez ajouter l'utilisateur RAM à votre espace de travail en tant que membre et lui attribuer le rôle Develop ou Workspace Administrator. Le rôle Workspace Administrator dispose de plus d'autorisations que nécessaire. Faites preuve de prudence lors de l'attribution du rôle Workspace Administrator. Pour plus d'informations sur l'ajout d'un membre et l'attribution de rôles, consultez la rubrique Ajouter des membres à un espace de travail.

  • Un groupe de ressources serverless est associé à votre espace de travail. Pour plus d'informations, consultez les rubriques du répertoire Utiliser des groupes de ressources serverless.

Limites

  • Le code d'un nœud SSH ne peut pas dépasser 128 KB.

  • Le groupe de ressources DataWorks, les instances ECS et l'instance NLB doivent se trouver dans le même VPC et la même région.

Préparer l'environnement

Pour activer l'équilibrage de charge et la haute disponibilité pour les nœuds SSH, créez au moins deux instances ECS et ajoutez des exemples de données uniques à chacune d'elles à des fins de vérification.

Créer des instances ECS

Créez les instances ECS comme suit.

  1. Achetez des instances ECS.

    Accédez à la page d'achat d'instances ECS, sélectionnez l'onglet Custom Launch et configurez les paramètres suivants pour créer les instances ECS. Pour plus de détails sur les autres paramètres, consultez la rubrique Créer une instance dans l'onglet Custom Launch.

    Paramètre

    Description

    Region

    Sélectionnez la région où réside votre espace de travail DataWorks.

    Network and zone

    Sélectionnez le même Virtual Private Cloud (VPC) et le même vSwitch utilisés pour le groupe de ressources serverless.

    Security Group

    Sélectionnez le groupe de sécurité lié au vSwitch du groupe de ressources serverless.

    Autres paramètres

    Configurez les autres paramètres en fonction de vos besoins professionnels.

  2. Définissez la quantité.

    Sur le côté droit de la page d'achat d'instances ECS, recherchez l'option Quantity et saisissez le nombre d'instances ECS dont vous avez besoin. Ce tutoriel utilise deux instances.

  3. Cliquez sur Create Order pour terminer la création et l'achat des instances ECS.

Préparer les exemples de données

Écrivez des exemples de données uniques sur chaque instance ECS afin de pouvoir distinguer les résultats ultérieurement.

  1. Connectez-vous aux instances ECS.

    1. Accédez à la console ECS, basculez vers la région où résident les instances ECS et localisez les deux instances que vous avez créées.

    2. Dans la colonne Operation d'une instance, cliquez sur Remote connection. Dans la boîte de dialogue Remote connection, sélectionnez Sign in now.

    3. Sur la page Instance Login, configurez les informations d'authentification et terminez la connexion.

  2. Créez des exemples de données.

    • Sur l'instance ECS 1, exécutez la commande suivante :

      echo "I am the first server" > /tmp/a.txt
    • Sur l'instance ECS 2, exécutez la commande suivante :

      echo "I am the second server" > /tmp/a.txt

Configurer l'instance NLB

Créez une instance NLB, ajoutez deux instances ECS à un groupe de serveurs backend et configurez un écouteur pour activer l'équilibrage de charge.

Créer une instance NLB

Créez une instance NLB comme décrit ci-dessous. Pour plus d'informations, consultez les rubriques Prérequis pour la création d'une instance NLB et Créer et gérer une instance NLB.

  1. Accédez à la page d'achat d'instances NLB.

    Connectez-vous à la console Network Load Balancer. Dans la barre de navigation supérieure, sélectionnez la région. Sur la page Instances, cliquez sur Create NLB pour accéder à la Cloud Service Buy Page.

    Important

    Sélectionnez la même région que votre espace de travail DataWorks. Une sélection incorrecte de la région vous obligera à créer une nouvelle instance.

  2. Configurez et achetez l'instance NLB.

    Sur la Cloud Service Buy Page, configurez les paramètres suivants pour créer une instance NLB :

    Paramètre

    Description

    Network

    Network type

    Sélectionnez internal-facing.

    VPC

    Sélectionnez le VPC utilisé par votre groupe de ressources serverless.

    Zone

    Sélectionnez la zone où réside le vSwitch du groupe de ressources serverless.

    IP version

    Sélectionnez IPv4.

    Management settings

    Instance name

    Saisissez un nom d'instance personnalisé.

    Resource group

    Sélectionnez le groupe de ressources par défaut.

  3. Confirmez l'achat.

    Après avoir configuré tous les paramètres, cliquez sur Create. Sur la page Confirm Order, cliquez sur Activate.

Créer un groupe de serveurs backend

Une fois que l'instance NLB passe à l'état Active, créez un groupe de serveurs backend et liez-le à l'instance. Pour plus d'informations, consultez la rubrique Groupes de serveurs NLB.

  1. Accédez à la page des détails de l'instance.

    1. Connectez-vous à la console Network Load Balancer. Dans la barre de navigation supérieure, sélectionnez la région. Dans la liste des instances, localisez l'instance que vous avez créée.

    2. Cliquez sur le nom de l'instance pour accéder à la page des détails de l'instance.

  2. Créez un groupe de serveurs backend.

    1. En haut de la page des détails de l'instance, cliquez sur Create Server Group pour accéder à la page Create Server Group.

    2. Définissez Server Group Name sur ECS_NLB, puis cliquez sur Create.

  3. Ajoutez des serveurs backend.

    1. Dans la boîte de dialogue Server group created successfully, cliquez sur Add Backend Server.

    2. Sur l'onglet Backend Servers, cliquez sur Add Backend Server pour accéder à la page Add Backend Server.

    3. Sélectionnez les deux instances ECS que vous avez créées.

    4. Cliquez sur Next step pour accéder à l'étape Ports/Weights.

  4. Configurez les ports et les poids.

    1. Définissez le Port sur 22.

    2. Cliquez sur OK pour terminer la configuration.

Attendez que les serveurs backend soient ajoutés avec succès.

Configurer un écouteur

Après avoir ajouté les instances ECS au groupe de serveurs backend, configurez un écouteur pour l'instance NLB. Pour plus d'informations, consultez la rubrique Ajouter un écouteur TCP.

  1. Accédez à la page des détails de l'instance.

    1. Connectez-vous à la console Network Load Balancer. Dans la barre de navigation supérieure, sélectionnez la région. Dans la liste des instances, localisez l'instance que vous avez créée.

    2. Cliquez sur le nom de l'instance pour accéder à la page des détails de l'instance.

  2. Configurez un écouteur.

    1. En haut de la page des détails de l'instance, cliquez sur Create Listener pour ouvrir l'assistant Configure Server Load Balancer.

    2. Définissez le protocole de l'écouteur sur TCP et le port de l'écouteur sur 22.

    3. Cliquez sur Next step.

  3. Sélectionnez un groupe de serveurs.

    1. À l'étape Select Server Group, pour Server Type, sélectionnez le groupe de serveurs ECS_NLB que vous avez créé dans la section Créer un groupe de serveurs backend.

    2. Cliquez sur Next step.

  4. Soumettez pour examen.

    À l'étape Configuration Review, confirmez les instances ECS et le port de l'écouteur, puis cliquez sur Submit.

Configurer une source de données SSH

Ajoutez l'instance NLB en tant que source de données SSH. Pour plus d'informations, consultez la rubrique Sources de données SSH.

  1. Connectez-vous à la console DataWorks. Dans la région cible, cliquez sur More > Management Center dans le volet de navigation de gauche. Sélectionnez un espace de travail dans la liste déroulante et cliquez sur Go to Management Center.

  2. Dans le volet de navigation de gauche, cliquez sur Data Sources > Data Sources pour accéder à la page Data Sources.

  3. Sur la page Data Sources, cliquez sur Add Connection pour accéder à la page Add Connection.

  4. Sur la page Add Connection, sélectionnez SSH comme type de source de données pour accéder à la page Add SSH Data Source. Vous pouvez configurer les paramètres sur cette page comme suit.

    Paramètre

    Description

    Nom de la source de données

    Saisissez un nom personnalisé pour la source de données, par exemple SSH_DB.

    Mode de configuration

    Utilisez l'option par défaut User-created Data Store with Public IP Addresses.

    Méthode d'authentification

    Nous recommandons l'authentification par clé publique SSH DataWorks.

    Adresse hôte

    Connectez-vous à la console Network Load Balancer. Dans la barre de navigation supérieure, sélectionnez la région. Localisez l'instance et cliquez sur son nom pour ouvrir la page des détails de l'instance. Copiez le Domain Name pour l'utiliser comme Host Address.

    Port hôte

    Le port hôte du serveur est 22.

    Nom d'utilisateur

    Le nom d'utilisateur du serveur est root.

    Clé publique

    Cliquez sur Generate Key Pair. La plateforme génère une clé publique basée sur le nom d'utilisateur que vous avez configuré.

    Important

    Avant de tester la connexion, ajoutez la clé publique au fichier .ssh/authorized_keys sur les deux hôtes ECS. Sinon, le test échouera.

  5. Testez la connectivité du groupe de ressources.

    Dans la section Connection Configuration, localisez le groupe de ressources serverless lié à votre espace de travail et cliquez sur Test Connectivity dans la colonne Connected state.

Exécuter la tâche SSH

Créez et développez un nœud SSH, puis vérifiez l'équilibrage de charge en examinant les résultats de la tâche.

Créer un nœud SSH

Créez un nœud SSH comme décrit ci-dessous. Pour plus d'informations, consultez la rubrique Créer un nœud SSH.

  1. Accédez à la page Workspaces de la console DataWorks. Dans la barre de navigation supérieure, sélectionnez la région souhaitée. Localisez l'espace de travail souhaité et choisissez Shortcuts > Data Studio dans la colonne Actions.

  2. Dans le volet de navigation de gauche, cliquez sur l'icône image. Cliquez sur l'icône image à côté de Project Directory, puis choisissez New Node > General > SSH pour ouvrir la boîte de dialogue New Node.

  3. Dans la boîte de dialogue New Node, saisissez un Name personnalisé pour le nœud SSH.

  4. Cliquez sur Confirm pour accéder à l'éditeur de nœud.

Développer le nœud SSH

Sur la page de l'éditeur de nœud, ajoutez l'exemple de code suivant et configurez l'environnement d'exécution.

  1. Rédigez le code du nœud SSH.

    Dans l'éditeur de code, saisissez la commande d'exemple suivante :

    cat /tmp/a.txt
  2. Configurez l'environnement d'exécution.

    • Data Source : dans la liste déroulante Select a data source en haut de l'éditeur, sélectionnez la source de données SSH_DB.

    • Configuration du groupe de ressources : dans le volet de droite, cliquez sur Run Configuration et définissez Resource Group sur votre groupe de ressources serverless.

  3. Cliquez sur le bouton Save dans la barre d'outils pour enregistrer le nœud SSH.

Afficher les résultats de la tâche

Exécutez le nœud SSH plusieurs fois et comparez la sortie pour vérifier que l'équilibrage de charge est efficace.

  1. Exécutez la tâche du nœud SSH.

    Cliquez sur le bouton Run dans la barre d'outils. Une fois la première exécution terminée, exécutez à nouveau la tâche.

  2. Affichez les résultats de la tâche.

    Remarque

    La sortie peut varier entre les exécutions car la tâche est acheminée vers une instance ECS différente à chaque fois.

    Résultat d'exécution 1.

    2025-04-11 16:53:05 INFO =============================================
    2025-04-11 16:53:06,657 INFO [SshWrapperMain.java:151] - Get PrivateKey Content OK
    2025-04-11 16:53:06,667 INFO [SshExecutorUtil.java:33] - User: xxx
    2025-04-11 16:53:06,668 INFO [SshExecutorUtil.java:34] - Host: xxx
    2025-04-11 16:53:06,668 INFO [SshExecutorUtil.java:35] - Port: 22
    2025-04-11 16:53:07,876 INFO [SshExecutorUtil.java:55] - session connect success
    2025-04-11 16:53:07,877 INFO [SshExecutorUtil.java:56] - code:
    cat /tmp/a.txt
    2025-04-11 16:53:07,894 INFO [SshExecutorUtil.java:66] - channel connect success
    I am the first server
    2025-04-11 16:53:09 INFO =============================================
    2025-04-11 16:53:09 INFO Exit code of the Shell command 0
    2025-04-11 16:53:09 INFO --- Invocation of Shell command completed ---
    2025-04-11 16:53:09 INFO Shell run successfully!
    2025-04-11 16:53:09 INFO Current task status: FINISH
    2025-04-11 16:53:09 INFO Cost time is: 3.238s

    Résultat d'exécution 2 :

    Cette sortie affiche « I am the second server », ce qui indique que la demande a été acheminée vers la deuxième instance ECS. Le journal d'exécution est le suivant :

    2025-04-11 16:53:56 INFO ============================================================
    2025-04-11 16:53:57,632 INFO [SshWrapperMain.java:151] - Get PrivateKey Content OK
    2025-04-11 16:53:57,645 INFO [SshExecutorUtil.java:33] - User:
    2025-04-11 16:53:57,645 INFO [SshExecutorUtil.java:34] - Host:
    2025-04-11 16:53:57,645 INFO [SshExecutorUtil.java:35] - Port: 22
    2025-04-11 16:53:58,746 INFO [SshExecutorUtil.java:55] - session connect success
    2025-04-11 16:53:58,746 INFO [SshExecutorUtil.java:56] - code:
    cat /tmp/a.txt
    2025-04-11 16:53:58,764 INFO [SshExecutorUtil.java:66] - channel connect success
    I am the second server
    2025-04-11 16:53:59 INFO ============================================================
    2025-04-11 16:53:59 INFO Exit code of the Shell command 0
    2025-04-11 16:53:59 INFO --- Invocation of Shell command completed ---
    2025-04-11 16:53:59 INFO Shell run successfully!
    2025-04-11 16:53:59 INFO Current task status: FINISH
    2025-04-11 16:53:59 INFO Cost time is: 3.011s

Fonctionnement

DataWorks utilise NLB pour garantir l'exécution stable des tâches SSH à forte concurrence comme suit :

Plusieurs instances ECS sont ajoutées à un groupe de serveurs NLB, et le nom DNS de l'instance NLB sert de source de données SSH dans DataWorks. L'écouteur NLB intercepte les demandes de tâches des nœuds SSH et les distribue aux instances ECS saines en fonction de sa politique d'équilibrage de charge. Les résultats d'exécution reviennent via NLB et apparaissent dans le journal du nœud SSH.