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.
Migre DNS registros de forma masiva a una zona alojada privada de Amazon Route 53
Creado por Ram Kandaswamy () AWS
Resumen
Los ingenieros de redes y los administradores de la nube necesitan una forma eficaz y sencilla de añadir registros del Sistema de nombres de dominio (Domain Name SystemDNS) a las zonas alojadas privadas en Amazon Route 53. El uso de un enfoque manual para copiar las entradas de una hoja de cálculo de Microsoft Excel a las ubicaciones adecuadas de la consola de Route 53 es tedioso y propenso a errores. Este patrón describe un enfoque automatizado que reduce el tiempo y el esfuerzo necesarios para añadir varios registros. También proporciona un conjunto de pasos repetibles para la creación de varias zonas alojadas.
Este patrón utiliza Amazon Simple Storage Service (Amazon S3) para almacenar registros. Para trabajar con los datos de manera eficiente, el patrón usa el JSON formato debido a su simplicidad y su capacidad para admitir un diccionario de Python (tipo de dict
datos).
nota
Si puede generar un archivo de zona desde su sistema, considere utilizar la función de importación de Route 53 en su lugar.
Requisitos previos y limitaciones
Requisitos previos
Una hoja de cálculo de Excel que contiene registros de zonas alojadas privadas
Familiaridad con distintos tipos de DNS registros, como el registro A, el registro Name Authority Pointer (NAPTR) y el SRV registro (consulte Tipos de DNS registros admitidos)
Familiaridad con el lenguaje Python y sus bibliotecas
Limitaciones
El patrón no proporciona una cobertura amplia para todos los escenarios de casos de uso. Por ejemplo, la llamada change_resource_record_sets
no utiliza todas las propiedades disponibles del. API En la hoja de cálculo de Excel, se supone que el valor de cada fila es único. Se espera que aparezcan varios valores para cada nombre de dominio completo (FQDN) en la misma fila. Si eso no es cierto, debe modificar el código proporcionado en este patrón para realizar la concatenación necesaria.
El patrón usa Python (Boto3) AWS SDK para llamar directamente al servicio Route 53. Puede mejorar el código para usar un AWS CloudFormation contenedor para los
update_stack
comandoscreate_stack
y, además, usar los JSON valores para rellenar los recursos de la plantilla.
Arquitectura
Pila de tecnología
Zonas alojadas privadas de Route 53 para enrutar el tráfico
Amazon S3 para almacenar el JSON archivo de salida

El flujo de trabajo consta de los siguientes pasos, tal como se ilustra en el diagrama anterior y se describe en la sección Epics:
Cargue una hoja de cálculo de Excel que contenga la información del conjunto de registros en un bucket de S3.
Cree y ejecute un script de Python que convierta los datos de Excel en JSON formato.
Lea los registros del bucket de S3 y limpie los datos.
Cree conjuntos de registros en su zona alojada privada.
Herramientas
Route 53: Amazon Route 53 es un servicio DNS web escalable y de alta disponibilidad que gestiona el registro de dominios, el DNS enrutamiento y la comprobación del estado.
Amazon S3: Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento de objetos. Puede utilizar Amazon S3 para almacenar y recuperar cualquier cantidad de datos en cualquier momento y desde cualquier parte de la web.
Epics
Tarea | Descripción | Habilidades requeridas | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
Cree un archivo de Excel para sus registros. | Utilice los registros que exportó de su sistema actual para crear una hoja de cálculo de Excel que contenga las columnas necesarias para un registro, como el nombre de dominio completo (FQDN), el tipo de registro, el tiempo de vida (TTL) y el valor. Para SRV los registros NAPTR y, el valor es una combinación de varias propiedades, así que utilice el
| Ingeniero de datos, con conocimientos de Excel | ||||||||
Verifique el entorno de trabajo. | En suIDE, cree un archivo Python para convertir la hoja de trabajo de entrada de Excel en JSON formato. (En lugar de unaIDE, también puedes usar una SageMaker libreta de Amazon para trabajar con código Python). Compruebe que la versión de Python que está utilizando sea la 3.7 o posterior.
Instale el paquete pandas.
| ¿General AWS | ||||||||
Convierta los datos de la hoja de cálculo de Excel enJSON. | Cree un archivo Python que contenga el siguiente código para convertirlo de Excel aJSON.
donde | Ingeniero de datos, con conocimientos de Python | ||||||||
Cargue el archivo JSON en un bucket de S3. | Cargue el archivo | Desarrollador de aplicaciones |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Crear una zona alojada privada. | Usa create_hosted_zone
También puedes usar una herramienta de infraestructura como código (IaC), por ejemplo, AWS CloudFormation para reemplazar estos pasos por una plantilla que cree una pila con los recursos y propiedades adecuados. | Ingeniero en la nube, administrador de redes, con habilidades de Python |
Recupere detalles en formato de diccionario de Amazon S3. | Usa el siguiente código para leer el bucket de S3 y obtener los JSON valores como un diccionario de Python.
donde | Desarrollador de aplicaciones, con conocimientos de Python |
Limpie los valores de datos para los espacios y caracteres Unicode. | Como medida de seguridad para garantizar la exactitud de los datos, utilice el siguiente código para realizar una operación de extracción de los valores incluidos en
| Desarrollador de aplicaciones, con conocimientos de Python |
Insertar registros. | Use el siguiente código como parte del bucle
Dónde | Desarrollador de aplicaciones, con conocimientos de Python |
Recursos relacionados
Referencias
Creación de registros mediante la importación de un archivo de zona (documentación de Amazon Route 53)
método create_hosted_zone
(documentación de Boto3) método change_resource_record_sets
(documentación de Boto3)
Tutoriales y videos
El tutorial de Python
(documentación de Python) DNSdiseño con Amazon Route 53
(YouTube vídeo, charlas técnicas AWS en línea)