Prueba la conexión de intercambio de tráfico para IP privada

En esta guía, se explica cómo probar que un trabajo de entrenamiento pueda acceder a las IP privadas en tu red. Primero, debes crear una conexión privada entre la red de VPC y AI Platform Training.

Descripción general

La configuración de esta prueba tiene dos partes:

  • Configura un extremo en tu red.
  • Envía un trabajo de entrenamiento de prueba para acceder a ese extremo.

Configura un extremo

Para configurar un extremo, configura un servidor local en una instancia de VM de la red.

  1. Crea una instancia de Compute Engine en tu red de VPC.
  2. Verifica las reglas de firewall para asegurarte de que no restrinjan el ingreso desde la red de AI Platform Training. Si es así, agrega una regla para asegurarte de que la red de AI Platform Training pueda acceder al rango de IP que reservaste para AI Platform Training (y otros productores de servicios).
  3. Busca la dirección IP privada de tu VM:

    • Ir a la página Instancias de VM
    • Ve a la página Detalles de instancia de VM de tu instancia y busca la IP interna que se enumera en la página.
    • Configura el nombre de tu instancia y ejecuta el siguiente comando de gcloud:

      INSTANCE_NAME="your-instance-name"
      gcloud compute instances describe $INSTANCE_NAME \
        --format="value(networkInterfaces.networkIP)"
      
  4. Establece una conexión SSH con tu VM e instala Node.js.

  5. Copia el código de Node.JS de muestra y completa tu dirección IP privada:

     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. Ejecuta el servidor:

    nodejs hw.js
    
  7. Sal de SSH de la VM para enviar tu trabajo de entrenamiento.

Envía un trabajo de entrenamiento de prueba

En lugar de entrenar un modelo, este trabajo de entrenamiento accede a tu extremo para verificar que AI Platform Training pueda acceder a una IP privada en tu red.

  1. Copia la aplicación de entrenamiento de Python de muestra para enviarla a AI Platform Training.
  2. Actualiza el código para incluir la dirección IP privada:

    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. Crea un archivo config.yaml para especificar la red. Si usas una VPC compartida, usa el número del proyecto host de VPC.

    Asegúrate de que el nombre de la red tenga el formato correcto:

    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. Envía el trabajo a 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
    

    Tu trabajo debería tener éxito y, luego, mostrar “Intercambio de tráfico correcto”. Esto valida tu conexión de intercambio de tráfico con AI Platform Training.