Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
AWS Avalibility Zone : es un conjunto de data centers, estas están separadas una
de una
Edge : es un lugar donde no hay data centers pero llega la conexión directa con
Amazon, también se usan para el almacenamiento de cache y poner servidores de
dns (ruta 53).
Cuando se crea un Bucket el que crea dicho artefacto es el único que tiene acceso
hasta que el de acceso a alguien más (Bucket Policies)
o Estas políticas son escritas en JSON o desde la interfaz gráfica de AWS, es
aquí donde especifico las reglas para acceder a la información del Bucket.
Amazon cobra por la cantidad de espacio que se está usando por lo que la
capacidad a utilizar va ligada al dinero que se posea.
o Cobra por espacio utilizado (GBs por mes) y por sacar los datos.
Nos permite tener una papelera de reciclaje ya que una vez se modifica algo se
guardan las versionar anteriores (Versionado).
S3 vs S3 glacier
En S3 de hablan de objetos y en glacer de archivos
Tamaño máximo 5TB y en glacer se habla de 40TB
No se puede compartir ni convertirse en sitio web (Glacier)
Su tamaño es infinito (ambos)
Paso 2: se debe configurar la Instance User Data ya que aquí se especifica que se cargara
cuando la maquina EC2 sea booteada (configuración básica de la maquina al bootear)
Nota: Hay un comando el cual nos permite obtener información básica de la máquina
virtual (Instance metadata) -> obtener variables.
http://169.254.169.254/lastest/meta-data/public-hostname
(Esto desde Windows es posible gracias a que tiene navegador por defecto)
Paso 3: Elegir sistema con el que se desea almacenar.
- Los datos se pierden cada vez que la maquina se apaga, solo se debe usar para datos
temporales por eso surgen diferentes tipos de almacenamiento tales como.
Hay 4 tipos de disco EBS dos de tipo HDD (Hard-Disk Backend) y de SDD (Solid-State
Backend).
SDD
o El más rápido, es el disco IOPS SDD, pero es el más costoso.
o El más usado para bootear o base de datos es el General purpose (GP2) es el más
barato por IOPS
HDD
o Throughput Optimized HDD (ST1) son los MB por segundo más barato.
o Cold HDD (SC1) es lo más barato por giga, pero tiene la menor performance solo
es bueno para almacenar.
Si se necesitan compartir los datos EBS no sirve para esto se utilizaría S3 pero este tiene la
particularidad que este no tiene bloqueo a la hora que dos personas lo abran llegando a suceder
que el que guarde de ultimo gana y borraría la información de la persona que habría guardado
anteriormente, para evitar esto se utiliza el tipo de almacenamiento EFS.
On-Demand: se usan por demanda del momento y se alquilan por hora (son las más caras)
Reserved Intances: servicios que siempre deben estar encendidos se recomiendan que se
ejecuten de instancias reservadas.
o Se le garantiza a Amazon una suscripción mensual por lo que Amazon da un
descuento.
o Se alquilan mínimo por un año.
o Hay dos tipos
Standard RI-> es una maquina fija y no se puede cambiar
Convertible RIs -> se puede cambiar por una instancia superior
Scheduled RIs
Spot Instances: ofertas.
o Se puede contratar spot block ósea se paga por un tiempo de 1 a 6 horas donde
Amazon respeta el tiempo si no cobra.
Nota:
Spot fleet -> aplicación gratuita que nos permita que según la potencia necesaria de forma
automática escoge cuales instancias comprar
Se debe escoger si se usara una base de datos tradicional relacionar usando SQL o no relacional
donde cada una tiene sus ventajas y desventajas.
RDS en EBS -> L2 Amazon se encarga de la base de datos, pero no de los backups
RDS en Aurora -> L3 Amazon responde por todo por la base de datos, los respaldos y la
encriptación
Migrations options
o One-time mogration
o Ongoing migration
o Snowball Edge
o Puede ser en caliente o apagando todo dependiendo de la necesidad.
o Además, puede ser masiva.
o Permite el cambio de un motor de base de datos a otro, permitiendo traducir los
formatos de las bases de datos.
Module 5 : Segurity
Amazon Virtual Private Cloud (VPC)
Buenas practicas
1. Escoger adecuadamente que CIDR usar ya que esto depende la cantidad de
conexiones permitidas.
2. SI se quedan cortas las direcciones IP es un problema, por lo que se recomienda
sobredimensionar (IPS privadas son gratuitas)
3. Saber cuántas subnet nos necesarias, como mínimo son necesarias son la pública y
una privada pero si se tiene una base de datos que sea administrada por Amazon se
tiene una subnet llamada Restrictec o Protected ya que estas no tienen la necesidad
de ni salir ni entrar a internet.
4. Pensar en donde hay más máquinas y hay menos máquinas., por lo que es mejor tener
más rango de IPS en la subnet privada ya que es aquí donde se realiza el trabajo y las
máquinas de las subnet publica con son las más frágiles ya que serían las más
atacadas.
Firewall
Es una protección sobre las instancias, dichas instancias tienen un firewall por defecto que no
autoriza que nadie entre, pero si permite que salgan y vuelvan a entrar.
La subnet nos permiten que sean utilizadas como firewall, pero se usan más como
organizadores.
Stateful: Este firewall no deja entrar a nadie, pero deja salir y recuerda quien salió para dejarlo
entrar de Nuevo.
Stateles: Permite especificar a quien se desea bloquear, pero por lo general no se usan solo en
casos extraordinarios (ACL´s -> Network Access Control List)
Nota: Los NAT gateway no son gratuitos ni en el año gratuito de AWS $32 el mes.
Nota: debido a que la fibra se puede romper es recomendable tener de igual manera la conexión
por internet hacia AWS.
1. Multi – VPC
a. es una cuenta con un administrador que permite que tenga múltiples VPC, con el
fin de controlar los accesos (única organización de cobro).
2. Multi - Account
a. Nos permite separar los VPN por Account.
- Conexiones entre VPC para compartir información sin pasar por internet.
1. VPC Peering
a. Significar emparejar VPN’s, se tendrá una tabla de ruteo de una con otra, pero no
se pueden solapar las direcciones IP, funciona tanto dentro como fuera de una
región.
b. Su conexión siempre es uno a uno, no permite más de una conexión entre VPN
c. Se pueden utilizar máximo de 50 a 120 VPN.
2. Transit Gateway
a. Es el reemplazo de peering y se basa en la utilización de un HUB el cual centraliza
las comunicaciones.
b. Posee una performance de 50Gbps por enlace.
c. Permite la conexión de hasta 5000 enlaces
d. Es mucho más simple, rápida y escalable
e. $72 x Mes enlace.
3. EndPoints
a. Conocidos como punto de montaje, son externos a la VPC, pero están dentro de la
región Ej.: S3
b. Son administrados, escalables, redundantes
c. Hay de dos tipos
i. Los que transfieren datos S3 o DynamoDB
ii. Los que transfieren servicios certificados digitales.
1. Seguridad
2. Balanceadores de carga
3. Tolerancia a fallas
4. TLS Termination
5. Connection Draining
6. Sticky session
Nota: Evitar los únicos puntos de falla, un ejemplo es en vez de tener una única base de datos
debo tener una principal y una de contingencia, esto con el fin de aumentar mi disponibilidad.
Nota: siempre dar los permisos mínimos para el trabajo habitual ya que se pueden subir los
permisos de forma momentánea si es necesario.
Tipos de usuarios
IAM Principals
o IAM USER -> usuario local de AWS
o User group -> aquí es donde adicionamos los permisos generales y los usuarios
que tendrán acceso a esos permisos
o IAM Role -> son los permisos que se le dan a cada tipo de usuario es el rol que se
le da a un usuario en especifico
Los roles se usan cuando se desea dar autorizaciones momentáneas a un
usuario.
Los permisos se pueden dar por tiempo o Token (STS Amazon), es la llave
para acceder, pero con un tiempo de vida, este servicio es más que todo
para usuarios que se validan desde un directorio externo como lo son
desde internet.
AWS Organización: es una opción que nos permite la posibilidad de tener y administrar múltiples
cuentas de una organización.
ELB en 2 AZ
La forma de evitar que nos falten cosas es comprar de más, pero esto implica sobre costos
que se pueden perder es por esto que existe la propiedad de Elasticity lo que me permite
disminuir los recursos o aumentarlos de ser necesarios.
o Hay dos tipos de elasticidad
Por tiempo
Por eventos puntales Ej: oferta de un producto
o La forma de reaccionar respecto a lo que está pasando es monitorear.
Amazon CloudWatch
Hay gratis que hace medidas cada 5 min de muchos servicios
El pago hace medidas cada minuto de todos los servicios
El monitoreo nos permite realizar.
Métricas
Logs
Alarmas -> es lo que me alerta cuando algo pasa
Eventos –> es cuando deseo realizar algo
Reglas -> es lo que deseo realizar
Target -> es sobre lo que voy a actuar
Se puede monitoria
El dinero que se está usando
El performance (métricas)
Los accesos a las APIS
Que circula por la red
VPC Flow Logs ( nos permite visualizar todo lo que circula dentro de
nuestra red)
Me permite capturar los paquetes de todo lo que ocurre dentro
de una VPC (Es un capturado de paquetes)
Estos paquetes son guardados en CloudWatch Logs
Step Scaling
- Lectura
Se solucionan con múltiples copias (Read replicas), se usa en una
base relacional cuando se tienen más lecturas que escrituras no es
posible tener en Microsoft SQL server en aurora 15 y en el resto 5.
Cambiar la potencia de la instancia o la velocidad de mi
almacenamiento no es posible realizar en Microsoft SQL server.
Aurora Serverless
o Es un servicio de Amazon que nos permite pagar
únicamente por el tiempo en el que se ejecuta un proceso
solo por el tiempo que tome, ya que son servidores que
siempre están activos.
- Escritura
Divido la base de datos por partes ya sea por pares o impares, o
por letras (Sharding) Realizar particiones y usar un software que
divide la base de datos para la escritura y la une para la lectura.
SQL
o
Tienen problemas para escalar ya que solo escalan de manera vertical mas no
horizontal, además de ser rígidas y difíciles de modificar.
DynamoDB
o Auto scaling
La performance esta topeada por el valor del dinero que quiero gastar
Cuando una partición esta topeada y otra tienen de más Amazon permite
compartir el performance que tiene inutilizado en el que necesita más
(Adaptative Capacity)
o On-Demand
Pago por lo que consumo en el instante
o Se pueden cambiar de uno al otro, pero solo una vez por día.
o Se cobra siempre la capacidad básica así se consuma menos performance.
Module 9: Automation
Productos que usan en Desarrollo
Programar infraestructura como código.
1. Cloud Formation
a. Es un producto de Amazon que con tiene con código al igual que un programa,
este código permite modelar y documentar.
b. Una vez hecho el código se permite ejecutar con el fin de aprovisionar la
infraestructura y da la posibilidad de con solo modificar el código se actualiza la
infraestructura.
c. Este código está escrito en JSON o YAML (Código fuente)
i. Este código fuente se ejecuta con mediante el AWS CloudFormation
engine generando como tal una Architecture stack (esta como tal ya es la
infraestructura)
d. Como cualquier código lo puedo ejecutar múltiples veces, lo que me permite la
implementación masiva de infraestructura.
e. Nos permite implementar conditions lo cual implica que le indico la cantidad de
recursos que necesito.
f. Existe un programa llamado drift detection el cual nos permite comparar el código
cargado con el actual para validar algo así como un control de versiones.
g. Se recomienda la programación por capas dividiendo responsabilidades .
h. Hay una herramienta llamada Cloud Former (estado beta) la cual nos permitida
convertir la infraestructura ya creada y volverla código.
i. Existen modelos de implementación ya definidos por Amazon para resolver
problemas estándares llamado AWS Cloudformation templates
j. Hay un producto complementario llamado System Manager el cual nos permite la
administración del mantenimiento de mi infraestructura de manera automatizada,
funciona tanto para Windows como Linux.
i. Nos permite correr programas
ii. Guardar biblioteca de parches e instalarla con condiciones
iii. Decidir cuándo se realizará el reboot.
iv. Administra si las actualizaciones se realizaron bien o no
2. Ops Works
a. Es la herramienta que se usar orientada a la instalación y mantenimiento de las
aplicaciones.
b. Hay diferentes herramientas para realizar este tipo de ejecuciones automáticas
i. AWS OpsWorks Stacks (gratuito y es compatible con Chef)
ii. AWS OpsWorks for Chef Automate ($11 x mes servidor administrado)
iii. AWS OpsWorks for Puppet Enterprise ($12 x mes por servidor
administrado)
3. AWS Elastic BeansTalk
a. Esta escrito es Python
b. Es automatizar todo sin que yo necesitar saber cómo se implementa, crea la
infraestructura de manera automática.
c. No me preocupo por nada de la infraestructura.
d. Hay dos opciones
i. Una instancia una AZ
ii. Auto size, en dos AZ
Cache es tener las cosas más usadas la que necesito en un instante tener una copia más cercana;
- justifica el uso de cache cuando se tiene información muy lejos y lenta de obtener.
- Cosas que nunca vencen.
- Cosas que no sea importante mantener actualizada por ejemplo información.
Beneficios.
- Mejor los tiempos de respuesta ya que la información está más cerca del usuario
- Me evita leer los datos del lugar original por lo que en el lugar original se puede dedicar a
otros procesos.
- Es más barato leer de un cache que de un dato original.
Se puede realizar almacenar el cache desde el cliente o más cerca de los servidores.
Ventajas:
Mejora la seguridad
o Me mejora la seguridad ya que si atacan un punto de Edge tengo otros
que me soportan ese ataque ya que no están siendo afectados, ya que el
ataque solo afecta el Edge más cercano al usuario.
Mejora la experiencia del cliente
Aplicaciones:
2. Caching en APP.
Sticky Session o Afinity . me permite recordar que instancia me atendió las
sesiones y me permite usar la misma instancia.
Al usar DynamoDB para guardar estados de la sesión
o El tiempo de mide en ms
3. Caching en DB
Deben ser DB no relacionales
Se puede usar tanto para caching de sesiones como base de datos.
Existe Amazon DynamoDb Accelerator (DAX).
o El tiempo se mide en us.
Hay dos bases de datos más en memoria que son OPEN
o ElasticCache Redis (80 nodos y puede ser multi AZ)
o ElasticCache MemChached (20 nodos)
Es una gran cantidad de servidores (Nodos) con mucha RAM que
la usan como base de datos.
Ventajas
Es más rápido ya que le quita carga a la base de datos para realizar otras acciones.
2. Contenedores Docker
Micro servicios
i. Es tener códigos más compactos
ii. No deben depender directamente de datos , deben ser autónomos.
iii. Deben ser especializados solo deben hacer una sola cosa
Con esto definimos una API
Container Services
i. Para procesar micro servicios se utilizan contenedores.
ii. Un contenedor me muestra una copia de sistema operativo del
servidor o kernel , Es el proceso de virtualizar un sistema operático.
iii. Docker (Motor de contenedor) es el programa que me va a mostrar
una visión de mi kernel de Linux o Windows server.
iv. Los contenedores deben llevar los dll’s , y las necesidades para el
performance.
v. Dentro de los servicios de Docker hay un orquestador que es un
programa que se encarga de distribuir , el cual tiene como
orquestador a Kubernettes
vi. Amazon EKS es para Kubernettes , pero esta es paga por lo que hay
otra opción gratuita llamada ECS.
vii. Estos contenedores se guardan en S3 , al ser muchos contenedores
existe Amazon Elastic Container Registry (ECR) el cual me busca el
contenedor que necesito dentro del almacenamiento S3.
viii. Fargate , yo le lanzo un contendor y el me crea la infraestructura
automáticamente.
Ventajas:
Contenedores aislados del hardware
Aislados unos de los otros
Son más livianos y bootean más rápido por lo que puedo tener una
configuración más dinámica.
3. Serverless (Lambda)
Si yo logro tener una API , yo no necesito decirle que lo levante en un contenedor solo le
digo Amazon que lo ejecute, ya que Amazon se encarga tanto de escoger sistema
operativo como infraestructura y que Amazon tiene una cantidad de servidores esperando
a recibir código.
RPO -> Recovery Point Objetive, es cada cuando voy hacer un punto de recuperación.
RTP -> Recovery Time Objetive , es el tiempo que toma recuperar los datos