Skip to main content
Deploy CVAT on Amazon Web Services (AWS) to leverage cloud infrastructure, GPU instances for serverless auto-annotation, and managed services for production deployments.

Deployment Options

CVAT can be deployed on AWS in multiple ways:
  1. EC2 with Docker Compose: Simple deployment on a single instance
  2. EC2 with GPU (P3 instances): For auto-annotation with TensorFlow models
  3. Amazon EKS: Production Kubernetes deployment
  4. Hybrid: EKS with managed AWS services (RDS, ElastiCache, EFS)

EC2 Deployment

Prerequisites

  • AWS account with appropriate permissions
  • AWS CLI installed and configured
  • SSH key pair created in your AWS region

1. Launch EC2 Instance

Instance Types: Launch using AWS CLI:

2. Configure Security Group

Allow incoming traffic on required ports:
Using AWS Console:
  1. Navigate to EC2 → Security Groups
  2. Create security group with inbound rules:
    • SSH (22): Your IP or 0.0.0.0/0
    • HTTP (80): 0.0.0.0/0
    • HTTPS (443): 0.0.0.0/0
    • Custom TCP (8080): 0.0.0.0/0 (if needed)

3. Connect and Install Docker

Once connected, install Docker:

4. Deploy CVAT

5. Access CVAT

6. Optional: Configure HTTPS

For production with SSL:

GPU Instance Deployment (P3)

For Auto-Annotation with TensorFlow

P3 instances provide NVIDIA GPUs for running deep learning models.

1. Launch P3 Instance

2. Install NVIDIA Drivers

After reboot, reconnect and verify:

3. Install NVIDIA Container Toolkit

4. Deploy CVAT with Serverless Functions

EKS Deployment

Prerequisites

  • eksctl installed
  • kubectl installed
  • AWS CLI configured

1. Create EKS Cluster

This takes 15-20 minutes.

2. Configure kubectl

3. Install Storage Driver

4. Install CVAT with Helm

5. Configure Load Balancer

AWS Managed Services Integration

Using Amazon RDS for PostgreSQL

1. Create RDS Instance:
2. Configure CVAT:

Using Amazon ElastiCache for Redis

1. Create ElastiCache Cluster:
2. Configure CVAT:

Using Amazon EFS for Shared Storage

1. Create EFS:
2. Install EFS CSI Driver in EKS:
3. Create StorageClass:
4. Use in CVAT:

Using Amazon S3 for Storage

Configure CVAT to use S3 for dataset storage:

Cost Optimization

1. Use Spot Instances

For EKS worker nodes:

2. Auto-Scaling

3. Use Reserved Instances

For stable workloads, purchase Reserved Instances for cost savings.

4. S3 Lifecycle Policies

Handling Instance Restarts

Problem

AWS EC2 instances change public IP/hostname when stopped and restarted.

Solutions

1. Use Elastic IP:
2. Use Route 53 DNS:
3. Avoid Spot Instances: Don’t use Spot instances for stateful CVAT deployments. Use On-Demand or Reserved Instances.

Monitoring and Logging

CloudWatch Integration

1. Install CloudWatch Agent:
2. For EKS:

Application Monitoring

CVAT includes Grafana for analytics:

Backup and Disaster Recovery

Automated Backups

RDS: Automatic backups enabled (7-35 days retention) EBS Snapshots:
S3 Replication: Enable cross-region replication for S3 buckets.

Troubleshooting

Instance Metadata Issues

Security Group Misconfig

Storage Full

Security Best Practices

  1. Use IAM roles instead of access keys
  2. Enable VPC for database and cache isolation
  3. Use Secrets Manager for credentials
  4. Enable AWS WAF for ingress protection
  5. Regular security patches with Systems Manager
  6. Enable CloudTrail for audit logging
  7. Use private subnets for EKS worker nodes
  8. Encrypt EBS volumes and S3 buckets

Next Steps