{"id":18377,"date":"2013-01-04T13:35:17","date_gmt":"2013-01-04T12:35:17","guid":{"rendered":"https:\/\/diego.dehaller.ch\/blog\/?p=18377"},"modified":"2020-05-24T00:07:18","modified_gmt":"2020-05-23T22:07:18","slug":"crear-un-servidor-web-en-amazon-web-services-ec2","status":"publish","type":"post","link":"https:\/\/diego.dehaller.ch\/blog\/2013\/crear-un-servidor-web-en-amazon-web-services-ec2.html","title":{"rendered":"Crear un servidor web en Amazon Web Services EC2"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-18378 aligncenter\" alt=\"Amazon Web Services\" src=\"https:\/\/i1.wp.com\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/aws_dsl0eh.png?fit=1034%2C377&#038;ssl=1\" width=\"500\" height=\"182\" srcset=\"https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/aws_dsl0eh.png 1034w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/aws_dsl0eh-500x182.png 500w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/aws_dsl0eh-768x280.png 768w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/aws_dsl0eh-570x208.png 570w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/p>\n<p>El servicio de <a title=\"Amazon EC2\" href=\"https:\/\/aws.amazon.com\/ec2\/\" target=\"_blank\" rel=\"noopener noreferrer\">EC2 de Amazon<\/a> est\u00e1 cada vez m\u00e1s de moda, y no solo eso, tambi\u00e9n es cada vez m\u00e1s sencillo de manejar. Ofrece muchas ventajas, pero la que m\u00e1s es la flexibilidad. Si empezamos un servicio online y necesitamos un servidor, no tendremos que pensar en el futuro adquiriendo un servidor muy potente para los posibles usuarios que acaben llegando, sino que podremos ir aumentando el tama\u00f1o del servidor a medida que nuestro servicio crezca. Y todo con un precio bastante asequible, que se mide por tiempo de uso. Como el objetivo de este post no es explicar c\u00f3mo se factura, os recomiendo que le\u00e1is lo que dice <a title=\"Amazon EC2 Pricing\" href=\"https:\/\/aws.amazon.com\/ec2\/pricing\/\" target=\"_blank\" rel=\"noopener noreferrer\">Amazon al respecto<\/a> (en ingl\u00e9s, eso s\u00ed).<\/p>\n<p>Una peque\u00f1a nota antes de meternos en el tema: no soy un experto en servidores, ni en hosting, ni en Linux. Solo trato de apa\u00f1arme como puedo, usando Google y probando. Con esto quiero decir que lo que ve\u00e1is aqu\u00ed no tiene por qu\u00e9 ser una gu\u00eda perfecta de c\u00f3mo crear un servidor web en Amazon Web Services EC2. Seguro que hay pasos que no son necesarios o que me dejo algo que deber\u00eda hacer. Si es as\u00ed, os pido que lo coment\u00e9is para que pueda mejorar esta especie de gu\u00eda.<\/p>\n<p><em><strong>Actualizaci\u00f3n: el sitio de ejemplo que cre\u00e9 para esta gu\u00eda ha sido desconectado. Me supon\u00eda un peque\u00f1o coste econ\u00f3mico que, si bien no era mucho (s\u00f3lo los vol\u00famenes), no veo el motivo por dejarlo m\u00e1s tiempo. El que no est\u00e9 activo no afecta a que la gu\u00eda siga siendo v\u00e1lida.<\/strong><\/em><\/p>\n<p>El objetivo ser\u00e1 crear un servidor que pueda hospedar un blog de WP. As\u00ed que instalaremos Apache, PHP, MySQL y haremos la configuraci\u00f3n necesaria. Tambi\u00e9n instalaremos Webmin, pero no es obligatorio. Todo lo he hecho usando Mac OS, por lo que si us\u00e1is Windows, la manera de conectar ser\u00e1 distinta. Pero seguro que encontr\u00e1is c\u00f3mo usar Putty para conectar con vuestro servidor \ud83d\ude09<\/p>\n<p>Empecemos.<\/p>\n<h2>Creando el servidor EC2<\/h2>\n<p>Suponiendo que ya est\u00e9is en el <a title=\"Panel de control AWS\" href=\"https:\/\/console.aws.amazon.com\/ec2\/\" target=\"_blank\" rel=\"noopener noreferrer\">panel de control de AWS<\/a>, ver\u00e9is algo parecido a esto:<\/p>\n<figure id=\"attachment_18379\" aria-describedby=\"caption-attachment-18379\" style=\"width: 500px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/res.cloudinary.com\/deb1snrtn\/image\/upload\/v1443904001\/InstalacionAWS1_rulcll.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-18379\" alt=\"InstalacionAWS1\" src=\"https:\/\/i0.wp.com\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS1_rulcll.jpg?fit=1140%2C509&#038;ssl=1\" width=\"500\" height=\"222\" srcset=\"https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS1_rulcll.jpg 1915w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS1_rulcll-500x223.jpg 500w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS1_rulcll-1280x571.jpg 1280w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS1_rulcll-768x342.jpg 768w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS1_rulcll-1536x685.jpg 1536w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS1_rulcll-570x254.jpg 570w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><figcaption id=\"caption-attachment-18379\" class=\"wp-caption-text\">Panel de Control AWS<\/figcaption><\/figure>\n<p>Ver\u00e9is que hay un bot\u00f3n de \u00abLaunch Instance\u00bb, que ser\u00e1 lo que nos permite crear un nuevo servidor. Pero antes de eso, tened en cuenta una cosa: si os fij\u00e1is, arriba a la derecha de la pantalla, ver\u00e9is al lado de vuestro nombre la zona en la que est\u00e1is trabajando. Es decir, por as\u00ed decirlo, en qu\u00e9 datacenter est\u00e1is y, por ende, d\u00f3nde crear\u00e9is los servidores, ver\u00e9is los que hay, etc. Lo m\u00e1s l\u00f3gico ser\u00eda cambiar a la zona europea (Irlanda) pero en mi caso no lo hice. \u00bfPor qu\u00e9? Es m\u00e1s barato en Estados Unidos que en Europa. El \u00fanico punto negativo es la velocidad de acceso, ya que si vuestro p\u00fablico est\u00e1 en Europa, lo l\u00f3gico es que lo teng\u00e1is ah\u00ed, pero en m\u00ed caso eso no me preocupa.<\/p>\n<p>As\u00ed que una vez decidido d\u00f3nde quer\u00e9is trabajar, acordaos, ya que cada vez que entr\u00e9is ir\u00e9is a la zona de EE.UU. y no a la de Europa, y no os quiero ni contar el susto que os pod\u00e9is llevar al ver que no hay servidores.<\/p>\n<p><!--more--><\/p>\n<p>Bien, dicho esto, hacemos click en \u00abLaunch Instance\u00bb. Al hacerlo, veremos una pantalla que nos pregunta qu\u00e9 tipo de asistente queremos. Para la gu\u00eda coger\u00e9 el Classic Wizard.<\/p>\n<figure id=\"attachment_18380\" aria-describedby=\"caption-attachment-18380\" style=\"width: 500px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/res.cloudinary.com\/deb1snrtn\/image\/upload\/v1443903999\/InstalacionAWS2_ojzybf.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-18380\" alt=\"InstalacionAWS2\" src=\"https:\/\/i1.wp.com\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS2_ojzybf.jpg?fit=935%2C563&#038;ssl=1\" width=\"500\" height=\"301\" srcset=\"https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS2_ojzybf.jpg 935w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS2_ojzybf-500x301.jpg 500w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS2_ojzybf-768x462.jpg 768w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS2_ojzybf-570x343.jpg 570w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><figcaption id=\"caption-attachment-18380\" class=\"wp-caption-text\">Asistente<\/figcaption><\/figure>\n<p>Hacemos click en \u00abContinue\u00bb y vemos 4 pesta\u00f1as en la siguiente pantalla. Para el ejemplo, nos quedamos en \u00abQuick Start\u00bb y seleccionamos la Amazon Machine Image (AMI) de Amazon, la de 64 bits. Hay m\u00e1s, y de hecho encontr\u00e1is de todo, pero cogemos la m\u00e1s sencilla y completa.<\/p>\n<figure id=\"attachment_18381\" aria-describedby=\"caption-attachment-18381\" style=\"width: 500px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/res.cloudinary.com\/deb1snrtn\/image\/upload\/v1443903997\/InstalacionAWS3_xfhjj7.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-18381\" alt=\"InstalacionAWS3\" src=\"https:\/\/i1.wp.com\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS3_xfhjj7.jpg?fit=870%2C564&#038;ssl=1\" width=\"500\" height=\"324\" srcset=\"https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS3_xfhjj7.jpg 870w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS3_xfhjj7-500x324.jpg 500w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS3_xfhjj7-768x498.jpg 768w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS3_xfhjj7-570x370.jpg 570w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><figcaption id=\"caption-attachment-18381\" class=\"wp-caption-text\">Selecci\u00f3n AMI<\/figcaption><\/figure>\n<p>Al seleccionarla, encontramos otra pantalla con distintas opciones, que dejaremos tal y como aparecen aqu\u00ed (suelen venir por defecto, pero revisadlo por si acaso). Para probar, el servidor tipo T1.Micro, que sale muy barato, o gratis, y si luego veis que necesit\u00e1is algo m\u00e1s potente, pod\u00e9is cambiarlo sin perder nada.<\/p>\n<figure id=\"attachment_18383\" aria-describedby=\"caption-attachment-18383\" style=\"width: 500px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/res.cloudinary.com\/deb1snrtn\/image\/upload\/v1443903993\/InstalacionAWS5_irjb3x.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-18383\" alt=\"InstalacionAWS5\" src=\"https:\/\/i1.wp.com\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS5_irjb3x.jpg?fit=864%2C589&#038;ssl=1\" width=\"500\" height=\"340\" srcset=\"https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS5_irjb3x.jpg 864w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS5_irjb3x-500x341.jpg 500w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS5_irjb3x-768x524.jpg 768w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS5_irjb3x-570x389.jpg 570w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><figcaption id=\"caption-attachment-18383\" class=\"wp-caption-text\">Detalles del Servidor<\/figcaption><\/figure>\n<p>La siguiente pantalla, igual, sin tocar nada:<\/p>\n<figure id=\"attachment_18384\" aria-describedby=\"caption-attachment-18384\" style=\"width: 500px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/res.cloudinary.com\/deb1snrtn\/image\/upload\/v1443903962\/InstalacionAWS6_gt0fjk.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-18384\" alt=\"InstalacionAWS6\" src=\"https:\/\/i0.wp.com\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS6_gt0fjk.jpg?fit=863%2C585&#038;ssl=1\" width=\"500\" height=\"338\" srcset=\"https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS6_gt0fjk.jpg 863w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS6_gt0fjk-500x339.jpg 500w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS6_gt0fjk-768x521.jpg 768w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS6_gt0fjk-570x386.jpg 570w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><figcaption id=\"caption-attachment-18384\" class=\"wp-caption-text\">Detalles del Servidor<\/figcaption><\/figure>\n<p>En la siguiente, tendremos que editar las particiones, para a\u00f1adir otro volumen m\u00e1s:<\/p>\n<figure id=\"attachment_18385\" aria-describedby=\"caption-attachment-18385\" style=\"width: 500px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/res.cloudinary.com\/deb1snrtn\/image\/upload\/v1443903960\/InstalacionAWS7_vqrxlo.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-18385\" alt=\"InstalacionAWS7\" src=\"https:\/\/i1.wp.com\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS7_vqrxlo.jpg?fit=860%2C580&#038;ssl=1\" width=\"500\" height=\"337\" srcset=\"https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS7_vqrxlo.jpg 860w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS7_vqrxlo-500x337.jpg 500w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS7_vqrxlo-768x518.jpg 768w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS7_vqrxlo-570x384.jpg 570w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><figcaption id=\"caption-attachment-18385\" class=\"wp-caption-text\">Detalle partici\u00f3n<\/figcaption><\/figure>\n<p>Fijaos en las opciones que pongo en la pesta\u00f1a de EBS Volume, donde crearemos otro volumen nuevo de 10 GB, llamado \/dev\/sdk, de tipo est\u00e1ndar. Utilizaremos ese volumen para los archivos del servicio que vayamos a hospedar, la base de datos MySQL, etc.<\/p>\n<figure id=\"attachment_18386\" aria-describedby=\"caption-attachment-18386\" style=\"width: 500px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/res.cloudinary.com\/deb1snrtn\/image\/upload\/v1443903958\/InstalacionAWS8_u9pqys.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-18386\" alt=\"InstalacionAWS8\" src=\"https:\/\/i0.wp.com\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS8_u9pqys.jpg?fit=869%2C585&#038;ssl=1\" width=\"500\" height=\"336\" srcset=\"https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS8_u9pqys.jpg 869w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS8_u9pqys-500x337.jpg 500w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS8_u9pqys-768x517.jpg 768w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS8_u9pqys-570x384.jpg 570w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><figcaption id=\"caption-attachment-18386\" class=\"wp-caption-text\">Detalle creando EBS<\/figcaption><\/figure>\n<p>Haced click en \u00abAdd\u00bb de manera que quede as\u00ed:<\/p>\n<figure id=\"attachment_18387\" aria-describedby=\"caption-attachment-18387\" style=\"width: 500px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/res.cloudinary.com\/deb1snrtn\/image\/upload\/v1443903956\/InstalacionAWS9_cwigem.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-18387\" alt=\"InstalacionAWS9\" src=\"https:\/\/i1.wp.com\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS9_cwigem.jpg?fit=864%2C588&#038;ssl=1\" width=\"500\" height=\"340\" srcset=\"https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS9_cwigem.jpg 864w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS9_cwigem-500x340.jpg 500w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS9_cwigem-768x523.jpg 768w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS9_cwigem-570x388.jpg 570w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><figcaption id=\"caption-attachment-18387\" class=\"wp-caption-text\">Listado de particiones<\/figcaption><\/figure>\n<p>En la siguiente pantalla podemos definir etiquetas que identifiquen nuestro servidor. Por defecto, viene con la etiqueta Name, donde pondr\u00e9is lo que quer\u00e1is, eso s\u00ed, que sirva para identificar el servidor.<\/p>\n<figure id=\"attachment_18388\" aria-describedby=\"caption-attachment-18388\" style=\"width: 500px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/res.cloudinary.com\/deb1snrtn\/image\/upload\/v1443903955\/InstalacionAWS10_dnvnk3.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-18388\" alt=\"InstalacionAWS10\" src=\"https:\/\/i0.wp.com\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS10_dnvnk3.jpg?fit=864%2C582&#038;ssl=1\" width=\"500\" height=\"336\" srcset=\"https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS10_dnvnk3.jpg 864w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS10_dnvnk3-500x337.jpg 500w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS10_dnvnk3-768x517.jpg 768w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS10_dnvnk3-570x384.jpg 570w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><figcaption id=\"caption-attachment-18388\" class=\"wp-caption-text\">Etiquetas del servidor<\/figcaption><\/figure>\n<p>En la siguiente pantalla, mucho cuidado, que es cr\u00edtico. Si no se hace bien, no podr\u00e9is entrar a trav\u00e9s de SSH con vuestro servidor. Lo que vamos a hacer es crear unos ficheros de claves, y descargar el nuestro. Otro quedar\u00e1 en el servidor para conectarnos. As\u00ed que ponemos un nombre de usuario y descargamos el fichero.<\/p>\n<figure id=\"attachment_18393\" aria-describedby=\"caption-attachment-18393\" style=\"width: 500px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/res.cloudinary.com\/deb1snrtn\/image\/upload\/v1443903953\/InstalacionAWS11_yphwfv.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-18393\" alt=\"InstalacionAWS11\" src=\"https:\/\/i0.wp.com\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS11_yphwfv.jpg?fit=866%2C587&#038;ssl=1\" width=\"500\" height=\"338\" srcset=\"https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS11_yphwfv.jpg 866w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS11_yphwfv-500x339.jpg 500w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS11_yphwfv-768x521.jpg 768w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS11_yphwfv-570x386.jpg 570w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><figcaption id=\"caption-attachment-18393\" class=\"wp-caption-text\">Fichero de Claves<\/figcaption><\/figure>\n<p>Una vez descargado nuestro fichero, pasaremos a la siguiente pantalla, donde configuraremos el cortafuegos del servidor. Por defecto, de cara al exterior nada est\u00e1 abierto, as\u00ed que tendremos que crear las siguientes reglas:<\/p>\n<figure id=\"attachment_18394\" aria-describedby=\"caption-attachment-18394\" style=\"width: 500px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/res.cloudinary.com\/deb1snrtn\/image\/upload\/v1443903951\/InstalacionAWS12_hsrnlk.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-18394\" alt=\"InstalacionAWS12\" src=\"https:\/\/i1.wp.com\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS12_hsrnlk.jpg?fit=868%2C590&#038;ssl=1\" width=\"500\" height=\"339\" srcset=\"https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS12_hsrnlk.jpg 868w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS12_hsrnlk-500x340.jpg 500w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS12_hsrnlk-768x522.jpg 768w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS12_hsrnlk-570x387.jpg 570w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><figcaption id=\"caption-attachment-18394\" class=\"wp-caption-text\">Reglas de cortafuegos<\/figcaption><\/figure>\n<p>Y ya est\u00e1, veremos una pantalla resumen y si todo est\u00e1 como queremos, le damos a \u00abLaunch\u00bb y cerramos el asistente.<\/p>\n<figure id=\"attachment_18395\" aria-describedby=\"caption-attachment-18395\" style=\"width: 500px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/res.cloudinary.com\/deb1snrtn\/image\/upload\/v1443903949\/InstalacionAWS13_jcymtj.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-18395\" alt=\"InstalacionAWS13\" src=\"https:\/\/i0.wp.com\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS13_jcymtj.jpg?fit=863%2C580&#038;ssl=1\" width=\"500\" height=\"336\" srcset=\"https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS13_jcymtj.jpg 863w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS13_jcymtj-500x336.jpg 500w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS13_jcymtj-768x516.jpg 768w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS13_jcymtj-570x383.jpg 570w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><figcaption id=\"caption-attachment-18395\" class=\"wp-caption-text\">Resumen<\/figcaption><\/figure>\n<p>Volviendo al panel de control de AWS EC2, si vamos a Instances, veremos que est\u00e1 el servidor que acabamos de crear. Pasados unos minutos, deber\u00edamos ver que est\u00e1 en marcha:<\/p>\n<figure id=\"attachment_18397\" aria-describedby=\"caption-attachment-18397\" style=\"width: 500px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/res.cloudinary.com\/deb1snrtn\/image\/upload\/v1443903946\/InstalacionAWS15_ernhvo.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-18397\" alt=\"InstalacionAWS15\" src=\"https:\/\/i0.wp.com\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS15_ernhvo.jpg?fit=1140%2C449&#038;ssl=1\" width=\"500\" height=\"196\" srcset=\"https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS15_ernhvo.jpg 1913w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS15_ernhvo-500x197.jpg 500w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS15_ernhvo-1280x504.jpg 1280w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS15_ernhvo-768x302.jpg 768w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><figcaption id=\"caption-attachment-18397\" class=\"wp-caption-text\">Detalles de servidor<\/figcaption><\/figure>\n<p>De aqu\u00ed, un dato que tenemos que guardar, es el de Public DNS, que en nuestro caso es <strong>ec2-23-20-203-117.compute-1.amazonaws.com<\/strong>.<\/p>\n<p>Bien, aqu\u00ed termina la parte web. Ahora vamos con el Terminal de nuestro Mac OS. Recordad que para Windows, pod\u00e9is usar Putty y que una vez conectados con el servidor, los comandos ser\u00e1n exactamente los mismos.<\/p>\n<p>Abrimos una pantalla de Terminal, y navegamos a la carpeta en la que tenemos el fichero de claves que nos bajamos. En nuestro caso, el fichero es <strong>nombreusuario.pem<\/strong>.<\/p>\n<p>Antes de tratar de usar ese fichero, tendremos que cambiar los permisos, as\u00ed que:<\/p>\n<p><code>chmod 600 nombreusuario.pem<\/code><\/p>\n<p>Para que quede tal que as\u00ed:<\/p>\n<figure id=\"attachment_18398\" aria-describedby=\"caption-attachment-18398\" style=\"width: 449px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS16_kbmw7q.jpg?fit=449%2C147&#038;ssl=1\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-18398\" alt=\"InstalacionAWS16\" src=\"https:\/\/i0.wp.com\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS16_kbmw7q.jpg?fit=449%2C147&#038;ssl=1\" width=\"449\" height=\"147\" \/><\/a><figcaption id=\"caption-attachment-18398\" class=\"wp-caption-text\">chmod<\/figcaption><\/figure>\n<p>Ahora, nos conectamos con SSH:<\/p>\n<p><code>ssh -i nombreusuario.pem &#101;&#x63;&#50;&#x2d;u&#115;&#x65;&#114;&#x40;e&#x63;2&#45;&#x32;&#51;&#x2d;2&#x30;&#x2d;&#50;&#x30;3&#x2d;1&#49;&#x37;&#46;&#x63;o&#x6d;p&#117;&#x74;&#101;&#x2d;1&#46;&#x61;&#109;&#x61;z&#x6f;n&#97;&#x77;&#115;&#x2e;c&#x6f;&#x6d;<\/code><\/p>\n<p>Fijaos en que ponemos la DNS P\u00fablica que copiamos antes. Si todo va bien, deber\u00edamos ver esto:<\/p>\n<figure id=\"attachment_18399\" aria-describedby=\"caption-attachment-18399\" style=\"width: 735px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i2.wp.com\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS17_q9ylfg.jpg?fit=735%2C324&#038;ssl=1\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-18399\" alt=\"InstalacionAWS17\" src=\"https:\/\/i2.wp.com\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS17_q9ylfg.jpg?fit=735%2C324&#038;ssl=1\" width=\"735\" height=\"324\" srcset=\"https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS17_q9ylfg.jpg 735w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS17_q9ylfg-500x220.jpg 500w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS17_q9ylfg-570x251.jpg 570w\" sizes=\"auto, (max-width: 735px) 100vw, 735px\" \/><\/a><figcaption id=\"caption-attachment-18399\" class=\"wp-caption-text\">\u00a1Ya estamos conectados!<\/figcaption><\/figure>\n<p>As\u00ed que vamos con la configuraci\u00f3n. Los que usen Windows, ya pueden seguir desde aqu\u00ed.<\/p>\n<p>Lo primero, actualizar yum para asegurarse de que usamos las \u00faltimas versiones y fuentes:<\/p>\n<p><code>sudo yum update<\/code><\/p>\n<p>No os olvid\u00e9is de usar siempre sudo.<\/p>\n<h3>Instalando MySQL<\/h3>\n<p><code>sudo yum install mysql-server mysql<\/code><\/p>\n<h3>Instalando soporte XFS<\/h3>\n<p>Ser\u00e1 lo que usemos para la partici\u00f3n que crearemos con el volumen EBS que creamos al principio:<\/p>\n<p><code>sudo yum install xfsprogs<\/code><br \/>\n<code>grep -q xfs \/proc\/filesystems || sudo modprobe xfs<\/code><\/p>\n<p>Y luego a crear la partici\u00f3n. Acordaos que pusimos que el volumen se llamaba \/dev\/sdk.<\/p>\n<p><code> sudo mkfs.xfs \/dev\/sdk<br \/>\nsudo mkdir \/mnt\/data<br \/>\nsudo mount \/dev\/sdh \/mnt\/data -o noatime<br \/>\n<\/code><\/p>\n<p>Editamos fstab para asegurarnos que la partici\u00f3n se monta cada vez que iniciamos el servidor:<\/p>\n<p><code>sudo vi \/etc\/fstab<\/code><\/p>\n<p>Nota: usamos vi como editor, <a title=\"Vi Commands\" href=\"http:\/\/www.cs.colostate.edu\/helpdocs\/vi.html\" target=\"_blank\" rel=\"noopener noreferrer\">aqu\u00ed<\/a> ten\u00e9is algunos comandos b\u00e1sicos.<\/p>\n<p>A\u00f1adimos al fichero:<\/p>\n<p><code>\/dev\/sdh \/mnt\/data xfs noatime 0 0<\/code><\/p>\n<p>Creamos el directorio para MySQL y cambiamos el due\u00f1o para que sea de MySQL:<\/p>\n<p><code> sudo mkdir -p \/mnt\/data\/mysql<br \/>\nsudo chown -R mysql.mysql \/mnt\/data\/mysql<br \/>\n<\/code><\/p>\n<h3>Configurando MySQL<\/h3>\n<p><code>sudo vi \/etc\/my.cnf<\/code><\/p>\n<p>Comentamos la linea (con # delante)<\/p>\n<p><code>#datadir=\/var\/lib\/mysql<\/code><\/p>\n<p>y ponemos esta<\/p>\n<p><code>datadir=\/mnt\/data\/mysql<\/code><\/p>\n<p>Y a\u00f1adimos algunos par\u00e1metros m\u00e1s. Algunos obligatorios, otros no tanto:<\/p>\n<p><code> skip-external-locking<br \/>\nlong_query_time=1<br \/>\nslow_query_log<br \/>\nslow_query_log_file=\/var\/log\/log-slow-queries.log<br \/>\nlog-bin=mysql-bin<br \/>\nserver-id= 1<br \/>\n<\/code><\/p>\n<p>Otros par\u00e1metros que habr\u00eda que a\u00f1adir son los de memoria. Para el caso que nos ocupa usar\u00e9 estos, pero recordad que esto depende mucho de cada instalaci\u00f3n.<\/p>\n<p><code> key_buffer_size = 128M<br \/>\nmax_allowed_packet = 3M<br \/>\ntable_open_cache = 64<br \/>\nread_buffer_size = 2M<br \/>\nread_rnd_buffer_size = 8M<br \/>\nmyisam_sort_buffer_size = 16M<br \/>\nthread_cache_size = 8<br \/>\nquery_cache_size= 32M<br \/>\nthread_concurrency = 8<br \/>\ninnodb_buffer_pool_size = 128M<br \/>\ninnodb_log_file_size = 32M<br \/>\ninnodb_additional_mem_pool_size = 8M<br \/>\ninnodb_log_buffer_size = 4M<br \/>\n<\/code><\/p>\n<p>Creamos el fichero para guardar los logs de las queries lentas:<\/p>\n<p><code> sudo touch \/var\/log\/log-slow-queries.log<br \/>\nsudo chown mysql.mysql \/var\/log\/log-slow-queries.log<br \/>\n<\/code><\/p>\n<p>Nos aseguramos de que MySQL arranca cuando se inicie el servidor<\/p>\n<p><code>sudo \/sbin\/chkconfig --levels 235 mysqld on<\/code><\/p>\n<p>Y lo arrancamos:<\/p>\n<p><code>sudo service mysqld start<\/code><\/p>\n<h3>Conectar con MySQL<\/h3>\n<p>Si todo ha ido bien, al hacer esto:<\/p>\n<p><code>mysql -u root<\/code><\/p>\n<p>Deber\u00edamos conectar. As\u00ed que vamos a poner un password para root (poned el que quer\u00e1is, pero recordadlo):<\/p>\n<p><code>USE mysql<br \/>\nSET PASSWORD FOR 'root'@'localhost' = PASSWORD('PasswordSecreto');<\/code><\/p>\n<p>Borramos usuarios an\u00f3nimos y sin contrase\u00f1a, por si acaso:<\/p>\n<p><code>DELETE FROM user WHERE password = '';<br \/>\nDELETE FROM user WHERE user.user= '';<\/code><code><\/code><\/p>\n<p>Hacemos un flush de los permisos y borramos la base de datos de test, si la hubiera:<\/p>\n<p><code>FLUSH PRIVILEGES;<br \/>\nDROP DATABASE test;<\/code><\/p>\n<h3>Instalando Apache y PHP<\/h3>\n<p>Instalaremos tambi\u00e9n GCC, por si acaso se necesita para algunas extensiones de PHP:<\/p>\n<p><code> sudo yum install gcc<br \/>\nsudo yum install make<br \/>\nsudo yum install httpd mod_ssl<br \/>\nsudo yum install php<br \/>\n<\/code><\/p>\n<p>Extensiones de PHP<\/p>\n<p><code> sudo yum install php-devel php-pear<br \/>\nsudo yum install pcre-devel<br \/>\n<\/code><\/p>\n<p>Soporte APC, con las opciones por defecto.<\/p>\n<p><code> sudo yum install httpd-devel<br \/>\nsudo pecl install apc<br \/>\n<\/code><\/p>\n<p>Activamos APC, creando un fichero nuevo<\/p>\n<p><code>sudo vi \/etc\/php.d\/apc.ini<\/code><\/p>\n<p>Y a\u00f1adiendo las lineas:<\/p>\n<p><code>; Enable APC extension module<br \/>\nextension=apc.so<\/code><\/p>\n<p>Acceso a MySQL con PHP<\/p>\n<p><code>sudo yum install php-mysql<\/code><\/p>\n<p>Librer\u00edas gr\u00e1ficas<\/p>\n<p><code>sudo yum install php-gd<\/code><\/p>\n<p>Soporte XML y DOM<\/p>\n<p><code>sudo yum install php-xml<\/code><\/p>\n<p>Y soporte de localizaci\u00f3n<\/p>\n<p><code>sudo yum install php-mbstring<\/code><\/p>\n<h3>Creamos el usuario y su carpeta donde alojaremos el blog<\/h3>\n<p><code>sudo useradd -d \/mnt\/data\/usuarioBlog -g ec2-user -s \/bin\/bash -m usuarioBlog<\/code><\/p>\n<p>El usuario que creamos es <strong>usuarioBlog<\/strong> dentro del grupo <strong>ec2-user<\/strong>.<\/p>\n<h3>Configurando Apache<\/h3>\n<p><code>sudo vi \/etc\/httpd\/conf\/httpd.conf<\/code><br \/>\nY modificamos\/a\u00f1adimos como sigue, teniendo en cuenta que algunos par\u00e1metros hay que adaptarlos a cada instalaci\u00f3n:<\/p>\n<p><code> ServerTokens Prod<br \/>\nTraceEnable Off<br \/>\nKeepAlive On<br \/>\nMaxKeepAliveRequests 256<br \/>\nKeepAliveTimeout 10<\/code><\/p>\n<p>User usuarioBlog<br \/>\nGroup apache<br \/>\nExpiresActive on<br \/>\nExpiresDefault \u00abaccess plus 1 months\u00bb<\/p>\n<p>FileETag none<\/p>\n<h3>Creaci\u00f3n del host virtual<\/h3>\n<p><code>sudo vi \/etc\/httpd\/conf.d\/vhosts.conf<\/code><\/p>\n<p>Para nuestro caso, pondr\u00e9 un subdominio (ejemploAWS.dehaller.ch) para el que me tendr\u00e9 que asegurar que hay un servidor DNS que dice cu\u00e1l es la IP a la que tendr\u00e1 que ir. Eso no lo explicar\u00e9 en este post, pero as\u00ed tened en cuenta que tendremos que en el panel de control de EC2 tendremos que crear una IP y asociarla a nuestro servidor. Lo haremos al final.<\/p>\n<p><code> NameVirtualHost *:80<br \/>\nServerName ejemploAWS.dehaller.ch<br \/>\nDocumentRoot \/mnt\/data\/usuarioBlog\/<br \/>\n<\/code><\/p>\n<h3>Configuraci\u00f3n de PHP<\/h3>\n<p><code>sudo vi \/etc\/php.ini<\/code><\/p>\n<p>Cambiamos algunos par\u00e1metros<br \/>\n<code><br \/>\nexpose_php = Off<\/code><\/p>\n<p>memory_limit = 128M<\/p>\n<p>error_log = \/var\/log\/php-error.log<\/p>\n<p>Creamos el fichero del log de errores<\/p>\n<p><code>sudo touch \/var\/log\/php-error.log<br \/>\nsudo chown usuarioBlog.apache \/var\/log\/php-error.log<\/code><\/p>\n<p>Rotaci\u00f3n de los logs<\/p>\n<p><code>sudo vi \/etc\/logrotate.d\/httpd<\/code><br \/>\n<code>\"\/var\/log\/php-error.log\" \/var\/log\/httpd\/*log {<br \/>\nrotate 5<br \/>\nsize=10M<br \/>\nmissingok<br \/>\nnotifempty<br \/>\nsharedscripts<br \/>\ndelaycompress<br \/>\npostrotate<br \/>\nservice httpd restart &gt; \/dev\/null || true<br \/>\nendscript<br \/>\n}<br \/>\n<\/code><\/p>\n<p>Configuramos que el servidor Apache arranque con cada inicio y lo arrancamos.<\/p>\n<p><code> sudo \/sbin\/chkconfig --levels 235 httpd on<br \/>\nsudo service httpd start<br \/>\n<\/code><\/p>\n<h3>Volvamos al panel de EC2 para crear la IP<\/h3>\n<p>Este paso se puede hacer al principio, o al final, pero si lo hac\u00e9is al principio, a la hora de conectaros usando SSH deber\u00e9is poner la IP que hab\u00e9is creado.<\/p>\n<p>Para crearla, muy sencillo, vamos a \u00abElastic IP\u00bb:<\/p>\n<figure id=\"attachment_18403\" aria-describedby=\"caption-attachment-18403\" style=\"width: 500px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/res.cloudinary.com\/deb1snrtn\/image\/upload\/v1443903941\/InstalacionAWS18_qct5ss.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-18403\" alt=\"InstalacionAWS18\" src=\"https:\/\/i2.wp.com\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS18_qct5ss.jpg?fit=994%2C196&#038;ssl=1\" width=\"500\" height=\"98\" srcset=\"https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS18_qct5ss.jpg 994w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS18_qct5ss-500x99.jpg 500w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS18_qct5ss-768x151.jpg 768w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS18_qct5ss-570x112.jpg 570w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><figcaption id=\"caption-attachment-18403\" class=\"wp-caption-text\">Elastic IP<\/figcaption><\/figure>\n<p>Hacemos click en \u00abAllocate New Address\u00bb<\/p>\n<figure id=\"attachment_18404\" aria-describedby=\"caption-attachment-18404\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS19_b8jomv.jpg?fit=310%2C192&#038;ssl=1\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-18404\" alt=\"InstalacionAWS19\" src=\"https:\/\/i0.wp.com\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS19_b8jomv.jpg?fit=310%2C192&#038;ssl=1\" width=\"310\" height=\"192\" \/><\/a><figcaption id=\"caption-attachment-18404\" class=\"wp-caption-text\">Tipo de IP<\/figcaption><\/figure>\n<p>Ponemos tipo EC2 y pulsamos Yes, Allocate. Al hacerlo, veremos la IP que ha creado y pasaremos a asociarla al servidor que hemos creado, usando la opci\u00f3n de \u00abAssociate Address\u00bb.<\/p>\n<p><a href=\"https:\/\/res.cloudinary.com\/deb1snrtn\/image\/upload\/v1443903939\/InstalacionAWS20_tjntwx.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-18405\" alt=\"InstalacionAWS20\" src=\"https:\/\/i2.wp.com\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS20_tjntwx.jpg?fit=1028%2C566&#038;ssl=1\" width=\"500\" height=\"275\" srcset=\"https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS20_tjntwx.jpg 1028w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS20_tjntwx-500x275.jpg 500w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS20_tjntwx-768x423.jpg 768w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS20_tjntwx-570x314.jpg 570w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<p>Y ya est\u00e1.<\/p>\n<h3>A probar si arranca<\/h3>\n<p>Bien, si hemos hecho todos los pasos y no ha habido ning\u00fan error, y si a\u00f1adimos la configuraci\u00f3n DNS que tenemos que hacer, al escribir la direcci\u00f3n http:\/\/ejemploaws.dehaller.ch deber\u00eda salir esto:<\/p>\n<figure id=\"attachment_18408\" aria-describedby=\"caption-attachment-18408\" style=\"width: 500px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/res.cloudinary.com\/deb1snrtn\/image\/upload\/v1443903937\/InstalacionAWS21_qfwnpp.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-18408\" alt=\"InstalacionAWS21\" src=\"https:\/\/i2.wp.com\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS21_qfwnpp.jpg?fit=1140%2C368&#038;ssl=1\" width=\"500\" height=\"161\" srcset=\"https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS21_qfwnpp.jpg 1414w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS21_qfwnpp-500x161.jpg 500w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS21_qfwnpp-1280x413.jpg 1280w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS21_qfwnpp-768x248.jpg 768w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS21_qfwnpp-570x184.jpg 570w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><figcaption id=\"caption-attachment-18408\" class=\"wp-caption-text\">Bienvenido a Apache<\/figcaption><\/figure>\n<h3>Descargamos e instalamos WordPress<\/h3>\n<p>Volvemos al SSH para descargar WordPress. Usando el enlace de descarga disponible en WordPress.org (http:\/\/wordpress.org\/latest.tar.gz), y en el directorio home de ec2-user (que lleg\u00e1is seg\u00fan os conect\u00e1is por SSH).<\/p>\n<p><code>sudo wget http:\/\/wordpress.org\/latest.tar.gz<\/code><\/p>\n<p>Lo descomprimimos:<br \/>\n<code>sudo tar xvf latest.tar.gz<\/code><\/p>\n<p>Y lo movemos al directorio del usuario del blog, es decir, \/mnt\/data\/usuarioBlog:<\/p>\n<p><code>sudo mv wordpress\/ \/mnt\/data\/usuarioBlog\/<\/code><\/p>\n<p>Cambiamos el due\u00f1o de los ficheros:<\/p>\n<p><code>sudo chown -R usuarioBlog.ec2-user \/mnt\/data\/usuarioBlog\/<\/code><\/p>\n<h3>Configurar WordPress<\/h3>\n<p>Aqu\u00ed no difiere en nada de lo que ya hay, salvo que tenemos que tener un usuario de BBDD ya creado (mejor no usar root). Para eso, tendremos que crearlo en MySQL. Acordaos de usar la contrase\u00f1a que pusimos en su momento.<\/p>\n<p><code>mysql -u root -p<\/code><\/p>\n<p><code>CREATE USER 'usuarioBD'@'localhost' IDENTIFIED BY 'Contrase\u00f1a_nueva';<\/code><\/p>\n<p>Creamos la BBDD.<\/p>\n<p><code>CREATE DATABASE BD_wordPress<br \/>\nDEFAULT CHARACTER SET utf8<br \/>\nDEFAULT COLLATE utf8_general_ci;<\/code><\/p>\n<p>Damos los permisos de acceso al usuario que hemos creado para la nueva BBDD<\/p>\n<p><code>GRANT ALL PRIVILEGES ON BD_wordPress.* TO 'usuarioBD'@'localhost';<\/code><\/p>\n<p>Y ahora podemos visitar la URL http:\/\/ejemploaws.dehaller.ch\/wordpress y nos aparecer\u00e1 el asistente del WordPress. Seguimos las instrucciones, con todos los datos que tenemos recordando poner las contrase\u00f1as correctas y un email correcto, y listo.<\/p>\n<figure id=\"attachment_18409\" aria-describedby=\"caption-attachment-18409\" style=\"width: 500px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/res.cloudinary.com\/deb1snrtn\/image\/upload\/v1443903935\/InstalacionAWS22_swrhpc.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-18409\" alt=\"InstalacionAWS22\" src=\"https:\/\/i1.wp.com\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS22_swrhpc.jpg?fit=839%2C327&#038;ssl=1\" width=\"500\" height=\"194\" srcset=\"https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS22_swrhpc.jpg 839w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS22_swrhpc-500x195.jpg 500w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS22_swrhpc-768x299.jpg 768w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS22_swrhpc-570x222.jpg 570w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><figcaption id=\"caption-attachment-18409\" class=\"wp-caption-text\">Asistente instalaci\u00f3n WordPress<\/figcaption><\/figure>\n<figure id=\"attachment_18411\" aria-describedby=\"caption-attachment-18411\" style=\"width: 500px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/res.cloudinary.com\/deb1snrtn\/image\/upload\/v1443903932\/InstalacionAWS24_t8ucu8.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-18411\" alt=\"InstalacionAWS24\" src=\"https:\/\/i1.wp.com\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS24_t8ucu8.jpg?fit=784%2C560&#038;ssl=1\" width=\"500\" height=\"357\" srcset=\"https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS24_t8ucu8.jpg 784w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS24_t8ucu8-500x357.jpg 500w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS24_t8ucu8-768x549.jpg 768w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS24_t8ucu8-570x407.jpg 570w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><figcaption id=\"caption-attachment-18411\" class=\"wp-caption-text\">Asistente instalaci\u00f3n WordPress<\/figcaption><\/figure>\n<figure id=\"attachment_18413\" aria-describedby=\"caption-attachment-18413\" style=\"width: 500px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/res.cloudinary.com\/deb1snrtn\/image\/upload\/v1443903871\/InstalacionAWS26_i3af6s.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-18413\" alt=\"InstalacionAWS26\" src=\"https:\/\/i2.wp.com\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS26_i3af6s.jpg?fit=756%2C861&#038;ssl=1\" width=\"500\" height=\"569\" srcset=\"https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS26_i3af6s.jpg 756w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS26_i3af6s-439x500.jpg 439w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS26_i3af6s-570x649.jpg 570w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><figcaption id=\"caption-attachment-18413\" class=\"wp-caption-text\">Asistente instalaci\u00f3n WordPress<\/figcaption><\/figure>\n<figure id=\"attachment_18415\" aria-describedby=\"caption-attachment-18415\" style=\"width: 367px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i1.wp.com\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS28_dxasg3.jpg?fit=367%2C413&#038;ssl=1\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-18415\" alt=\"InstalacionAWS28\" src=\"https:\/\/i1.wp.com\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS28_dxasg3.jpg?fit=367%2C413&#038;ssl=1\" width=\"367\" height=\"413\" \/><\/a><figcaption id=\"caption-attachment-18415\" class=\"wp-caption-text\">Asistente instalaci\u00f3n WordPress<\/figcaption><\/figure>\n<figure id=\"attachment_18416\" aria-describedby=\"caption-attachment-18416\" style=\"width: 500px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/res.cloudinary.com\/deb1snrtn\/image\/upload\/v1443903867\/InstalacionAWS29_hdrjki.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-18416\" alt=\"InstalacionAWS29\" src=\"https:\/\/i2.wp.com\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS29_hdrjki.jpg?fit=1140%2C532&#038;ssl=1\" width=\"500\" height=\"233\" srcset=\"https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS29_hdrjki.jpg 1911w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS29_hdrjki-500x233.jpg 500w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS29_hdrjki-1280x597.jpg 1280w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS29_hdrjki-768x358.jpg 768w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS29_hdrjki-1536x717.jpg 1536w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS29_hdrjki-570x266.jpg 570w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><figcaption id=\"caption-attachment-18416\" class=\"wp-caption-text\">Asistente instalaci\u00f3n WordPress<\/figcaption><\/figure>\n<figure id=\"attachment_18417\" aria-describedby=\"caption-attachment-18417\" style=\"width: 500px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/res.cloudinary.com\/deb1snrtn\/image\/upload\/v1443903865\/InstalacionAWS30_cvm0qd.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-18417\" alt=\"InstalacionAWS30\" src=\"https:\/\/i2.wp.com\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS30_cvm0qd.jpg?fit=1062%2C818&#038;ssl=1\" width=\"500\" height=\"385\" srcset=\"https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS30_cvm0qd.jpg 1062w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS30_cvm0qd-500x385.jpg 500w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS30_cvm0qd-768x592.jpg 768w, https:\/\/diego.dehaller.ch\/blog\/wp-content\/uploads\/2020\/05\/InstalacionAWS30_cvm0qd-570x439.jpg 570w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><figcaption id=\"caption-attachment-18417\" class=\"wp-caption-text\">Asistente instalaci\u00f3n WordPress<\/figcaption><\/figure>\n<h2>Y todo listo, un resumen de lo hecho<\/h2>\n<ol>\n<li>Creaci\u00f3n del AWS EC2 con una partici\u00f3n espec\u00edfica para los datos<\/li>\n<li>Instalar Apache, MySQL, PHP y las extensiones<\/li>\n<li>Configurar Apache, MySQL y PHP<\/li>\n<li>Crear y asignar una IP p\u00fablica al servidor<\/li>\n<li>Descargar e instalar WordPress<\/li>\n<li>Crear una BBDD y un usuario para la BBDD<\/li>\n<li>Configurar WordPress<\/li>\n<\/ol>\n<p>Soy consciente de que hay algunas cosas que no he explicado:<\/p>\n<ul>\n<li>DNS<\/li>\n<li>Instalaci\u00f3n de PHPMyAdmin<\/li>\n<li>Instalaci\u00f3n de Webmin<\/li>\n<li>Configuraci\u00f3n de un servidor de correo, aunque para eso recomiendo Google Domains o, ahora que ya no es gratis con ellos, pod\u00e9is probar con Outlook.com de Microsoft. Estoy haciendo pruebas y puede que me anime a hacer un post.<\/li>\n<li>Tareas de mantenimiento.<\/li>\n<li>\u00bfAlgo m\u00e1s?<\/li>\n<\/ul>\n<p>Tambi\u00e9n he pasado por alto algunos temas b\u00e1sicos, como los permisos, usuarios, etc. No es el objetivo de este post el explicar cosas sobre la arquitectura de Linux, sobre todo porque yo no soy el m\u00e1s indicado para hacerlo al no tener los conocimientos necesarios. Tengo una base, pero poco m\u00e1s. Y adem\u00e1s, para eso ten\u00e9is Google \ud83d\ude42<\/p>\n<p>Por \u00faltimo, a pesar de que he escrito este post al tiempo que creaba el servidor que hospeda el blog de ejemplo, puede que algunas instrucciones no queden claras. Si es as\u00ed, no dud\u00e9is en dec\u00edrmelo a trav\u00e9s de los comentarios.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>El servicio de EC2 de Amazon est\u00e1 cada vez m\u00e1s de moda, y no solo eso, tambi\u00e9n es cada vez m\u00e1s sencillo de manejar. Ofrece muchas ventajas, pero la que m\u00e1s es la flexibilidad. Si empezamos un servicio online y necesitamos un servidor, no tendremos que pensar en el futuro adquiriendo un servidor muy potente [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ai_generated_summary":"","wpai_meta_description":"","footnotes":""},"categories":[3],"tags":[1943,1809],"class_list":["post-18377","post","type-post","status-publish","format-standard","category-blog","tag-amazon-ec2","tag-servidor-web","czr-hentry"],"_links":{"self":[{"href":"https:\/\/diego.dehaller.ch\/blog\/wp-json\/wp\/v2\/posts\/18377","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/diego.dehaller.ch\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/diego.dehaller.ch\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/diego.dehaller.ch\/blog\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/diego.dehaller.ch\/blog\/wp-json\/wp\/v2\/comments?post=18377"}],"version-history":[{"count":70,"href":"https:\/\/diego.dehaller.ch\/blog\/wp-json\/wp\/v2\/posts\/18377\/revisions"}],"predecessor-version":[{"id":19579,"href":"https:\/\/diego.dehaller.ch\/blog\/wp-json\/wp\/v2\/posts\/18377\/revisions\/19579"}],"wp:attachment":[{"href":"https:\/\/diego.dehaller.ch\/blog\/wp-json\/wp\/v2\/media?parent=18377"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/diego.dehaller.ch\/blog\/wp-json\/wp\/v2\/categories?post=18377"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/diego.dehaller.ch\/blog\/wp-json\/wp\/v2\/tags?post=18377"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}