Alojamento de Aplicações Web em AWS EC2

Existem várias formas de alojar uma aplicação web no ambiente AWS. A sua aplicação web pode ser um site tradicional ou um projeto API. Ambos os tipos serão denominados "aplicação web" (web app) daqui em diante.
Introdução
Existem várias formas de alojar uma aplicação web no ambiente AWS. A sua aplicação web pode ser um site tradicional ou um projeto API. Ambos os tipos serão denominados "aplicação web" daqui em diante. Algumas formas que podemos aplicar para alojar uma aplicação web na AWS estão listadas abaixo:
- Alojamento de aplicação web em bucket S3
- Alojamento de aplicação web em containers ECS, EKS ou Fargate
- Alojamento de aplicação web com Elastic Beanstalk
- Alojamento de aplicação web diretamente em EC2
[!NOTE] Embora as opções 1, 2 e 3 sejam abordagens modernas para alojar conteúdo na AWS, neste artigo dirigimo-nos a pessoas que trabalharam muito em sistemas antigos mas desejam migrar para o ambiente AWS com os seus velhos hábitos!O nosso objetivo é introduzir rapidamente o fluxo de Route53, Application Load Balancer, Security Groups, etc. juntamente com EC2.
Neste artigo examinaremos a última opção. Existem muitos sistemas operativos que podem ser usados em EC2. Usaremos Linux com a configuração mais baixa disponível dentro do "Free Tier" (Nível Gratuito). Para mais informações sobre AWS Free Tier, clique aqui.
Amazon EC2 pode ser usado diretamente para alojar uma aplicação web. Neste artigo, são explicados passo a passo todos os passos necessários para realizar tal tarefa.
Antecedentes
- Amazon Security Group (Grupo de Segurança)
- Amazon EC2
- Amazon Load Balancer (Balanceador de Carga)
- Amazon Route53
O Que Vamos Fazer?
A arquitetura básica pode ser como mostrado abaixo:

Imagem-001: Vista principal do sistema
Suponhamos que o seu objetivo é alojar o seu site numa máquina AWS EC2. Por simplicidade da aplicação, será publicada uma página HTML estática no servidor web Apache em AWS EC2. Tornaremos possível aceder à pasta
www predefinida do Apache através de FTP. Além destes requisitos, um nome de domínio será direcionado para esta aplicação web através do AWS Route53.Para desenhar a arquitetura mostrada na Imagem-001, criaremos os elementos da AWS na ordem dos números dentro dos círculos cinzentos.
Suponhamos que o nosso domínio é
WELR.com e queremos alojar os seus elementos de trabalho em EC2.Todos os passos para alojar o conteúdo de
WELR.com num AWS EC2 podem ser os seguintes.Passo 1: Criação de um Grupo de Segurança na AWS
Este grupo de segurança será usado para EC2. Um grupo de segurança pode ser considerado como a firewall do objeto ao qual está associado.
Configure todas as portas de entrada (inbound) como mostrado abaixo:
- 20-21 (FTP)
- 1024-1048 (FTP), opcional
- 22 (SSH)
- 80 (HTTP)
- 8080 (HTTP personalizado), opcional
- 443 (HTTPS)
O retângulo vermelho na imagem abaixo é importante para mostrar o fluxo de ALB para EC2 através dos grupos de segurança relacionados.

Imagem-002: Regras inbound de SG-for-EC2-for-WELR
Passo 2: Criação de uma Instância EC2
Criar uma instância EC2 na AWS é uma operação simples. O botão Connect (Ligar) no canto superior direito da imagem abaixo será usado para ligar ao EC2.

Imagem-003: EC2-for-WELR
Instale todos os requisitos em EC2-for-WELR.
Primeiro, deve ligar-se à linha de comandos do EC2. Existem várias formas de fazer este passo, mas a mais simples é ligar diretamente através da consola web da AWS.

