Tester votre connexion d'appairage pour une adresse IP privée

Ce guide explique comment vérifier qu'un job d'entraînement peut accéder aux adresses IP privées de votre réseau. Tout d'abord, vous devez créer une connexion privée entre votre réseau VPC et AI Platform Training.

Présentation

La configuration de ce test s'effectue en deux étapes :

  • Configurez un point de terminaison sur votre réseau.
  • Envoyez une tâche d'entraînement de test pour accéder à ce point de terminaison.

Configurer un point de terminaison

Pour configurer un point de terminaison, configurez un serveur local sur une instance de VM de votre réseau.

  1. Créez une instance Compute Engine dans votre réseau VPC.
  2. Vérifiez vos règles de pare-feu pour vous assurer qu'elles ne limitent pas les entrées du réseau AI Platform Training. Le cas échéant, ajoutez une règle pour vous assurer que le réseau AI Platform Training peut accéder à la plage d'adresses IP que vous avez réservée pour AI Platform Training (et d'autres producteurs de services).
  3. Recherchez l'adresse IP privée de votre VM :

    • Accéder à la page "Instances de VM"
    • Accédez à la page Détails de l'instance de VM correspondant à votre instance, puis recherchez l'adresse IP interne répertoriée sur la page.
    • Définissez le nom de votre instance, puis exécutez la commande gcloud suivante :

      INSTANCE_NAME="your-instance-name"
      gcloud compute instances describe $INSTANCE_NAME \
        --format="value(networkInterfaces.networkIP)"
      
  4. Connectez-vous en SSH à votre VM et installez Node.js.

  5. Copiez l'exemple de code Node.js et saisissez votre adresse IP privée :

     const http = require('http');
     // Fill in the value of your vm's private IP
     const hostname = 'your_private_ip';
     const port = 3000;
     const server = http.createServer((req, res) => {
               res.statusCode = 200;
               res.setHeader('Content-Type', 'text/plain');
               res.end('Hello World ' + req.url + '\n');
     });
     server.listen(port, hostname, () => {
               console.log('Server running at http://${hostname}:${port}/');
     });
     ```
    
  6. Exécutez votre serveur :

    nodejs hw.js
    
  7. Déconnectez-vous de la VM SSH pour envoyer votre tâche d'entraînement.

Envoyer une tâche d'entraînement de test

Au lieu d'entraîner un modèle, cette tâche d'entraînement accède à votre point de terminaison pour vérifier qu'AI Platform Training peut accéder aux adresses IP privées de votre réseau.

  1. Copiez l'exemple d'application d'entraînement Python à envoyer à AI Platform Training.
  2. Mettez à jour le code pour inclure votre adresse IP privée :

    import logging
    import os
    import sys
    def main():
      # Fill in the value of your vm's private IP
      hostname = "your_private_ip"
      response = os.system("curl http://" + hostname + ":3000/you_can_write_your_name_here")
      if response == 0:
        print(hostname, "is up!")
        logging.info("%s is up; Peering successful!", hostname)
        sys.exit(0)
      else:
        logging.error("%s is down; Peering failed!", hostname)
        sys.exit(1)
    if __name__ == "__main__":
      logging.getLogger().setLevel(logging.INFO)
      main()
    
  3. Créez un fichier config.yaml pour spécifier le réseau. Si vous utilisez un VPC partagé, utilisez le numéro de votre projet hôte VPC.

    Assurez-vous que le format du nom du réseau est correct :

    PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
    NETWORK=your-network-name
    
    cat << EOF > config.yaml
    trainingInput:
      scaleTier: BASIC
      network: projects/$PROJECT_NUMBER/global/networks/$NETWORK
    EOF
    
  4. Envoyez la tâche à AI Platform Training :

    BUCKET_NAME=your_bucket_name
    JOB_ID='test_vpc_peering_job'
    
    gcloud ai-platform jobs submit training $JOB_ID \
      --module-name trainingcode.test_peering \
      --stream-logs \
      --runtime-version 1.15 \
      --job-dir gs://$BUCKET_NAME/$JOB_ID \
      --region us-central1 \
      --package-path trainingcode/ \
      --config config.yaml
    

    Votre tâche doit réussir et afficher "Peering successful" (Appairage réussi). Cela valide votre connexion d'appairage avec AI Platform Training.