En este segundo curso de la especialización en ingeniería de datos, se profundiza en la ingesta de datos desde sistemas de origen, así como en conceptos de DataOps y la orquestación de canalizaciones de datos. Este curso es fundamental para entender las etapas iniciales del ciclo de vida de la ingeniería de datos.
Relación entre la ingesta de datos y el modelado de aprendizaje automático.
Sistemas de Origen de Datos
Interacción con sistemas de origen en el trabajo de un ingeniero de datos.
Ingesta de Datos
Desafíos en la ingesta de datos y su impacto en la calidad de los datos.
DataOps y Orquestación
Importancia de mantener la calidad y el rendimiento de los datos.
Datos Estructurados vs. No Estructurados
| Tema | Descripción |
|---|---|
| Visión General | Introducción a la ingesta de datos y su importancia en IA. |
| Sistemas de Origen | Tipos de sistemas y su interacción con la ingesta de datos. |
| Métodos de Ingesta | Estrategias para la ingesta de datos y sus desafíos. |
| DataOps y Orquestación | Organización y supervisión de flujos de trabajo de datos. |
| Datos Estructurados vs. No Estructurados | Comparación y relevancia de ambos tipos de datos en la actualidad. |
Este curso se centra en la comprensión de los sistemas de origen, la ingesta de datos y la creación de canalizaciones de datos. A lo largo de cuatro semanas, se explorarán diferentes tipos de sistemas fuente, técnicas de ingesta, prácticas de DataOps y la organización de canalizaciones de datos.
Este curso abarca un amplio espectro de conocimientos necesarios para la ingeniería de datos, desde la comprensión de los sistemas fuente hasta la organización y monitoreo de canalizaciones de datos. Se recomienda a los participantes que se preparen para un aprendizaje intensivo y práctico.
Acompáñame en el siguiente video para profundizar en los diferentes tipos de sistemas fuente y su importancia en el ciclo de vida de la ingeniería de datos.
En este documento se resumen los conceptos clave sobre los sistemas fuente que un ingeniero de datos puede encontrar, así como los tipos de datos que se pueden ingerir de estos sistemas.
Los datos con los que un ingeniero de datos trabaja se pueden clasificar en tres categorías principales:
Ejemplos: hojas de cálculo, bases de datos relacionales, archivos CSV.
Datos Semiestructurados:
Ejemplo de JSON:
json
{
"FirstName": "Joe",
"LastName": "Reis",
"Address": {
"City": "Madrid",
"PostalCode": "28001",
"Country": "España"
}
}
Datos No Estructurados:
Los sistemas fuente de los que se pueden ingerir datos se pueden clasificar en tres tipos generales:
| Tipo de Sistema Fuente | Descripción |
|---|---|
| Bases de Datos | Almacenan información de forma organizada, permitiendo operaciones CRUD (Crear, Leer, Actualizar, Eliminar). |
| Archivos | Pueden ser documentos, imágenes, videos o archivos CSV. Representan una secuencia de bytes que contienen información. |
| Sistemas de Streaming | Proporcionan un flujo continuo de datos en forma de mensajes sobre eventos. |
Almacenan información en tablas con filas y columnas.
Bases de Datos No Relacionales (NoSQL):
Como ingeniero de datos, se extraerán datos sin procesar de diferentes sistemas de origen, que pueden ser estructurados, semiestructurados o no estructurados. Los sistemas fuente incluyen bases de datos, archivos y sistemas de streaming. En las próximas secciones del curso, se explorarán más a fondo las características de cada uno de estos sistemas fuente, comenzando con las bases de datos relacionales.
Acompáñame en el siguiente video para empezar a explorar las bases de datos relacionales.
Las bases de datos relacionales son sistemas de almacenamiento de datos que se utilizan ampliamente en aplicaciones web y móviles, así como en sistemas corporativos como la gestión de relaciones con clientes (CRM), recursos humanos (HR) y planificación de recursos empresariales (ERP). Este documento resume los conceptos clave sobre las bases de datos relacionales, su estructura y su uso en el contexto de la ingeniería de datos.
| Tabla | Descripción |
|---|---|
| Clientes | Información sobre los clientes |
| Productos | Información sobre los productos |
| Pedidos | Información sobre los pedidos |
| Tabla | Clave Primaria | Clave Foránea |
|---|---|---|
| Clientes | id | - |
| Productos | id | - |
| Pedidos | id | customer_id (referencia a Clientes) |
Para interactuar con bases de datos relacionales, se utiliza un Sistema de Gestión de Bases de Datos Relacionales (RDBMS). Algunos RDBMS populares incluyen:
Aunque la normalización proporciona integridad y minimiza la redundancia, puede ser lenta al consultar datos. Dependiendo del caso de uso, los ingenieros de datos pueden optar por diferentes modelos de almacenamiento, incluyendo el enfoque de "una gran tabla" (OBT) para un procesamiento más rápido.
En el próximo video, se explorarán comandos SQL necesarios para la práctica en el laboratorio, seguido de una introducción a bases de datos NoSQL.
Este documento proporciona una visión general de las bases de datos relacionales y su importancia en la ingeniería de datos, así como los conceptos fundamentales que los ingenieros de datos deben comprender.
En este documento se presenta un resumen del curso sobre el uso de SQL en una base de datos transaccional para una compañía ficticia de alquiler de DVDs llamada Rentio. Se abordarán conceptos clave, comandos SQL básicos y la estructura de la base de datos.
La base de datos de Rentio incluye tablas que contienen información sobre:
La base de datos está normalizada, lo que significa que los datos, como las direcciones de las tiendas, el personal y los clientes, se almacenan en tablas separadas para reducir la redundancia y facilitar las actualizaciones. Las tablas principales que se utilizarán son:
| Tabla | Descripción |
|---|---|
film |
Información sobre los títulos y duración de los films. |
category |
Lista de categorías de films. |
film_category |
Relación entre film y category mediante film_id y category_id. |
El comando más básico en SQL comienza con la cláusula SELECT, donde se especifica qué datos se desean, seguido de la cláusula FROM, que indica de qué tabla se recuperarán los datos.
SELECT title, release_year FROM film;
Para limitar el número de resultados devueltos, se puede usar la cláusula LIMIT.
SELECT title, release_year FROM film LIMIT 10;
Para filtrar resultados, se utiliza la cláusula WHERE.
SELECT * FROM film WHERE length < 60;
Para ordenar los resultados, se puede usar la cláusula ORDER BY.
SELECT * FROM film WHERE length < 60 ORDER BY length ASC;
Para explorar datos de más de una tabla, se utiliza la cláusula JOIN. Por ejemplo, para obtener títulos de films y sus categorías:
SELECT film.title, category.name
FROM film
JOIN film_category ON film.film_id = film_category.film_id
JOIN category ON film_category.category_id = category.category_id
WHERE film.length < 60;
Para agrupar resultados y contar registros, se utiliza GROUP BY junto con COUNT.
SELECT category.name, COUNT(*) AS film_count
FROM film
JOIN film_category ON film.film_id = film_category.film_id
WHERE film.length < 60
GROUP BY category.name
ORDER BY film_count DESC;
Este resumen cubre algunos de los comandos SQL más comunes y su aplicación en la base de datos Rentio. El curso también incluye operaciones de manipulación de datos como CREATE, INSERT INTO, UPDATE y DELETE. Se recomienda leer las instrucciones cuidadosamente al realizar los ejercicios en el laboratorio.
Al finalizar el laboratorio, se explorarán bases de datos NoSQL.
En los inicios de los años 2000, empresas tecnológicas como Google y Amazon comenzaron a superar las capacidades de sus bases de datos relacionales. La necesidad de procesar grandes volúmenes de datos provenientes de diversas fuentes llevó al desarrollo de bases de datos distribuidas no relacionales, conocidas como NoSQL. Este documento resume los conceptos clave sobre las bases de datos NoSQL, sus características y tipos.
NoSQL no significa "No SQL", sino "No solo SQL". Es una categoría de bases de datos que se aleja del marco relacional tradicional. Algunas bases de datos no relacionales aún admiten SQL o lenguajes de consulta similares.
| Característica | Bases de Datos Relacionales | Bases de Datos NoSQL |
|---|---|---|
| Estructura | Tabular | No tabular |
| Esquema | Fijo | Flexible |
| Consistencia | Fuerte | Eventual |
| Escalabilidad | Vertical | Horizontal |
| Soporte de transacciones ACID | Sí | Variable (algunas lo soportan) |
Ejemplo:
- Clave: user_session_id
- Valor: { "productos_vistos": [...], "carrito": [...] }
Ejemplo:
- Colección: usuarios
- Documento: { "id": 1, "nombre": "Juan", "email": "juan@example.com" }
Eficiencia en la recuperación de datos relacionados.
Desventajas:
Ambos tipos de bases de datos, relacionales y NoSQL, pueden ser utilizados en una amplia gama de aplicaciones. Sin embargo, en aplicaciones de procesamiento de transacciones en línea (OLTP) como banca y comercio electrónico, la consistencia y la integridad de los datos son críticas.
Las bases de datos NoSQL ofrecen una alternativa poderosa a las bases de datos relacionales, especialmente en escenarios donde la escalabilidad y la flexibilidad son esenciales. Sin embargo, es importante considerar las implicaciones de la consistencia eventual y la gestión de datos al elegir una solución NoSQL.
En el próximo video, exploraremos los principios de atomicidad, consistencia, aislamiento y durabilidad (ACID), que son fundamentales para los sistemas OLTP. ¡Nos vemos allí!
Este documento resume los conceptos clave sobre bases de datos relacionales y no relacionales, así como los principios ACID que garantizan la integridad y confiabilidad de las transacciones en sistemas de procesamiento de transacciones en línea (OLTP).
| Tipo de Base de Datos | Descripción |
|---|---|
| Relacionales | Cumplen con los principios ACID y son ideales para transacciones confiables. |
| No Relacionales (NoSQL) | Pueden no cumplir con ACID de forma predeterminada, pero permiten configuraciones para cumplir con estos principios. |
Los principios ACID son fundamentales para garantizar la integridad de las transacciones en bases de datos. A continuación se describen cada uno de ellos:
Ejemplo: En una compra, si se deduce el costo de la cuenta pero no se actualiza el inventario, la transacción se revertirá.
Coherencia
Ejemplo: Si el inventario no puede bajar de cero, un pedido que exceda el stock disponible fallará.
Aislamiento
Ejemplo: Si dos clientes piden el mismo artículo al mismo tiempo, uno de los pedidos fallará si no hay suficiente inventario.
Durabilidad
En el siguiente laboratorio, se trabajará con DynamoDB, una base de datos de valores clave de NoSQL. Se recomienda revisar el video introductorio para familiarizarse con el entorno de trabajo.
En este laboratorio, se trabajará con Amazon DynamoDB, una base de datos NoSQL de valores clave, y se aplicarán operaciones CRUD (Crear, Leer, Actualizar, Eliminar) a los datos. Se proporcionará una descripción general de las funciones de DynamoDB, los datos a utilizar y los métodos para interactuar con la base de datos.
DynamoDB es una base de datos NoSQL que almacena datos en tablas. Cada tabla contiene elementos identificados de forma única por una clave principal. Los elementos se componen de atributos que describen los datos.
| Clave (ID de Persona) | Atributos (Nombre, Edad, etc.) |
|---|---|
| 1 | Nombre: Juan, Edad: 30 |
| 2 | Nombre: Ana, Edad: 25 |
| Clave de Partición (ID de Pedido) | Clave de Clasificación (Número de Línea) | Atributos (Descripción del Artículo) |
|---|---|---|
| 1001 | 1 | Artículo: Laptop |
| 1001 | 2 | Artículo: Mouse |
Las tablas en DynamoDB no tienen un esquema fijo, lo que permite que cada elemento tenga atributos distintos.
Se utilizarán los siguientes métodos de Boto3 para realizar operaciones CRUD:
| Operación | Método Boto3 | Descripción |
|---|---|---|
| Crear Tabla | CreateTable |
Crea una nueva tabla en DynamoDB. |
| Agregar/Actualizar Elemento | putItem, updateItem |
Agrega o actualiza un elemento en la tabla. |
| Leer Elemento | getItem, scan, query |
Lee elementos de la tabla. |
| Eliminar Elemento | DeleteItem |
Elimina un elemento de la tabla. |
Para interactuar con DynamoDB, se utilizará Boto3, el kit de desarrollo de software de AWS para Python. Se debe crear un objeto cliente que represente la tabla de DynamoDB.
Se proporcionan cuatro archivos JSON que contienen datos para cargar en las tablas de DynamoDB: 1. Catálogo de Productos: Contiene información sobre productos. 2. Foro: Información sobre foros de AWS. 3. Hilo: Detalles sobre hilos en foros. 4. Respuesta: Información sobre respuestas a hilos.
CreateTable de Boto3 para crear las tablas.import boto3
def CreateTableDB(table_name, **kwargs):
client = boto3.client('dynamodb')
client.create_table(
TableName=table_name,
**kwargs
)
# Ejemplo de uso
CreateTableDB('NombreTabla', AttributeDefinitions=[...], KeySchema=[...])
Al finalizar el laboratorio, se habrá creado y manipulado una base de datos en DynamoDB utilizando Python y Boto3. Se explorarán más conceptos en el siguiente video, donde se abordará el almacenamiento de archivos en la nube.
El almacenamiento de objetos es un sistema fundamental en la ingeniería de datos, utilizado para almacenar y recuperar archivos de manera eficiente. Este documento resume los conceptos clave sobre el almacenamiento de objetos, su estructura, características y ventajas.
El almacenamiento de objetos trata los datos como objetos individuales, almacenándolos en una estructura plana, a diferencia de la jerarquía tradicional de carpetas y subcarpetas.
El almacenamiento de objetos es fundamental en arquitecturas modernas como: - Lagos de Datos - Casas de Lagos de Datos
En el siguiente laboratorio, se trabajará con el almacenamiento de objetos de Amazon, creando consultas de datos y gestionando el control de versiones. Posteriormente, se explorarán los registros de aplicaciones como fuentes de datos en sistemas de streaming.
| Característica | Descripción |
|---|---|
| Estructura | Plana, sin jerarquía |
| Tipos de Datos | CSV, JSON, texto, vídeo, imágenes, audio, datos binarios |
| Identificación | UUID para cada objeto |
| Metadatos | Información adicional sobre el objeto |
| Inmutabilidad | Objetos no modificables después de la escritura inicial |
| Control de Versiones | Permite mantener múltiples versiones de un objeto |
| Escalabilidad | Fácil ampliación para grandes volúmenes de datos |
| Durabilidad | Replicación en múltiples zonas de disponibilidad |
| Costo | Generalmente más económico que otras opciones de almacenamiento |
Este documento proporciona una visión general del almacenamiento de objetos y su importancia en la ingeniería de datos, preparando el camino para un aprendizaje más profundo en los próximos cursos.
En este curso se aborda el concepto de registros de información en sistemas y aplicaciones, su importancia en el monitoreo y depuración, así como su potencial como fuente de datos valiosa para análisis posteriores.
Los registros pueden incluir: - Actividades de usuarios (inicio de sesión, navegación). - Eventos del back-end (actualizaciones de bases de datos, errores).
Un registro típico incluye: - Identificador de usuario: Cuenta personal, dirección IP. - Descripción del evento: Qué ocurrió y su estado. - Marca de tiempo: Cuándo ocurrió el evento.
Los datos de registro pueden ser: - Texto simple no estructurado. - Formato JSON o CSV. - Datos codificados binarios.
Los registros pueden clasificarse según su nivel, que indica la gravedad de la información: | Nivel de Registro | Descripción | |-------------------|--------------------------------------| | Debug | Información de depuración | | Info | Información general | | Warn | Advertencias sobre posibles problemas| | Error | Errores que requieren atención | | Fatal | Fallos críticos que necesitan atención urgente |
Es fundamental que los ingenieros de datos comprendan cómo trabajar con registros, sus tipos, formatos y aplicaciones, ya que serán una fuente importante de datos en su trabajo.
Acompáñame en el siguiente video para explorar algunos de los sistemas de streaming y su relación con los registros de información.
En este curso, se exploran las arquitecturas basadas en eventos, centrándose en la diferencia entre el procesamiento por lotes y en flujo, así como en el papel de las colas de mensajes y las plataformas de transmisión en la ingeniería de datos. Se definen conceptos clave como eventos, mensajes y transmisiones, y se describen los componentes de un sistema de streaming.
| Componente | Descripción |
|---|---|
| Productor de Eventos | Genera los mensajes en una transmisión (ej. dispositivos IoT, aplicaciones). |
| Consumidor de Eventos | Procesa cada mensaje individual (ej. servicios de pago, inventario). |
| Router de Eventos | Intermediario que filtra y distribuye eventos entre productores y consumidores. |
Ejemplo: Amazon Simple Queue Service (SQS).
Plataformas de Streaming:
Los sistemas de streaming son fundamentales en la ingeniería de datos, permitiendo la ingesta, transformación y servicio de datos en tiempo real. En la próxima lección, se explorará cómo conectarse a los sistemas fuente.
¡Nos vemos en la próxima lección!
En esta lección, se abordarán los aspectos prácticos de la conexión a sistemas fuente en el contexto de la ingeniería de datos. Se explorarán los problemas comunes que pueden surgir al intentar acceder a datos y se discutirán las habilidades necesarias para resolver estos problemas. Además, se presentará una introducción a la seguridad en la nube y la creación de redes, con un enfoque en AWS.
Los ingenieros de datos a menudo enfrentan problemas imprevistos al intentar acceder a datos. Algunos de estos problemas incluyen:
Resolver problemas de conexión es una habilidad fundamental para los ingenieros de datos. Durante las entrevistas, se recomienda evaluar la capacidad de los candidatos para solucionar problemas en un entorno simulado.
Se presentará una demostración de cómo conectarse a diferentes sistemas fuente utilizando AWS. Los principios discutidos también son aplicables a otras plataformas en la nube.
Se ofrecerá una descripción general de la creación de redes, incluyendo:
| Concepto | Descripción |
|---|---|
| VPC | Virtual Private Cloud, permite crear redes privadas en la nube. |
| Subredes | Segmentos de una VPC que permiten organizar y gestionar el tráfico. |
| Puertas de enlace | Conectan la VPC con otras redes o Internet. |
| Enrutamiento | Controla cómo se dirigen los datos dentro de la red. |
| Grupos de seguridad | Reglas que controlan el acceso a instancias dentro de la VPC. |
Al final de la lección, se presentará un ejercicio de laboratorio que simula un escenario real en el que los estudiantes deberán:
Esta lección proporcionará una base sólida para entender cómo conectarse a sistemas fuente y resolver problemas comunes en la ingeniería de datos. Se espera que los estudiantes apliquen estos conceptos en el ejercicio de laboratorio y en situaciones del mundo real.
En este documento se resumen los conceptos y métodos para establecer conexiones a sistemas de origen en AWS, así como la importancia de la autenticación y la repetibilidad en estos procesos.
Para ingerir datos desde un sistema de origen, es fundamental establecer una conexión a la fuente de datos y verificar que se cuenta con los permisos necesarios para acceder a ella.
Existen varias formas de conectarse a bases de datos y otros recursos en AWS:
| Método de Conexión | Descripción |
|---|---|
| Consola de AWS | Permite localizar la información de conexión (endpoint y puerto) de recursos como RDS. Es conveniente para tareas rápidas, pero no es repetible. |
| Interfaz de Línea de Comandos (CLI) | Permite ejecutar comandos directamente para obtener información de conexión y conectarse a la base de datos. Es más programático, pero sigue siendo manual. |
| SDK (Boto3) | Permite automatizar la conexión a sistemas fuente mediante código en un IDE o Jupyter Notebook. Mejora la repetibilidad y la automatización. |
| Conectores API | Utiliza JDBC o ODBC para conectar aplicaciones a un DBMS y realizar consultas. |
Se recomienda revisar materiales adicionales sobre los métodos de conexión mencionados. En el siguiente video se abordará la Gestión de Identidad y Acceso y los permisos necesarios para operar en AWS.
Establecer conexiones a sistemas de origen en AWS es un proceso que puede realizarse de diversas maneras, cada una con sus ventajas y desventajas. La elección del método dependerá de la necesidad de repetibilidad, automatización y la complejidad de la carga de trabajo.
La administración de identidades y accesos (IAM) es un aspecto crucial para los ingenieros de datos que trabajan con canalizaciones de datos en la nube. Este documento resume los conceptos clave sobre IAM, su importancia en la seguridad de los datos y los componentes básicos que se utilizan en plataformas como AWS.
A continuación se presentan los componentes básicos de IAM en AWS:
| Componente | Descripción |
|---|---|
| Usuario Raíz | Crea la cuenta en AWS y tiene acceso sin restricciones a todos los recursos. |
| Usuarios de IAM | Cuentan con permisos específicos para ciertos recursos. |
| Grupos de IAM | Conjuntos de usuarios a los que se les puede adjuntar políticas. |
| Políticas | Documentos JSON que definen los permisos y recursos que tienen los grupos o usuarios. |
| Roles de IAM | Permisos temporales asumidos por usuarios o aplicaciones para realizar acciones específicas. |
Una política de IAM puede permitir a un usuario acceder a recursos específicos. Por ejemplo: - Permitir acceso a cubos de S3 cuyo nombre comience con "ingeniería de datos de DLai". - Permitir acciones como enumerar o obtener objetos de esos cubos.
La administración de identidades y accesos es esencial para la seguridad de las canalizaciones de datos en la nube. Comprender los componentes de IAM y aplicar prácticas recomendadas puede ayudar a prevenir desastres de datos y proteger la información confidencial.
Este resumen proporciona una visión general de la importancia de IAM y sus componentes en la gestión segura de datos en la nube.
Este documento resume los conceptos clave sobre la creación de canalizaciones de datos en arquitecturas basadas en la nube, centrándose en la importancia de las redes y la infraestructura subyacente, especialmente en el contexto de AWS.
La configuración de esta red es crucial para el flujo correcto de datos.
Principios Básicos de Redes
Los principios de redes en la nube son similares entre los principales proveedores, como AWS.
Infraestructura de la Nube
| Término | Descripción |
|---|---|
| Región | Área geográfica que contiene clústeres de zonas de disponibilidad. |
| Zona de Disponibilidad | Conjunto de uno o más centros de datos con redundancia en energía y conectividad. |
| VPC (Nube Privada Virtual) | Red personalizada dentro de una región que abarca varias zonas de disponibilidad. |
Este resumen proporciona una visión general de los aspectos fundamentales de la creación de canalizaciones de datos en la nube, enfatizando la importancia de la infraestructura de red y las consideraciones necesarias para una implementación exitosa.
Este documento resume los conceptos básicos sobre la creación de redes en AWS, específicamente en el contexto de la implementación de sistemas de datos. Se abordarán elementos clave como las VPC (Virtual Private Clouds), subredes, puertas de enlace, tablas de rutas, listas de control de acceso y grupos de seguridad. Además, se presentará un escenario práctico para la implementación de una base de datos Amazon RDS y una instancia Amazon EC2.
Abarca varias zonas de disponibilidad (AZ) en una región.
Subredes:
Se utilizan para agrupar recursos según requisitos de seguridad y acceso.
Puertas de Enlace:
Facilitan la comunicación entre la VPC y el mundo exterior (Internet).
Tablas de Rutas:
Controlan el tráfico de red dentro de la VPC.
Listas de Control de Acceso (ACL):
Definen qué tráfico puede entrar y salir de las subredes.
Grupos de Seguridad:
+---------------------+
| VPC |
| 10.0.0.0/16 |
| |
| +---------------+ |
| | Subred Pública| |
| | 10.0.1.0/24 | |
| +---------------+ |
| |
| +---------------+ |
| | Subred Privada| |
| | 10.0.2.0/24 | |
| +---------------+ |
| |
| +---------------+ |
| | Subred Pública| |
| | 10.0.3.0/24 | |
| +---------------+ |
| |
| +---------------+ |
| | Subred Privada| |
| | 10.0.4.0/24 | |
| +---------------+ |
+---------------------+
Definir el rango de direcciones IP privadas (ej. 10.0.0.0/16).
Crear Subredes:
10.0.1.0/2410.0.2.0/2410.0.3.0/2410.0.4.0/2410.0.0.0/16 significa que los primeros 16 bits son fijos para la red, y los 16 bits restantes se utilizan para las direcciones de host.Este documento proporciona una base sólida para entender la creación de redes en AWS y su aplicación en la ingeniería de datos.
En este documento se resumen los conceptos y pasos necesarios para habilitar la conectividad a Internet en una VPC (Virtual Private Cloud) de AWS, utilizando puertas de enlace de Internet y puertas de enlace NAT. Se explican las consideraciones sobre la ubicación de los recursos y la importancia de la seguridad en la configuración de la red.
Al crear una VPC, se pueden establecer subredes públicas y privadas. Sin embargo, por defecto, estas subredes no tienen conectividad a Internet. Para permitir el acceso a Internet, es necesario implementar puertas de enlace de Internet y NAT.
| Paso | Descripción |
|---|---|
| 1 | Crear una puerta de enlace de Internet y conectarla a la VPC. |
| 2 | Crear puertas de enlace NAT en cada subred pública. |
| 3 | Configurar las tablas de rutas para permitir el tráfico adecuado. |
| 4 | Definir reglas de seguridad para proteger la VPC. |
Al finalizar estos pasos, se habrá configurado una VPC con conectividad segura a Internet y un control de acceso sólido. En los siguientes videos, se abordarán los detalles de la configuración de las tablas de rutas y las reglas de seguridad.
Este documento proporciona una guía clara sobre cómo habilitar la conectividad a Internet en una VPC de AWS, asegurando que se sigan las mejores prácticas de seguridad y configuración.
En este documento se resumen los pasos necesarios para configurar las tablas de rutas en una VPC de AWS, permitiendo la conectividad a Internet para subredes públicas y privadas. Se explican los conceptos básicos de las tablas de rutas y se detallan los procedimientos para su creación y asociación.
Las tablas de rutas son esenciales para dirigir el tráfico de red dentro de la VPC. Cada subred puede asociarse a una tabla de rutas que contiene reglas que determinan hacia dónde se dirige el tráfico.
Configurar la tabla de rutas para dirigir todo el tráfico de Internet a la puerta de enlace de Internet.
Subredes Privadas:
| Nombre de la Tabla | Subred Asociada |
|---|---|
| public-route-table-1 | public-subnet-1 |
| public-route-table-2 | public-subnet-2 |
| private-route-table-1 | private-subnet-1 |
| private-route-table-2 | private-subnet-2 |
0.0.0.0/0 (todas las direcciones IP).0.0.0.0/0.| Tipo de Subred | Destino | Objetivo |
|---|---|---|
| Pública | 0.0.0.0/0 |
Puerta de enlace de Internet |
| Privada | 0.0.0.0/0 |
Puerta de enlace NAT |
Las tablas de rutas están configuradas para gestionar el tráfico interno y externo de manera efectiva. Las subredes públicas pueden comunicarse con Internet, mientras que las subredes privadas pueden establecer conexiones salientes de forma segura. En el siguiente video, se abordarán configuraciones adicionales de red, como grupos de seguridad y ACL de red, para mejorar la seguridad de la VPC.
En este curso, se abordaron conceptos fundamentales sobre la configuración de redes en Amazon Web Services (AWS), centrándose en la gestión de tráfico, grupos de seguridad y listas de control de acceso (ACL) para garantizar la conectividad y seguridad de las instancias en una Virtual Private Cloud (VPC).
| Nombre del Grupo de Seguridad | Tipo de Tráfico | Puerto | Fuente |
|---|---|---|---|
| Albsg | HTTP | 80 | 0.0.0.0/0 |
| Albsg | HTTPS | 443 | 0.0.0.0/0 |
| RDS-SG | TCP | 3306 | Grupo EC2-SG |
Este curso proporciona una base sólida para la gestión de redes en AWS, enfatizando la importancia de la configuración adecuada de las tablas de enrutamiento, grupos de seguridad y ACL. En el próximo laboratorio, se aplicarán estos conceptos para solucionar problemas de conectividad en bases de datos, utilizando los conocimientos adquiridos.
Este resumen en formato Markdown incluye los conceptos clave, ejemplos y una tabla para facilitar la comprensión de la configuración de redes en AWS.
En este laboratorio, se aprenderá a conectarse a una base de datos RDS desde una instancia EC2, crear una tabla y cargar datos desde un archivo CSV almacenado en un bucket de S3. Se abordarán problemas comunes de conexión y permisos que pueden surgir durante el proceso.
Conectarse a la instancia EC2 etiquetada como "bastion host".
Instalación de psql
psql, la interfaz de línea de comandos para PostgreSQL.Conectarse a la base de datos utilizando el punto final y las credenciales proporcionadas.
Solución de Problemas de Conexión
Comprobar los grupos de seguridad y agregar reglas de entrada si es necesario.
Creación de la Tabla
Ejecutar el comando para crear la tabla en la base de datos.
Carga de Datos desde S3
Ejecutar el script de Python para descargar el archivo CSV.
Copia de Datos a la Tabla
SELECT para verificar que los datos se han cargado correctamente.| Problema | Solución |
|---|---|
| Fallo en la conexión a la base de datos | Verificar que la instancia EC2 y la base de datos RDS estén en la misma VPC. |
| Problemas de permisos en S3 | Modificar la política del bucket de S3 para permitir el acceso a la instancia EC2. |
| Error de autenticación | Asegurarse de que se está utilizando la contraseña correcta para la base de datos. |
Este laboratorio proporciona una experiencia práctica en la conexión a bases de datos y la manipulación de datos en AWS. Los problemas de conexión y permisos son comunes en el trabajo de un ingeniero de datos, y este ejercicio ayuda a desarrollar habilidades para resolverlos eficazmente.
Este documento resume los conceptos clave y las actividades de la primera semana del curso sobre sistemas de origen, ingesta y canalizaciones de datos. Se abordan los fundamentos de la ingeniería de datos, centrándose en la generación de datos y la conexión a sistemas de origen.
La primera semana del curso ha proporcionado una base sólida sobre los sistemas de origen y su importancia en la ingeniería de datos. Se espera que los participantes se sientan más cómodos y preparados para abordar la ingesta de datos en las próximas sesiones.