Publicando una web ASP.Net con WebDeploy en una instancia EC2 de Amazon

Web Deploy es un sistema de despliegue de aplicaciones web de Microsoft que simplifica el despliegue en un servidor IIS sincronizando la versión del servidor con tu versión local.

Antes de Web Deploy se tenía que desplegar a través de un FTP o incluso a mano pero eso con Web Deploy es un método del pasado y en este artículo vamos a ver como se hace con WebDeploy.

En este artículo asumo que ya tienes un servidor en una instancia de Amazon EC2, IIS y una web configurada.

Amazon AWS

La instancia de Amazon va a necesitar tener unas reglas de entrada en el grupo de seguridad. Podemos crear un grupo nuevo exclusivo para web Deploy o añadir reglas en los grupos existentes.

Las reglas de entrada que tenemos que crear es una de tipo HTTP para el puerto 80 y otro de tipo Custom TCP Rule para el puerto 8172.

Security-Group-Web-Deploy.png

Instalar Web Deploy en el servidor

Necesitamos instalar Web Deploy en la instancia de Amazon para poder sincronizar con la copia local. Descargamos Web Platform Installer desde donde instalaremos Web Deploy For Hosting Servers.

deploy-aspnet-mvc-on-amazon-ec2-with-web-deploy-02.png

Usuario de despliegue

Para poder realizar despliegues con Web Deploy vamos a necesitar tener configurado un usuario en el servidor. Podemos utilizar el usuario administrador o crear uno específico para despliegues.

Publicando desde Visual Studio

Con botón derecho sobre el proyecto web seleccionamos publish y aparece el profile a elegir. Seleccionamos crear uno nuevo, indicamos Web Deploy como método de publicación y en la conexión metemos los datos del servidor, web site, usuario y contraseña (usuario administrador o el que hayamos creado para Web Deploy).

Profile-Web-Deploy.png

Y pulsando en publish se realiza el despliegue en el servidor web.

Conclusiones

Resulta un poco abrumador lo sencillo que es desplegar una web con Web Deploy. Es mucho más seguro y simple, una vez configurado, en un par de click desde Visual Studio desplegamos nuestra web.