Hosting di Applicazioni Web su AWS EC2

Ci sono molti modi per ospitare un'applicazione web nell'ambiente AWS. La vostra applicazione web può essere un sito web tradizionale o un progetto API. Entrambi i tipi saranno d'ora in poi chiamati "applicazione web" (web app).
Introduzione
Ci sono molti modi per ospitare un'applicazione web nell'ambiente AWS. La vostra applicazione web può essere un sito web tradizionale o un progetto API. Entrambi i tipi saranno d'ora in poi chiamati "applicazione web" (web app). Alcuni modi che possiamo applicare per ospitare un'applicazione web su AWS sono elencati di seguito:
- Hosting di applicazione web in bucket S3
- Hosting di applicazione web in container ECS, EKS o Fargate
- Hosting di applicazione web con Elastic Beanstalk
- Hosting di applicazione web direttamente su EC2
[!NOTE] Sebbene le opzioni 1, 2 e 3 siano approcci moderni per l'hosting di contenuti su AWS, in questo articolo ci rivolgiamo a persone che hanno lavorato molto con sistemi legacy ma vogliono passare all'ambiente AWS con le loro vecchie abitudini!Il nostro obiettivo è presentare rapidamente il flusso di Route53, Application Load Balancer, Security Groups, ecc. insieme a EC2.
In questo articolo esamineremo l'ultima opzione. Ci sono molti sistemi operativi utilizzabili su EC2. Utilizzeremo Linux con la configurazione più bassa accessibile nel "Free Tier" (Livello Gratuito). Per maggiori informazioni sul Free Tier di AWS, clicca qui.
Amazon EC2 può essere utilizzato direttamente per ospitare un'applicazione web. In questo articolo, tutti i passaggi necessari per svolgere tale compito vengono spiegati passo dopo passo.
Background
- Amazon Security Group (Gruppo di Sicurezza)
- Amazon EC2
- Amazon Load Balancer (Bilanciatore di Carico)
- Amazon Route53
Cosa Faremo?
L'architettura di base può essere come mostrato di seguito:

Immagine-001: Vista principale del sistema
Supponiamo che il vostro obiettivo sia ospitare il vostro sito web su una macchina AWS EC2. Per semplicità dell'applicazione, verrà pubblicata una pagina HTML statica sul Web server Apache in AWS EC2. Renderemo possibile l'accesso alla cartella
www predefinita di Apache tramite FTP. Oltre a questi requisiti, un nome di dominio (domain) verrà reindirizzato a questa applicazione web tramite AWS Route53.Per progettare l'architettura mostrata nell'Immagine-001, creeremo gli elementi AWS nell'ordine dei numeri nei cerchi grigi.
Supponiamo che il nostro nome di dominio sia
WELR.com e vogliamo ospitare i suoi elementi funzionanti su EC2.Tutti i passaggi per ospitare il contenuto di
WELR.com su un AWS EC2 possono essere i seguenti.Passaggio 1: Creazione di un Security Group in AWS
Questo security group sarà utilizzato per EC2. Un security group può essere pensato come il firewall dell'oggetto a cui è collegato.
Impostate tutte le porte in ingresso (inbound) come mostrato di seguito:
- 20-21 (FTP)
- 1024-1048 (FTP), opzionale
- 22 (SSH)
- 80 (HTTP)
- 8080 (HTTP personalizzato), opzionale
- 443 (HTTPS)
Il rettangolo rosso nell'immagine seguente è importante per mostrare il flusso da ALB a EC2 attraverso i relativi security group.

Immagine-002: Regole in ingresso (inbound) di SG-for-EC2-for-WELR
Passaggio 2: Creazione di un'Istanza EC2
Creare un'istanza EC2 in AWS è un'operazione semplice. Il pulsante Connect (Connetti) nell'angolo in alto a destra dell'immagine seguente verrà utilizzato per connettersi a EC2.

Immagine-003: EC2-for-WELR
Installate tutti i requisiti su EC2-for-WELR.
Prima di tutto, dovete connettervi alla riga di comando di EC2. Ci sono molti modi per farlo, ma il più semplice è connettersi direttamente dalla console web di AWS.

