Tengo un clúster EMR en ejecución y estoy tratando de vincular el portátil a github.
Tengo:
Intenté vincular el cuaderno a un repositorio privado con mi usuario/contraseña secreta, pero aparece el siguiente error:
Unable to reach repository https://github.com/<my repo>. Ensure network and security groups have valid configurations. Ensure that the repository information provided is correct.Veo en los documentos que habla de las opciones NAT y VPG, las cuales no tengo. ¿Es eso necesario? Los documentos son realmente ligeros en cuanto a detalles/configuración.
https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-managed-notebooks-git-considerations.html
Cualquier ayuda es apreciada.
Tienes que cuidar 4 cosas:
el repositorio de git junto con la rama de destino debe existir
configurar las credenciales para acceder a Git usando Secrets Manager
su clúster EMR obligatoriamente debe estar en una subred privada y NO en una subred pública. Obligatoriamente debe tener un NAT G/W en su VPC que esta subred privada debe usar para llegar a Internet, es decir, configure su tabla de rutas para que esta subred privada asigne 0.0.0.0/0 al NAT G/W.
Necesitas tener 2 Grupos de Seguridad (SG):
i. Un SG para la instancia maestra
regla de entrada : permitir el puerto TCP 18888 desde cualquier recurso en el grupo de seguridad EC2 predeterminado para EMR Notebooks
regla de salida : ninguna
ii. Un SG para la instancia del cuaderno
i. Un SG para la instancia maestra
regla de entrada : ninguna
regla de salida : permita el puerto TCP 18888 a cualquier recurso en el grupo de seguridad EC2 predeterminado para EMR Notebooks. También permita que la computadora portátil enrute el tráfico a Internet a través del clúster, por ejemplo, HTTPS TCP 443 0.0.0.0/0
Fuente: https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-managed-notebooks-security-groups.html
de extremo a extremo, de la siguiente manera:
1.) crear subredes "privadas".
desde cero, primero creé una vpc dedicada: digamos 10.0.16.0/20.
A continuación, creo una puerta de enlace a Internet. Adjuntarlo a la vpc anterior.
En esta VPC, primero cree una subred "pública". decir 10.0.17.0/24. Es público debido a la entrada de puerta de enlace de Internet anterior en su tabla de rutas. Esto se hace mediante la creación de una tabla de rutas en la sección VPC, y esa tabla de rutas tiene esta puerta de enlace de Internet debajo. Esta tabla de rutas se adjunta a esta subred 10.0.17.0/24, por lo que ahora es "pública".
Ahora, cree otra subred 10.0.20.0/24. Cree una puerta de enlace NAT y haga una entrada para ella en la tabla de rutas de esta subred. Esta puerta de enlace NAT debe fluir hacia la subred pública creada anteriormente, es decir, 10.0.17.0/24.
Ahora, su subred privada 10.0.20.0/24 tiene acceso a Internet a través de la puerta de enlace NAT que interactúa con la subred pública anterior.
2.) Ingrese a "Grupos de seguridad". hay un total de 4 SG en juego,
de los cuales, ElasticMapReduceEditors-Editor y ElasticMapReduceEditors-Livy deben tener permitida la salida a 0.0.0.0/0. Los otros dos SG son para Maestro y Esclavo, es decir, ElasticMapReduce-Master-Private y ElasticMapReduce-Slave-Private
3.) Cree repositorios privados de Git. En la sección de configuración de su perfil de github, cree un token de acceso personal. Mientras proporciona detalles sobre la creación de un repositorio de EMR, agregue este valor secreto y guárdelo. Su rol de servicio de notebook debe tener el permiso "GetSecretValue" en todos los repositorios, es decir, "r-*".
Además, asegúrese de que la rama especificada debe existir antes de configurar al crear/vincular repositorios.
El mayor problema con AWS es que son excelentes vendedores, pero posponen las cosas cuando se trata de posventa/mantenimiento de tantos productos que fabrican. Sus documentaciones son terribles, carecen de ejemplos completos y la gente tiene que confiar en las comunidades SO. Lo siento, amigo, también estoy procrastinando: p ¡Me gustaría ir a publicar esto en un buen blog y proporcionar el enlace en mi respuesta a continuación!