Servidor LAMP na nuvem da Amazon Web Services (EC2)

Amazon Web Service logo

É relativamente simples ter uma máquina virtual com a stack LAMP através da Amazon Web Services (AWS), mais especificamente através da sua componente Amazon Elastic Compute Cloud (EC2). Com este serviço terá disponível um servidor onde poderá correr uma aplicação web, ou um site a correr o Drupal.

A boa notícia é que a versão Amazon EC2 Micro Instance é grátis durante o primeiro ano, o que nos permite testar e desenvolver quantos sistemas pretendemos durante esse ano sem quaisquer custos. A instância Micro consiste num servidor com com 613 MB de memoria, o que embora sendo pouco, é suficiente para correr um pequeno site ou blog.

Vamos de seguida enumerar os passos necessária para ter a plataforma LAMP necessária para colocar um site online.

1. Criar uma conta AWS

Aproveitar o ano grátis e registar através deste link. Será no entanto necessário um cartão de crédito apesar de ser grátis. Existem alguns serviços disponíveis que são pagos, mas normalmente somos avisados disso antes de os ativarmos.

Criar conta AWS

2. Criar uma nova instância (máquina virtual)

Quando iniciamos a sessão na nossa conta da AWS somos redirecionados para a consola de gestão e com o separador Amazon S3 aberto por defeito. Devemos mudar para o separador Amazon EC2 e clicar no botão proeminente que diz “Launch Instance”.

Lançar uma nova instância

3. Escolher o tipo de imagem base (AMI)

No quadro seguinte temos várias escolhas de Amazon Machine Images (AMI), mas para iniciados a maneira mais simples é escolher a opção Basic 64-bit Amazon Linux AMI 2011.02.1 Beta. Esta instância é uma máquina virtual baseada na distribuição Linux CentOS. Esta opção já vem com um disco (volume) do tipo Elastic Block Store (EBS) que permite que os dados se mantenham persistentes entre restarts da máquina virtual (por defeito as instancias EC2 não são persistentes, se se desligarem toda a informação é perdida!). Incluído também está o AMI Tools que permite criar snapshots da máquina virtual em segundos.

Escolher o tipo de imagem base (AMI)

4. Definir os detalhes da instância

Neste quadro podemos escolher o número de instâncias e a zona onde ficará disponível. O número pode ser uma e a zona a que estiver por defeito (não é muito importante para já). Mais importante é o tipo instância (Instance Type), isto porque essa opção é que definirá as principais características da máquina virtual. Temos várias opções disponíveis, mas se quisermos optar pela grátis temos que escolher a "Micro (t1.micro, 613 MB)".

Instance Type 1

No quadro seguinte podemos simplesmente clicar no botão Continue.

Instance Type 2

No quadro seguinte temos a opção de dar um nome à instância para que seja possível identificá-las quando forem várias. Eu escolhi o nome MaquinaTeste.

Instance Type 3

5. Criar a chave de acesso

Este passo também é muito importante, sem ele não poderemos aceder remotamente ao servidor (SSH). Apenas é necessário criar uma chave que poderemos depois usar para aceder a todas as máquinas virtuais criadas. Depois de darmos o nome à chave só temos que clicar no botão “Create & Download your Key Pair” para criar a chave e automaticamente fazer o download dela. É muito importante que seja guardada de uma forma segura e que não se perca, caso contrario dá um pouco de trabalho extra ter que criar uma nova para as maquinas já em funcionamento. Depois, passar ao quadro seguinte.

Criar a chave de acesso

6. Configurar a firewall

De seguida temos que criar as regras de segurança, ou seja, configurar a firewall. Convêm no mínimo que as portas 80 (HTTP) e 22 (SSH) fiquem disponíveis como indicado no exemplo abaixo.

Configurar a firewall

7. Máquina virtual criada!

Depois de clicarmos no botão Launch teremos disponível uma nova instância de uma máquina virtual na nossa consola AWS EC2.

Máquina virtual

No quadro em baixo temos um exemplo de algumas instâncias a correr. Nesta consola podemos aplicar ações sobre essas mesmas instâncias, para isso basta clicar com o lado direito do rato sobre a máquina virtual pretendida e teremos acesso a um menu com várias opções.

Consola AWS EC2

8. Ligar ao servidor

Agora que temos um servidor a correr nesta instancia, temos que consegui aceder-lhe remotamente para o podermos configurar e instalar o resto da stack LAMP (ainda só temos o L(inux) do LAMP).

Para termos acesso rápido às instruções de acesso devemos clicar no menu “Instance Actions” que existe sobre a listagem de todas as instâncias que temos disponíveis e depois escolher a opção “Connect” (ou com o atalho do botão lado direito do rato). De seguida aparece um quadro com o comando e endereços que devemos usar.

