Vintner
Infrastructure Templates

AWS Resources

Terraform modules for AWS — EKS, Aurora, ElastiCache, DynamoDB, and networking.

AWS Resources

The AWS template set (infra/templates/vine/aws/) is the most extensive, with ~15 top-level .tf files and 10 reusable modules.

Top-Level Resources

FileResources Created
networking.tfVPC, public/private subnets, NAT gateway, internet gateway, route tables, security groups
eks.tfEKS cluster, managed node group, OIDC provider for IRSA
karpenter.tfKarpenter provisioner, node pools, instance types
rds.tfAurora PostgreSQL/MySQL cluster, instances, subnet group
elasticache.tfElastiCache Redis replication group, subnet group
valkey.tfValkey (open-source Redis fork) node
dynamodb.tfDynamoDB tables with KMS encryption
ecr.tfECR repositories with lifecycle policies, scan-on-push
s3.tfS3 buckets with encryption, versioning, lifecycle rules
sqs.tfSQS queues (standard + FIFO) + SNS topics with subscriptions
waf.tfWAFv2 web ACL with managed rule groups
acm-certificate.tfACM SSL/TLS certificates with DNS validation
irsa.tfIAM Roles for Service Accounts (pod-level AWS access)
custom_secrets.tfSecrets Manager secrets with auto-generated passwords

Modules

ModulePurpose
modules/eks/EKS cluster, access entries, OIDC provider
modules/rds/Aurora cluster, instances, IAM auth, S3 export
modules/redis/ElastiCache Redis with auth token, encryption
modules/valkey/Valkey node with security group
modules/dynamodb/DynamoDB table with KMS, local encryption module
modules/ecr/ECR repository with lifecycle policy
modules/s3/S3 bucket with encryption, versioning
modules/sqs-sns/SQS queue + SNS topic with IAM policies
modules/wafv2/WAF web ACL with CloudWatch logging
modules/acm/ACM certificate with DNS validation
modules/awssm-passgen/Secrets Manager password generation

Key Features

IRSA (IAM Roles for Service Accounts) — Kubernetes pods can assume IAM roles via their service account, eliminating the need for static credentials in containers. The EKS module creates an OIDC provider and the IRSA module creates per-service-account IAM roles.

Karpenter — Just-in-time node provisioning. Instead of pre-scaling node groups, Karpenter watches for pending pods and launches appropriately-sized EC2 instances within seconds. Supports spot instances and multiple instance families.

Aurora Serverless v2 — Auto-scaling database with ACU-based capacity (0.5–128 ACUs). Scales to zero-ish (0.5 ACU minimum) during idle periods.

On this page