Confidential Computing su AWS: Proteggere i dati in esecuzione con Nitro Enclaves
08 Aprile 2026 - 9 min. read
Alessio Gandini
Cloud-native Development Line Manager

Generative AI, Machine Learning, Large Language Models, Foundation Models.
Se lavorate nel Cloud, questi termini risuonano ovunque: dalle conferenze tech ai meeting aziendali, passando per ogni newsletter che vi arriva in mail. Ma quante volte, dopo l'entusiasmo iniziale, vi siete trovati davanti alla domanda più scomoda: "Ok, ma come lo portiamo in produzione?"
È proprio qui che molti progetti di AI generativa si arenano. Tra modelli da scegliere, infrastrutture da configurare, costi da ottimizzare e vincoli di sicurezza da rispettare, il gap tra il proof-of-concept e la produzione può cambiare notevolmente e rappresentare un blocker al go live del progetto.
Amazon Bedrock nasce esattamente per cercare di risolvere queste problematiche. Non è l'ennesimo servizio che promette miracoli, ma una piattaforma Serverless che rende accessibili i Foundation Models (FM) più avanzati attraverso API gestite, permettendovi di concentrarvi sul valore di business invece che sull'infrastruttura. In questa guida, vi mostreremo come utilizzare Amazon Bedrock in scenari reali, dal deploy all'ottimizzazione dei costi, passando per pattern architetturali come RAG e Agents. Perché una cosa è fare un "hello world" con ChatGPT, un'altra è costruire sistemi production-ready scalabili ed efficienti.
Amazon Bedrock è un servizio fully managed che offre accesso a Foundation Models di diverse aziende leader nel settore AI attraverso una singola API. Pensatelo come un marketplace di modelli AI dove potete scegliere quello più adatto al vostro use-case senza dovervi preoccupare di training, hosting o scaling.
Bedrock mette a disposizione modelli proprietari ed open-source, tra i quali:
La varietà non è casuale: ogni modello ha caratteristiche specifiche in termini di performance, costi, capacità e velocità. Scegliere quello giusto fa la differenza tra un progetto sostenibile e una bolletta AWS fuori controllo.
"Ma non posso usare direttamente le API di OpenAI o hostare un modello open source su EC2?"
Ci sentiamo spesso chiedere.
Certo che potete. Ma è importante considerare questi aspetti:
Ma attenzione: come sempre nel cloud, "Serverless" non significa che fa tutto da solo, ma è fondamentale architettare con intelligenza per ottimizzare costi e performance.
Capiamo come funziona Bedrock sotto il cofano.
Bedrock offre principalmente due modalità di utilizzo:
La scelta tra le due dipende, come al solito, dal vostro use-case. Se, per esempio, avete un chatbot con picchi imprevedibili, on-demand è la scelta giusta. Se processate migliaia di documenti al giorno con un volume costante, provisioned throughput può farvi risparmiare fino al 50%.
Un'implementazione Bedrock tipica include:
Nelle prossime sezioni, vedremo ognuno di questi componenti con esempi pratici.
Bene la teoria è stata fatta. Ora vediamo come portare Bedrock in produzione usando Infrastructure as Code.
Prima di iniziare, assicuratevi di avere:
Importante: Non tutti i modelli sono disponibili in tutte le region. Va verificata sempre la disponibilità regionale prima di progettare l’architettura.
Una volta fatto deploy, possiamo usare il nostro foundational model per i nostri workload, un esempio tipico è il RAG.
Può capitare che si abbia a che fare con una applicazione già scritta che non utilizza le API native di Amazon Bedrock. Non è affatto un problema: durante il re:Invent 2025, è stato annunciato Project Mantle.
Si tratta di un motore di inferenza distribuita progettato per offrire endpoint API OpenAI-compatibili. L'idea è estremamente semplice: funge da drop-in replacement, permettendo agli sviluppatori di migrare le applicazioni esistenti (nate usando il set di API OpenAI) su Bedrock, semplicemente cambiando l'endpoint dell'API e generando una nuova chiave dalla console AWS.In questo modo si possono usare i modelli presenti su Bedrock senza modificare il codice applicativo, riducendo a zero il tempo di porting delle applicazione. Questa pagina contiene tutto quel che serve per iniziare!
Parliamo di soldi. Perché un chatbot che costa €10,000 al mese per servire 1000 utenti non è sostenibile.
Bedrock usa un modello pay-per-use basato su:
I prezzi variano enormemente tra modelli. Esempio (us-east-1, gennaio 2026):
Usare Opus invece di Haiku per un task semplice può costare 5x di più. La scelta del modello giusto è fondamentale.
1. Model selection intelligente
Non usate sempre il modello più grande. Create una strategia a livelli:
`# model_selector.py
def select_model_for_task(task_type, complexity, context_length):
""" Seleziona il modello ottimale in base al task """
if task_type == 'classification' or task_type == 'extraction':
# Task strutturati: Haiku è sufficiente
return 'anthropic.claude-4-haiku-v1:0'
elif task_type == 'summarization':
if context_length < 10000:
return 'anthropic.claude-4-v1:0'
else:
# Contesto lungo: Sonnet gestisce meglio
return 'anthropic.claude-4-v1:0'
elif task_type == 'reasoning' or complexity == 'high':
# Ragionamento complesso: Sonnet o Opus
if context_length > 50000:
return 'anthropic.claude-4-opus-v1:0'
else:
return 'anthropic.claude-4-sonnet-v1:0'
elif task_type == 'code_generation':
# Sonnet è ottimo per il codice
return 'anthropic.claude-4-sonnet-v1:0'
else:
# Default: Haiku per costo minimo
return 'anthropic.claude-4-haiku-v1:0'Implementate monitoring fin dal giorno uno:
# cost_monitoring.py
import boto3
from datetime import datetime, timedelta
cloudwatch = boto3.client('cloudwatch')
def put_cost_metric(model_id, tokens_used, cost):
"""
Pubblica metriche di costo su CloudWatch
"""
cloudwatch.put_metric_data(
Namespace='Bedrock/Usage',
MetricData=[
{
'MetricName': 'TokensUsed',
'Value': tokens_used,
'Unit': 'Count',
'Timestamp': datetime.utcnow(),
'Dimensions': [
{'Name': 'ModelId', 'Value': model_id}
]
},
{
'MetricName': 'EstimatedCost',
'Value': cost,
'Unit': 'None',
'Timestamp': datetime.utcnow(),
'Dimensions': [
{'Name': 'ModelId', 'Value': model_id}
]
}
]
)A questo punto con questa metrica si può creare un allarme CloudWatch sull'utilizzo dei token per trovare anomalie ed evitare costi imprevisti.
Bedrock gestisce informazioni potenzialmente sensibili. La security non è opzionale.
Bedrock Guardrails vi permette di filtrare contenuti problematici automaticamente, sia negli input degli utenti che nelle risposte del modello, indipendentemente dal modello utilizzato.
Funziona su sei categorie di policy: content filters, denied topics, word filters, sensitive information filters, contextual grounding check e Automated Reasoning checks. Ognuna è configurabile in modo indipendente, così potete costruire esattamente il livello di protezione che serve.
I content filter coprono sei categorie predefinite di contenuto dannoso: Hate, Insults, Sexual, Violence, Misconduct e Prompt Attack. Per ognuna potete regolare l'intensità del filtro e non è una scelta binaria: potete scegliere in base al contesto dell'applicazione.
Per i dati sensibili, potete scegliere da un elenco predefinito di tipi di PII oppure definire pattern personalizzati tramite espressioni regolari. Utile soprattutto in ambiti regolamentati come finance o healthcare.
Abbiamo coperto molto terreno: deployment infrastructure-as-code, Agents per task automation, ottimizzazione costi, security best practices.
Portare Foundation Models in produzione non è un progetto tecnologico, è un progetto di business. La tecnologia è il mezzo, non il fine.
Prima di scrivere la prima riga di codice, domandatevi:
Amazon Bedrock rende la tecnologia accessibile. Ma costruire sistemi AI di successo richiede ancora pianificazione, architettura intelligente e continua ottimizzazione.
La buona notizia? Ora avete gli strumenti per farlo.
Nei prossimi articoli approfondiremo use case specifici: come costruire un sistema RAG multi-lingue, come ottimizzare un Agent per ridurre le allucinazioni, come implementare A/B testing tra modelli diversi.
Stay tuned su #Proud2beCloud!