Skip to main content
This checklist must be completed and reviewed with the customer before deploying the EKB EKS infrastructure on their AWS account. All items must be confirmed, captured, and signed off prior to deployment.

Checklist

AWS Account & Access

AreaChecklist ItemDetailed RequirementWhat / WhyAcceptance CriteriaStatusCaptured Values / Notes
AccountAWS Account IDValid AWS Account ID must be sharedRequired for IAM role creation, billing ownership, tagging, and Terraform backend accessAccount ID is correct, billing enabled, and accessible
RegionAWS Region SelectionRegion must support EKS, EC2, VPC, ACM, ElastiCache, Amazon MQSome services are region-restricted; unsupported regions break deploymentRegion confirmed in AWS console and supports all required services
CLIAWS CLI ConfiguredIAM User with AWS CLI authenticatedTerraform/Terragrunt deployments require programmatic accessaws sts get-caller-identity returns expected account
IAMDeployment PermissionsAdministrator IAM permissionsDeployment spans EC2, EKS, IAM, S3, ACM, Route 53, MQ, ElastiCache, CloudWatchIAM policy allows create/update/delete on required services

Service Quotas

AreaChecklist ItemDetailed RequirementWhat / WhyAcceptance CriteriaStatusCaptured Values / Notes
EC2On-Demand vCPU QuotaMinimum 100–150 vCPU quota for On-Demand Standard (A, C, D, H, I, M, R, T, Z) instancesAutoscaling, r6a instances, and Karpenter require high vCPU headroomQuota increase approved in Service Quotas console
EC2Instance Families AvailabilityC, M, R family instances available in regionWorkloads require compute, memory, and database-optimised nodesInstance families visible and selectable in EC2 console
EKSEKS Cluster QuotaAt least 1 EKS cluster allowed based on required environment deploymentCluster creation blocked if quota insufficientQuota >= 1 cluster
VPCNAT Gateway Quota1 NAT Gateway per AZ (recommended 3)Private subnets require outbound internet accessQuota >= AZ count
NetworkingElastic IP QuotaElastic IPs available for NAT GatewaysEach NAT Gateway consumes one Elastic IPElastic IP quota sufficient for the number of AZs
ElastiCacheElastiCache QuotaAt least 2 nodes for Redis cluster (cache.t3.micro, Redis 7.0)Required when ENABLE_AWS_SERVICES=trueQuota >= 2 nodes
Amazon MQAmazon MQ QuotaAt least 1 broker for RabbitMQ (mq.m5.large, RabbitMQ 3.13)Required when ENABLE_AWS_SERVICES=trueQuota >= 1 broker

Domains & SSL

AreaChecklist ItemDetailed RequirementWhat / WhyAcceptance CriteriaStatusCaptured Values / Notes
DomainsFrontend DomainPublic domain for web frontend (e.g. app.example.com)Used for ALB routing and SSL terminationDomain resolves and ownership confirmed
DomainsBackend API DomainPublic domain for FastAPI backend (e.g. api.example.com)Required for API access and TLSDomain documented and approved
DomainsAutomator Service DomainPublic domain for Automator Service (e.g. automations.example.com)Required for API access and TLSDomain documented and approved
DomainsSupabase Service DomainWhen not using Supabase Cloud — public domain for Supabase (e.g. supabase.example.com)Required for API access and TLS when self-hosting SupabaseDomain documented and approved
CertificatesACM CertificatesWildcard or individual ACM certificates created in the deployment regionTLS termination at ALB requires valid ACM certificatesCertificates in ISSUED state and in the same AWS region as the deployment

Networking

AreaChecklist ItemDetailed RequirementWhat / WhyAcceptance CriteriaStatusCaptured Values / Notes
VPCVPC StrategyConfirm existing VPC or approve new VPC creationDefines isolation, routing, and security boundariesVPC ID or CIDR block approved
CIDRCIDR PlanningCIDR must not overlap with on-premises or other VPCsOverlapping CIDRs break routing and VPN connectivityCIDR validated against existing networks
SubnetsPublic SubnetsPublic subnets per AZ for ALB and NAT GatewaysRequired for ingress and egress trafficSubnets tagged and routable
SubnetsPrivate SubnetsPrivate subnets per AZ for EKS worker nodesEnsures workloads are not directly internet-exposedSubnets mapped and reachable via NAT Gateway
EgressOutbound AccessOutbound ports 80, 443, 53 allowed from worker nodesNeeded for container image pulls, AWS API calls, and DNS resolutionFirewall/security group rules validated

Service Configuration