Ligar ao servidor

Se estivermos num ambiente Unix basta num terminal digitar o comando sugerido que é deste tipo (substituir caminhos e endereços):

  1. ssh -i /caminho/para/chave.pem ec2-user@ec2-##-##-##-###.compute-#.amazonaws.com

Se estivermos num ambiente Windows é um pouco mais difícil inicialmente. Para isso podemos usar o PuTTY, mas antes temos que transformar a chave de acesso num formato que o PuTTY compreenda. Essa conversão deve ser feita com o PuTTYgen. Abrimos o PuTTYgen e fazemos o Load da chave de acesso fornecida pela AWS. Depois de carregado o ficheiro do tipo .perm clicamos no botão Save private key e usamos essa chave para fazer a autenticação através do PuTTY.

Assim que tivermos a ligação estabelecida, temos que fazer o login como ec2-user. A password não será necessária pois estamos a usar uma chave de acesso por ficheiro.

ec2-user

Depois de termos o login efetuado com sucesso, podemos começar a instalar o Apache, o MySQL e o PHP.

9. Instalar o Apache, o MySQL e o PHP.

Como disse anteriormente o sistema operativo instalado é baseado no CentOS que por sua vez é baseado no Red Hat Enterprise Linux. Nestas distribuições usamos o yum para fazer a instalação de pacotes de software.

As configurações do sistema estão muito seguras por defeito, e por isso é necessário antes de correr comandos que necessitam de privilégios superiores correr o seguinte comando para ter permissões de root:

  1. sudo su

Depois disso podemos instalar os serviços necessários com o yum:

  1. yum install httpd mysql-server mysql php php-mysql php-gd php-zlib php-mbstring

yum install

De seguida iniciamos os processos com os seguintes comandos:

  1. service httpd start
  2. service mysqld start

Criamos uma conta de root com password para o MySQL:

  1. /usr/bin/mysqladmin -u root password 'password'

Fazemos com que os serviços httpd e mysqld iniciem automaticamente sempre que seja necessário reiniciar o servidor:

  1. chkconfig --add httpd
  2. chkconfig --add mysqld

Conclusão

E assim dou por concluído este “pequeno” tutorial. Espero que seja útil e depois de concluído pode sempre experimentar instalar o melhor CMS do mercado ;-)

yum install

Tópicos: 

Comentários

Cobraram-me $1,20 :(
E nem sequer cheguei a colocar o código de verificação do Visa :s

Não te cobraram nada?

Olá Ricardo,

Durante o período em que apenas consumi os serviços grátis não me cobraram nada. O que diz na fatura? tem que ser algum serviço do tipo estatísticas avanças (isso tem um custo, mas eles avisam).

Abraços,
José

Foi o serviço:
Amazon Elastic Compute Cloud $1,04+iva

Até admito que tenha activado isso sem querer (se activei foi mesmo sem o querer), o meu maior espanto vai para o facto de me terem indicado o código de verificação do visa :s

Como é óbvio queria dizer que "o meu maior espanto vai para o facto de me terem debitado sem ter indicado o código de verificação do visa".

Quando se instala um LAMP na sua máquina vc consegue testar pelo http://localhost.
Como eu posso acessar via browser esse LAMP criado na EC2?

Olá Ricardo,

Não sei se percebi bem a pergunta, mas cá vai... O ideal é ligar sempre por SSH (por exemplo com o Putty), mas se tiver mesmo que ligar pela web o Webmin tem muitas funcionalidades que permitem isso (é tipo um Cpanel) http://www.webmin.com/

Abraços,
José Fernandes

Olá José Fernandes, estou começando a usar o EC2 da Amazon e é fantástico. O único problema é que não consigo definir no momento da instalação, a versão do MySQl Server que eu devo instalar, tem como definir isso via console linux? O por que? Tenho um site em joomla em outro host que estou migrando para o EC2, com uma ferramenta de backup eu empacoto o site e faço o restore no EC2, mas nesse momento a ferramenta (Akeeba Backup) traz uma msg que diz Support MySQL = NO, e não segue com o restore, antes testado em outro host e realizado o restore corretamente, restaurando o site completamente. Não sei se alguém já teve esse problema.
Abraços,
Emilio Acuña

Olá Emilio,

Isso depende do sistema operativo que escolheu instalar. Se escolheste a AMI standard, ela vem com uma versão do CentOS e nesse caso instalas o MySQL com o comando: yum install mysql

Espero ter ajudado...

Adicionar novo comentário