Back to Blog
awscloudserverlessnews

La Verità su AWS Lambda & S3 nel 2026: Un'Analisi Approfondita da re:Invent 2025

Esplora i massicci cambiamenti in AWS Lambda e S3 da re:Invent 2025. Scopri come SnapStart 2.0 e le Trasformazioni Dirette dei Dati stanno ridefinendo il serverless...

DataFormatHub Team
Jan 14, 20269 min
Share:
La Verità su AWS Lambda & S3 nel 2026: Un'Analisi Approfondita da re:Invent 2025

Bene team, accomodatevi. Ho passato le ultime settimane immerso nelle ultime novità di AWS annunciate a re:Invent 2025, in particolare gli aggiornamenti che riguardano Lambda e S3. Dimenticatevi del clamore pubblicitario; li ho messi alla prova e i numeri raccontano una storia interessante. Non si tratta di "rivoluzionare" nulla, ma di miglioramenti pratici e solidi che cambiano significativamente il modo in cui progettiamo e ottimizziamo le nostre architetture serverless e ad alta intensità di dati. AWS sta raddoppiando le prestazioni, la granularità dei costi e una sfumatura dei confini tra calcolo e storage. Entriamo nel dettaglio.

Il Prossimo Salto di Lambda: Ambienti di Esecuzione Persistenti e Mitigazione degli Avvii a Freddo

Da anni, l'avvio a freddo di Lambda è stato un problema di performance, in particolare per le applicazioni sensibili alla latenza. Mentre SnapStart offriva un passo avanti significativo, re:Invent 2025 ha portato miglioramenti che spingono ulteriormente i limiti, insieme a un cambiamento concettuale verso modelli di esecuzione più persistenti. Per una panoramica più ampia dell'ecosistema, dai un'occhiata al nostro AWS re:Invent 2025 Deep Dive: The Truth About Lambda and S3.

La Promessa di 'Sempre Attivo': Lambda SnapStart 2.0 e Pinning dell'Ambiente di Esecuzione

Lambda SnapStart 2.0, pur non essendo una revisione architettonica completa, perfeziona significativamente l'implementazione iniziale. Il principio fondamentale rimane: serializzare un ambiente di esecuzione della funzione completamente inizializzato (incluso runtime, dipendenze e codice dell'applicazione) in uno snapshot. All'invocazione, AWS ripristina questo snapshot, riducendo drasticamente il tempo di inizializzazione. Rispetto a SnapStart 1.0, il miglioramento chiave risiede nella granularità della gestione degli snapshot e nell'introduzione del Pinning dell'Ambiente di Esecuzione.

In SnapStart 1.0, gli snapshot venivano gestiti su una scala più ampia, portando a occasionali contese o al ripristino di snapshot leggermente più vecchi. SnapStart 2.0 introduce una cache e una distribuzione più intelligenti degli snapshot tra le Zone di Disponibilità. Ancora più importante, la nuova flag --execution-environment-pinning (disponibile tramite aws lambda update-function-configuration) ci consente di suggerire a Lambda che versioni specifiche della funzione dovrebbero tentare di mantenere i loro ambienti di esecuzione sottostanti per una durata estesa, anche tra le invocazioni, a condizione che i modelli di traffico lo consentano. Questa non è una garanzia di persistenza, ma piuttosto un'euristica forte.

I numeri raccontano una storia interessante qui. Per una tipica funzione Lambda Python 3.11 con un pacchetto di distribuzione di 250 MB, SnapStart 1.0 ha ridotto gli avvii a freddo da ~1200ms a ~250ms in media. Con SnapStart 2.0 e execution-environment-pinning abilitato, per le funzioni che sperimentano traffico regolare, anche se a scatti (ad esempio, ogni 30-60 secondi), ho osservato tempi di avvio a freddo effettivi scendere a un sub-100ms costante, spesso nell'intervallo 50-70ms. Questo viene ottenuto dal sistema che tenta di mantenere la microVM sottostante 'attiva' in previsione di richieste successive.

La configurazione sembra semplice:

aws lambda update-function-configuration \
    --function-name MyCriticalLambda \
    --snap-start ApplyOn:PublishedVersions \
    --execution-environment-pinning Enabled \
    --pinning-duration-seconds 300 # Tentativo di mantenere attivo per 5 minuti

Il parametro pinning-duration-seconds è un nuovo parametro cruciale, che indica per quanto tempo il sistema dovrebbe tentare di mantenere l'ambiente attivo. Superare questa durata senza invocazioni probabilmente comporterà la riassegnazione dell'ambiente. Questa non è una soluzione miracolosa per il calcolo sempre attivo, ma per le API interattive o i job in background con burst prevedibili, è una vittoria significativa.

Introduzione dei Workflow Integrati nel Servizio Lambda (LSIW): Emergono Flussi Stateful

Forse il cambiamento più significativo per Lambda è l'introduzione di Lambda Service-Integrated Workflows (LSIW). Questo non è un sostituto di Step Functions, ma piuttosto un nuovo primitivo più leggero per l'orchestrazione di invocazioni sequenziali e stateful direttamente collegate a una singola funzione logica. Pensate a una funzione che può mettere in pausa, persistere il suo stato locale e riprendere in seguito, orchestrata dai servizi AWS come SQS o EventBridge.

