Demonstração: configurar um servidor web Apache e servir arquivos do Amazon EFS - Amazon Elastic File System

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Demonstração: configurar um servidor web Apache e servir arquivos do Amazon EFS

Você pode ter instâncias do EC2 executando o servidor web Apache que serve arquivos armazenados no sistema de arquivos do Amazon EFS. Pode ser uma instância do EC2 ou, se seu aplicativo necessitar, várias instâncias do EC2 servindo arquivos do seu sistema de arquivos do Amazon EFS. São descritos os procedimentos a serem seguidos.

nota

Para ambos os procedimentos, você cria todos os recursos na região Oeste dos EUA (Oregon, us-west-2).

Serviço de arquivos de uma instância única do EC2

Siga as etapas para configurar um servidor web Apache em uma instância do EC2 para servir arquivos que você cria no seu sistema de arquivos do Amazon EFS.

  1. Siga as etapas no exercício de conceitos básicos, de forma que você tenha uma configuração de trabalho que consiste no seguinte:

    • Sistema de arquivos do Amazon EFS

    • EC2 instance (Instância do EC2)

    • Sistema de arquivos montados na instância do EC2

    Para obter instruções, consulte Conceitos básicos do Amazon Elastic File System. À medida que você seguir as etapas, anote o seguinte:

    • Nome DNS público da instância do EC2.

    • Nome DNS público do destino de montagem criado na mesma zona de disponibilidade onde você iniciou a instância do EC2.

  2. (Opcional) Você pode optar por desmontar o sistema de arquivos a partir do ponto de montagem que criou no exercício de conceitos básicos.

    $ sudo umount ~/efs-mount-point

    Nesta demonstração, você cria outro ponto de montagem para o sistema de arquivos.

  3. Na sua instância do EC2, instale o servidor Web Apache e configure-o da seguinte forma:

    1. Conecte-se à sua instância do EC2 e instale o servidor Web Apache.

      $ sudo yum -y install httpd
    2. Inicie o serviço .

      $ sudo service httpd start
    3. Crie um ponto de montagem.

      Primeiro, observe que DocumentRoot no arquivo /etc/httpd/conf/httpd.conf aponta para /var/www/html (DocumentRoot "/var/www/html").

      Seu sistema de arquivos do Amazon EFS será montado em um subdiretório na raiz do documento.

      Crie um subdiretório chamado efs-mount-point para ser usado como ponto de montagem do seu sistema de arquivos, em /var/www/html.

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

    4. Monte seu sistema de arquivos Amazon EFS usando o seguinte comando. Substitua file-system-id pelo ID do seu sistema de arquivos.

      $ sudo mount -t efs file-system-id:/ /var/www/html/efs-mount-point
  4. Teste a configuração.

    1. Adicione uma regra ao security group da instância do EC2 que você criou no exercício de conceitos básicos, para permitir o tráfego de HTTP na porta TCP 80 de qualquer lugar.

      Após adicionar a regra, o security group da instância do EC2 terá as seguintes regras de entrada.

      Captura de tela mostrando as regras de entrada definidas para a instância do EC2.

      Para obter instruções, consulte Crie um grupo de segurança usando o console.

    2. Crie um exemplo de arquivo html.

      1. Mude o diretório para o ponto de montagem.

        $ cd /var/www/html/efs-mount-point
      2. Faça um subdiretório chamado sampledir e altere a propriedade.

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

        Modifique o diretório, de forma que você possa criar arquivos no subdiretório sampledir.

        $ cd sampledir
      3. Crie um exemplo de arquivo hello.html.

        $ echo "<html><h1>Hello from Amazon EFS</h1></html>" > hello.html
    3. Abra uma janela do navegador e insira a URL para acessar o arquivo (é o nome DNS público da instância EC2 seguido pelo nome de arquivo). Por exemplo: .

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

    Agora você está servindo páginas web armazenadas em um sistema de arquivos do Amazon EFS.

nota

Esta configuração não configura a instância do EC2 para iniciar automaticamente o servidor web (httpd) na inicialização e também não monta o sistema de arquivos na inicialização. Na próxima demonstração, você criará uma configuração de execução para definir isso.

Várias instâncias do EC2 servindo arquivos

Siga as etapas para servir o mesmo conteúdo em seu sistema de arquivos do Amazon EFS a partir de várias instâncias do EC2, para melhorar a escalabilidade ou a disponibilidade.

  1. Siga as etapas no exercício Crie rapidamente um sistema de arquivos com configurações recomendadas (console), para ter um sistema de arquivos do Amazon EFS criado e testado.

    Importante

    Para esta demonstração, você não usa a instância do EC2 que criou no exercício de conceitos básicos. Em vez disso, inicia novas instâncias do EC2.

  2. Crie um load balancer em sua VPC usando as etapas a seguir.

    1. Defina um load balancer

      Na seção Basic Configuration (Configuração básica), selecione sua VPC, onde você também criou instâncias do EC2 no qual montou o sistema de arquivos.

      Na seção Selecionar sub-redes, selecione todas as sub-redes disponíveis. Para obter detalhes, consulte o script cloud-config na próxima seção.

    2. Atribuir security groups

      Crie um novo security group para o load balancer para permitir o acesso HTTP da porta 80 de qualquer lugar, conforme mostrado a seguir:

      • Type (Tipo): HTTP

      • Protocolo: TCP

      • Port Range: 80

      • Fonte: Qualquer lugar (0.0.0.0/0)

      nota

      Quando tudo funciona, você também pode atualizar o acesso da regra de entrada do security group da instância do EC2, para permitir o tráfego de HTTP do load balancer.

    3. Configurar verificação de saúde

      Defina o valor Ping Path como /efs-mount-point/test.html. O efs-mount-point é o subdiretório onde você tem o sistema de arquivos montado. Posteriormente neste procedimento, você adiciona na test.html página.

    nota

    Não adicione quaisquer instâncias do EC2. Posteriormente, você cria um grupo de Auto Scaling em que você inicia uma instância do EC2 e especifica o load balancer.

    Para obter informações sobre a criação de um balanceador de carga, consulte Conceitos básicos do Elastic Load Balancing no Guia do usuário do Elastic Load Balancing.

