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 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 (Postgress)

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

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 57

Preguntas 11

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Reg铆strate o inicia sesi贸n para participar.

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铆:

<[[email protected]] $ 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. 馃槑

Para los pr贸ximos Alumnos, Mauro omiti贸 como crear la RDS鈥
Tienen que crearla por su cuenta y al final seleccionar el checkbox de RDS Free Usage Tier鈥

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.

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铆:

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 鈥淰PC 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 鈥淧ublicly 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.

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.

Con todo respeto, me hubiera gustado poder hacer la prueba; primero, haber creado la bd en postgres con un solo registro, as铆 hubiera tomado 2 o 3 minutos m谩s el video; entiendo que no sea la secci贸n indicada que tienen una especifica, pero lo que veo es que se va volviendo te贸rico, porque no podemos hacer la prueba.

El repositorio en GitHub y el SQL.

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.

驴Este video est谩 incompleto o yo me perd铆 de algo?, 驴en qu茅 momento se hizo la base de datos?

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茅

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 鈥渄ireccionde 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 鈥楥onnectivity & Security鈥 de mi base de datos y baje a la parte de 鈥楽ecurity group roles鈥, luego le doy clic al grupo 鈥榙efault鈥︹ y ya me manda al men煤 de configuraci贸n de ese grupo de seguridad, lo selecciono y en 鈥榓ctions鈥 le doy 鈥榚dit 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:

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 鈥淒atabase鈥 y luego la opci贸n de 鈥淐reate 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 鈥減sql --version鈥

yum install postgresql

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

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 馃

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 鈥渟gctest鈥 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!!

After 3hrs later鈥
.

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

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.

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 鈥淪ecurity 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 鈥渟udo apt install postgresql鈥 para instalar postgresql y luego el comando 鈥渟udo 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 鈥淔ree tier鈥. Luego para que se cree la BD inicial, desplegar 鈥淎dditional configuration鈥 y poner nombre en 鈥淚nitial 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鈥

En el minuto 1:59 como crea la instancia en el drbd platzi-db鈥 ?? me queda esa duda

Cuando corro este comando :
psql -h seba-db.c0wqofgqmzzp.us-east-2.rds.amazonaws.com -U sebadb sebadb <sample-uk-zipcodes.sql****

Me arroja lo siguiente la consola:

psql: could not connect to server: Connection timed out
	Is the server running on host "seba-db.c0wqofgqmzzp.us-east-2.rds.amazonaws.com" (172.31.24.7) and accepting
	TCP/IP connections on port 5432?

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 鈥淐reando 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.

[[email protected]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 鈥渃cgs鈥 already exists
ERROR: relation 鈥渃onstituencies鈥 already exists
ERROR: relation 鈥渃ounties鈥 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 鈥渃cgs_code_key鈥

A mi me funcion贸 configurando el security group para que admitir谩 trafico de psql y ejecutando el comando siguiente como superadmin 鈥渟udo 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.