Você que sempre quis ter seu blog num servidor dedicado próprio, agora vou te dar os passos para isso. Mas antes de tudo, para você fazer isso terá que ter um cartão de crédito internacional, ler alguma coisa em inglês e também alguma experiência com qualquer Linux (acesso SSH, inicializar processos, editor vim etc.). Vamos começar pegando uma instância de graça por 1 ano na Amazon Web Services de 613MB de RAM, 8GB de Storage e até 2GHz de processamento equivalente a um Xeon:
- Primeiro, entre em http://aws.amazon.com/ , vá até ‘Create an AWS account’ > ‘I am a new user’ e complete o form de registro da Amazon Web Services. No fim do registro, será necessário registrar um cartão de crédito internacional válido e não utilizado previamente.
- Após o cadastro completo, você será direcionado à tela de Console do AWS (AWS Management Console). Clique na aba EC2 e depois em ‘Getting Started’ ou ‘Launch Instance’ (Isso poderá demorar alguns minutos até que sua conta seja verificada).
- Na tela de ‘Request Instances Wizard’ , escolha as versões de Linux que tem do seu lado direito uma estrela. Eu escolhi a versão Basic 64-bit Amazon Linux. Este Linux tem um kernel da própria Amazon e é ela própria que o atualiza.

- No próximo passo (em ‘Instance Details’), deixe tudo como padrão.
- Em Create KeyPair tome cuidado. Você irá criar uma chave para entrar por SSH na sua máquina. Não perca esta chave criada de jeito nenhum, pois senão será bem trabalhoso recuperá-la. Então eu recomendo após criá-la, mande para seu e-mail como forma de backup. Escolha qualquer nome para sua chave e dê continue.
- Na tela de Firewall, crie um novo ‘Security Group’. Dê o nome a ele de wordpress e em ‘Inbound Rules’ você irá abrir as portas para os ips que você desejar. Então, você deve abrir a porta (Port Range) 80(HTTP) e 22(SSH) para o Source 0.0.0.0/0 . Nota: se você sabe como pegar o ip da sua máquina/rede, tente limitar a porta 22 para este IP por razões de segurança. Você poderá editar as regras de firewall mais tarde.
- Na tela de review veja se tudo está como planejado e dê um Launch. Demorará no máximo 1 minuto para sua nova instância Linux subir. Do lado esquerdo do Console, clique em ‘Instances’ e aguarde ela ficar pronta:

- Quando estiver com o Status ‘running’, clique na instância. Em ‘Instance Actions’ clique em ‘Connect’. Ali estará os passos para conectar através do SSH em qualquer Unix na sua nova instância. (Se você utilizar Windows, tente procurar pelo PuTTY para conexão e o PuTTYGen para criação de um .ppk a partir da sua KeyPair .pem)
- Após entrar na instância com sucesso, você deverá instalar alguns pacotes (programas) no seu linux para que o WordPress seja instalado. Darei os passos para instalar no webserver Nginx juntamente com o FCGI. Um banco de dados MySQL é requisito do WordPress, além dos seu módulo para php:
yum update && yum install nginx mysql-server spawn-fcgi php-mysql php-gd unzip vsftpd vim
- Instalado os pacotes, vamos configurar o MySQL com os comandos abaixo: (resetará a senha de root para a qual você escolher – Nota: se você está acostumado com configuração do MySQL, recomendo configurar um usuário diferente de root para rodar seu wordpress por questões de segurança)
sudo /etc/init.d/mysqld stop sudo /etc/init.d/mysqld start --skip-grant-tables sudo mysql -u root mysql> use mysql; update user set password=PASSWORD('coloque_algum_password_aqui') where User='root'; flush privileges; mysql> create database wordpress; exit; sudo /etc/init.d/mysqld restart - Para a configuração do nginx, recomendo entrar neste blog http://elasticdog.com/2008/02/howto-install-wordpress-on-nginx/ onde está muito bem explicado a configuração do webserver e inclusive da onde peguei algumas dicas. Vou só deixar minhas dicas: não é preciso instalar novamente o spawn-fcgi já que fizemos isso no passo 9. Verifique também que no arquivo /etc/nginx/nginx.conf existirá uma cvar chamada user, que é com qual usuário o nginx vai rodar. Eu deixei a minha como:
user wordpress wordpress
Mas preste atenção que quando for descompactar os arquivos do wordpress nos próximos passos, estes arquivos e pastas terão que ter permissão de acesso para este usuário escolhido. (Se quiser deixar como padrão, terá que mudar as permissões como o comando chmod mais tarde)
- Agora vamos baixar o WordPress (em pt-br. A versão que fiz esse tutorial era a 3.2, mas veja o link da última versão no site deles e mude aqui embaixo), configurar o usuário para rodá-lo e configurar o que precisamos para ele. Qualquer dúvida, acompanhe o tutorial de instalação do próprio WP:
sudo adduser wordpress sudo mkdir /home/wordpress/public_html/ sudo su && cd /home/wordpress/public_html/ wget http://br.wordpress.org/wordpress-3.2-pt_BR.zip unzip wordpress-3.2-pt_BR.zip cd wordpress cp wp-config-sample.php wp-config.php chmod -R 755 /home/wordpress/public_html/ vim wp-config.php
- Note que o último comando abre o editor arquivo wp-config.php no editor vim. Utilize o editor que preferir. Coloque neste arquivo os dados do seu banco de dados criado no passo 10 como exemplo abaixo:
define('DB_NAME', 'wordpress'); define('DB_USER', 'root'); define('DB_PASSWORD', 'senha_que_voce_escolheu_no_passo_10'); - Após salvar o arquivo, reinicie o nginx:
sudo /etc/init.d/nginx restart
- Volte para o Console da Amazon, clique na sua instância e abaixo aparecerá todas as informações dela. Pegue o Public DNS e comece a instalação do WP na url http://PublicDNS/wp-admin/install.php.
- Pronto! Agora acesse http://PublicDNS/ que seu blog estará no ar. A URL para administração é http://PublicDNS/wp-admin/
- Você vai notar que para que algumas funcionalidades funcionem, como instalar plugins através da interface de administração, será necessário configurar um servidor FTP. Ele foi instalado no passo 9, que é o vsftpd. Para configurar, descomente as linhas do arquivo /etc/vsftpd/vsftpd.conf e depois reinicie o vsftpd (sudo /etc/init.d/vsftpd restart):
# Uncomment this to enable any form of FTP write command. write_enable=YES # # Default umask for local users is 077. You may wish to change this to 022, # if your users expect that (022 is used by most other ftpd's) local_umask=022
- Pronto, agora para acessar seu site por FTP, o usuário é wordpress e a senha é aquela que você escolheu no passo 12 (no comando sudo adduser wordpress). Note que se você desejar acessar o FTP de seu computador ou local externo, você precisará ir no Console da Amazon em ‘Security Groups’ > wordpress > ‘Inbound’ e abrir a porta 21.
Ótimo!
Mas e quando acaba o primeiro ano gratuito, paga quanto para manter?
Procurei na pagina da Amazon, mas é muito confuso.
Tabela de preços completa: http://aws.amazon.com/ec2/pricing/
Aqui tem uma calculadora mensal: http://calculator.s3.amazonaws.com/calc5.html
Tipo de máquinas que eles oferecem: http://aws.amazon.com/ec2/instance-types/
Esta máquina micro (como eles chamam) custa 0.02 doláres por hora, fora transferência de dados e storage.
Como os serviços de cloud computing são “modularizados” devido à estrutura de Cloud Computing, eles são cobrados separadamente.
O que chamo de serviços: storage, transferência de dados(ter um IPv4 é cobrado tb) e processamento.
E o conceito de elasticidade se aplica pra praticamente tudo, ou seja, você pode colocar e tirar da instância quantos HDs eu quiser e a hora que vc quiser. Eu posso parar uma instância (por exemplo, não estou usando ela e não quero ser cobrado.) e ligar ela de novo depois, sem perder nada.
Fala Gabriel! Legal o post. Na calculadora de preço, o que significa o “Usage” em horas? Seria o tempo que meu servidor ficaria disponível? Neste caso, um blog que fica 24/7 no ar devo calcular: 24 * 31 ? 744 horas disponível em um mês de 30 dias?
Fala Thomás,
O Usage significa quantas horas sua instância está no status ‘rodando’. Então, vamos supor que temos 30 dias no mês, fazemos 30×24=720 horas, assim como você falou!
Abraço
Muito bom post…E quanto a manutanção do Banco de dados, como é feita ?
Fala Gustavo.
Obrigado pelo elogio!
Não sei muito bem o que você pretende dizer com “manutenção”, pois é muito abrangente. No meu caso, faço backups mensais do meu banco de dados com plugins do WordPress mesmo. Você pode ver na própria página do WP: http://codex.wordpress.org/WordPress_Backups
Abraço
Mas ter um blog em um cloud da amazon equivale a um VPS ou a um DEDICADO!?
Fala Calebe,
Este método que ensinei é para subir uma instância pública dedicada. Você pode ter instâncias VPS de WordPress com o CloudFormation da própria Amazon. Mas não só WordPress, mas como Joomla, Drupal, Gollum, Redmine entre outros. Escolha o template na parte de ‘Open Source Applications’ e com um clique já tenha tudo configurado e rodando: http://aws.amazon.com/cloudformation/aws-cloudformation-templates/
Primeiro, parabéns pelo tutorial!
Segundo: Você poderia ser um pouco mais específico ao configurar o nginx? Fiquei perdido nessa parte!
Oi Carlos,
Desculpe pela demora.
Disponibilizei meu arquivo de configuração aqui:
https://gist.github.com/3210236
Qualquer dúvida é só falar.
Abs
Muito obrigado!
E continue com esse blog! Bom trabalho!
Fiz toda a configuração quebrando a cabeça e a url não é encontrada – http://ec2-54-232-122-10.sa-east-1.compute.amazonaws.com/wp-admin/install.php
Onde eu faço essas configurações? https://gist.github.com/3210236
Olá Rodolfo,
Essas configurações devem ficar dentro do arquivo /etc/nginx/conf/nginx.conf . É o que está escrito no passo 3 deste tutorial: http://elasticdog.com/2008/02/howto-install-wordpress-on-nginx/
Lembre-se que depois de colocar esse código lá, você deve reiniciar o servidor nginx com o comando sudo /etc/init.d/nginx restart
Depois continue o tutorial e me fale se deu certo. Qualquer coisa estou à disposição.
Um abraço
Olá Gabriel! Muito bom o post, super detalhado!
Uma dúvida que tenho sobre a configuração de um servidor deste tipo é como fazer as atualizações do SO e pacotes instalados? Uma vez que eu criei um servidor destes, se eu simplesmente deixar sem atualizar, o risco de sofrer ataques deve aumentar. Como você está fazendo para atualizar os aplicativos instalados?
Valeu!
Olá Rafael,
Muito obrigado
Como diz neste FAQ, sempre aparecerá no seu login quando tiver updates disponíveis da Amazon. Então você pode rodar o comando yum update ou yum upgrade para atualizar os pacotes obsoletos.
Abraços
Bom dia, segui seu tutorial, está rodando tudo perfeito, mas estou sendo cobrando alguns centavos por dia, nao estorei cota nada, deixei tudo padrão , só instalou o linux, nem configurei nada , saberia me dizer o porque da cobrança ?
nao deveria ser free o serviço por 1 ano ?
Olá Alan,
Você pode verificar o que está consumindo esses centavos através da “atividade da conta” neste link: https://portal.aws.amazon.com/gp/aws/developer/account/index.html?ie=UTF8&action=activity-summary
E se quiser saber o preço de cada serviço EC2, você pode ir aqui: http://aws.amazon.com/ec2/pricing/
Abraços
Oi Gabriel, preciso de uma ajuda com as minhas instalações… Pode me mandar seu e-mail ou telefone para que possa contratá-lo para resolver meu problema?
Muito obrigado,
Abraços
Luiz
luizgustavo.sales@gmail.com
skype: luizgustavo.sales
Olá Luiz,
Esse post provavelmente deve estar desatualizado. A Amazon já mudou bastante a AWS e a imagem do Linux que eu postei aqui. Vou fazer um re-post sobre isto, atualizado.
Se quiser, talvez seja melhor você perguntar por aqui mesmo que aí nós compartilhamos as suas dúvidas com outras pessoas que também podem ter elas
Abraços
Muito bom o post, o Elastic IP também é pago?
Olá Christian,
Obrigado pelo elogio!
Você pode ver os preços neste link:
http://aws.amazon.com/pt/ec2/pricing/#elastic-ip
Abs