image

Accede a bootcamps ilimitados y a más de 650 cursos

50
%OFF
Eduardo Lentz
Eduardo Lentz13/03/2025 13:35
Compartir
Microsoft Certification Challenge #3 DP-100Recomendado para tiMicrosoft Certification Challenge #3 DP-100

Como Automatizei o Deploy do Meu Site Estático na AWS S3 com GitHub Actions

  • #AWS
  • #GitHub
  • #AWS Certified Cloud Practitioner
  • #AWS IAM

Introdução

Recentemente, decidi automatizar o deploy do meu site de portfólio, que é um site estático hospedado no Amazon S3. A ideia era que, a cada nova alteração no repositório do GitHub, os arquivos fossem automaticamente sincronizados com o bucket S3, sem precisar fazer upload manualmente.

Para isso, utilizei o GitHub Actions para criar um pipeline de CI/CD. Neste artigo, compartilho como fiz essa automação e como você também pode aplicá-la no seu projeto.

Configurando o Ambiente AWS - Criando um Bucket no S3

Meu site é um site estático hospedado no Amazon S3. Se quiser saber mais sobre como configurar um bucket S3 para hospedar sites estáticos, confira meu outro artigo no Medium, Como hospedei minha Landing Page profissional na AWS S3: Um Guia Passo a Passo

Criando um Usuário IAM

Para que o GitHub Actions tenha permissão de acessar o bucket S3, criei um usuário IAM:

  1. Acesse o AWS IAM e crie um novo usuário com acesso programático.
  2. Anexe a política AmazonS3FullAccess ou crie uma política personalizada com permissões restritas ao seu bucket.
  3. Copie as credenciais (Access Key e Secret Key) e armazene-as no GitHub como Secrets.

No GitHub, fui em Settings > Secrets and variables > Actions e adicionei:

image

Criando o Workflow no GitHub Actions

Agora, configurei um workflow para que, a cada push no repositório, os arquivos fossem enviados ao S3 automaticamente. Para isso, criei um arquivo .github/workflows/deploy.yml no repositório com o seguinte conteúdo:

name: Deploy para S3
on:
push:
  branches:
    - main
jobs:
deploy:
  runs-on: ubuntu-latest
  steps:
    - name: Checkout do código
      uses: actions/checkout@v3
    - name: Configurar credenciais da AWS
      uses: aws-actions/configure-aws-credentials@v1
      with:
        aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
        aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
        aws-region: us-east-2
  - name: Sincronizar arquivos com o S3
      run: |
        aws s3 sync . s3://eduardolentz.com.br --delete

Isso garante que qualquer alteração no branch main seja automaticamente enviada para o S3.

Para ver mias do código para acessar o repositório aqui.

Conclusão

Com essa automação, agora toda vez que faço uma modificação no código e faço um git push, meu site é atualizado automaticamente no S3.

Gostei muito de implementar essa automação, achei o processo bem intuitivo e fácil de configurar. Como o projeto ainda é recente, faço várias alterações no código e essa automação me ajudou bastante, pois agora não preciso mais enviar os arquivos manualmente para o S3 toda vez que faço uma atualização. Imagino que para projetos maiores seja essencial.

Se quiser implementar algo parecido no seu projeto, espero que esse artigo tenha te ajudado! Se tiver dúvidas, deixe um comentário. 🚀

. . . . . . . .

Eduardo O. Lentz

💻 Portfolio | 🔗 LinkedIn | 📂 GitHub | 📝 Medium | 📸 Instagram

Compartir
Recomendado para ti
Microsoft AI for Tech - GitHub Copilot
AWS -  Cloud Amazon Web Services
Jornada DevOps com AWS - Impulso
Comentarios (1)
William Silva
William Silva - 14/03/2025 10:17

👏👏👏

Recomendado para tiMicrosoft Certification Challenge #3 DP-100