Criando uma instância Amazon EC2 com Apache, PHP e Mysql

Introdução

Neste tutorial vamos aprender como configurar um ambiente com Apache/PHP e MySQL no serviço EC2 da Amazon. Vamos usar o console visual da amazon para criar, configurar e gerenciar as instâncias, mostrando os passos necessários para que você possa concluir toda a operação necessária.

Para iniciar, caso ainda não tenha feito, é necessário se cadastrar no serviço AWS (Amazon Web Services), através do link abaixo:
http://aws.amazon.com/pt/
Clique no botão “Cadastrar-se” e siga as instruções. Será necessário informar um método de pagamento para que a amazon possa debitar os serviços que você irá utilizar.
Para mais informações sobre os valores cobrados para o serviço ec2 da amazon, acessar:
http://aws.amazon.com/pt/ec2/

A Amazon oferece um nível de uso gratuito para que você possa se familiarizar com os serviços prestados. No momento a Amazon oferece 750 horas de uso gratuito de microinstâncias por mês, por um período de 1 ano. Ou seja, 1 ano de uso gratuito. Mais informações sobre uso de nível gratuito, acessar o link:
http://aws.amazon.com/pt/free/

Escolhendo a região

Para dar início ao processo, o primeiro passo é acessar o console da amazon no serviço ec2, através do link https://console.aws.amazon.com/ec2

É importante ter conhecimento que as instâncias que irá criar estarão associadas a uma região, ou seja, à uma localidade física. Antes de criar ou configurar qualquer coisa no console, escolha a região que deseja trabalhar. Isto pode ser feito através de um link presente no menu superior direito do console:

ec2-menu-region

Caso não tenha certeza de qual localidade escolher, mantenha a opção padrão. É possível escolher São Paulo como localidade, pois a Amazon já esta presente no Brasil fisicamente. Porém se atente para o valor hora cobrado em cada região. No Brasil, por exemplo, esse valor é mais alto. Caso tenha interesse, acesse o link abaixo para verificar os valores cobrados (é possível escolher por região):
http://aws.amazon.com/pt/ec2/

Criando Security Group

Antes de iniciar a instância, vamos primeiro configurar um Security Group. O Security Group atua como um firewall para as instâncias ec2. Deve ser associado à instância durante a criação da mesma. Portanto, já vamos deixa-lo criado, já configurando as portas que desejamos ter abertas.

Para inciar, clique no link do menu chamado Security Groups, logo abaixo de NETWORK & SECURITY:

aws-e2-security-group

Na próxima tela, clique no botão Create Security Group (Topo). Será aberto uma nova janela solicitando os dados do novo Security Group. Veja figura:

ec2-security-group-instance

Basta informar o nome do novo Security Group, no caso coloquei webapp, uma descrição qualquer e manter o combo VPC com o valor padrão (No VPC)

Após criado o Create Security Group, vamos criar as regras de entrada necessárias. Inicialmente, vamos abrir as portas 22 (SSH) e 80 (HTTP). SSH para podermos administrar a instância ec2 remotamente e a porta 80 (HTTP) para podermos acessar nossa aplicação web.

Com o security group recém-criado selecionado, clique na aba Inbound e crie as regras de entrada para SSH e HTTP: Utilize o combo Custom TCP rule, selecionando o protocolo (SSH/HTTP) e depois clicando no botão Add Rule Para finalizar, após inserido as duas regras, clique no botão Apply Rule Changes para realmente efetivar as mudanças. Veja figura abaixo de exemplo:

aws-ec2-security-group4

(Faça esse procedimento duas vezes, uma para SSH ou outra para HTTP).

A tela final de configuração do seu Security Group deve ficar parecido com a figura:

aws-ec2-security-group-5

(Lembre-se de clicar no botão Apply Rule Changes para realmente efetivar as mudanças realizadas)

Criando a Instância

Vamos a criação da nossa instância EC2: Clique no link Instances do menu INSTANCES, ou se preferir, caso esteja na tela do Dashboard do EC2, clique no botão Launch Instance. Veja Figura:

aws-ec2-instance1

