Introducción al cómputo en la nube

1

¿Qué es el cómputo en la nube?

2

¿Cómo puedo empezar a usar AWS?

3

Introducción a la oferta de servicios de AWS y sus aplicaciones

Introducción a la oferta de AWS y sus interacciones

4

Ejemplo de arquitectura con Elastic Beanstalk

5

¿Qué es Amazon EC2?

6

Creando una instancia de EC2

7

Conectándonos a nuestra instancia desde Windows

8

Conectándonos a nuestra instancia desde Linux

9

Conectándonos a nuestra instancia desde OSX

10

Subiendo un proyecto: Clonando un repositorio de GitHub a nuestra Instancia de EC2

11

Subiendo un proyecto a nuestra instancia de EC2: Ejecutar nuestro proyecto

12

¿Qué es Lambda y Serverless?

13

Creando una función Lambda

Elastic Beanstalk

14

Conociendo Elastic Beanstalk

15

Creando un ambiente en Elastic Beanstalk

16

Almacenamiento - S3

17

Almacenamiento con S3: Contenido Estatico

18

Almacenamiento con Glacier: Contenido duradero

Bases de Datos

19

Bases de Datos - RDS Aurora PG

20

Conociendo RDS PG

21

Creando una base de datos Platzi DB

22

Haciendo una migración a RDS PG

23

Conociendo Aurora PG (Postgres)

24

Haciendo una migración a Aurora DB

25

Mejores prácticas de Bases de Datos y RDS

Redes

26

Redes - Route53

Herramientas de administración

27

Herramientas de administración - IAM

28

Utilizando IAM

29

CloudWatch

30

CloudTrail

Seguridad

31

Certificate manager

32

GuardDuty

Bonus

33

AWS Rekognition

34

Creando nuestro servicio de Postgres

35

Accediendo a nuestra base de datos Postgres

Cierre del curso

36

Conclusiones del curso de Fundamentos de AWS Cloud

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Convierte tus certificados en títulos universitarios en USA

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

18 Días
6 Hrs
38 Min
27 Seg
Curso Práctico de AWS Cloud

Curso Práctico de AWS Cloud

Mauro Parra Miranda

Mauro Parra Miranda

Haciendo una migración a RDS PG

22/36
Recursos

Recuerda que puedes tomar el Curso de PostgreSQL y también el curso de Introducción a Terminal y Línea de Comandos en Platzi.

Aportes 59

Preguntas 11

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Instructivo para reproducir el ejemplo de Mauro

  1. Crear un grupo de permisos (security Groups) del tipo Postgresql, protocolo TCP, puerto 5432 (o el que estés manejando), con permisos de conexión desde cualquier lugar.

  2. Crear la base de datos Postgresql en el menú RDS en el servicio de bases de datos de AWS. Recuerda que la versión de Postgresql debe de ser 9.6.x. Define la BD como pública y asignale el protocolo VPC que creaste en el punto anterior. (esto tomará algunos minutos). También puedes definir el nombre de la base de datos, un usuario y un password. (aunque también se pueden asignar por defecto)

  3. luego en la línea de comando desde la conexión de la sentencia ingresando el siguiente script tomado de aquí:

<[usuario@ip] $ psql --host=mypostgresql.c6c8mwvfdgv0.us-west-2.rds.amazonaws.com --port=5432 --username=awsuser --password --dbname=mypgdb >

Si no asignaste un nombre de usuario y de base de datos utiliza por defecto username=postgres dbname=postgres

Me cuentan si les funciona, a mi me funciono.

saludos. 😎

Debido a que la BD se crea bajo una VPC con un security group, es neceasrio hacer agregar una relga para permitir las conexiones a través del protocolo TCP.

Se debe ir a security grupos y luego hacer clic en Edit inbound rules

La configuración de la regla en los security groups es así:

Falto mucha configuración. Si es la primera vez con AWS y RDS queda uno con muchas dudas y grandes vacíos al configurar RDS. Nunca pude conectar mi instancia EC2 a la base de datos ni encontre cual era la manera correcta de configurar los grupos de seguridad. Esta clase me decepcionó un montón.

Detalles para realizar lo del video ante errores de conexión como el siguiente:

Para solucionarlo realizamos los siguientes pasos:

  1. Permitir el trafico TCP del puerto 5432 que usa PostgreSQL en el grupo de seguridad que tiene nuestra instancia EC2:
  2. Luego de realizar clic y entrar al grupo de seguridad nos vamos a reglas de entrada y agregamos las siguientes reglas:
  3. Ahora realizamos lo mismo pero las reglas las aplicamos en el grupo de seguridad VPC que tiene nuestra base de datos creada en RDS:
  4. Luego de entrar al grupo de seguridad agregamos las mismas reglas que en nuestra instancia EC2:
  5. Para finalizar ejecutamos el comando nuevamente y podemos acceder sin problemas:

Espero haya sido de ayuda.

Para quienes aún no les funciona, aún falta más por hacer:

  • Al momento de crear la base de datos como lo mencione en mi comentario anterior, hay una opción que dice algo como “VPC group” y la opción de añadir uno ya existente, entonces añaden el grupo de seguridad que les aparece, que es el mismo que crearon al momento de crear la instación de EC2 y también añaden un poco más abajo la llave .pem de ese grupo.
  • Luego también deben marcar una opción dentro de las opciones de creación de la base de datos que dice que si quieren que su base de datos sea publica en el minuto 2:06 ustedes ven del lado derecho que dice “Publicly accesible YES”
  • Luego de eso, van a su instancia de EC2 y en las politicas de su grupo de seguridad agregan una nueva regla de entrada o Inbound, buscan el protocolo que dice Postgresql, dejan el puerto 5432 y la opción que se conecte desde cualquier ip.

Creo que eso fue todo lo que hice para que funcionara.

Junio 2021
Debido a múltiples inconvenientes que ha tenido la comunidad.
En mi caso aporto lo siguiente:

  1. También como lo han comentado los demás compañeros adicioné una regla a la política de seguridad. En mi caso fue específica para la instancia EC2, utilizando la IP Privada.
    EC2 -> Instances

    RDS>Databases
    Modificar el grupo de seguridad

    Editar las reglas de entrada como esta

Antes de conectarme a la base, probé que le pudiera llegar a la instancia de base de datos, utilizando el siguiente comando.

# check port connection
sudo yum -y install nc
nc -zv goweb-db1.cpbmxjibuaa6.us-east-2.rds.amazonaws.com 5432
#response
#cat: Connected to 172.31.2.36:5432.
  1. Ok aquí me topé con otro problema, ya que en el paso anterior no creé la base de datos, e hice lo siguiente:
#instalando cliente postgres
sudo su
yum install -y postgresql
exit

#conexión con el servidor
psql -h goweb-db1.cpbmxjibuaa6.us-east-2.rds.amazonaws.com -U postgres

# creando base de datos
postgres=>CREATE DATABASE platzidb WITH ENCODING 'UTF8';

#para salir \q
postgres=> \q

Nota: luego basado en otros comentarios, sí se había creado una base de datos por defecto llamada postgres

Luego seguí con los comandos que el profe indica en el vídeo y todo ok

  1. Dejo también otros comandos útiles para el cliente plsql que me fueron útiles por mi poca experiencia con PostgreSQL
\l list databases
\l+ list databases with more details
select * from pg_database;
select datname from pg_database;

\dt list tables of a database
\c <database_name> switch to a database
\d <table_name> describing particular table name

CREATE DATABASE myDatabase WITH ENCODING 'UTF8'; create a database

\q salir

Espero sea de su ayuda!

Saludos,
José

Varias cosas por cambiar en este curso:

  1. Agregar las reglas a VPC security groups
  2. Para el import es necesario ejecutar este comando.
<psql -h  platzidb.XXXXXXXXXXXXXX -U platzidb -d postgres < sample-uk-zipcodes.sql>

siendo -d postgres la base de datos que crea por defecto en la version 11.x de Postgresl

Es necesario re-crearlo o diseñar el curso a la versión actual de la consola.

El repositorio en GitHub y el SQL.

Me sorprende entrar a este curso y ver que hay personas que de hace 2 años indiquen que hay pasos que falta o son omitidos en el curso y aun no lo solucione Platzi. Ademas de que en 2 años muchas cosas en AWS ya cambiaron.

