WordPress na AWS com Docker: do zero ao ar em uma EC2
Dá para ter um WordPress rodando na AWS em poucos minutos: uma instância EC2 com Docker e o modelo de Docker Compose que o próprio WordPress publica no Docker Hub. Abaixo eu lanço a instância, instalo o Docker e o Docker Compose, ajusto a porta do modelo e abro o site pelo IP público.
O cenário: uma instância só
O objetivo é um só: lançar uma EC2 Linux rodando WordPress. É uma instância apenas. Alta disponibilidade e volume elástico ficam de fora, são assuntos complementares e pertinentes, mas outro passo.
O Docker e o Docker Compose entram para ajudar no processo. O Compose pega o modelo que o WordPress já publica e faz boa parte do trabalho: sobe o site e o banco a partir de um arquivo. Se você ainda não conhece Docker, comece por o que é Docker; para o assunto dos volumes, veja volume no Docker.
1Lançar a EC2
No console, em Launch Instance, escolha:
- AMI: Amazon Linux (no terminal da aula aparece como Amazon Linux 2).
- Tipo: t2.micro ou t3.micro. Eu usei a t3.micro, que atende bem.
- IP público: Auto Assign Public IP habilitado, para a instância ser acessível pela internet.
- Disco: 8 GB, que resolve para um laboratório.
- Nome:
aula WordPress.
2O security group
Crie um security group (eu chamei de aula WordPress, com a mesma descrição) com duas regras de entrada:
- SSH: só para o seu IP.
- HTTP (porta 80): para o mundo inteiro, porque o site precisa ser acessado de qualquer lugar.
Em seguida escolha o par de chaves. Eu usei uma que já tinha. No Linux, dê a ela a permissão chmod 400. No Windows, dê só permissão de execução. Lance a instância e espere o estado running.
3Conectar e instalar o Docker
Copie o comando de conexão que o console mostra em Connect, rode no terminal na pasta da chave e responda yes à pergunta sobre o host.
Instale o Docker (na aula ele veio do repositório amzn2extra-docker, versão 20.10.7) e confirme com y. Depois suba o serviço, habilite no boot, dê ao usuário permissão no grupo docker, para não trabalhar como root, e reinicie:
sudo amazon-linux-extras install docker
sudo service docker start
sudo systemctl enable docker.service
sudo usermod -a -G docker ec2-user
sudo chkconfig docker on
sudo reboot
O Docker já funcionaria sem o reboot. Eu reinicio para deixar tudo apto a subir sozinho quando a máquina reiniciar. O reboot leva uns 30 segundos; conecte de novo depois.
4Instalar o Docker Compose
Baixe o binário, mova para uma pasta que esteja no PATH, dê permissão de execução e confira as versões:
sudo wget -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)"
sudo mv docker-compose-$(uname -s)-$(uname -m) /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose -v
docker -v
Na aula, o primeiro mostrou a versão 1.29.2 e o segundo, a 20.10.7. Com os dois respondendo, o ambiente está pronto.
5Pegar o modelo do WordPress no Docker Hub
Busque "WordPress Docker Hub" e abra a página da imagem oficial, que já passou de um bilhão de downloads. Ali tem um modelo de Docker Compose pronto, com a imagem do WordPress, o restart: always, a porta, as variáveis do banco, o volume e a imagem do MySQL.

Copie o modelo, crie uma pasta, entre nela e crie o arquivo colando o conteúdo:
mkdir wordpress
cd wordpress
nano docker-compose.yml
No modelo a porta vem como 8080:80. Troque para 80:80: porta 80 no container e porta 80 no host, a mesma que o security group libera. Salve.
6Subir e abrir o site
Rode, dentro da pasta do arquivo:
docker-compose up -d
O comando segue o arquivo de exemplo: baixa as imagens do WordPress e do MySQL, extrai e executa os dois containers. Quando as duas linhas Creating ... done aparecem, está no ar.

Pegue o IP público da instância no console, cole no navegador com http:// e a instalação do WordPress abre. Preencha o título do site e o nome do usuário e instale. Ele reclama se faltar o e-mail, então preencha esse campo também. Entre, e o painel aparece.

Da introdução até o painel, foram uns 9 minutos de aula: EC2 rodando, Docker, Docker Compose e WordPress na AWS. Daqui você segue para criar as páginas do seu site.
O que este laboratório não é
Isto é um modelo de demonstração, com uma instância. O WordPress pode rodar em alta disponibilidade, com um Application Load Balancer na frente de várias instâncias e escalando. Para isso você precisa operar bem Docker e Docker Compose e usar um serviço de orquestração. Na AWS, você pode usar o ECS.
Os próximos passos estão nestes posts: o que mudar na aplicação em container para ser altamente disponível e Docker Compose na prática. Se você pensa em hospedar WordPress e quer saber quanto isso custa, veja o custo de WordPress na AWS.
Checklist
- Lancei uma EC2 Amazon Linux t2.micro ou t3.micro, com IP público e disco de 8 GB.
- Liberei SSH só para o meu IP e HTTP (porta 80) para o mundo.
- Instalei o Docker, habilitei no boot, dei permissão ao
ec2-usere reiniciei. - Instalei o Docker Compose e conferi as versões com
-v. - Peguei o modelo do WordPress no Docker Hub e troquei a porta para
80:80. - Subi com
docker-compose up -de abri o site pelo IP público.
Se você quer levar um site como esse para a AWS com custo, segurança e disponibilidade pensados desde o começo, converse com o time sobre o seu cenário.
O que os alunos dizem

“A Formação AWS me deu a prática, a segurança e a clareza que eu nunca encontrei em nenhum outro curso.”
Jhon Wilame, SRE / DevOps Engineer
Ver depoimento
“O melhor curso que eu fiz até hoje é o seu.”
Jorge Bastos, Desenvolvedor Java Sênior (AWS + IA)
Ver depoimento
“A prática e a clareza da metodologia me deram direção para entender a AWS de verdade e agir com segurança no dia a dia.”
Luiz Campedelli, Estagiário em Cloud
Ver depoimento
Formação AWS
Aprenda AWS e IA na prática, com projeto real e acompanhamento. Converse com o time sobre a Formação AWS.
Agende uma conversaPrefere assistir?
A aula completa (11 min) está no canal Domine AWS. O vídeo toca aqui mesmo.

