Skip to main content

VPC (Virtual Private Cloud)

Isolated network environments for secure, private communication between your resources.

Overview

Sparbz Cloud VPC provides isolated virtual networks that enable secure communication between your databases, Kubernetes namespaces, and other resources without exposing traffic to the public internet.

Features

  • Network Isolation: Dedicated CIDR block with no overlap with other tenants
  • Private Endpoints: Access databases and services via private IP addresses
  • Security Groups: Fine-grained firewall rules for traffic control
  • VPC Peering: Connect VPCs across regions or organizations
  • VPN Gateway: Secure connection to on-premises networks

Getting Started

Create a VPC

# Create a VPC with default CIDR
szc vpc create my-vpc

# Create with custom CIDR
szc vpc create my-vpc --cidr 10.0.0.0/16

# Create in specific region
szc vpc create my-vpc --region eu-west

List VPCs

# List all VPCs
szc vpc list

# List with details
szc vpc list --json

Get VPC Details

# Get VPC info
szc vpc get my-vpc

# Get as JSON
szc vpc get my-vpc --json

Delete VPC

# Delete VPC (must have no attached resources)
szc vpc delete my-vpc

# Force delete with attached resources
szc vpc delete my-vpc --force

Subnets

Each VPC is automatically divided into subnets:

SubnetPurposeDefault CIDR
databasesDatabase instances/24
kubernetesKubernetes pods/services/20
endpointsPrivate endpoints/28

List Subnets

szc vpc subnet list my-vpc

Attaching Resources

Databases

Create databases within a VPC for private access:

# Create database in VPC
szc database create my-db --engine postgres --vpc my-vpc

# Existing databases cannot be moved into a VPC

Kubernetes Namespaces

Connect namespaces to a VPC:

# Create namespace in VPC
szc namespace create my-app --vpc my-vpc

# Resources in the namespace can access VPC databases

Kafka Clusters

Deploy Kafka clusters with VPC networking:

szc kafka create my-kafka --vpc my-vpc

Security Groups

Control traffic flow with security groups:

Create Security Group

# Create security group
szc vpc security-group create my-vpc web-servers --description "Web server rules"

# Add inbound rule
szc vpc security-group rule add my-vpc web-servers \
--direction inbound \
--protocol tcp \
--port 443 \
--source 0.0.0.0/0

# Add rule for specific CIDR
szc vpc security-group rule add my-vpc web-servers \
--direction inbound \
--protocol tcp \
--port 5432 \
--source 10.0.0.0/16

List Security Groups

szc vpc security-group list my-vpc

Default Rules

Each VPC includes default security group rules:

DirectionProtocolPortSource/DestDescription
InboundAllAllVPC CIDRAllow internal traffic
OutboundAllAll0.0.0.0/0Allow all outbound

VPC Peering

Connect two VPCs for private communication:

Create Peering Connection

# Request peering with another VPC
szc vpc peering create my-vpc peer-vpc \
--peer-organization acme-corp

# Accept peering request (other organization)
szc vpc peering accept peering-id

List Peering Connections

szc vpc peering list my-vpc

Delete Peering

szc vpc peering delete peering-id

VPN Gateway

Connect to on-premises networks via VPN:

Create VPN Gateway

szc vpc vpn create my-vpc my-vpn \
--remote-ip 203.0.113.1 \
--remote-cidr 192.168.0.0/16 \
--psk "your-pre-shared-key"

Configure Routes

# Add route to on-premises network
szc vpc route add my-vpc \
--destination 192.168.0.0/16 \
--target vpn-gateway

VPN Status

szc vpc vpn get my-vpc my-vpn

Private Endpoints

Access Sparbz Cloud services via private IP:

Available Endpoints

ServiceEndpoint
S3 Storagestorage.internal.sparbz.cloud
Container Registryregistry.internal.sparbz.cloud
APIapi.internal.sparbz.cloud

Enable Private Endpoint

# Enable S3 private endpoint
szc vpc endpoint create my-vpc storage

# Enable registry endpoint
szc vpc endpoint create my-vpc registry

List Endpoints

szc vpc endpoint list my-vpc

DNS Resolution

Resources within a VPC can resolve other resources by name:

# Database DNS
<database-name>.databases.<vpc-id>.internal

# Kafka DNS
<cluster-name>.kafka.<vpc-id>.internal

# Example connection string
postgres://user:pass@my-db.databases.vpc-abc123.internal:5432/mydb

Network Architecture

VPC (10.0.0.0/16)
├── Subnet: databases (10.0.0.0/24)
│ ├── PostgreSQL: 10.0.0.10
│ ├── MySQL: 10.0.0.11
│ └── MongoDB: 10.0.0.12
├── Subnet: kubernetes (10.0.16.0/20)
│ ├── Pod CIDR: 10.0.16.0/20
│ └── Service CIDR: 10.0.32.0/20
├── Subnet: endpoints (10.0.1.0/28)
│ ├── Storage endpoint: 10.0.1.1
│ └── Registry endpoint: 10.0.1.2
├── VPN Gateway: vpn.vpc-abc123.sparbz.cloud
└── NAT Gateway: nat.vpc-abc123.sparbz.cloud

Monitoring

Network Metrics

Available metrics:

  • Bytes in/out per subnet
  • Packets in/out per subnet
  • Connection count
  • VPN tunnel status
  • NAT gateway usage

View Metrics

# Get VPC network metrics
szc vpc metrics my-vpc

# Get VPN status
szc vpc vpn status my-vpc my-vpn

Best Practices

CIDR Planning

  • Use private IP ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)
  • Plan for growth - start with /16 for large deployments
  • Avoid overlapping CIDRs if using VPC peering
  • Reserve space for future subnets

Security

  • Use security groups to restrict traffic to required ports
  • Disable public access for databases in VPCs
  • Use VPN or VPC peering for cross-network access
  • Enable flow logs for auditing

Performance

  • Place related resources in the same VPC
  • Use private endpoints for S3/registry access
  • Monitor NAT gateway for bottlenecks
  • Consider regional placement for latency

Pricing

ResourceMonthly
VPCFree
NAT Gateway$32 + $0.045/GB processed
VPN Gateway$36 + $0.05/GB transferred
VPC Peering$0.01/GB transferred
Private Endpoints$7.20 per endpoint

Data transfer within the same VPC is free.

Limitations

ResourceLimit
VPCs per organization5
Subnets per VPC10
Security groups per VPC50
Rules per security group50
VPC peering connections10
VPN connections per VPC5

Contact support to increase limits for your organization.