Curioso, aquí instalamos PG, pero realmente no usamos esa instalación, sino que realmente solo lo usamos para tener acceso al comando que subirá el archivo a la instancia de Amazon, eso significa que podríamos prescindir de tener que conectarnos a EC2 y hacerlo todo desde nuestra computadora si tenemos las herramientas necesarias 🤔

Vengo del futuro. Platzi publicó una actualización de esta clase al final de este curso. Aunque a fecha de 2022 ya han cambiado varias cosas, guiarse de los demás comentarios de esta clase.

Si no les funciona pueden probar con la siguiente linea:
psql -h url_db -U platzidb postgres <sample-uk-zipcodes.sql
donde: url_db = la url de su base de datos que aparece en la consola aws
Luego:
psql -h url_db -U platzidb postgres
y después \dt
El nombre de la base de datos seria postgres no platzidb

Si el curso es de Fundamentos de AWS, se están omitiendo detalles muy importantes, por ejemplo para este vídeo en donde el menciona el endpoint, este solo aparece cuando se crea una base de datos utilizando la opción de “Database” y luego la opción de “Create Database” y también hay que configurar varias cositas más al momento de crear esa base de datos, ejemplo la versión de postgresql que se instaló en el EC2 que en mi caso usando ubuntu 18.04 como sistema operativo de esa instancia se instalo la versión 10.6 y pueden saber que versión instalaron usando el comando “psql --version”

yum install postgresql

Ojala actuailcen este curso, muchas de las cosas que explican aqui ya no van, existen muchos problemas para conectarse al final con la db, dejo la solucion para quienes tienen el mismo problema:

psql -h “direccionde host…” -U postgres -d postgres

abajo explico:

despues de -h se introduce la direccion de la base de datos de aws

-U es el usuario, en este caso es el usuario que crea en automatico la db

-d la base de datos que crea de forma automatica

Espero les funcione! Saludos!

