Tutorial: Configurar un servidor web Apache y ofrecer archivos de Amazon EFS - Amazon Elastic File System

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Tutorial: Configurar un servidor web Apache y ofrecer archivos de Amazon EFS

Puede disponer de instancias de EC2 que ejecutan el servidor web Apache que ofrece archivos almacenados en su sistema de archivos de Amazon EFS. Puede ser una instancia de EC2, o si la aplicación lo necesita, puede disponer de varias instancias de EC2 que ofrecen archivos desde su sistema de archivos de Amazon EFS. Se describen los siguientes procedimientos.

nota

Para ambos procedimientos, debe crear todos los recursos en la región Oeste de EE. UU. (Oregón) (us-west-2).

Una sola instancia de EC2 para ofrecer archivos

Siga los pasos para configurar un servidor web Apache en una instancia de EC2 para ofrecer los archivos que cree en su sistema de archivos de Amazon EFS.

  1. Siga los pasos que se indican en el ejercicio de introducción, a fin de disponer de una configuración activa que conste de lo siguiente:

    • Sistema de archivos de Amazon EFS

    • instancia de EC2

    • Sistema de archivos montado en la instancia EC2

    Para ver instrucciones, consulte Introducción a Amazon Elastic File System. Cuando siga los pasos, anote lo siguiente:

    • Nombre DNS público de la instancia EC2.

    • Nombre DNS público del destino de montaje creado en la misma zona de disponibilidad en la que ha lanzado la instancia EC2.

  2. (Opcional) Puede elegir desmontar el sistema de archivos desde el punto de montaje que creó en el ejercicio de introducción.

    $ sudo umount ~/efs-mount-point

    En este tutorial crea otro punto de montaje para el sistema de archivos.

  3. En la instancia EC2, instale el servidor web Apache y configúrelo como se indica a continuación:

    1. Conéctese a su instancia EC2 e instale el servidor web Apache.

      $ sudo yum -y install httpd
    2. Inicie el servicio .

      $ sudo service httpd start
    3. Cree un punto de montaje.

      En primer lugar, tenga en cuenta que DocumentRoot en el archivo /etc/httpd/conf/httpd.conf apunta a /var/www/html (DocumentRoot "/var/www/html").

      Montará su sistema de archivos de Amazon EFS en un subdirectorio bajo el documento raíz.

      Cree un subdirectorio denominado efs-mount-point para usarlo como punto de montaje para su sistema de archivos, en /var/www/html.

      $ sudo mkdir /var/www/html/efs-mount-point

    4. Monte su sistema de archivos de Amazon EFS usando el siguiente comando: reemplace file-system-id con el ID de su sistema de archivos.

      $ sudo mount -t efs file-system-id:/ /var/www/html/efs-mount-point
  4. Pruebe la configuración.

    1. Añada una regla en el grupo de seguridad de la instancia EC2, que ha creado en el ejercicio de introducción, para permitir el tráfico HTTP en el puerto TCP 80 desde cualquier lugar.

      Después de agregar la regla, el grupo de seguridad de la instancia EC2 tendrá las siguientes reglas de entrada.

      Captura de pantalla que muestra las reglas de entrada establecidas para la instancia de EC2.

      Para ver instrucciones, consulte Cree un grupo de seguridad mediante la consola.

    2. Cree un archivo html de muestra.

      1. Cambie el directorio al punto de montaje.

        $ cd /var/www/html/efs-mount-point
      2. Haga un subdirectorio llamado sampledir y cambie la propiedad.

        $ sudo mkdir sampledir $ sudo chown ec2-user sampledir $ sudo chmod -R o+r sampledir

        Cambie el directorio para poder crear archivos en el subdirectorio sampledir.

        $ cd sampledir
      3. Cree un archivo hello.html de muestra.

        $ echo "<html><h1>Hello from Amazon EFS</h1></html>" > hello.html
    3. Abra una ventana del navegador e introduzca la dirección URL para acceder al archivo (es el nombre de DNS pública de la instancia EC2 seguido del nombre de archivo). Por ejemplo:

      http://EC2-instance-public-DNS/efs-mount-point/sampledir/hello.html

    Ahora está ofreciendo páginas web almacenadas en un sistema de archivos de Amazon EFS.

nota

Esta configuración no configura la instancia de EC2 para que inicie automáticamente el servidor web (httpd) durante el arranque y además no monta el sistema de archivos durante el arranque. En el siguiente tutorial se crea una configuración de lanzamiento para hacerlo.

Varias instancias de EC2 para ofrecer archivos

Siga los pasos para ofrecer el mismo contenido en su sistema de archivos de Amazon EFS desde varias instancias de EC2 para mejorar la escalabilidad o la disponibilidad.

  1. Siga los pasos que se indican en el ejercicio Cree rápidamente un sistema de archivos con la configuración recomendada (consola), para tener un sistema de archivos de Amazon EFS creado y probado.

    importante

    En este tutorial no se usa la instancia EC2 que ha creado en el ejercicio de introducción. En su lugar, puede lanzar nuevas instancias EC2.

  2. Cree un balanceador de carga en su VPC siguiendo estos pasos.

    1. Definir un balanceador de carga

      En la sección Basic Configuration (Configuración básica), seleccione la VPC donde también se crean las instancias EC2 en las que se monta el sistema de archivos.

      En la sección Seleccionar subredes, seleccione todas las subredes disponibles . Para obtener más información, consulte el script cloud-config en la siguiente sección.

    2. Asignar grupos de seguridad

      Cree un nuevo grupo de seguridad para el balanceador de carga para permitir el acceso HTTP desde el puerto 80 desde cualquier lugar, tal y como se muestra a continuación:

      • Tipo: HTTP

      • Protocolo: TCP

      • Rango de puertos: 80

      • Origen: cualquiera (0.0.0.0/0)

      nota

      Cuando todo funciona, también puede actualizar la regla de entrada del grupo de seguridad de la instancia EC2 para permitir el tráfico HTTP únicamente desde el balanceador de carga.

    3. Configure una comprobación de estado

      Establezca el valor de Ping Path (Ruta de ping) en /efs-mount-point/test.html. El efs-mount-point es el subdirectorio en el que tiene el sistema de archivos montado. Añade la página test.html más adelante en este procedimiento.

    nota

    No incluya ninguna instancia EC2. Posteriormente, cree un grupo de Auto Scaling en el que lanzar la instancia EC2 y especifique este balanceador de carga.

    Para obtener más información sobre la creación de un equilibrador de carga, consulte Introducción a Elastic Load Balancing en la Guía del usuario de Elastic Load Balancing.

