Configuración de Neptune ML sin utilizar la plantilla de AWS CloudFormation de inicio rápido - Amazon Neptune

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Configuración de Neptune ML sin utilizar la plantilla de AWS CloudFormation de inicio rápido

1. Comenzar con un clúster de base de datos de Neptune que funcione

Si no utiliza la plantilla de inicio rápido de AWS CloudFormation para configurar Neptune ML, necesitará un clúster de base de datos de Neptune existente con el que trabajar. Si lo desea, puede usar uno que ya tenga, clonar uno que ya esté utilizando o crear uno nuevo (consulte Creación de un clúster de base de datos).

2. Instalación del servicio Neptune-Export

Si aún no lo ha hecho, instale el servicio Neptune-Export, tal y como se explica en Uso del servicio Neptune-Export para exportar datos de Neptune.

Añada una regla de entrada al grupo de seguridad de NeptuneExportSecurityGroup que cree la instalación, con la siguiente configuración:

  • Tipo: Custom TCP

  • Protocolo: TCP

  • Intervalo de puertos: 80 - 443

  • Origen: (ID del grupo de seguridad del clúster de base de datos de Neptune)

3. Creación de un rol de IAM de NeptuneLoadFromS3 personalizado

Si aún no lo ha hecho, cree un rol de IAM de NeptuneLoadFromS3 personalizado, tal como se explica en Creación de un rol de IAM para acceder a Amazon S3.

Para crear un rol de NeptuneSageMakerIAMRole personalizado