Crie um grupo de Auto Scaling com duas instâncias do EC2. Primeiro, crie uma configuração de execução que descreva as instâncias. Em seguida, crie um grupo de Auto Scaling especificando a configuração de execução. As etapas a seguir fornecem informações de configuração que você especifica para criar um grupo do Auto Scaling a partir do console do Amazon EC2.

  1. Escolha Launch Configurations (Configurações de execução) em AUTO SCALING na navegação à esquerda.

  2. Escolha Create Auto Scaling group (Criar grupo de Auto Scaling) para iniciar o assistente.

  3. Escolha Criar configuração de execução.

  4. Em Início rápido, selecione a versão mais recente da AMI do Amazon Linux 2. Esta é na mesma AMI que foi usada na Crie seu sistema de arquivos EFS e execute sua instância EC2 do exercício de conceitos básicos.

  5. Na seção Advanced (Avançado), faça o seguinte:

    • Em IP Address Type (Tipo de endereço IP), escolha Assign a public IP address to every instance (Atribuir um endereço IP público a cada instância).

    • Copie e cole o script a seguir na caixa User data (Dados do usuário).

      Você deve atualizar o script fornecendo valores para o sistema de file-system-id e aws-region (se seguiu o exercício de conceitos básicos, você criou o sistema de arquivos na região us-west-2).

      No script, observe o seguinte:

      • O script instala o NFS cliente e o servidor Web Apache.

      • O comando echo grava a seguinte entrada no arquivo /etc/fstab identificando o nome DNS do sistema de arquivos e o subdiretório no qual montá-lo. Esta entrada garante que o arquivo é montado após cada reinicialização do sistema. Observe que o nome DNS do sistema de arquivos é criado dinamicamente. Para ter mais informações, consulte Montagem em Amazon EC2 com um nome de DNS.

        file-system-ID.efs.aws-region.amazonaws.com:/ /var/www/html/efs-mount-point nfs4 defaults
      • Cria o subdiretório efs-mount-point e monta o sistema de arquivos nele.

      • Cria uma página test.html para que a verificação de integridade do ELB possa encontrar o arquivo (ao criar um balanceador de carga, você especificou esse arquivo como o ponto de ping).

      Para obter mais informações sobre scripts de dados do usuário, consulte Metadados da instância e dados do usuário.

      #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. Em Assign a security group (Atribuir um security group), escolha Select an existing security group (Selecionar um security group existente) e, depois, escolha o security group que você criou para a instância do EC2.

  7. Ao configurar os detalhes do grupo do Auto Scaling, use as seguintes informações.

    1. No Group size (Tamanho do grupo), selecione Start with 2 instances. Serão criadas duas instâncias do EC2.

    2. Selecione sua VPC na lista Network (Rede).

    3. Selecione uma sub-rede na mesma zona de disponibilidade que você usou ao especificar o ID do destino de montagem no script de dados do usuário ao criar a configuração de execução na etapa anterior.

    4. Na seção Detalhes avançados

      1. Em Load Balancing, escolha Receive traffic from Elastic Load Balancer(s) (Receber tráfego de Elastic Load Balancer(s)) e, em seguida, selecione o load balancer que você criou para este exercício.

      2. Em Health Check Type (Tipo de verificação de integridade), escolha ELB.

  8. Siga as instruções para criar um grupo do Auto Scaling em Configurar um aplicativo escalonado e com balanceamento de carga no Guia do usuário do Amazon EC2 Auto Scaling. Use as informações nas tabelas anteriores, onde aplicável.

  9. Após a criação bem-sucedida do grupo de Auto Scaling, você tem duas instâncias do EC2 com nfs-utils e o servidor Web Apache instalado. Em cada instância, verifique se você tem o subdiretório /var/www/html/efs-mount-point com seu sistema de arquivos do Amazon EFS montado nele. Para obter instruções sobre como se conectar a uma instância do EC2, consulte Conecte-se à sua instância Linux no Guia do usuário do Amazon EC2.

    nota

    Se você escolher o Amazon Linux AMI 2016.03.0 Amazon Linux AMI ao iniciar sua instância do Amazon EC2, não será necessário instalar nfs-utils porque ele já está incluído na AMI por padrão.

  10. Crie uma página de amostra (index.html).

    1. Modifique o diretório.

      $ cd /var/www/html/efs-mount-point
    2. Faça um subdiretório para sampledir e altere a propriedade. Modifique o diretório, de forma que você possa criar arquivos no subdiretório sampledir. Se você seguiu a Serviço de arquivos de uma instância única do EC2 anterior, já criou o subdiretório sampledir, portanto, pode ignorar esta etapa.

      $ sudo mkdir sampledir $ sudo chown ec2-user sampledir $ sudo chmod -R o+r sampledir $ cd sampledir
    3. Crie um exemplo de arquivo index.html.

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

  11. Agora você pode testar a configuração. Usando o nome DNS público do load balancer, acesse a página index.html.

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

    O load balancer envia uma solicitação para uma das instâncias do EC2 que estiver executando o servidor Web Apache. Em seguida, o servidor web fornece o arquivo armazenado no sistema de arquivos do Amazon EFS.