← Torna ai progetti

Real-Time Maritime Analytics Pipeline (AWS)

Completato

Pipeline in tempo reale completamente serverless che ingesta dati di posizione di navi AIS in diretta via WebSocket, li elabora attraverso un'architettura Lambda event-driven, archivia gli eventi grezzi in S3 e visualizza l'attività delle navi in tempo reale tramite OpenSearch Dashboards.

Tecnologie

Amazon KinesisAWS LambdaAmazon SQSAmazon Kinesis FirehoseAmazon S3Amazon OpenSearchPythonAISStream.io

Problema

Le posizioni delle navi marittime devono essere monitorate in tempo reale, con rilevamento delle anomalie e una traccia di audit permanente per l'analisi storica — con un overhead operativo minimo.

Approccio

WebSocket AIS → Kinesis Data Streams → Lambda 1 (archivio S3 + SQS) → Lambda 2 (arricchimento geo) → Kinesis Firehose → OpenSearch → Dashboard. L'approccio iniziale con Apache Flink è stato abbandonato a causa di incompatibilità JAR con AWS OpenSearch Service.

Risultato

Dashboard di tracciamento navi in tempo reale con visualizzazione geografica e un archivio S3 storico interrogabile. Supporta più aree geografiche (Golfo Persico, Mar Baltico, Mediterraneo).

Apprendimenti

Il sink OpenSearch di Apache Flink è incompatibile con AWS OpenSearch Service (conflitti JAR Elasticsearch 7) — l'approccio Lambda serverless è più semplice e mantenibile; OpenSearch geo_point richiede un oggetto combinato {"lat": x, "lon": y}; SQS non può connettersi direttamente a Firehose.

Rilevanza

Dimostra architettura di streaming in tempo reale, pattern AWS event-driven, presa di decisioni architetturali sotto vincoli (pivot Flink) e design serverless pronto per la produzione.