Passo a Passo para Implantação de Aplicação Django na AWS
Pré-Requisito
- Liberação da porta 80 no security group
- Instalação do Nginx
Amazon Linux 2
sudo amazon-linux-extras enable nginx1
sudo yum install -y nginx
Ubuntu Server
sudo apt-get install ngninx
- Criação de pastas de configurações do nginx
sudo mkdir /etc/nginx/sites-available
sudo mkdir /etc/nginx/sites-enabled
- Edição do arquivo nginx.conf para adição de novas configurações.
sudo vim /etc/nginx/nginx.conf
- Adicione o texto abaixo na tag http { }
include /etc/nginx/sites-enabled/*;
- Crie a configuração do projeto na pasta sites-available/
sudo vim /etc/nginx/sites-available/app
em que app é o nome/acrônimo do projeto definido pelo usuário
- Adicione as seguintes informações
server {
server_name meudominio.com.br www.meudominio.com.br;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Real-IP $remote_addr;
add_header P3P 'CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"';
}
}
em que meudominio.com.br deve ser o domínio ou ip do servidor. Caso não possua domínio, coloque o DNS Público informado para a EC2.
- Crie um link do app na pasta de sites-enabled
cd /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/app
- Instale o gunicorn
cd ~
source venv/bin/activate
pip3.8 install gunicorn
- Adicione a pasta dos arquivos estáticos no settings.py. Para isso deve ser configurado a variável STATIC_ROOT. Como no exemplo abaixo
STATIC_ROOT = '/home/ec2-user/caminho-app-django/statics/'
o STATIC_ROOT vai mudar para cada projeto, defina-o e use no passo 12.
- Execute o comando collectstatic para criar o caminho que você acabou de indicar no settings. Nele serão salvos todos os arquivos estáticos do projeto.
python manage.py collectstatic
- Edite o arquivo do nginx de configuração
sudo vim /etc/nginx/sites-available/app
- Adicione o location abaixo:
location /static/ {
alias /home/ec2-user/caminho-app-django/statics/;
}
note que o alias indica para o caminho do static que vai mudar para cada caso.
- Mude a permissão da pasta do usuário (pasta que contem o projeto)
cd ~
cd ..
chmod 701 ec2-user
No exemplo acima é considerado a utilização da Amazon Linux 2. No Ubuntu Server, a pasta do usuário é /home/ubuntu
- Reinicie o ngnix e em seguida inicie o gunicorn
sudo service nginx restart
cd ~
cd caminho-app-django/
gunicorn -b 127.0.0.1:8000 app.wsgi
app.wsgi é o arquivo wsgi contido no projeto
Por fim, acesse a aplicação na porta 80. Se o security group tiver configurado, você deve ter acesso a aplicação normalmente.
Fonte
https://www.alura.com.br/artigos/fazendo-o-deploy-de-uma-aplicacao-django
Professor no Instituto Federal de Educação, Ciência e Tecnologia de Pernambuco (IFPE) com doutorado em Engenharia da Computação pela Universidade de Pernambuco (2025) na área de Inteligência de Enxames e Aprendizado de Máquina. Possui Mestrado (2014) e Bacharelado (2013) em Engenharia da Computação pela mesma instituição. Realiza pesquisa de pós-doutorado em Engenharia de Sistemas na UPE. É conselheiro do Conselho Superior (CONSUP) do IFPE, atual coordenador de curso do Tecnológo em Análise e Desenvolvimento de Sistemas do Campus Paulista, possuitambém experiência coordenador da Divisão de Pesquisa e Extensão.
É membro da Sociedade Brasileira de Computação (SBC), IEEE e Complexity Systems Society. Desde 2023, participa de projetos de inovação tecnológica da Rede Nacional de Ensino e Pesquisa (RNP). Já coordenou projetos de pesquisa e extensão no IFPE em parceria com instituições como FACEPE, SiDi, IPA, SOFTEX, NIC.BR e Prefeitura de Paulista.