DEV Community

DevCorner2
DevCorner2

Posted on

🔐 Microservices Use Private IPs Inside a VPC

In a cloud environment (like AWS, Azure, or GCP):

  • Each VPC (Virtual Private Cloud) defines a private IP address space, typically using RFC 1918 private ranges (like 10.0.0.0/16).
  • Within that VPC, you define subnets (10.0.1.0/24, 10.0.2.0/24, etc.).
  • Your microservices, running on EC2 instances, containers, or Kubernetes pods, get private IP addresses from these subnets.
  • These IPs are local to the VPC, meaning:

    • Other services in the same VPC can communicate freely.
    • Outside traffic cannot reach them directly.

🌐 How External Clients Talk to Microservices

To allow clients (users, frontends, external systems) to access your microservices, you need to expose them via a controlled public-facing interface.

Common Ways to Expose Microservices:

Method Description Example
API Gateway Fronts all your microservices with a single endpoint. Handles routing, auth, rate limiting, etc. AWS API Gateway, Azure API Management, Kong
Load Balancer Balances traffic across multiple service instances, often at Layer 4 (TCP) or Layer 7 (HTTP). AWS ALB/ELB, NGINX, HAProxy
Reverse Proxy Routes traffic from a public endpoint to internal services. NGINX, Traefik
Ingress Controller Kubernetes-specific way to expose services to the outside world. NGINX Ingress, Istio, Ambassador

🔁 Internal Communication

Within the VPC:

  • Microservices talk to each other using private IPs or internal DNS (e.g., auth-service.default.svc.cluster.local in Kubernetes).
  • No need for public IPs or NAT.

🎯 Summary

✅ Microservices run on private IPs from subnets within your VPC
✅ They are not directly accessible from the internet
✅ You expose them using API Gateways, Load Balancers, or Proxies
✅ Internal service-to-service traffic stays within the private network

Top comments (0)