En primer lugar, Aprenderemos como subir una instancia a AWS EC2, si ya sabes hacer esto ve a al punto "Conectándonos vía SSH" para ver la parte de deployment
Introducción a AWS
En este tutorial levantaremos una instancia de ec2, es decir, un servidor virtual elastico, es elastico por que el proyecto crece o disminuye automáticamente dependiendo del uso de este. para ello primero tenemos que configurar 3 cosas, primero el security group, luego la llave de seguridad y después el load balancer. Iremos entrando en detalle sobre que son cada uno de ellos.
1- Security Group
El secutiry group es como un firewall virtual que controla el tráfico de una o más instancias, por ejemplo, podemos permitir que se pueda entrar a nuestro sistema por http o por shh o por ambos. Por defecto esta todo denegado, así que ponemos lo que queremos permitir.

2- Key Pair (llave de seguridad)
Cuando creamor la llave de seguridad se generara un archivo con extención .pem este archivo tendrá una llave privada que queda en el servidor de amazon y una llave pública que nos servira para identificarnos y acceder al servidor

$ chmod 0400 elNombreDeTuLlave.pem
3- Load Balancer
Gestiona las llamas al servidor para que no se caiga, este ve porque puertos entrara cada persona para ver si llevar el trafico a otro servidor o no, es decir, recibe el trafico y lo divide en los servidores




3- Las Instancias


En esta área de configuración a nivel de servidor vemos que abajo esta la sección Advance detail. allí pondremos los comandos que se ejecutaran cuando se genere la instancia, así que pondremos los comandos para crear un servidor LAMP, que son los siguientes
#! /bin/bash -ex
yum update -y
yum groupinstall -y "Web Server" "MySQL Database" "PHP Support"
service httpd start
chkconfig httpd on
yum update -y
yum groupinstall -y "Web Server" "MySQL Database" "PHP Support"
service httpd start
chkconfig httpd on



Su instancia al principio saldrá con estado pendiente y luego estará corriendo.
Conectandonos vía SSH
Nos vamos a la consola y ponemos el siguiente comando
ssh -i Download/ejemplo2.pem ec2-user@18.220.179.187
donde -i significa que archivo vinculamos de la llave al servidor Download por que ahí tengo mi llave.
18.220.179.187 por que esa es a direccion publica de mi instancia, ustedes deben ver cual es la suya.
ec2-user por que somos usuarios de ec2
una vez ejecutado entraremos al servidor.

Instalando Git en el servidor
ejecutamos el comando
Sudo Yum install git
con eso tenemos instalado git. y revisamos con
git --version
Luego nos vamos a
cd /var/www/html
y ponemos
sudo git init
Creamos la llave SSH en el servidor
Ahora creamos una llave en nuestro server (sin clave), con el comando
ssh-keygen -t rsa -b 4096
luego añadimos la llave publica generada en nuestro repositorio de GitHub. para esto primero vemos donde se creó la llave, en mi caso en home

cat id_rsa.pub
podemos ver la llave publica, copiamos y pegamos en nuestro repositorio de GitHub.

Deploy
Ahora desde nuestro archivo /var/www/html nos traemos el proyecto de git
sudo git remote add origin https://github.com/MedinaGitHub/BlogSebastianMedina.git
sudo git pull origin master
sudo git pull origin master
si entramos a la ip publica del servidor podremos ver los cambios.