Configuración de clúster en AWS Redshift

Clase 13 de 25Curso de Fundamentos de ETL con Python y Pentaho

¡Hola, te doy la bienvenida! Me da gusto encontrarte en este curso. Soy Alexis, profesor de AWS en Platzi.

Te acompañaré para crear un clúster y su base de datos en AWS Redshift y un bucket en S3. Los usaremos para el target del ETL de este curso.

Antes de continuar, quiero recordarte que es importante que tengas el conocimiento de lo que aprendemos en estos dos cursos donde tengo el gusto de ser tu profe:

Te servirá para que este proceso te sea mucho más familiar y para que ya tengas creada tu cuenta de AWS.

Si ya lo tienes sigue estos pasos para configurar el target de tu ETL.

Entra a AWS Free Tier

  1. Abre el sitio web de AWS Free Tier aquí.

⚠️Es importante recordar que el free tier tiene un período de 1 año para que no te cobre AWS.

  1. Dentro del buscador de detalles de nivel gratuito busca "redshift".

aws_free.png

  1. Observa que podrás tener una prueba gratuita de 2 meses de AWS Redshift al elegir un nodo tipo DC2.Large.

redshift_free.pngDC2_large_aws.png

⚠️⚠️⚠️ Recuerda que es muy muy importante que elijas ese tipo de nodo DC2.Large al crear el clúster de AWS Redshift. Para que sea gratuito por 2 meses, de lo contrario se te harán cobros a tu tarjeta.

Ya que sabes esto, avanza a crear el clúster en los siguientes pasos.

Creación de clúster en AWS Redshift

1. Inicia sesión en la consola de AWS

Da clic en iniciar sesión en la parte superior derecha o aquí.

inicia_sesion_aws.png

2. Elige tu región

Después de iniciar sesión en tu cuenta de AWS elige la región donde crearás el clúster en la parte superior derecha de la consola de AWS.

consola_region_aws.png

Te sugiero elegir la región de Oregon (us-west-2) que es la que usamos en este curso, pero puedes seleccionar la que mejor te convenga. Solo recuerda cual es para que la pongas al cargar los datos desde la notebook de Python.

3. Buscar el servicio de Redshift

Busca "redshift" en el cuadro de búsqueda de servicios y da clic en la opción Amazon Redshift que aparece.

buscar_redshift.png Esto te llevará a la consola de Redshift.

redshift_console.png

4. Ve al panel de clústeres

Dentro de la consola de Redshift ve al panel de la izquierda que se despliega con el ícono de las tres rayas horizontales. Selecciona la opción de Clústeres.

clusteres_redshift.png

5. Crea el clúster

Dentro del panel de clústeres da clic en el botón naranja Crear clúster.

crear_cluster_redshift.png En la configuración del clúster da nombre al clúster. Puedes llamarlo demo-platzi-curso-etl. Elige la prueba gratuita.

En el resumen de configuración calculada deberás ver que el tipo de nodo sea **dc2.large. ⚠️Recuerda que esto es importante de verificar para que sea gratuito el uso de tu Redshift durante 2 meses.

free_cluster.png Una vez seleccionados estos campos, desciende para establecer el usuario y contraseña del clúster de Redshift.

⚠️Recuerda guardar en un lugar seguro estas credenciales, como en un gestor de contraseñas, para que puedas conectarte al clúster.

Nombra demoplatzi al Nombre de usuario y pon una contraseña segura.

admin_pass_cluster.png Finalmente, da clic en el botón naranja Crear clúster.

⌛Espera hasta que el estado de creación del clúster lo marque en verde como Available. Esto puede demorar varios minutos, para revisar el estado da clic en el botón refrescar de la flecha en círculo.

cluster_listo.png

6. Modificar las reglas de seguridad del clúster

Entra al clúster dando clic en el nombre dentro del panel de clústeres.

cluster_listo.png Entra a la pestaña de Propiedades.

propiedades.png

Baja hasta la sección de Configuración de red y seguridad y da clic sobre el Grupo de seguridad de la VPC.

VPC_sec.png Selecciona el ID del grupo de seguridad.

id_grupo_seguridad.png Baja y da clic en Editar reglas de entrada.

reglas_de_entrada.png

Da clic en el botón inferior Agregar regla

agregar_regla.png En tipo elige Redshift y en origen elige 0.0.0.0/0. Finalmente, da clic en el botón naranja Guardar reglas.

nueva_regla_entrada.png Regresa al panel del clúster a la zona de configuración de red y seguridad. Da clic en el botón editar.

editar_seguridad.png Desciende y en la parte inferior marca la casilla Activar accesibilidad pública. Da clic en el botón naranja Guardar cambios.

red_seguridad_publica.png

⚠️Esto es algo que no debe hacerse en entornos de producción. En este caso lo harás al ser un demo con fines educativos, para evitar complicaciones de configuración adicional de accesos de seguridad.

7. Conéctate a Redshift desde tu gestor de bases de datos.

Abre tu gestor, ya sea DataSpell, DBeaver o pgAdmin.

Dentro de tu gestor crea una nueva conexión a una base de datos de tipo Redshift. Es muy importante buscar la opción de Redshift.

En el caso de DataSpell ve a la pestaña de Database y en ella da clic en el botón de signo de +.

database_dataspell.png Selecciona la opción de Data Source y dentro del menú desplegable busca y elige la opción de Amazon Redshift.

workspace 3_2_2023 7_48_03 PM.png Regresa al panel del administrador del clúster de Redshift en la consola de AWS y copia el punto de enlace.

copiar-punto-enlace.png Regresa a la interfaz de tu gestor de bases de datos e ingresa los los siguientes datos para conectar a la base de datos:

  • Host: es la url del punto de enlace que copiaste eliminando la parte final ":5439/dev". Tendrá una forma como server.redshift.amazonaws.com
  • Port: 5439
  • User: demoplatzi o el que hayas puesto.
  • Password: la que le hayas puesto a tu clúster de AWS Redshift cuando lo creaste en el paso 5.
  • Database: dev

database_con_redshift.png Da clic en el botón de Test Connection o su correspondiente para probar la conexión. Si estás en DataSpell te pedirá actualizar unos drivers, dile que OK.

Una vez que indique que la conexión es exitosa, da clic en el botón OK, o en el botón disponible de otro gestor, para aceptar la conexión.

conexion_redshift_ok.png ¡Listo tienes creado tu clúster con una base de datos dev en Redshift y te has conectado a ella! 🚀

conexión_redshift.png

Creación de bucket de almacenamiento en AWS S3

Para el ETL crearás un bucket en S3 donde temporalmente almacenarás unos archivos CSV donde guardarás los datos de las tablas que has creado en el proceso de transformación.

1. Entra al panel de S3 desde la consola de AWS.

Busca "S3" en el buscador de la consola y selecciona la opción de S3.

s3.png Da clic en el botón naranja Crear bucket en el panel de S3.

panel-s3.png Da un nombre al bucket. Este nombre debe ser único, ya que no puede haber más de un bucket de S3 con el mismo nombre. También asegúrate que la región de AWS sea la misma que hayas elegido para tu clúster de Redshift, en nuestro caso fue us-west-2.

crear_bucket_s3.png Desciende hasta abajo y da clic en el botón naranja Crear bucket.

boton-crear-bucket.png ¡Listo, ya deberá aparecer que tienes tu bucket creado! 👏🏽

bucket_creado.png


Avanza a la siguiente clase para crear las tablas donde cargarás los datos de los archivos CSV que crearás durante el proceso de carga y donde configurarás ciertas variables de entorno por seguridad. ⚙️➡️