Utiliser l'appairage de réseaux VPC avec Training

Vous pouvez configurer des tâches API Platform Training pour les appairer au cloud privé virtuel (VPC). Cela permet à vos tâches d'entraînement d'accéder à des adresses IP privées au sein de vos réseaux Google Cloud ou sur site. L'utilisation d'une adresse IP privée pour vous connecter à vos tâches d'entraînement offre une sécurité réseau et une latence réseau inférieures à celles d'une adresse IP publique.

Ce guide explique comment configurer une adresse IP privée avec AI Platform Training en utilisant l'appairage de réseaux VPC pour appairer votre réseau avec des tâches AI Platform Training. Il est recommandé aux administrateurs réseau qui connaissent déjà les concepts de mise en réseau de Google Cloud.

Aperçu

Ce guide couvre les tâches suivantes :

  • Configurer l'accès aux services privés pour le VPC. Cela permet d'établir une connexion d'appairage entre votre VPC et le réseau VPC partagé de Google.
  • Réfléchissez à la plage d'adresses IP que vous devez réserver pour AI Platform Training.
  • Le cas échéant, exportez des routes personnalisées afin qu'AI Platform Training puisse les importer.
  • Vérifiez l'état de vos connexions d'appairage.
  • Envoyez une tâche d'entraînement sur votre réseau.
  • Recherchez les éventuelles tâches d'entraînement actives sur un réseau avant d'envoyer des tâches sur un autre réseau.
  • Assurez-vous qu'il est possible pour une tâche d'entraînement d'accéder aux adresses IP privées de votre réseau.

Avant de commencer

  • Sélectionnez un VPC que vous souhaitez appairer aux tâches AI Platform Training.
  • Sélectionnez ou créez un projet Google Cloud pour exécuter des tâches d'entraînement avec AI Platform Training.
  • Make sure that billing is enabled for your Google Cloud project.

  • Enable the Compute Engine API, AI Platform Training & Prediction, and the Service Networking APIs.

    Enable the APIs

  • Si vous le souhaitez, vous ne pouvez utiliser que le VPC partagé. Si vous utilisez un VPC partagé, vous exécutez généralement des tâches d'entraînement dans un projet Google Cloud distinct de votre projet hôte VPC. Activez les API Compute Engine et Service Networking dans les deux projets. Apprenez à provisionner un VPC partagé.
  • Installez la CLI gcloud si vous souhaitez exécuter les exemples de ligne de commande gcloud de ce guide.

Autorisations

Si vous n'êtes pas propriétaire ou éditeur d'un projet, assurez-vous de disposer du rôle d'administrateur réseau Compute, qui inclut les autorisations nécessaires pour gérer les ressources réseau.

Pour exécuter des tâches sur AI Platform Training, vous devez disposer des autorisations incluses dans les rôles Administrateur ou Développeur AI Platform Training. En savoir plus sur les rôles IAM d'AI Platform Training.

Appairage avec un réseau sur site

Pour l'appairage de réseaux VPC avec un réseau sur site, procédez comme suit :

  1. Connectez votre réseau sur site à votre VPC. Vous pouvez utiliser un tunnel VPN ou une interconnexion.
  2. Configurez des routes personnalisées du VPC vers votre réseau sur site.
  3. Exportez vos routes personnalisées afin qu'AI Platform Training puisse les importer.

Configurer l'accès aux services privés pour votre VPC

Lorsque vous configurez l'accès aux services privés, vous établissez une connexion privée entre votre réseau et un réseau appartenant à Google ou à un service tiers (producteurs de services). Dans ce scénario, AI Platform Training est un producteur de services. Pour configurer l'accès aux services privés, réservez une plage d'adresses IP aux producteurs de services, puis créez une connexion d'appairage avec AI Platform Training.

