Amazon Elastic File System (EFS) provides shared, persistent file storage for Kubernetes pods. This is ideal for storing AI models that can be shared across multiple Lightning ASR pods, eliminating duplicate downloads and reducing startup time.
Multiple pods can read/write simultaneously (ReadWriteMany)
Storage grows and shrinks automatically
Models cached once, used by all pods
Pay only for storage used, no upfront provisioning
smallest-modelsEnsure the security group allows NFS traffic (port 2049) from cluster nodes:
If the rule already exists, you’ll see an error. This is safe to ignore.
Update your values.yaml to enable EFS:
Replace fs-0123456789abcdef with your actual EFS file system ID.
Should show:
Should show:
Should show:
Should show the EFS mount:
Create a test file in one pod and verify it’s visible in another:
Should output: test
With EFS enabled:
First Pod Startup:
asrModelUrl/app/models (EFS mount)Subsequent Pod Startups:
/app/models for existing modelThis is especially valuable when using autoscaling, as new pods start much faster.
Best for: Development, testing, variable workloads
Automatically move infrequently accessed files to lower-cost storage:
EFS pricing (us-east-1):
For 50 GB model:
Use lifecycle policies to automatically move old models to Infrequent Access storage.
EFS automatically creates point-in-time backups. Access via AWS Console → EFS → Backups.
Check EFS CSI driver:
Verify security group rules:
Ensure port 2049 is open.
Check throughput mode:
Consider upgrading to Elastic or Provisioned.
Monitor CloudWatch metrics:
PermittedThroughputBurstCreditBalanceClientConnectionsCheck mount options in PV:
Should include:
If you don’t need shared storage (single replica only):
EBS volumes can only be attached to one pod at a time. This prevents horizontal scaling.