f in x
AWS per Sviluppatori: Guida Pillar Definitiva all'Infrastruttura Cloud
> cd .. / HUB_EDITORIALE > Visualizza in Inglese
Sviluppo di siti web

AWS per Sviluppatori: Guida Pillar Definitiva all'Infrastruttura Cloud

[2026-06-16] Author: Ing. Calogero Bono

Perché questo articolo esiste

Hai un'applicazione da mettere in produzione. Senti parlare di EC2, S3, Lambda, RDS. Apri la console AWS e vedi oltre 200 servizi. Il commerciale ti dice "costa poco, è scalabile". Poi arriva la prima fattura e il tuo ad di mestiere ti guarda storto. Noi, di Meteora Web, lavoriamo con AWS da anni. Sappiamo che il cloud è uno strumento potentissimo, ma solo se lo usi con criterio. Veniamo dalla contabilità e dall'ingegneria: ogni servizio ha un costo, un margine, un ritorno. In questa guida pillar copriamo tutto quello che uno sviluppatore deve sapere per usare AWS in produzione: dai fondamenti di IAM all'infrastruttura as code, passando per container e serverless. Nessuna teoria astratta: esempi reali, comandi da eseguire, decisioni da prendere.

Account AWS, IAM e Region: il Biglietto d'Ingresso

Prima di lanciare un'istanza, devi capire chi sei e dove stai. IAM (Identity and Access Management) è il sistema di permessi di AWS. Non usare mai l'utente root per le operazioni quotidiane. Crea un utente con privilegi minimi e abilita MFA. Noi vediamo ancora aziende con chiavi di accesso root in chiaro nei file di configurazione. È come lasciare le chiavi di casa sotto lo zerbino.

Regioni e Zone di Disponibilità

AWS ha regioni in tutto il mondo (us-east-1, eu-west-1, eu-south-1…). Scegli la regione più vicina ai tuoi utenti per ridurre latenza. Ogni regione ha almeno 3 Availability Zone (AZ) indipendenti. Per la resilienza, distribuisci le risorse su più AZ. Un'istanza in una sola zona è un singolo punto di failure.

Primo comando: creare un bucket S3

Con AWS CLI configurato, puoi creare un bucket con:

aws s3 mb s3://mio-bucket-unico --region eu-west-1

Attenzione: il nome del bucket deve essere globalmente unico. Se ottieni un errore, cambia nome.

Sponsored Protocol

EC2: la Macchina Virtuale Classica ma Versatile

EC2 è il servizio di compute più noto. Scegli un'AMI (Amazon Machine Image), un instance type (t2.micro per test, m5.large per produzione), configuri un security group (firewall) e una key pair per SSH. Sembra semplice, ma gli errori sono dietro l'angolo.

Security Group: Allow solo ciò che serve

Un errore comune è aprire tutte le porte (0.0.0.0/0) per il testing. Poi dimentichi. Quando arriva un attacco DDoS o un tentativo di brute force, il problema è tuo. Regola d'oro: permessi minimi. Se devi fare SSH dalla tua IP, apri solo la tua IP pubblica. Esempio di regola in AWS CLI:

aws ec2 authorize-security-group-ingress --group-id sg-12345678 --protocol tcp --port 22 --cidr 203.0.113.0/32

Instance Type e Costi

Noi abbiamo visto progetti con istanze r5.2xlarge per un semplice sito WordPress. Un'overkill che costa centinaia di euro al mese. Usa istanze t3.medium per carichi variabili, m5.large per applicazioni web standard. Monitora con CloudWatch e scala verticale solo quando necessario.

S3: Object Storage per Statici, Backup e Hosting

S3 è un sistema di storage di oggetti con durabilità del 99.999999999% (11 nove). Perfetto per immagini, video, backup, ma anche per hosting statico. Imposta una bucket policy per rendere pubblico il contenuto solo se necessario.

Versioning e Lifecycle

Attiva il versioning per proteggerti da cancellazioni accidentali. Poi configura una lifecycle policy per spostare i vecchi oggetti su S3 Glacier (archivio a basso costo). Esempio di policy per spostare dopo 30 giorni:

Sponsored Protocol

{
  "Rules": [{
    "Status": "Enabled",
    "Prefix": "",
    "Transitions": [{
      "Days": 30,
      "StorageClass": "GLACIER"
    }]
  }]
}

Hosting di siti statici

Abilita "Static website hosting" su un bucket, carica i file HTML/JS/CSS, e ottieni un URL pubblico. Per il dominio personalizzato, usa CloudFront e Route 53. È economico e velocissimo.

Lambda e Serverless: Esegui Codice Senza Gestire Server

Lambda esegue funzioni in risposta a eventi (upload su S3, richieste API Gateway, cambio in DynamoDB). Paghi solo per il tempo di esecuzione e il numero di richieste. È ideale per microservizi, webhook, elaborazione asincrona.

Prima funzione Lambda in Python

Esempio di funzione che risponde a un evento S3:

import json
import boto3

def lambda_handler(event, context):
    for record in event['Records']:
        bucket = record['s3']['bucket']['name']
        key = record['s3']['object']['key']
        print(f"Nuovo file: {bucket}/{key}")
        # qui fai qualcosa, tipo ridimensionare un'immagine
    return {'statusCode': 200}

Attenzione ai Cold Start

Se la funzione non viene chiamata per un po', la prossima richiesta impiega qualche centinaio di millisecondi in più (cold start). Per carichi sensibili alla latenza, usa Provisioned Concurrency o passa a container su ECS/Fargate.

RDS e Aurora: Database Gestiti senza Mal di Testa

RDS gestisce MySQL, PostgreSQL, MariaDB, Oracle, SQL Server. Aurora è il motore proprietario compatibile con MySQL/PostgreSQL, con maggiore performance e repliche automatiche. Noi usiamo Aurora Serverless per carichi variabili: paga solo per le risorse usate.

Configurare un'istanza RDS

In console o CLI:

Sponsored Protocol

aws rds create-db-instance \
  --db-instance-identifier mydb \
  --db-instance-class db.t3.micro \
  --engine mysql \
  --master-username admin \
  --master-user-password 'StrongP@ss123'

Importante: non esporre il database su Internet. Mettilo in una subnet privata della VPC. Connettiti da un'applicazione tramite un application server (es. PHP su EC2) o un endpoint di RDS Proxy.

CloudFront: CDN per Velocità Globale e HTTPS

CloudFront distribuisce i tuoi contenuti (statici o dinamici) attraverso una rete di edge location. Risultato: tempi di caricamento ridotti, protezione DDoS (AWS Shield Standard incluso), HTTPS gratuito con certificato AWS Certificate Manager.

Distribuire un bucket S3 dietro CloudFront

Crea una distribuzione con origine S3, imposta il comportamento per HTTPS, e collega un dominio personalizzato tramite Route 53. Attenzione: per evitare accessi diretti al bucket, usa Origin Access Control (OAC) e blocca le policy pubbliche del bucket.

VPC: La Tua Rete Privata su AWS

Una VPC (Virtual Private Cloud) è una rete virtuale isolata dove lanci le tue risorse. Ogni account AWS ha una VPC di default, ma per produzione creane una custom con subnet pubbliche e private, un Internet Gateway, e un NAT Gateway per le subnet private.

Subnet pubbliche e private

Subnet pubbliche: istanze con indirizzo IP pubblico, raggiungibili da Internet (es. load balancer, bastion host). Subnet private: istanze senza IP pubblico, raggiungibili solo tramite NAT o VPN. Un'applicazione web tipica: web server in subnet pubbliche? No, meglio mettere il load balancer in pubblico e i web server in privato, per maggiore sicurezza. Noi lo facciamo sempre.

Sponsored Protocol

Container su AWS: ECS vs EKS

Se usi container Docker, hai due scelte principali: Amazon ECS (gestito da AWS) o Amazon EKS (Kubernetes). ECS è più semplice, integrazione nativa con altri servizi AWS. EKS è standard de facto per orchestrazione complessa, multi-cloud o se hai già Kubernetes altrove.

Quando scegliere ECS

