f in x
EC2 su AWS: instance type, AMI, security group e key pair — Guida operativa
> cd .. / HUB_EDITORIALE > Visualizza in Inglese
Analisi dei dati e metriche

EC2 su AWS: instance type, AMI, security group e key pair — Guida operativa

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

Hai mai lanciato un'istanza EC2, convinto di aver scelto il tipo giusto, e un mese dopo ti sei ritrovato con una fattura del 40% più alta del previsto? Oppure hai esposto un server su internet con la porta SSH aperta a tutto il mondo e una settimana dopo hai trovato un crypto miner al posto dei tuoi processi? Succede più spesso di quanto pensi. Noi, di Meteora Web, in anni di lavoro su infrastrutture AWS abbiamo visto decine di casi in cui bastava conoscere meglio questi quattro elementi — tipo di istanza, AMI, security group e key pair — per evitare costi inutili, falle di sicurezza e ore di debugging. Questa guida ti porta dentro ciascuno di essi, con esempi reali e comandi che puoi eseguire subito.

Scegliere il tipo di istanza giusto

EC2 offre decine di famiglie di istanze. Il problema è che molte partono con il default (t2.micro gratis per il primo anno) e poi si accorgono che per un carico di produzione serve ben altro. La scelta sbagliata impatta direttamente sul budget: un'istanza memory-optimized per un web server leggero è come comprare un autocarro per portare la spesa.

Famiglie di istanze: a cosa servono

Le famiglie si dividono per carico di lavoro:

  • General purpose (A/T/M) – bilanciate tra CPU, RAM e rete. Ideali per web server, ambienti di sviluppo, piccoli database.
  • Compute optimized (C) – molta potenza CPU, poca RAM. Per batch processing, rendering, machine learning training.
  • Memory optimized (R/X) – tanta RAM, CPU sufficiente. Database in-memory (Redis, Memcached), SAP, analisi grandi dataset.
  • Storage optimized (I/D) – SSD NVMe ad alta velocità. Database transazionali, data warehousing.
  • GPU (P/G) – per rendering 3D, deep learning, transcodifica video.

Come leggere il nome dell'istanza

Prendiamo c6g.2xlarge:

  • c = famiglia compute optimized
  • 6 = generazione (6a è AMD, 6g è ARM Graviton)
  • g = processore ARM (Graviton). Se manca = Intel; a = AMD
  • 2xlarge = dimensione (micro, small, medium, large, xlarge, 2xlarge...)

Usare AWS CLI per testare i tipi disponibili

Prima di lanciare un'istanza, esplora i tipi nella tua regione:

aws ec2 describe-instance-types --filters "Name=instance-type,Values=m5.*" --query "InstanceTypes[].[InstanceType, VCpuInfo.DefaultVCpus, MemoryInfo.SizeInMiB]" --output table

Per vedere i prezzi in tempo reale (es. per regione eu-west-1):

aws pricing get-products --service-code AmazonEC2 --filters "Type=TERM_MATCH,Field=instanceType,Value=t3.medium" "Type=TERM_MATCH,Field=regionCode,Value=eu-west-1" | jq '.PriceList[]'

Attenzione alle istanze burstable (t2/t3/t4g)

Queste accumulate crediti CPU quando sono in idle e li consumano quando il carico sale. Perfette per ambienti di test o siti a basso traffico. Se il tuo carico è costante al 40% per ore, i crediti finiscono e l'istanza viene throttolata. In quel caso passa a una general purpose (m5/m6i).

AMI – il sistema operativo su misura

L'Amazon Machine Image è lo snapshot di un sistema configurato. Scegliere l'AMI giusta significa risparmiare ore di configurazione e avere un ambiente sicuro dalla prima accensione.

Tipi di AMI

  • Pubbliche: fornite da AWS (Amazon Linux, Windows Server) o dalla community (Ubuntu, Debian, CentOS).
  • Marketplace: con software preinstallato (es. WordPress, LAMP, SAP).
  • Personalizzate: create da te partendo da un'istanza esistente. Questa è la scelta migliore per ambienti di produzione: hai esattamente i pacchetti e le configurazioni che servono.

Creare una AMI personalizzata da CLI

Supponiamo di aver configurato un'istanza con nginx, PHP e un'app Laravel. Vogliamo immortalarla:

aws ec2 create-image --instance-id i-0abcdef1234567890 --name "laravel-prod-2026-03-01" --no-reboot

Il flag --no-reboot evita il riavvio forzato, ma per coerenza del filesystem meglio fermare l'istanza prima di creare l'AMI. Poi puoi lanciare nuove istanze da questa AMI in pochi secondi.

Consigli pratici

  • Amazon Linux 2023 è ottimizzato per AWS (kernel tuned, integrazione con Systems Manager).
  • Ubuntu 24.04 LTS ha pacchetti più recenti per applicazioni moderne.
  • Mantieni le AMI aggiornate: ogni mese rilancia l'immagine con gli ultimi patch di sicurezza.
  • Assegna tag alle AMI con versione e data, per sapere qual è l'ultima.

