= EC2 == Tipos y clases de instancias EC2 * Las máquinas virtuales en AWS son llamadas instancias EC2 * El costo de las instancias es por hora encendida * Hay de distintas gamas y tamaños * Siempre se utiliza una AMI (Amazon Machine Image) como base * Para levantar una instancia como mínimo necesitamos una AMI, una VPC, un Security Group, un disco EBS y una key de acceso SSH o RDP === modos de uso de las instancias EC2 * On-Demand: Se pagan por horas levantadas, las podemos apagar en cualquier momento * Reserved: Se reservan a 1 o 3 años. Suelen ser entre un 50~70 % más baratas que las On-Demand * Spot: Son las más baratas. Se pagan lo que se quiera por encima de un mínimo. AWS las puede apagar en cualquier momento. === Tipos de instacias EC2 * Existen diferentes gamas de instancias EC2 que se diferencian en la relación CPU, RAM, GPU, Red y Almacenamiento * Se define en el momento de creación de la instancia (m4, c4, t2,...) * Puede ser cambiado luego, aunque requiere un Stop/Start de la instancia == Security Groups * Consola EC2 -> Security Groups * reglas a aplicar sobre una instancia EC2 * permite relacionar security groups entre ellas (para no tener que crear reglas 1 a 1 con instancias EC2) como un regla. * implica que si permitimos el acceso a una Security Group a un puerto, todas las instancias EC2 que se creen con ese SG tendrán ese acceso == Elastic IP Addresses * IPs públicas asignadas por Amazon * el método tradicional de asignación de IPs públicas funciona por DHCP (y por lo tanto, cuando apagas y enciendes, cambia) * la primera IP elástica no tiene coste * aunque si está reservada y no en uso, tiene coste == Creación de instancias en EC2 * AMIs propias * una de las que ya existen * AWS Marketplace * AMIs de servicios (por ejemplo, Wordpress) * al crear: * si indica VPC, Subnet * tipo de IP pública (si procede) * en Advanced Details, User data, podemos pasar un script que se ejecutará justo después de instaciar * p.e, actualizar e instalar apache y php:#!/bin/bash yum update -y yum install -y httpd24 php56 * añadir storage * añadir tags (para localizar después las instancias) * configurar Security Group (crear o usar uno que ya tengamos) * configurar ssh-key (usar una existente o crear) * cambiar la IP pública por una elástica * ir a IPs elásticas, crear si procede y asociar a la instancia * para conectar via SSH * **ec2-user** para instancias Amazon Linux * **ubuntu** para otras AMIs de canonical * ''netstat -lptn'' * metadata * información contenida en la instancia y solo accesible desde la instancia * ''curl http://169.254.169.254/latest/meta-data'' -> muestra que metadatos hay disponibles == Elastic Block Store (EBS) * volúmenes en AWS * han de estar en la misma zona de disponibilidad que las instancias * después de crear el volumen: * ''lsblk'' * ''mkfs ext4 /dev/xvdf'' * en la consola EC2 puede verse de una manera (/dev/sdf) pero en la instancia será (/dev/xvdf) * ''mount /dev/xvdf /mnt'' * el volumen se puede sacar de esta instancia y asignar a otra (no haría falta formatear)