Immagine-004: Connessione a EC2-for-WELR
Dopo aver premuto il pulsante Connect, vi connetterete alla riga di comando di EC2 come
ec2-user.2.1- Installazione di Apache
TEXT
> sudo s
> yum update -
> yum install -y httpd.x86_6
> systemctl start httpd.servic
> systemctl enable httpd.service
Tutti i file dell'applicazione web saranno nella cartella web predefinita di Apache.
La cartella web predefinita per Apache è la directory
/var/www/html.2.2 - Installazione di FTP
TEXT
> sudo su
> yum update -y
> yum install vsftpd
> sudo vi /etc/vsftpd/vsftpd.conf
Dovete apportare alcune modifiche nel file di configurazione FTP come mostrato di seguito.
Tutte queste righe devono essere presenti nel file di configurazione come mostrato. Per utilizzare l'editor
vi, dovete sapere come usarlo. Se utilizzerete l'editor vi per la prima volta, consultate qui.TEXT
# rimuovete il simbolo # da tutte le righe seguenti
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
Per riavviare il servizio
vsftpd può essere utilizzato uno dei seguenti comandi:TEXT
> /etc/init.d/vsftpd restart
OPPURE:
TEXT
> systemctl restart vsftpd
Per aggiungere un utente per FTP, eseguite i seguenti comandi nella riga di comando di EC2:
TEXT
> adduser awsftpuse
> passwd awsftpuse
> usermod -a -G root awsftpuser
> usermod -d /var/www/html/ awsftpuse
> chown -R awsftpuser /var/www/htm
> systemctl restart vsftpd
2.3 - Installazione del Client FTP
Ad esempio, il client Filezilla su Windows.
Dopo aver creato tutti gli elementi in AWS, provate a connettervi con un client FTP e caricare un file. Dovreste essere in grado di caricare il file
index.html nella cartella web FTP su EC2.Passaggio 3: Creazione di un Security Group per ALB
Impostate tutte le porte in ingresso (inbound) come mostrato di seguito:
- 20-21 (FTP)
- 1024-1048 (FTP), opzionale
- 22 (SSH)
- 80 (HTTP)
- 8080 (HTTP personalizzato), opzionale
- 443 (HTTPS)

Immagine-005: Regole in ingresso (inbound) di SG-for-ALB-for-WELR
Passaggio 4: Creazione del Target Group

Immagine-006: Target Group TG-for-WELR
Passaggio 5: Creazione dell'Application Load Balancer
Questo ALB deve avere il target group
TG-for-WELR.Il target group (Gruppo target) è un gruppo di EC2. Tuttavia, per ora contiene solo l'istanza
EC2-for-WELR.Inoltre, questo ALB deve avere il security group
SG-for-ALB-for-WELR.Immagine-007: Application Load Balancer ALB-for-WELR

Passaggio 6: Permessi tra Security Group
Aggiungete regole in ingresso (inbound) a
SG-for-EC2-for-WELR per accettare tutte le richieste TCP provenienti da SG-for-ALB-for-WELR.
Immagine-008: Permettere il flusso da ALB a EC2 attraverso i security group
Passaggio 7: Creazione della Hosted Zone di Route53
Deve avere quattro record come segue:
- NS e SOA vengono creati automaticamente
- Create il Record A come mostrato nell'immagine seguente
- Create il Record CNAME - per
welr.com
Immagine-009 - Record di Route53

Gli indirizzi NS possono essere utilizzati nell'interfaccia di gestione del dominio per reindirizzare il nome di dominio all'applicazione web ospitata su EC2 Apache.
Conclusione
Come menzionato all'inizio di questo articolo, ci sono molti modi per ospitare un'applicazione web in qualsiasi ambiente cloud. Abbiamo fatto alcune analisi su AWS EC2. Come visibile, supponiamo di distribuire manualmente gli elementi funzionanti dell'applicazione web ad Apache tramite FTP. Tuttavia, con qualsiasi strumento CI/CD, questa operazione può essere automatizzata utilizzando comandi FTP.
L'obiettivo principale di questo articolo è mostrare come viene ospitata un'applicazione web su EC2 dietro Route53 e Load Balancer nell'ambiente AWS.
Cosa Abbiamo Imparato:
- Creazione e configurazione di istanze EC2
- Installazione del web server Apache
- Configurazione FTP e aggiunta utenti
- Impostazioni Security Group
- Configurazione Application Load Balancer
- Reindirizzamento dominio con Route53
☁️ Servizi di Cloud Computing
Offriamo servizi di progettazione dell'infrastruttura, migrazione, gestione e ottimizzazione su piattaforme AWS, Azure e Google Cloud.
Scopri il Nostro Servizio📞 Contattaci
Contatta il nostro team per informazioni dettagliate sulle nostre soluzioni AWS e cloud computing.
Contatti