This document provides an overview of common service limits and quotas for major cloud platforms (AWS, Azure) and other DevOps tools (Terraform, Docker, Kubernetes, Git, Jenkins, etc.), as well as some basic troubleshooting scenarios and best practices.
- VMs per Region: 20 (default)
- Maximum EBS Volumes: 1,000 per Region
- Maximum Instance Types per Region: Varies (request increase)
- Maximum VPCs per Region: 5
- Subnets per VPC: 200
- Security Groups per VPC: 500
- Object Size: 5 TB
- Bucket Name Length: 63 characters
- Maximum Buckets per Account: 100
- Users per Account: 5,000
- Groups per Account: 300
- Roles per Account: 1,000
- DB Instances per Region: 40
- Maximum DB Storage: 64 TB
- Message Size: 256 KB
- Maximum Queue Length: Unlimited
- Max Concurrent Executions: 1,000
- Memory per Function: 10 GB
- Execution Timeout: 15 minutes
- VMs per Subscription: 20,000 (default)
- Maximum Disk Size: 4 TB
- Maximum VM Network Interfaces: 8 per VM
- VNets per Region: 50
- Maximum Subnets per VNet: 1,000
- Maximum Public IPs per Subscription: 1,000
- Maximum Storage Accounts per Subscription: 200
- Maximum Blob Size: 5 TB
- Maximum Containers per Account: 500,000
- Nodes per Cluster: 5,000
- Pods per Cluster: 150,000
- Node Pools per Cluster: 100
- Databases per Server: 500
- Maximum Storage Size: 16 TB
- DTUs per Database: 4,000
- Web Apps per Subscription: 200
- Max Instances per Plan: 20,000
- Loops:
count
,for_each
- Conditional Logic: Use
count
andif
statements - Local Exec Provisioner:
local-exec
for running commands - Example: Using
count
to create multiple resourcesresource "aws_s3_bucket" "buckets" { count = 5 bucket = "my-bucket-${count.index}" }
- CMD vs ENTRYPOINT:
- CMD: Provides default arguments for the container. Can be overridden at runtime.
- ENTRYPOINT: Defines the default executable. Cannot be overridden.
- Example:
# CMD example CMD ["python", "app.py"] # ENTRYPOINT example ENTRYPOINT ["python"]
- ConfigMaps: Store configuration data in key-value pairs.
- Pods: The smallest deployable unit.
- Services: Expose pods to access from outside the cluster.
- Fetch vs Pull:
- Fetch: Downloads changes but does not merge.
- Pull: Fetches changes and merges them into the local branch.
- Cherry-pick: Apply a commit from another branch.
git cherry-pick <commit-hash>
- Amend: Modify the last commit.
git commit --amend
- Issue: EC2 instance cannot be reached.
- Fix:
- Check Security Group rules.
- Ensure NACL is not blocking the traffic.
- Verify the Route Table configurations.
- Issue: VM stuck in a "starting" state.
- Fix:
- Check the boot diagnostics for error logs.
- Ensure there are no issues with VM Size availability.
- Verify that the Storage Account used by the VM is not full.
- Use MFA and IAM Roles for secure access.
- Encrypt sensitive data in services like S3, RDS, and Azure Storage.
- Cross-region replication for AWS and Azure to ensure disaster recovery.
- Regularly test backup and restore procedures.
- Use Auto Scaling for EC2, Azure VM Scale Sets, and Kubernetes to handle varying loads.