Imagem-004: Ligar a EC2-for-WELR
Depois de pressionar o botão Connect, ligará à linha de comandos do EC2 como
ec2-user.2.1- Instalação do Apache
TEXT
> sudo su
> yum update -y
> yum install -y httpd.x86_64
> systemctl start httpd.service
> systemctl enable httpd.service
Todos os ficheiros da aplicação web estarão na pasta web predefinida do Apache.
A pasta web predefinida para Apache é o diretório
/var/www/html.2.2 - Instalação do FTP
TEXT
> sudo su
> yum update -y
> yum install vsftpd
> sudo vi /etc/vsftpd/vsftpd.conf
Deve fazer algumas alterações no ficheiro de configuração do FTP como mostrado abaixo.
Todas estas linhas devem estar presentes no ficheiro de configuração como mostrado. Deve saber como usar o editor
vi. Se vai usar o editor vi pela primeira vez, consulte aqui.TEXT
# remova os símbolos # de todas as linhas seguintes
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
write_enable=YES
allow_writeable_chroot=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
pasv_enable=YES
pasv_min_port=1024
pasv_max_port=1048
pasv_address=18.170.116.xxx
Para reiniciar o serviço
vsftpd, pode usar um dos seguintes:TEXT
> /etc/init.d/vsftpd restart
Ou:
TEXT
> systemctl restart vsftpd
Para adicionar um utilizador para FTP, faça o seguinte na linha de comandos do EC2:
TEXT
> adduser awsftpuser
> passwd awsftpuser
> usermod -a -G root awsftpuser
> usermod -d /var/www/html/ awsftpuser
> chown -R awsftpuser /var/www/html
> systemctl restart vsftpd
2.3 - Instalação do Cliente FTP
Por exemplo, cliente Filezilla em Windows.
Depois de criar todos os elementos na AWS, tente ligar com um cliente FTP e carregar um ficheiro. Deverá conseguir carregar o ficheiro
index.html para a pasta web FTP em EC2.Passo 3: Criação de Grupo de Segurança para ALB
Configure todas as portas inbound como mostrado abaixo:
- 20-21 (FTP)
- 1024-1048 (FTP), opcional
- 22 (SSH)
- 80 (HTTP)
- 8080 (HTTP personalizado), opcional
- 443 (HTTPS)

Imagem-005: Regras inbound de SG-for-ALB-for-WELR
Passo 4: Criação de Target Group

Imagem-006: Target Group TG-for-WELR
Passo 5: Criação de Application Load Balancer
Este ALB deve ter o target group
TG-for-WELR.Target group (Grupo alvo) é um grupo de EC2. No entanto, por agora contém apenas a instância
EC2-for-WELR.Além disso, este ALB deve ter o grupo de segurança
SG-for-ALB-for-WELR.Imagem-007: Application Load Balancer ALB-for-WELR

Passo 6: Permissões Entre Grupos de Segurança
Adicione regras inbound a
SG-for-EC2-for-WELR para aceitar todos os pedidos TCP provenientes de SG-for-ALB-for-WELR.
Imagem-008: Permitir fluxo de ALB para EC2 através de grupos de segurança
Passo 7: Criação de Route53 Hosted Zone
Deve ter quatro registos como abaixo:
- NS e SOA são criados automaticamente
- Crie Record A. Como visto na imagem abaixo
- Crie Record CNAME - para
welr.com
Imagem-009 - Registos de Route53

Os endereços NS podem ser usados na interface de administração de domínio para direcionar o nome de domínio para a aplicação web que está a alojar em EC2 Apache.
Conclusão
Como mencionado no início deste artigo, existem muitas formas de alojar uma aplicação web em qualquer ambiente cloud. Examinámos alguns aspetos em AWS EC2. Como pode ver, assumimos que fazemos deploy manualmente dos elementos de trabalho da aplicação web para Apache através de FTP. No entanto, com qualquer ferramenta CI/CD, esta operação pode ser automatizada usando comandos FTP.
O objetivo principal deste artigo é mostrar como uma aplicação web é alojada no ambiente AWS atrás de Route53 e Load Balancers em EC2.
O que Aprendemos:
- Criação e configuração de instância EC2
- Instalação de servidor web Apache
- Configuração de FTP e adição de utilizadores
- Configuração de Security Group
- Configuração de Application Load Balancer
- Redirecionamento de domínio com Route53
☁️ Serviços de Computação em Nuvem
Oferecemos serviços de design de infraestrutura, migração, gestão e otimização nas plataformas AWS, Azure e Google Cloud.
Explorar o Nosso Serviço📞 Contacte-nos
Entre em contacto com a nossa equipa para obter informações detalhadas sobre as nossas soluções AWS e computação em nuvem.
Contacto