Cree un grupo de Auto Scaling con dos instancias EC2. En primer lugar, debe crear una configuración de lanzamiento que describa las instancias. A continuación, debe crear un grupo de Auto Scaling especificando la configuración de lanzamiento. Los pasos siguientes ofrecen información de configuración que especifica para crear un grupo de Auto Scaling desde la consola de Amazon EC2.

  1. Seleccione Launch Configurations (Configuraciones de lanzamiento) en AUTO SCALING en el panel de navegación de la izquierda.

  2. Seleccione Create Auto Scaling group (Crear grupo de Auto Scaling) para lanzar el asistente.

  3. Elija Create launch configuration.

  4. En Inicio rápido, seleccione la versión más reciente de la AMI de Amazon Linux 2. Se trata de la misma AMI que utiliza en Cree su sistema de archivos EFS y lance su instancia EC2 del ejercicio de introducción.

  5. En la sección Advanced (Avanzado), haga lo siguiente:

    • Para IP Address Type (Tipo de dirección IP), elija Assign a public IP address to every instance (Asignar una dirección IP pública a cada instancia).

    • Copie y pegue el siguiente script en el cuadro User data (Datos del usuario).

      Debe actualizar el script proporcionando valores para file-system-id y aws-region (si se ha seguido el ejercicio de introducción, habrá creado el sistema de archivos en la región us-west-2).

      En el script, tenga en cuenta lo siguiente:

      • El script instala el cliente NFS y el servidor web Apache.

      • El comando echo escribe la siguiente entrada en el archivo /etc/fstab identificando el nombre de DNS del sistema de archivos y el subdirectorio donde montarlo. Esta entrada garantiza que el archivo se monte después de cada reinicio del sistema. Tenga en cuenta que el nombre de DNS del sistema de archivos se construye de forma dinámica. Para obtener más información, consulte Montaje en Amazon EC2 con un nombre de DNS.

        file-system-ID.efs.aws-region.amazonaws.com:/ /var/www/html/efs-mount-point nfs4 defaults
      • Crea el subdirectorio efs-mount-point y monta el sistema de archivos en el mismo.

      • Crea una página test.html para que la comprobación de estado de ELB pueda encontrar el archivo (al crear un equilibrador de carga ha especificado este archivo como el punto de ping).

      Para obtener más información sobre los scripts de datos de usuario, consulte Metadatos de instancia y datos de usuario.

      #cloud-config package_upgrade: true packages: - nfs-utils - httpd runcmd: - echo "$(curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone).file-system-id.efs.aws-region.amazonaws.com:/ /var/www/html/efs-mount-point nfs4 defaults" >> /etc/fstab - mkdir /var/www/html/efs-mount-point - mount -a - touch /var/www/html/efs-mount-point/test.html - service httpd start - chkconfig httpd on
  6. Para Assign a security group (Asignar un grupo de seguridad), elija Select an existing security group (Seleccionar un grupo de seguridad existente) y, a continuación, el grupo de seguridad que ha creado para la instancia EC2.

  7. Ahora, configure los detalles del grupo de escalado automático con la siguiente información:

    1. Para Group size (Tamaño del grupo), elija Start with 2 instances. Creará dos instancias EC2.

    2. Seleccione la VPC en la lista Network (Red).

    3. Seleccione una subred en la misma zona de disponibilidad que utilizó al especificar el ID del destino de montaje en el script de datos de usuario al crear la configuración de lanzamiento en el paso anterior.

    4. En la sección Detalles avanzados

      1. Para Load Balancing (Balanceador de carga), elija Receive traffic from Elastic Load Balancer(s) (Recibir tráfico de balanceadores de carga elásticos) y, a continuación, seleccione el balanceador de carga que ha creado para este ejercicio.

      2. En Health Check Type (Tipo de comprobación de estado), seleccione ELB.

  8. Siga las instrucciones para crear un grupo de escalado automático en Configuración de una aplicación con escalado y balanceo de carga aplicados en la Guía del usuario de Amazon EC2 Auto Scaling. Utilice la información de las tablas anteriores cuando proceda.

  9. Tras la correcta creación del grupo de Auto Scaling, dispone de dos instancias EC2 con nfs-utils y el servidor web Apache instalado. En cada instancia, verifique que tiene el subdirectorio /var/www/html/efs-mount-point y su sistema de archivos de Amazon EFS montado en él. Para obtener instrucciones sobre cómo conectarse a una instancia EC2, consulte Conectarse a su instancia de Linux en la Guía del usuario de Amazon EC2.

    nota

    Si elige la AMI de Amazon Linux Amazon Linux AMI 2016.03.0 al lanzar su instancia de Amazon EC2, no tendrá que instalar nfs-utils, porque ya está incluido en la AMI de forma predeterminada.

  10. Cree una página de muestra (index.html).

    1. Cambie el directorio.

      $ cd /var/www/html/efs-mount-point
    2. Haga un subdirectorio para sampledir y cambie la propiedad. Y cambie el directorio para poder crear archivos en el subdirectorio sampledir. Si ha seguido el Una sola instancia de EC2 para ofrecer archivos anterior, ya ha creado el subdirectorio sampledir, de modo que puede omitir este paso.

      $ sudo mkdir sampledir $ sudo chown ec2-user sampledir $ sudo chmod -R o+r sampledir $ cd sampledir
    3. Cree un archivo index.html de muestra.

      $ echo "<html><h1>Hello from Amazon EFS</h1></html>" > index.html

  11. Ahora puede probar la configuración. Con el nombre de DNS público del balanceador de carga, acceda a la página index.html.

    http://load balancer public DNS Name/efs-mount-point/sampledir/index.html

    El balanceador de carga envía una solicitud a una de las instancias EC2 que ejecuta el servidor web Apache. A continuación, el servidor web ofrece el archivo que está almacenado en su sistema de archivos de Amazon EFS.