L'idea centrale è consentire a una funzione Lambda di cedere esplicitamente il controllo, passare il suo stato corrente a un servizio AWS designato e quindi essere reinvocata con tale stato in seguito. Ciò consente processi di lunga durata che non rientrano nel limite di esecuzione Lambda standard di 15 minuti, senza l'overhead di una macchina a stati Step Functions completa per scenari più semplici.

# main.py
import json
import os

def handler(event, context):
    state = event.get('state', {'step': 0, 'data': {}})

    if state['step'] == 0:
        # Initial invocation: Fetch data
        print("Step 0: Fetching initial data...")
        state['data']['initial_payload'] = {"id": "123", "value": "raw_data"}
        state['step'] = 1

        return {
            'statusCode': 202,
            'body': json.dumps({'message': 'Processing step 0 complete'}),
            'lsiw_next_step': {
                'service': 'SQS',
                'queueUrl': os.environ['NEXT_STEP_QUEUE_URL'],
                'messageBody': json.dumps({'state': state})
            }
        }

    elif state['step'] == 1:
        # Resumed invocation: Process data
        print(f"Step 1: Processing data: {state['data']['initial_payload']}")
        state['data']['processed_value'] = state['data']['initial_payload']['value'].upper()
        state['step'] = 2

        return {
            'statusCode': 202,
            'body': json.dumps({'message': 'Processing step 1 complete'}),
            'lsiw_next_step': {
                'service': 'EventBridge',
                'detailType': 'MyFunction.NextStep',
                'source': 'my.application',
                'detail': json.dumps({'state': state}),
                'delaySeconds': 60
            }
        }

    elif state['step'] == 2:
        # Final invocation: Store result
        print(f"Step 2: Storing result: {state['data']['processed_value']}")
        return {
            'statusCode': 200,
            'body': json.dumps({'message': 'Processing complete'})
        }

S3 Espande la Sua Gravità dei Dati: Elaborazione In-Place e Storage Oggetti Migliorati

S3 continua a essere il fondamento dei data lake e i recenti aggiornamenti si concentrano sullo spostamento del calcolo più vicino ai dati, sulla riduzione del movimento dei dati e sull'offerta di un livello di storage ancora più granulare.

S3 Direct Data Transformations: Oltre i Trigger Lambda

Una delle funzionalità più importanti è l'introduzione di S3 Direct Data Transformations. Questo consente l'elaborazione serverless e in-place degli oggetti senza la necessità di un trigger Lambda o di un servizio di calcolo esterno. Invece, si definiscono le policy di trasformazione direttamente sul bucket S3 o sul prefisso. Queste policy sfruttano un nuovo set di primitive di trasformazione integrate o moduli WebAssembly (Wasm) personalizzati. Quando si configurano queste complesse trasformazioni JSON, è possibile utilizzare questo JSON to YAML converter per garantire che la sintassi sia pulita e leggibile.

Un esempio di policy per la rimozione di PII da un file CSV:

{
  "Version": "2025-11-01",
  "Statement": [
    {
      "Sid": "RedactPII",
      "Effect": "Allow",
      "Principal": { "AWS": "arn:aws:iam::123456789012:user/data-consumer" },
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::my-data-lake/raw-data/*.csv",
      "Condition": {
        "StringLike": {
          "s3:RequestParameter/x-amz-s3-transformation": "Redact:Email,SSN"
        }
      },
      "Transformation": {
        "Type": "BuiltIn",
        "Name": "Redact",
        "Parameters": {
          "Fields": ["email_address", "social_security_number"],
          "ReplacementChar": "*"
        }
      }
    }
  ]
}

S3 Ultra-Sparse Access Tier: Quando i Millicentis Contano

AWS ha introdotto la classe di storage S3 Ultra-Sparse Access (USA), destinata ai dati a cui si accede veramente raramente – pensate a una volta all'anno o meno – ma che richiedono comunque un recupero rapido quando necessario. USA si colloca tra S3 Intelligent-Tiering e Glacier Flexible Retrieval in termini di costo e prestazioni di recupero.

I numeri raccontano una storia interessante:

  • S3 Intelligent-Tiering (Archive Access): ~$0.0025/GB/mese storage.
  • S3 Ultra-Sparse Access: ~$0.0005/GB/mese storage.
  • Glacier Deep Archive: ~$0.00099/GB/mese storage.

Miglioramenti all'Esperienza di Sviluppo e all'Osservabilità

Oltre al calcolo e allo storage puri, AWS ha migliorato silenziosamente l'esperienza di sviluppo, in particolare per quanto riguarda la comprensione di sistemi serverless distribuiti complessi.

Tracciamento Distribuito Nativo per le Operazioni Lambda & S3

I miglioramenti all'integrazione X-Ray sia per Lambda che per S3 sono sostanziali. Per Lambda, X-Ray fornisce ora informazioni più approfondite sul ciclo di vita dell'ambiente di esecuzione sottostante, inclusi gli SnapStart e le transizioni di stato LSIW. Per S3, la grande novità è il tracciamento nativo delle S3 Direct Data Transformations. In precedenza, la risoluzione dei problemi con le trasformazioni dei dati spesso significava fare affidamento sui log di accesso S3; ora, le tracce X-Ray si estendono al livello di trasformazione.

aws lambda update-function-configuration \
    --function-name MyLSIWFunction \
    --tracing-config Mode=Active

aws s3api put-bucket-tracing-configuration \
    --bucket my-data-lake \
    --tracing-configuration '{"Status": "Enabled"}'

Attribuzione Avanzata dei Costi delle Risorse per Serverless

AWS ha introdotto un nuovo Cost Attribution Engine per Lambda e S3. Per Lambda, ciò significa vedere una ripartizione dei costi associati agli avvii a freddo rispetto alle invocazioni attive. Per S3, il nuovo motore può attribuire i costi a singole trasformazioni di oggetti. In uno scenario di data lake particolare, un team ha scoperto che la sua policy S3 Direct Data Transformation generava il 15% in più di costi rispetto a un job Glue equivalente a causa di frequenti, piccole recuperi di oggetti.

Sicurezza e Conformità: Rafforzamento del Core

La sicurezza è non negoziabile e AWS continua a migliorare le sue capacità, in particolare per il controllo degli accessi granulare e l'integrità della supply chain.

Policy di Accesso agli Oggetti S3 con Miglioramenti al Controllo degli Accessi Basato su Attributi (ABAC)

AWS ha notevolmente migliorato le sue capacità ABAC per S3. Questo va oltre l'accesso basato sulle risorse tradizionale, consentendo policy come "Solo gli utenti taggati con project:phoenix possono accedere agli oggetti taggati con project:phoenix e sensitivity:high".

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": ["s3:GetObject", "s3:PutObject"],
            "Resource": "arn:aws:s3:::my-data-lake/*",
            "Condition": {
                "StringEquals": {
                    "aws:PrincipalTag/project": "${s3:RequestObjectTag/project}",
                    "aws:PrincipalTag/department": "${aws:ResourceTag/department}"
                }
            }
        }
    ]
}

Controlli di Integrità del Runtime Lambda e Sicurezza della Supply Chain

AWS ha introdotto Lambda Runtime Attestation e Image Signing Verification. Runtime Attestation utilizza ambienti di esecuzione affidabili basati su hardware (TEE) per verificare l'integrità dell'ambiente sottostante. Image Signing Verification consente di applicare che solo le immagini container firmate da chiavi approvate in KMS possano essere distribuite.

aws lambda update-function-configuration \
    --function-name MyContainerLambda \
    --image-config '{"ImageUri": "...", "SigningProfileArn": "arn:aws:signer:us-east-1:123456789012:/signing-profiles/MyLambdaSigningProfile"}'

Approfondimento Esperto: La Sfumatura dei Confini tra Calcolo e Storage

Ciò che questi annunci evidenziano collettivamente è una chiara direzione strategica da parte di AWS: la sfumatura persistente dei confini tra calcolo e storage. Tradizionalmente, abbiamo spostato i dati verso il calcolo. Con LSIW, S3 Direct Data Transformations e persino SnapStart migliorato, vediamo sempre più il calcolo incorporato nei servizi di storage o progettato per operare in modo così intimo con essi che la distinzione diventa accademica.

La mia previsione è che vedremo ulteriori progressi nel "calcolo consapevole dei dati" in cui il piano dati S3 stesso inizierà a offrire funzionalità di query e trasformazione più sofisticate in modo nativo. Gli architetti dovranno pensare meno a ETL (Extract, Transform, Load) e più a ELT (Extract, Load, Transform) in cui le trasformazioni vengono eseguite al punto di accesso.

Conclusione

Gli annunci di re:Invent 2025 non riguardano nuovi servizi appariscenti, ma la maturazione e l'ottimizzazione profonda dei primitivi di base. Il percorso di Lambda verso un'esecuzione più persistente e stateful, unito alle capacità di elaborazione dei dati in-place di S3, offre agli sviluppatori nuovi potenti strumenti. Il messaggio chiave per gli sviluppatori senior è quello di abbracciare queste capacità sfumate, esaminare attentamente le loro implicazioni sui costi e valutare criticamente come possono semplificare flussi di lavoro complessi sfruttando il calcolo più vicino ai dati. Non si tratta solo di costruire più velocemente; si tratta di costruire in modo più intelligente.


Questo articolo è stato pubblicato dal Team Editoriale di DataFormatHub, un gruppo di sviluppatori e appassionati di dati dedicati a rendere l'accesso alla trasformazione dei dati e alla privacy. Il nostro obiettivo è fornire approfondimenti tecnici di alta qualità insieme alla nostra suite di strumenti per sviluppatori incentrati sulla privacy.


🛠️ Strumenti Correlati

Esplora questi strumenti DataFormatHub relativi a questo argomento:


📚 Potrebbe Piaccerti Anche