Si vous disposez déjà d'un VPC avec un accès aux services privés et que vous souhaitez l'utiliser pour appairer votre tâche d'entraînement, passez à l'exportation de routes personnalisées.

  1. Définissez des variables d'environnement pour l'ID de votre projet, le nom de la région, le nom de votre plage réservée et le nom de votre réseau.
    • Si vous utilisez un VPC partagé, utilisez l'ID de votre projet hôte VPC. Sinon, utilisez l'ID du projet Google Cloud que vous utilisez pour exécuter des tâches d'entraînement.
    • Sélectionnez une région éligible à utiliser avec AI Platform Training.
  2. Activez les API requises. Si vous utilisez un VPC partagé, veillez à activer les API dans votre projet hôte VPC et le projet Google Cloud que vous utilisez pour exécuter des tâches d'entraînement.
  3. Définissez une plage réservée à l'aide de gcloud compute addresses create.
  4. Établissez une connexion d'appairage entre votre projet hôte VPC et Service Networking de Google à l'aide de gcloud services vpc-peerings connect.

    PROJECT_ID=YOUR_PROJECT_ID
    gcloud config set project $PROJECT_ID
    
    REGION=YOUR_REGION
    
    # This is for display only; you can name the range anything.
    PEERING_RANGE_NAME=google-reserved-range
    
    NETWORK=YOUR_NETWORK_NAME
    
    # NOTE: `prefix-length=16` means a CIDR block with mask /16 will be
    # reserved for use by Google services, such as AI Platform Training.
    gcloud compute addresses create $PEERING_RANGE_NAME \
      --global \
      --prefix-length=16 \
      --description="peering range for Google service" \
      --network=$NETWORK \
      --purpose=VPC_PEERING
    
    # Create the VPC connection.
    gcloud services vpc-peerings connect \
      --service=servicenetworking.googleapis.com \
      --network=$NETWORK \
      --ranges=$PEERING_RANGE_NAME \
      --project=$PROJECT_ID
    

Obtenez plus d'informations sur l'accès aux services privés.

Réserver des plages d'adresses IP pour AI Platform Training

Lorsque vous réservez une plage d'adresses IP pour des producteurs de services, elle peut être utilisée à la fois par AI Platform Training et d'autres services. Par conséquent, si vous prévoyez de connecter d'autres services à la même plage réservée, vous devez également vous assurer que cette plage est suffisamment étendue pour éviter l'épuisement des adresses IP.

Vous pouvez estimer avec prudence le nombre d'adresses utilisé par chaque tâche d'entraînement comme suit:

nextPow2(32 * NUMBER_OF_POOLS * max(POOL_SIZE))

Le tableau suivant indique le nombre maximal de tâches d'entraînement en parallèle que vous pouvez exécuter avec des plages réservées de /16 à /19, en supposant que la plage est utilisée presque exclusivement par AI Platform Training.

Configurer la machine pour la tâche d'entraînement Plage réservée Nombre maximal de tâches parallèles
Jusqu'à 8 nœuds.
Par exemple : 6 nœuds de calcul, 1 maître et 1 serveur de paramètres.
/16 63
/17 31
/18 15
/19 7
Jusqu'à 16 nœuds.
Par exemple : 14 nœuds de calcul, 1 maître et 1 serveur de paramètres.
/16 31
/17 15
/18 7
/19 3
Jusqu'à 32 nœuds.
Par exemple : 30 nœuds de calcul, 1 maître et 1 serveur de paramètres.
/16 15
/17 7
/18 3
/19 1

Apprenez à spécifier des types de machines pour les tâches d'entraînement.

Exporter les routes personnalisées

Si vous utilisez des routes personnalisées, vous devez les exporter pour qu'AI Platform Training puisse les importer. Si vous n'utilisez pas de routes personnalisées, passez à la section Envoyer votre tâche d'entraînement.

Pour exporter des routes personnalisées, vous devez mettre à jour la connexion d'appairage dans votre VPC. L'exportation de routes personnalisées envoie toutes les routes statiques et dynamiques éligibles de votre réseau VPC, telles que les routes vers votre réseau sur site, vers les réseaux des producteurs de services (AI Platform Training dans ce cas). Cela établit les connexions nécessaires et permet aux tâches d'entraînement de renvoyer du trafic vers votre réseau sur site.

En savoir plus sur les connexions privées avec des réseaux sur site.

Console

  1. Accédez à la page "Appairage de réseaux VPC" dans la console Google Cloud.
    Accéder à la page Appairage de réseaux VPC
  2. Sélectionnez la connexion d'appairage à mettre à jour.
  3. Cliquez sur Modifier.
  4. Sélectionnez Exporter les routes personnalisées.

gcloud

  1. Recherchez le nom de la connexion d'appairage à mettre à jour. Si vous disposez de plusieurs connexions d'appairage, omettez l'indicateur --format.

    gcloud services vpc-peerings list \
      --network=$NETWORK \
      --service=servicenetworking.googleapis.com \
      --project=$PROJECT_ID \
      --format "value(peering)"
    
  2. Mettez à jour la connexion d'appairage pour exporter les routes personnalisées.

    gcloud compute networks peerings update PEERING-NAME \
        --network=$NETWORK \
        --export-custom-routes \
        --project=$PROJECT_ID
    

Vérifier l'état de vos connexions d'appairage

Pour vérifier que les connexions d'appairage sont actives, vous pouvez les répertorier.

