Running AISdecoder in a Kubernetes cluster on AWS
April 26, 2026 ยท View on GitHub
Published: 2018-10-12 Updated: 2026-04-26
This tutorial shows a current Kubernetes deployment flow for an AIS decoder container on AWS. It assumes you already have access to a Kubernetes cluster, typically Amazon EKS.
Kubernetes remains a good fit for AISmessages-based services when you need repeatable deployment, scaling, and operational consistency. On AWS, the usual current choice is a managed EKS cluster created with eksctl, Terraform, or your preferred platform tooling.
Prerequisites
- an AIS decoder container image available in a registry
kubectlconfigured for your AWS cluster- a namespace where you can deploy the service
Check cluster access
$ kubectl get nodes
Deploy the service
Apply a Deployment and Service:
apiVersion: apps/v1
kind: Deployment
metadata:
name: aisdecoder
spec:
replicas: 2
selector:
matchLabels:
app: aisdecoder
template:
metadata:
labels:
app: aisdecoder
spec:
containers:
- name: aisdecoder
image: ghcr.io/<owner>/aisdecoder:latest
ports:
- containerPort: 8080
readinessProbe:
tcpSocket:
port: 8080
livenessProbe:
tcpSocket:
port: 8080
---
apiVersion: v1
kind: Service
metadata:
name: aisdecoder
spec:
selector:
app: aisdecoder
ports:
- port: 8080
targetPort: 8080
Save the file as aisdecoder.yaml, then apply it:
$ kubectl apply -f aisdecoder.yaml
Verify the rollout:
$ kubectl get deployments
$ kubectl get pods
$ kubectl get services
Call the application
For local verification, port-forward the service:
$ kubectl port-forward service/aisdecoder 8080:8080
Then call the API from another terminal:
$ curl -X POST \
http://localhost:8080/decode \
-H 'Content-Type: application/json' \
-d '[ "!AIVDM,1,1,,A,18UG;P0012G?Uq4EdHa=c;7@051@,0*53" ]'
When you want a public endpoint on AWS, the usual next step is to expose the service through an ingress controller or a LoadBalancer service backed by an AWS load balancer.
Clean up
Remove the Kubernetes resources:
$ kubectl delete -f aisdecoder.yaml
Important resources
- Amazon EKS documentation
- Kubernetes tutorials
- Kubernetes in Action by Marko Luksa