AreaChecklist ItemDetailed RequirementWhat / WhyAcceptance CriteriaStatusCaptured Values / Notes
SupabaseSupabase EnablementConfirm self-hosted Supabase (ENABLE_SUPABASE=true) or Supabase CloudAffects DB provisioning, secrets, ingress, and networking configurationDecision documented; corresponding ENABLE_* flags set in deployment
AWS ServicesRedis UsageConfirm AWS ElastiCache Redis (ENABLE_AWS_SERVICES=true) or external RedisAffects high availability, cost, and networking designDecision documented
AWS ServicesRabbitMQ UsageConfirm Amazon MQ (ENABLE_AWS_SERVICES=true) or external RabbitMQImpacts messaging reliability and HADecision documented
Load BalancerALB ControllerAWS Load Balancer Controller enabled (ENABLE_ALB_CONTROLLER=true, default)Required for ALB ingress provisioning from Kubernetes annotationsController pods running in infrastructure namespace

Autoscaling

AreaChecklist ItemDetailed RequirementWhat / WhyAcceptance CriteriaStatusCaptured Values / Notes
KarpenterKarpenter InstalledKarpenter controller deployed via EKS moduleHandles dynamic node provisioning; replaces managed node group autoscalingKarpenter pods healthy in dedicated node group
KarpenterSpot StrategySpot vs On-Demand usage defined per node classOptimises cost while maintaining stability; Spot interruption handling must be enabledInterruption handling via SQS enabled if Spot instances are used
KEDAPod AutoscalingKEDA installed via Helm chart (keda namespace)Handles dynamic pod scaling based on CPU/Memory thresholdsKEDA operator pods healthy; ScaledObjects applied to all services

Storage

AreaChecklist ItemDetailed RequirementWhat / WhyAcceptance CriteriaStatusCaptured Values / Notes
EBSEBS CSI DriverEBS CSI driver installed (kube-system namespace)Required for dynamic persistent volume provisioning via StorageClassDriver pods healthy; PVCs provisioning successfully

Security

AreaChecklist ItemDetailed RequirementWhat / WhyAcceptance CriteriaStatusCaptured Values / Notes
EncryptionEncryption at RestEBS volumes, S3 state bucket, and Redis encryption enabledProtects sensitive data at rest across all storage layersEncryption confirmed via AWS console for each service
EncryptionEncryption in TransitTLS enforced for all external and internal service communicationPrevents data interception in transitHTTPS endpoints verified; Redis transit_encryption_enabled = true
AuditAudit LoggingCloudTrail, VPC Flow Logs, and Kubernetes audit logs enabledRequired for incident investigations, compliance, and auditsLogs visible and queryable in CloudWatch / S3

Deployment

AreaChecklist ItemDetailed RequirementWhat / WhyAcceptance CriteriaStatusCaptured Values / Notes
ScheduleDeployment WindowDeployment date and time window approved by customerEnsures customer team availability for validation and rollback if neededWritten confirmation received

Sign-off

AreaChecklist ItemDetailed RequirementWhat / WhyAcceptance CriteriaStatusCaptured Values / Notes
ApprovalCustomer ApprovalCustomer formally approves cost estimate, scope, and deployment planFormal go-live authorisation required before infrastructure is provisionedEmail or signed document approval received

Service Enable / Disable Flags Reference

Confirm the intended value for each flag with the customer before deployment.
Environment VariableDefaultEffect
ENABLE_SUPABASEfalseDeploy self-hosted Supabase stack (Kong, Auth, Storage, Studio)
ENABLE_CNPGfalseDeploy CloudNativePG operator (prerequisite for self-hosted Supabase DB)
ENABLE_HA_SUPABASE_DBfalseDeploy HA PostgreSQL cluster via CloudNativePG (prerequisite for Supabase)
ENABLE_AWS_SERVICESfalseProvision ElastiCache Redis and Amazon MQ RabbitMQ
ENABLE_ALB_CONTROLLERtrueDeploy AWS Load Balancer Controller
ENABLE_SIGNOZfalseDeploy SigNoz observability platform + k8s-infra agent

Captured Values Summary

Record final values collected from the customer before deployment.
ParameterValue
AWS Account ID
AWS Region
VPC CIDR
Availability Zones
Frontend Domain
API Domain
Automator Domain
Supabase Domain (if self-hosted)
SigNoz Domain (if enabled)
ACM Certificate ARN(s)
Supabase ModeCloud / Self-hosted
RedisElastiCache / External
RabbitMQAmazon MQ / External
Deployment Date / Window
Customer Approval Reference