gcloud compute networks peerings list --network $NETWORK

Vous devriez voir que l'état de l'appairage que vous venez de créer est ACTIVE. En savoir plus sur les connexions d'appairage actives

Envoyer la tâche d'entraînement

Lorsque vous envoyez votre tâche d'entraînement, vous devez spécifier le nom du réseau auquel vous souhaitez qu'AI Platform Training ait accès.

Si vous envoyez une tâche d'entraînement sans nom de réseau, elle s'exécute par défaut sans connexion d'appairage et sans accès aux adresses IP privées de votre projet.

  1. 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)")
    cat << EOF > config.yaml
    trainingInput:
      scaleTier: BASIC
      network: projects/$PROJECT_NUMBER/global/networks/$NETWORK
    EOF
    
  2. Créez une application d'entraînement à envoyer vers AI Platform Training.

  3. Spécifiez d'autres paramètres pour votre tâche d'entraînement. En savoir plus sur les paramètres nécessaires pour envoyer une tâche d'entraînement

    TRAINER_PACKAGE_PATH="PATH_TO_YOUR_TRAINING_APPLICATION"
    now=$(date +"%Y%m%d_%H%M%S")
    JOB_NAME="YOUR_JOB_NAME_$now"
    MAIN_TRAINER_MODULE="trainer.task"
    JOB_DIR="gs://PATH_TO_OUTPUT_DIRECTORY"
    REGION="us-east1"
    RUNTIME_VERSION="2.11"
    PYTHON_VERSION="3.7"
    
  4. Envoyez la tâche en transmettant votre fichier config.yaml :

    gcloud ai-platform jobs submit training $JOB_NAME \
      --module-name $MAIN_TRAINER_MODULE \
      --job-dir $JOB_DIR \
      --region $REGION \
      --runtime-version $RUNTIME_VERSION \
      --python-version $PYTHON_VERSION \
      --package-path $TRAINER_PACKAGE_PATH \
      --config config.yaml
    

Exécuter des tâches sur différents réseaux

Vous ne pouvez pas envoyer de tâches d'entraînement à un nouveau réseau tant qu'il reste des tâches d'entraînement actives sur un autre réseau. Avant de passer à un autre réseau, vous devez attendre que toutes les tâches d'entraînement envoyées soient terminées, ou les annuler. Par exemple, si vous configurez un réseau pour le test et que vous soumettez des tâches d'entraînement sur ce réseau de test, vous devez rechercher des tâches actives sur le réseau de test et vous assurer qu'elles sont terminées ou annulées avant d'envoyer des tâches d'entraînement sur un autre réseau pour la production.

Répertorier les tâches d'entraînement toujours actives sur un réseau :

PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
NETWORK_FULL_NAME="projects/$PROJECT_NUMBER/global/networks/$NETWORK"

gcloud ai-platform jobs list \
  --filter "(state=queued OR state=running) AND (trainingInput.network=$NETWORK_FULL_NAME)"

Votre sortie pourrait ressembler à ce qui suit :

JOB_ID                                             STATUS     CREATED
job_20200502_151443                                QUEUED     2020-05-02T15:14:47

Si des tâches sont répertoriées, vous pouvez attendre qu'elles soient terminées ou utiliser gcloud ai-platform jobs cancel pour les annuler.

Tester l'accès aux tâches d'entraînement

Pour vérifier que votre tâche d'entraînement peut accéder à un point de terminaison de votre réseau, vous devez configurer un point de terminaison sur votre réseau, puis envoyer une tâche d'entraînement qui y accède. Pour en savoir plus, consultez le guide de test de votre connexion d'appairage.

Dépannage

Cette section répertorie certains problèmes courants liés à la configuration de l'appairage de réseaux VPC avec AI Platform Training.

  • Lorsque vous envoyez votre tâche d'entraînement, utilisez le nom complet du réseau :

    "projects/YOUR_PROJECT_NUMBER/global/networks/YOUR_NETWORK_NAME"

  • N'utilisez pas de TPU dans une tâche d'entraînement appairée à votre réseau. Les TPU ne sont pas compatibles avec l'appairage de réseaux VPC sur AI Platform Training.

  • Assurez-vous qu'il n'existe aucune tâche d'entraînement active sur un réseau avant de soumettre des tâches d'entraînement sur un autre réseau.

  • Assurez-vous d'avoir alloué une plage d'adresses IP suffisante à tous les producteurs de services auxquels votre réseau se connecte, y compris AI Platform Training.

Pour plus d'informations sur le dépannage, consultez le guide de dépannage sur l'appairage de réseaux VPC.

Étape suivante