Utilice la consola de IAM para crear un NeptuneSageMakerIAMRole personalizado mediante la siguiente política:

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeDhcpOptions", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "ecr:GetAuthorizationToken", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "ecr:BatchCheckLayerAvailability" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::*:role/*" ], "Condition": { "StringEquals": { "iam:PassedToService": [ "sagemaker.amazonaws.com" ] } }, "Effect": "Allow" }, { "Action": [ "kms:CreateGrant", "kms:Decrypt", "kms:GenerateDataKey*" ], "Resource": "arn:aws:kms:*:*:key/*", "Effect": "Allow" }, { "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:GetLogEvents" ], "Resource": [ "arn:aws:logs:*:*:log-group:/aws/sagemaker/*" ], "Effect": "Allow" }, { "Action": [ "sagemaker:AddTags", "sagemaker:CreateEndpoint", "sagemaker:CreateEndpointConfig", "sagemaker:CreateHyperParameterTuningJob", "sagemaker:CreateModel", "sagemaker:CreateProcessingJob", "sagemaker:CreateTrainingJob", "sagemaker:CreateTransformJob", "sagemaker:DeleteEndpoint", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteModel", "sagemaker:DescribeEndpoint", "sagemaker:DescribeEndpointConfig", "sagemaker:DescribeHyperParameterTuningJob", "sagemaker:DescribeModel", "sagemaker:DescribeProcessingJob", "sagemaker:DescribeTrainingJob", "sagemaker:DescribeTransformJob", "sagemaker:InvokeEndpoint", "sagemaker:ListTags", "sagemaker:ListTrainingJobsForHyperParameterTuningJob", "sagemaker:StopHyperParameterTuningJob", "sagemaker:StopProcessingJob", "sagemaker:StopTrainingJob", "sagemaker:StopTransformJob", "sagemaker:UpdateEndpoint", "sagemaker:UpdateEndpointWeightsAndCapacities" ], "Resource": [ "arn:aws:sagemaker:*:*:*" ], "Effect": "Allow" }, { "Action": [ "sagemaker:ListEndpointConfigs", "sagemaker:ListEndpoints", "sagemaker:ListHyperParameterTuningJobs", "sagemaker:ListModels", "sagemaker:ListProcessingJobs", "sagemaker:ListTrainingJobs", "sagemaker:ListTransformJobs" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject", "s3:AbortMultipartUpload", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::*" ], "Effect": "Allow" } ] }

Al crear este rol, edite la relación de confianza para que quede como se indica a continuación:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "ec2.amazonaws.com", "rds.amazonaws.com", "sagemaker.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

Por último, copie el ARN asignado a este nuevo rol de NeptuneSageMakerIAMRole.

importante
  • Asegúrese de que los permisos de Amazon S3 del NeptuneSageMakerIAMRole coincidan con los anteriores.

  • El ARN universal, arn:aws:s3:::*, se utiliza para el recurso de Amazon S3 en la política anterior. Si por algún motivo no se puede utilizar el ARN universal, se deben añadir a la sección de recursos arn:aws:s3:::graphlytics* y el ARN de cualquier otro recurso de Amazon S3 del cliente que utilicen los comandos de Neptune ML.

Configuración de un clúster de base de datos para habilitar Neptune ML

Para configurar un clúster de base de datos para Neptune ML
  1. En la consola de Neptune, vaya a Grupos de parámetros y, a continuación, al grupo de parámetros del clúster de base de datos asociado al clúster de base de datos que utilizará. Establezca el parámetro neptune_ml_iam_role en el ARN asignado al rol de NeptuneSageMakerIAMRole que acaba de crear.

  2. Vaya a Bases de datos y, a continuación, seleccione el clúster de base de datos que utilizará para Neptune ML. Seleccione Acciones y, a continuación, Administrar roles de IAM.

  3. En la página Administrar roles de IAM, seleccione Añadir rol y añada NeptuneSageMakerIAMRole. A continuación, añada el rol de NeptuneLoadFromS3.

  4. Reinicie la instancia de escritor del clúster de base de datos.

Creación de dos puntos de conexión de SageMaker en la VPC de Neptune

Por último, para que el motor Neptune acceda a las API de administración de SageMaker necesarias, debe crear dos puntos de conexión de SageMaker en la VPC de Neptune, tal como se explica en Creación de dos puntos de conexión para SageMaker en la VPC de Neptune.

Configuración manual de un cuaderno de Neptune para Neptune ML

Los cuadernos de Neptune SageMaker vienen precargados con una variedad de cuadernos de ejemplo para Neptune ML. Puede obtener una vista previa de estos ejemplos en el repositorio de GitHub de cuadernos gráficos de código abierto.

Puede utilizar uno de los cuadernos de Neptune existentes o, si lo desea, puede crear uno propio siguiendo las instrucciones que se indican en Uso del entorno de trabajo de Neptune para alojar los cuadernos de Neptune.

También puede configurar un cuaderno de Neptune predeterminado para usarlo con Neptune ML. Para ello, siga estos pasos:

Modificación de un cuaderno para Neptune ML
  1. Abra la consola de Amazon SageMaker en https://console.aws.amazon.com/sagemaker/.

  2. En el panel de navegación de la izquierda, seleccione Cuaderno y, a continuación, Instancias de cuaderno. Busque el nombre del cuaderno de Neptune que desee utilizar para Neptune ML y selecciónelo para ir a su página de detalles.

  3. Si la instancia del cuaderno se está ejecutando, seleccione el botón Detener, situado en la parte superior derecha de la página de detalles del cuaderno.

  4. En Configuración de instancias de cuaderno, en Configuración del ciclo de vida, seleccione el enlace para abrir la página del ciclo de vida del cuaderno.

  5. Seleccione Editar en la parte superior derecha y, a continuación, Continuar.

  6. En la pestaña Iniciar cuaderno, modifique el script para incluir comandos de exportación adicionales y para rellenar los campos del rol de IAM de Neptune ML y del URI del servicio de exportación, algo parecido a lo siguiente en función del intérprete de comandos:

    echo "export NEPTUNE_ML_ROLE_ARN=(your Neptune ML IAM role ARN)" >> ~/.bashrc echo "export NEPTUNE_EXPORT_API_URI=(your export service URI)" >> ~/.bashrc
  7. Seleccione Update (Actualizar).

  8. Vuelva a la página de instancias del cuaderno. En Permisos y cifrado hay un campo para el ARN del rol de IAM. Seleccione el enlace de este campo para ir al rol de IAM con el que se ejecuta esta instancia de cuaderno.

  9. Cree una nueva política insertada como esta:

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "cloudwatch:PutMetricData" ], "Resource": "arn:aws:cloudwatch:[AWS_REGION]:[AWS_ACCOUNT_ID]:*", "Effect": "Allow" }, { "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:PutLogEvents", "logs:GetLogEvents" ], "Resource": "arn:aws:logs:[AWS_REGION]:[AWS_ACCOUNT_ID]:*", "Effect": "Allow" }, { "Action": [ "s3:Put*", "s3:Get*", "s3:List*" ], "Resource": "arn:aws:s3:::*", "Effect": "Allow" }, { "Action": "execute-api:Invoke", "Resource": "arn:aws:execute-api:[AWS_REGION]:[AWS_ACCOUNT_ID]:*/*", "Effect": "Allow" }, { "Action": [ "sagemaker:CreateModel", "sagemaker:CreateEndpointConfig", "sagemaker:CreateEndpoint", "sagemaker:DescribeModel", "sagemaker:DescribeEndpointConfig", "sagemaker:DescribeEndpoint", "sagemaker:DeleteModel", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteEndpoint" ], "Resource": "arn:aws:sagemaker:[AWS_REGION]:[AWS_ACCOUNT_ID]:*/*", "Effect": "Allow" }, { "Action": [ "iam:PassRole" ], "Resource": "[YOUR_NEPTUNE_ML_IAM_ROLE_ARN]"", "Effect": "Allow" } ] }
  10. Guarde esta nueva política y asóciela al rol de IAM del paso 8.

  11. Seleccione Iniciar en la parte superior derecha de la página de detalles de la instancia del cuaderno de SageMaker para iniciar la instancia del cuaderno.