Si no te ha dejado ingresar desde la consola, lo que puede suceder es que no has creado una regla de un Security Group que permita la entrada desde el puerto 5432, que es a donde nos conectamos a Postgres. Para este caso, lo que hice fue agregarle una regla a uno de los grupos de seguridad que ya tenia de esta manera (previo a esto, fui a pestana de ‘Connectivity & Security’ de mi base de datos y baje a la parte de ‘Security group roles’, luego le doy clic al grupo ‘default…’ y ya me manda al menú de configuración de ese grupo de seguridad, lo selecciono y en ‘actions’ le doy ‘edit inbound rules’ y le agrego la nueva regla de esta manera:

Adicional me encontré una mejor forma de ejecutar el comando propuesto al momento de conectarse:

psql --host=rodckodb.cfkzcule0wtf.us-east-2.rds.amazonaws.com --port=5432 --username=rodckodb --password --dbname=rodckodb <sample-uk-zipcodes.sql

Luego solo ingreso el password y ejecutara el script, y después como indica el profesor, ejecutamos el mismo comando pero sin la parte final para ejecutar el script, así:

psql --host=rodckodb.cfkzcule0wtf.us-east-2.rds.amazonaws.com --port=5432 --username=rodckodb --password --dbname=rodckodb
Y ya podemos ingresar a la consola y podemos consultar con el lenguaje SQL:

pdta: Odio este curso

Les aconsejo seguir los pasos del siguiente enlace para no tener problemas, ya que es forma sugerida de AWS:
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.PostgreSQL.html
Es muy útil suponiendo que no han querido actualizar este curso.

After 3hrs later…
.

En mi caso no me funciona la conexion de la base de datos, he creado varias, les configuro el usuario, la conexion de los puertos para conectarme desde cualquier lugar y cuando pongo la linea de comando para importar la DB:

psql -h jfideldb1.**********.us-east-2.rds.amazonaws.com -U jfideldb1_usr jfideldb1 < sample-uk-zipcodes.sql

siempre sale este error: psql: FATAL: database "jfideldb1" does not exist

He creado varias bases de datos y en la consola me sale todo bien… he seguido el tutorial al pie de la letra…

Nota: En varios tutoriales he podido seguir buscando en google y siguiendo las recomendaciones de los demas compañeros ya que como dicen hay cosas que se han omitido…

Buen día.

¿Alguien sabe por qué pasa esto?

psql: FATAL: database “sgctest” does not exist

$ psql -h sgctest.cq6epoyv9jjz.us-east-2.rds.amazonaws.com -U root sgctest
He creado la instancia de la db y el nombre sería el que le puse ahí ¿no?

La muestra de que todo aquello que mencioné es necesario para lograr hacer este ejemplo es mi captura de pantalla con el resultado final:

esta parte de crear acceso al grupo de seguridad es vital!!

Les dejo el comando para instalar postgres para que lo puedan copiar

yum install postgresql96.x86_64

Se omiten muchos pasos que se deberían mostrar, no hablo de como instalar con yum, más bien de como configurar RDS para que admita conexiones desde EC2

Información resumida de esta clase \#EstudiantesDePlatzi * Hay que actualizar este curso * Todo lo podemos hacer desde la línea de comandos
Pero qué curso más desactualizado, deberpian bajarlo. En cada video práctico me he tardado más en buscar soluciones de inconsistencia que en hacer lo que enseña el profesor.
También pueden conectarse a la bd de manera mas visual desde pg admin. 1\) En las reglas de entraga del grupo de sguridad asociado a la bd, coloque su ip publica o coloquen que se pueda conectar desde cualquier sitio (asi como en la imagen) ![](https://static.platzi.com/media/user_upload/image-f574d2d1-1cd3-40fa-90a9-547322ee099e.jpg) ![](https://static.platzi.com/media/user_upload/image-315d4c40-f2d4-4453-a8d9-47cf5db561b1.jpg) 2\) desde **pgadmin** al conectarse al server coloquen los datos de la clase en los campos correspondientes de conectividad. ![](https://static.platzi.com/media/user_upload/image-553c2ed5-fbf2-440a-bbbc-5faff597b2af.jpg) y ya con eso podran hacer querys mas sencillas a la bd. ![](https://static.platzi.com/media/user_upload/image-3a03d5b4-bd6d-4ead-8a05-841c76808d3d.jpg)

Recuarden que para que funcione usan los comandos como en el curso con la diferencia en la ultima parte del comando usan el flag -d y postgres asi “-d postgres” como nombre de bases de datos, con eso les debería poder conectarse bien como también habilitar en la parte de conectividad, asociar la instancia ec2 con la bases de datos.

al ejecutar el comando para llenar los campos de la base de datos debe apuntar a la base postgres

Excelente clase!

yo instale postgresql 12 y no pide que pongas el nombre de la base de datos al final del comando psql

Hay que modificar el grupo de permisos de la instancia de RDS para que permita conexiones en el puerto 5432 y luego de eso ya podemos entrar a nuestra instancia de EC2 y realizar el backup.

Compañeros, los que tengan problema de conexión could not connect to server: Connection timed out deberan abrir el puerto 5432 en los “Security Group” de la instancia y luego asignarlos a la configuración de la base de datos en RDS
https://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/USER_ConnectToPostgreSQLInstance.html

Si están corriendo una instancia con Ubuntu 18.04 pueden ejecutar el comando “sudo apt install postgresql” para instalar postgresql y luego el comando “sudo systemct status posgresql.service” para ver el estado del servicio y les debe aparecer algo igual a esto:

● postgresql.service - PostgreSQL RDBMS
   Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
   Active: active (exited) since Tue 2019-01-01 20:03:15 UTC; 48s ago
 Main PID: 2318 (code=exited, status=0/SUCCESS)
    Tasks: 0 (limit: 1152)
   CGroup: /system.slice/postgresql.service

Jan 01 20:03:15 ip-172-31-40-173 systemd[1]: Starting PostgreSQL RDBMS...
Jan 01 20:03:15 ip-172-31-40-173 systemd[1]: Started PostgreSQL RDBMS.

En el video anterior, es decir el 21, se crea la instancia de RDS PG. En la nueva interfaz tener cuidado de elegir “Free tier”. Luego para que se cree la BD inicial, desplegar “Additional configuration” y poner nombre en “Initial database name”, sino no creará y saldrá error.
Como se conecta desde un EC2 no es necesario hacerla pública, pero si configurar el acceso de security groups. Poner el puerto de PG que es 5432 acceso total o solo la IP de la EC2. Esta instancia EC2 se creó en las clases anteriores.

Faltó la parte de cómo crearla…

La muestra de que todo aquello que mencioné es necesario para lograr hacer este ejemplo es mi captura de pantalla con el resultado final: https://drive.google.com/file/d/1Ks1M989HuHNyJChi0-sSaanQsMKkaNGy/view?usp=sharing

Necesito hacer lo mismo pero con mysql, (instalación y subir base de datos)

Excelente clase

En el video #32 “Creando nuestro servicio de Postgres” pueden ver un ejemplo para crear la Bases de datos.

Material incompleto… donde crean la bd

Como en todo hay que tener cuidado con los detalles. buena clase!!

Buenos días, tuve este error, tomé encuenta todos los consejos aportados por los compañeros han comentado. Podrian indicarme que salió mal.

[ec2-user@ip-172-31-47-150 ~]$ psql -h juanone.ctpgtzbt0pj1.us-east-2.rds.amazonaws.com -U juanone pl juanone < sample-uk-zipcodes.sql
psql: warning: extra command-line argument "juanone" ignored

Genial!

me sale este error

sample-uk-zipcodes.sql.1: Permission denied

al usar el comenado

wget https://raw.githubusercontent.com/mauropm/aws-platzi-python/master/sample-uk-zipcodes.sql

gracias por sus comentarios me guiaron bastante, parte del aprendizaje también es saber investigar algunas cositas

Por fin pude conectarme a la instancia de la base de datos, pero cuando me pide el pass la primera vez aparecen unas lineas de error
CREATE EXTENSION
ERROR: must be owner of extension plpgsql
CREATE EXTENSION
ERROR: must be owner of extension postgis
CREATE EXTENSION
ERROR: must be owner of extension unaccent
En la segunda vez que pongo el pass se añaden los siguientes lineas de error
ERROR: relation “ccgs” already exists
ERROR: relation “constituencies” already exists
ERROR: relation “counties” already exists…
Y vario otros mas que implican relaciones qye ya existen.
Uno muy distinto es el siguiente
ERROR: duplicate key value violates unique constraint “ccgs_code_key”

A mi me funcionó configurando el security group para que admitirá trafico de psql y ejecutando el comando siguiente como superadmin “sudo su”:

psql -h platzidb.cdvmmy0vfjim.us-east-2.rds.amazonaws.com -U platzidb postgres <sample-uk-zipcodes.sql

No tuve errores siguiendo el video del instructor, sin embargo hay que tener cuidado al momento de crear la BD, no debe olvidar que nombre le dio, debe validar en EC2 en el grupo de seguridad que este creada la regla de la BD datos bn, a mi me funciono en Anywhere

Los 636 Dólares que allí calcula realmente los cobrarían en caso de crear la BD?

Listo, gracias por los aportes sobre habilitar el acceso al grupo de seguridad.
Primero me dio error porque no había indicado la creación de la base de datos inicial.

buena clase… pero no me tinko crear la base de datos. salia 636 dolares XD

Debido a que la BD se crea bajo una VPC con un security group, es necesario arregalr una regla que permita las conexiones a través del protocolo TCP.

Se debe ir a security grups y luego hacer clic en Edit inbound rules

La configuración de la regla en los security groups es así:

Para MySQL.
1. Crean un security group para TCP en Ibbound rules para el puerto 3306 anywhere. Eso lo pueden hacer en EC2 > Network & Security > Security groups.
2. Crear la base de datos en MySQL y en security group le asignan el que crearon. Si ya crearon la base de datos la modifican y asignan el grupo para aplicar cambios instantáneos.
3. Entran así desde cualquier máquina

mysql -h xxxxxx.zona.rds.amazonaws.com -u admin -p

me encantaría que para próximos cursos de AWS mostraran el ejemplo de como vincular una app dockerizada con una RDS en AWS… si alguien sabe como hacerlo sería increíble que comparta su conocimiento (he estado varios días intentando y no me sale)

psql -h <host> -U <user> <database> < dump.sql

Si quieren instalar postgress en una instancia de ec2 con ubuntu, pueden usar:

apt-get update
sudo apt-get install postgresql

acceden de la misma forma:
sudo su
su postgres
psql

con \l listan las bases de datos

Creo que se omiten o se asumen muchos conceptos los cuales no son explicados en el curso. Si es un curso de fundamentos y acercamiento a los productos de AWS, se debe explicar todo lo necesario para que el flujo sea igual para todos. En este video, la base ya esta creada y hay otras configuraciones que no son explicadas ni tenidas en cuenta.