Highly available three-tier web application

Highly available three-tier web application Highly available three-tier web application Cloud Armor + global external Application Load Balancer → regional managed instance groups across two zones → Cloud SQL (HA) with Memorystore Google Cloud Project: shop-prod Region us-central1 VPC network Zone a Zone b HTTPS 1. Requests reach the global anycast IP of the load balancer and are screened by Cloud Armor1 2. Cloud Armor → Application Load Balancer2 4. Web tier VMs → App tier VMs4 4. Web tier VMs → App tier VMs4 balance 3. Application Load Balancer → Web tier VMs (balance)3 3. Application Load Balancer → Web tier VMs3 SQL 5. App tier VMs → Cloud SQL for PostgreSQL (SQL)5 5. App tier VMs → Cloud SQL for PostgreSQL5 cache CMEK logs Users (Users) Users browser and mobile Cloud CDN (Cloud CDN) Cloud CDN static assets Cloud Armor (Cloud Armor) Cloud Armor WAF, rate limiting Application Load Balancer (Cloud Load Balancing) Application Load Balancer global external, TLS, URL map Web tier VMs (Compute Engine) Web tier VMs managed instance group, zone a App tier VMs (Compute Engine) App tier VMs zone a Web tier VMs (Compute Engine) Web tier VMs managed instance group, zone b App tier VMs (Compute Engine) App tier VMs zone b Cloud SQL for PostgreSQL (Cloud SQL) Cloud SQL for PostgreSQL high availability (regional) Memorystore (Memorystore) Memorystore session cache Cloud KMS (Cloud Key Management Service) Cloud KMS CMEK keys Cloud Monitoring (Cloud Monitoring) Cloud Monitoring SLOs and alerts Cloud Logging (Cloud Logging) Cloud Logging audit and app logs

Flow

  1. 1Requests reach the global anycast IP of the load balancer and are screened by Cloud Armor
  2. 2Cloud Armor → Application Load Balancer
  3. 3Application Load Balancer → Web tier VMs (balance)
  4. 3Application Load Balancer → Web tier VMs
  5. 4Web tier VMs → App tier VMs
  6. 4Web tier VMs → App tier VMs
  7. 5App tier VMs → Cloud SQL for PostgreSQL (SQL)
  8. 5App tier VMs → Cloud SQL for PostgreSQL