Self-hosted Prefect on AWS (EKS) with Terraform

Sanitized case study: production-style, self-managed Prefect environment deployed on AWS with modular Terraform + Kubernetes tooling.

What I built

  • EKS-based platform (EC2 + optional Fargate) to run Prefect services and workers.
  • Dedicated VPC with public/private subnetting across multiple AZs.
  • Aurora PostgreSQL for the database and ElastiCache Redis for caching/queueing.
  • Ingress via ingress-nginx with TLS automated by cert-manager + Let’s Encrypt.
  • Monitoring via Prometheus + Grafana (kube-prometheus-stack style) with protected dashboards.

Stack

AWSEKSTerraformKubernetesHelmAurora PostgreSQLElastiCache Redisingress-nginxcert-managerLet’s EncryptPrometheusGrafanaGitHub Actions

How it’s operated

  • Terraform remote state with S3 + DynamoDB locking for safe collaboration.
  • GitHub Actions for scheduled drift detection (weekly terraform plan) and state auditing.
  • Module separation to limit blast radius and keep changes reviewable.

Why it matters

This demonstrates hands-on EKS operations, Terraform module design, secure ingress/TLS automation, and pragmatic platform reliability patterns that translate directly to production DevOps / platform roles.