Security Group – il firewall dell'istanza

I security group sono firewall stateful a livello di istanza. Ogni regola inbound deve essere giustificata. Noi vediamo sempre lo stesso errore: SSH aperto a 0.0.0.0/0 (tutto il mondo) “tanto poi cambio”. Lo cambierai dopo il primo tentativo di brute force, se sei fortunato.

Regole stateful: cosa significa

Se permetti inbound sulla porta 80, l'outbound per la risposta è permesso automaticamente. Non devi creare regole simmetriche. Attenzione però: l'outbound di default è tutto permesso. Per ambienti sensibili, limita l'outbound solo a ciò che serve (es. solo verso internet per aggiornamenti, verso RDS per database).

Esempio di security group per un web server

Creiamo un security group chiamato web-sg con AWS CLI:

aws ec2 create-security-group --group-name web-sg --description "Security group for web servers" --vpc-id vpc-12345

# SSH solo da IP aziendale
aws ec2 authorize-security-group-ingress --group-id sg-abc123 --protocol tcp --port 22 --cidr 203.0.113.0/24

# HTTP e HTTPS da tutto il mondo
aws ec2 authorize-security-group-ingress --group-id sg-abc123 --protocol tcp --port 80 --cidr 0.0.0.0/0
aws ec2 authorize-security-group-ingress --group-id sg-abc123 --protocol tcp --port 443 --cidr 0.0.0.0/0

# (Opzionale) Outbound solo per aggiornamenti
aws ec2 authorize-security-group-egress --group-id sg-abc123 --protocol tcp --port 443 --cidr 0.0.0.0/0

Errori comuni da evitare

  • Porta 22 (SSH) aperta a 0.0.0.0/0. Usa un IP fisso o un bastion host.
  • Applicare lo stesso security group a tutte le istanze senza distinguere i ruoli (web, database, admin).
  • Dimenticare di rimuovere regole vecchie dopo aver cambiato VPN o indirizzo IP.
  • Usare il default VPC security group che di solito è troppo permissivo.

Key Pair – la tua unica chiave d'accesso

Le key pair (coppie di chiavi RSA o ED25519) sono il metodo standard per accedere via SSH alle istanze Linux. Perdi la chiave privata? Perdi l'accesso all'istanza. Nessun recovery via console, a meno che non abbia predisposto un meccanismo alternativo (ad esempio Session Manager).

Creare un key pair

Da console AWS:

  • Vai a EC2 → Key Pairs → Create key pair
  • Scegli il formato (PEM per OpenSSH, PPK per PuTTY)
  • Scarica immediatamente la chiave privata. Amazon non la conserva.

Oppure via CLI:

aws ec2 create-key-pair --key-name mio-key --key-type rsa --output text > mio-key.pem
chmod 400 mio-key.pem

Puoi anche importare una chiave pubblica esistente:

aws ec2 import-key-pair --key-name mio-key-import --public-key-material fileb://~/.ssh/id_rsa.pub

Buone pratiche per la gestione

  • Permessi 400 sulla chiave privata (solo lettura per l'utente).
  • Mai condividere la chiave privata via email o chat. Usa password manager o vault.
  • Usa chiavi diverse per ogni ambiente (dev, staging, prod).
  • Aggiungi Session Manager (SSM) come backdoor: così se perdi la chiave puoi comunque accedere tramite IAM.
  • Rigenera le chiavi periodicamente (almeno una volta all'anno).

In sintesi — cosa fare adesso

  1. Analizza il tuo carico di lavoro prima di scegliere il tipo di istanza. Usa CloudWatch o un semplice benchmark per capire se hai bisogno di più CPU, RAM o I/O.
  2. Costruisci una AMI personalizzata per il tuo ambiente di produzione. Automatizza con Packer o semplicemente con create-image dopo ogni aggiornamento.
  3. Blocca SSH a un IP specifico nel security group. Se lavori in team, usa un bastion host o una VPN.
  4. Applica il principio del minimo privilegio anche alle porte outbound: non permettere tutto il traffico in uscita se non serve.
  5. Proteggi le chiavi private con permessi 400 e un backup crittografato. Prepara un piano di recovery (SSM) per non rimanere fuori.

Se vuoi approfondire come gestire i permessi degli utenti e delle risorse AWS, leggi la nostra guida su IAM AWS: Least Privilege e Policy Management. E ricorda: un'istanza EC2 non è solo un server virtuale — è il tuo patrimonio digitale. Trattalo come tale.

Sponsored Protocol

Ing. Calogero Bono

> AUTHOR_EXTRACTED

Ing. Calogero Bono

Co-founder di Meteora Web. Ingegnere informatico, sviluppo ecosistemi digitali ad alte prestazioni. AI, automazione, SEO tecnica e infrastrutture web. Scrivo di tecnologia per rendere complesso… semplice.

[ Read Full Dossier ]

Hai bisogno di applicare questa strategia?

Esegui il protocollo di contatto per iniziare un progetto con noi.

> INIZIA_PROGETTO

Sponsored

> MW_JOURNAL

> READ_ALL()