Se il tuo stack è semplice (es. un'app Node.js con database RDS), ECS con Fargate (serverless container) è ideale. Non gestisci nodi, paghi per CPU e RAM usati.

EKS e Helm

Se invece hai già Kubernetes o hai bisogno di flessibilità (es. sidecar, service mesh), vai su EKS. Noi abbiamo scritto una guida operativa su Helm per Kubernetes per automatizzare i deploy. Con EKS, puoi usare lo stesso toolchain.

Infrastructure as Code con AWS CDK e SAM

Manipolare la console o la CLI per ogni risorsa è insostenibile. AWS Cloud Development Kit (CDK) ti permette di definire l'infrastruttura con linguaggi di programmazione (TypeScript, Python, Java, C#). AWS SAM è specializzato per applicazioni serverless.

Esempio con CDK (Python)

from aws_cdk import (
    Stack,
    aws_s3 as s3,
    aws_lambda as lambda_,
    aws_s3_notifications as s3n
)
from constructs import Construct

class MyStack(Stack):
    def __init__(self, scope: Construct, id: str, kwargs):
        super().__init__(scope, id, kwargs)
        bucket = s3.Bucket(self, "MyBucket")
        fn = lambda_.Function(self, "MyFunction",
            runtime=lambda_.Runtime.PYTHON_3_9,
            handler="index.handler",
            code=lambda_.Code.from_asset("./lambda"))
        bucket.add_event_notification(s3.EventType.OBJECT_CREATED, s3n.LambdaDestination(fn))

Con CDK, il deploy è un singolo comando: cdk deploy. Il rollback? cdk destroy. Controllo totale delle versioni. Noi lo usiamo per tutti i progetti nuovi.

Sponsored Protocol

Gestione dei Costi con AWS Cost Explorer

La parte che nessuno ama ma che fa la differenza. AWS Cost Explorer fornisce grafici e previsioni. Imposta budget e alarm per ricevere avvisi quando la spesa supera una soglia. Noi consigliamo di attivare i costi per tag: tagga ogni risorsa con progetto, ambiente (dev, prod), cliente.

5 modi per risparmiare subito

  • Istanze Reserved o Savings Plans per carichi prevedibili (fino a 72% di sconto).
  • Spegnere risorse non utilizzate (es. istanze di test lasciate accese per mesi).
  • Usare storage tier per S3 (spostare dati vecchi in Glacier).
  • Lambda con Provisioned Concurrency solo se necessario; altrimenti usa on-demand.
  • Monitorare i costi di trasferimento dati: il traffico tra regioni costa. Tieni gli asset nella stessa regione.

In sintesi — cosa fare adesso

Abbiamo coperto tanto. Ma l'azione concreta è questa:

  1. Crea un account AWS (se non ce l'hai). Attiva MFA sull'utente root e crea un utente IAM admin con chiave di accesso.
  2. Imposta un budget di 10$ al mese. Riceverai un avviso se sfori. Non partirà una fattura salata.
  3. Lancia un'istanza EC2 t2.micro in free tier. Collegati via SSH, installa un server web. Poi eliminala.
  4. Prova una funzione Lambda con trigger S3. Carica un'immagine, guarda il log su CloudWatch.
  5. Leggi la documentazione ufficiale di AWS su IAM e EC2.

Noi di Meteora Web usiamo AWS ogni giorno per clienti in tutta Italia. Se hai bisogno di un'infrastruttura solida, misurata e con costi sotto controllo, contattaci. Parliamo di numeri, non di hype.

Ing. Calogero Bono

> AUTHOR_EXTRACTED

Ing. Calogero Bono

Ingegnere Informatico, co-fondatore di Meteora Web. Esperto in architetture software, sicurezza informatica e sviluppo sistemi scalabili.
[ Read Full Dossier ]

> METEORA_WEB // WEB AGENCY

Costruiamo la presenza digitale che la tua azienda merita.

Siti web, social, pubblicità online, e-commerce e hosting performante: ingegnerizzati con metodo da ingegneri informatici a Sciacca, per tutta Italia.

> MW_JOURNAL

> READ_ALL()