Será aberto um wizard que irá nos guiar na configuração da instância em 7 etapas:

  1. Choose AMI
  2. Neta etapa, selecione o tipo de servidor que deseja ter configurado na sua instância. A própria Amazon disponibiliza algumas imagens pré-configuradas (AMI) para serem usadas em sua infra-estrutura. No meu caso vou utilizar o Ubuntu Server. Escolha o Ubuntu Server 12.04.3 LTS ou Ubuntu Server 13.10 como preferir.

    As AMIs do Ubuntu Server são elegíveis para rodarem a instância Micro que a Amazon disponibiliza de forma gratuita por 1 ano.

    aws-ec2-instance4

  3. Choose Instance Type
  4. Nessa etapa você poderá visualizar o tipo de instância EC2 que será usada durante na criação. Não há necessidade de modificar nenhum parâmetro nesta etapa. Para início utilize o tipo de instância t1.micro que pode ser utilizado gratuitamente por 1 ano. É uma instância com poucos recursos, porém com o tempo, conforme sua aplicação for necessitando de mais recursos, você poderá modificar o tipo de instância no futuro.

    ec2-instance-choose-instance

    Para avançar, clique no botão Next: Configure Instance Details

  5. Configure Instance
  6. Nesta etapa mantenha os valores padrões sugeridos. Não há necessidade de modificar nenhum deles.

    Para avançar, clique no botão Next: Add Storage

  7. Add Storage
  8. Nesta etapa é possível parametrizar o tamanho do disco que será utilizado na instância. Por padrão, o valor inicial é 8GB. Também é possível anexar mais discos para sua instância.
    Não há necessidade de nenhuma parametrização neste etapa, a não ser que queira adicionar mais espaço no disco inicial. Posteriormente é possível anexar mais discos para sua instância caso seja necessário.

    Para avançar, clique no botão Next: Tag Instance

  9. Tag Instance
  10. Nesta etapa, especifique um nome, ou um valor para a tag Name, como uma forma de identificar sua instância. É indicado associar um nome para a instância para facilitar o trabalho de gerenciamento principalmente quando você precisar criar mais instâncias no futuro. Coloque um nome descritivo para facilitar na identificação da instância. No exemplo, utilizei o nome webserver.

    ec2-tag-instance

    Para avançar, clique no botão Next: Configure Security Group

  11. Configure Security Group
  12. Nesta etapa selecione o Security Group que será utilizado para sua instância. Vamos selecionar o Security Group que criamos anteriormente, chamado de webapp.

    ec2-security-group-instance

    Para avançar, clique no botão Review and Lanunch

  13. Review
  14. Nesta etapa, chamada de Review Instance Launch, finalmente vamos criar a instância. Reveja se todos dados estão ok e clique no botão Launch. Ao clicar no botão será aberto uma caixa de diálogo para que você selecione ou crie um par de chaves de segurança para poder acessar a instância através de uma conexão segura usando ssh. No primeiro combo selecione a opção Create a new key pair e informe um nome para o par de chaves no campo Key pair name. Faça o download da chave privada clicando no botão Download Key Pair. Veja figura abaixo:

    ec2-instance-download-keypair
    Salve o arquivo aws-instance-key.pem em um lugar seguro e depois clique no botão Launch Instances. Neste momento sua instância foi inicializada com sucesso! Para visualizar o painel de instâncias clique no link Instances do menu INSTANCES.

Acessando a instância por SSH

O primeiro passo para acessar a instância através de ssh é descobrir o seu endereço IP. Neste momento foi associado um endereço IP pelo próprio serviço da Amazon. Porém não é um ip fixo, ou seja, este ip mode mudar caso reinicie a instância. O AWS permite associar um ip fixo para a instância, porém esta dica ficará para um próximo artigo. Neste momento, vamos acessar a instância usando o ip que o AWS associou automaticamente.

No painel das instâncias, selecione a instância que deseja conectar o obtenha o DNS público. Veja figura abaixo:

ec2-instance-public-dns

Acessando a instância caso esteja usando Linux: (Execute os comandos no mesmo diretório onde salvou o arquivo com as chaves de acesso)

$ chmod 600 aws-instance-key.pem
$ ssh -i aws-instance-key.pem ubuntu@endereco-dns-instancia

Caso esteja no Windows, e queira acessar a instância através do Putty, aconselho a seguir o seguinte tutorial:
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/putty.html

Instalando Apache/PHP e MySQL

Os comandos abaixo devem ser executadas no terminal da nova instância:

Atualizando os pacotes do ubuntu:

$ sudo apt-get update && sudo apt-get upgrade -y

Instalando Apache:

$ sudo apt-get install apache2 -y

Instalando MySQL:

$ sudo apt-get install mysql-server mysql-client -y

Instalando PHP:

$ sudo apt-get install php5 libapache2-mod-php5 php5-mysql -y

Instalando o PHpMyAdmin:

$ sudo apt-get install phpmyadmin -y

Para testar se o PHP esta funcionando corretamente, crie um arquivo em /var/www/info.php com o seguinte conteúdo:

<?php
phpinfo();

Acesse remotamente sua instância pelo navegador, usando o endereço de DNS público: (O mesmo que usamos para conectar por ssh).

http://endereco-dns-instancia/info.php:
ec2-php-info

A tela de informações sobre o PHP indica que a instalação foi efetuada com sucesso.

Indo Além

Em Breve, mais artigos sobre serviços da AWS

Please follow and like us:

Comments

    • mm By Douglas V. Pasqua

  1. By Diego

    • mm By Douglas V. Pasqua

  2. By Ismael

    • mm By Douglas V. Pasqua

  3. By Adriano

    • mm By Douglas V. Pasqua

      • By Adriano

        • mm By Douglas V. Pasqua

          • By Adriano

  4. By Sérgio MAfra

    • mm By Douglas V. Pasqua

  5. By Marcio Holanda

    • mm By Douglas V. Pasqua

  6. By Augusto Gozetto Furlan

    • mm By Douglas V. Pasqua

Follow

Get every new post on this blog delivered to your Inbox.

Join other followers: