¿Cuáles son los pasos para crear una instancia de EC2?
- Vamos al home y damos clic sobre la opción EC2 “Virtual Servers in the Cloud”.
- Dentro del EC2 Dashboard podemos ver alguna información como…
- Service Health (Estado del Servicio).
- Cual es el estado del servicio.
- En que región se encuentra.
- Cuales es el estado de sus Availability Zones.
- Damos clic en la opción Launch Instance.
Elección de la instancia de EC2
AMI es la versión de Linux gratuita de AWS que viene optimizada, probada y con una serie de aplicaciones que permiten simplificar el uso de AWS en Linux.
- Damos clic sobre la opción Free tier only para listar solo las imágenes gratuitas.
- Elegimos la opción Amazon Linux AMI dando clic en Select.
- En la siguiente ventana podemos ver que existe una lista de tiers que podemos elegir, algunas de ellas son m4, t2, d2, i2, r3, etc, por default AWS nos ofrece una tier gratuita que es con la que vamos a trabajar, elegimos esta que aparece como Free tier elegible y damos clic en Next: Configure Instance Details.
Configuración de la instancia de EC2
- Dentro de la configuración de la AMI vamos a ver las siguientes opciones.
- Number of instaces: (Numero de instancias)
- 1
- Request Spot instances (En base a oferta/demanda como lo vimos anteriormente)
- deshabilitada Network (Donde elegimos nuestro vpc).
- Subnet (Subred, se puede elegir una zona si asi se desea)
- default siempre igual a un availability zone, no se puede tener un subnet a traves de multiples availability zones.
- Auto-assign Public IP (Si deseamos auto asignar la dirección IP)
- No preference
- IAM Role (El rol que tendrá acceso a esta instancia)
- AdministradorS3
- Shutdown Behavior (Vamos a dejar pues no queremos que se ejecute Terminate)
- Stop
- Enable termination protection (Si deseas que se proteja el poder realizar terminate sobre la consola)
- Habilitada
- Monitoring (Si deseamos habilitar monitoreo mediante CloudWatch)
- Deshabilitada
- Tenancy (Si deseamos ejecutar la instancia en un servidor dedicado)
- Shared (compartido)
- Advance Details / User Data (Permite agregar comandos para provisionar la instancia de EC2)
- Vacío
- Damos clic sobre Next: Add Storage.
- En la parte para definir el storage de nuestra instancia, en la parte de abajo se especifica las características de los planes gratuitos, vamos a tomar las opciones por default y dar clic en Next: Tag Instance.
El Root Volume no es encriptado por default pero si agregamos un nuevo volume nos aparecerá la opción para encriptar o no el disco.
- Ingresamos para el Name : ServidorWeb y damos clic en Next: Configure Security Group.
- Tagging es siempre una combinación de key y value, se pueden asignar hasta 10 tags máximo.
- El security group (grupo de seguridad) funciona como un firewall virtual.
- En este momento no tenemos un Security group por lo que el sistema nos pedirá crear uno nuevo, utiliza el nombre GrupoServidorWeb.
- Después vamos a definir algunos valores.
- Type (Tipo)
- SSH
- Protocol (Protocolo)
- TCP
- Port Range (Rango de puertos)
- 2222 (Es recomendable no usar el puerto por defecto).
- Source (Fuente)
- Anywhere : 0.0.0.0/0 (Lo mas seguro sería tener una IP fija, algo difícil en muchos de los casos).
Agregamos una nueva línea dando clic en Add Rule.
- Type
- HTTP
- Protocol
- TCP
- Port Range
- 80
- Source
- Anywhere : 0.0.0.0/0
- Damos clic sobre Review and Launch.
Ahora podemos ver los detalles de la instancia que estamos intentando crear.
- Damos clic sobre Launch.
- La overlay nos mostrara un mensaje para descargar la llave de acceso, donde se encuentra la opción Choose an existing pair cambiamos a Create a new key pair. Le damos el nombre MiLlave y damos clic en Download Key Pair.
Tu navegador te notificará de la descarga, recuerda guardarla en un lugar accesible para ti solamente, esta es tu llave privada. Recuerda que no podrás volver a descargar esta llave.
- Vamos a dar clic sobre Launch Instances.
- En la actual ventana nos notificará el sistema que se esta inicializando la instancia, damos clic en View Instances.
- Ahora estamos viendo la lista de instancias de EC2, y podemos ver nuestra instancia llamada ServidorWeb, espera a que la columna Instance State cambie al estado running.
Conectando desde la terminal (Mac y Linux)
- Abre la terminal.
- Navega en la terminal hasta donde se encuentre tu llave privada.
- Ve a la consola y donde se encuentra la columna Public IP da clic derecho con el botón, después elige la opción Connect.
- En las instrucciones es importante que realices el chmod 400 nombredelallave.prm
- Después utiliza la linea del Example para conectarte desde la terminal, copia y pega (pero trata de entender que representa cada parámetro de la linea de comandos).
$ ssh -i "MiLlave.pem" [email protected]
La dirección varia de instancia a instancia.
- Una vez conectado hay que realizar las actualizaciones requeridas de Linux, esto contiene las actualizaciones y parches de seguridad.
$ sudo su
$ yum update -y
- Instalamos Apache.
$ yum install httpd -y
$ cd /var/www/html
$ ls
$ echo "Mi primera pagina" >> index.html
$ service httpd restart
- Abrimos en el navegador el http://ipdenuestroservidor/ y estaremos viendo la pagina que acabamos de crear.
- Al final podemos salir con el comando exit.
$ exit
- Vamos al dashboard de EC2.
- Si intentamos terminar la instancia no nos lo va a permitir Actions > Instance State > Terminate, debido a que tenemos que desactivar primero la protección para terminate Actions > Instance Settings > Change Termination Protection.
- Vamos a la pestaña Status Check, aquí aparecerán dos alarmas.
- System Status Check “Problema de Infraestructura” (Verifica que los sistemas de AWS requeridos para esta instancia y asegurarse que estos funcionan correctamente).
- En un fallo de este tipo es necesario reiniciar la instancia o incluso terminarla.
- Instance Status Check “Error de Software” (Monitorea el software y la configuración de la red para la instancia)
- Si este falla se puede reiniciar la instancia y esta aparecerá con un nuevo host.
- Vamos a la pestaña Monitoring y encontramos las gráficas de monitoreo de nuestra instancia. Por default este monitoreo se realiza cada 5 minutos. Si cambiamos a la opción Enable Detailed Monitoring se realizará cada minuto con un costo extra.
- Vamos a la pestaña Tags donde podemos ver el par de keys/values.
Resumen
-
Termination Protection se encuentra deshabilitado por default, hay que habilitarlo.
-
Cuando se borra una maquina virtual que tiene un disco adjunto, la operación por default es borrar el volumen del root cuando la instancia (vm) es terminada. Para prevenir este comportamiento hay que deshabilitar la opción Delete on Termination al momento de crear el volumen.
-
El volumen root del AMI no puede ser encriptado.
-
Los volúmenes adicionales si pueden ser encriptados.