📖 Scenario: You are setting up a website hosted on Google Cloud Platform (GCP). To improve the website's speed and reduce load on your server, you want to use Cloud CDN (Content Delivery Network) to cache content closer to users worldwide.
🎯 Goal: Build a simple Google Cloud configuration that creates a backend service with Cloud CDN enabled, linked to a URL map and HTTP proxy, ready to serve cached content globally.
📋 What You'll Learn
Create a backend service named my-backend-service with Cloud CDN enabled
Create a URL map named my-url-map that routes all requests to my-backend-service
Create a target HTTP proxy named my-http-proxy that uses my-url-map
Create a global forwarding rule named my-forwarding-rule that listens on port 80 and directs traffic to my-http-proxy
💡 Why This Matters
🌍 Real World
Many websites use Cloud CDN to speed up content delivery by caching content closer to users worldwide, reducing latency and server load.
💼 Career
Cloud engineers and DevOps professionals often configure CDN services to optimize web application performance and scalability.
Progress0 / 4 steps
1
Create the backend service
Create a backend service named my-backend-service with Cloud CDN disabled initially.
GCP
Hint
Use the google_compute_backend_service resource with enable_cdn = false for now.
2
Enable Cloud CDN on the backend service
Modify the backend service my-backend-service to enable Cloud CDN by setting enable_cdn = true.
GCP
Hint
Set enable_cdn to true inside the backend service resource.
3
Create URL map and HTTP proxy
Create a URL map named my-url-map that routes all requests to my-backend-service, and create a target HTTP proxy named my-http-proxy that uses my-url-map.
GCP
Hint
Use google_compute_url_map with default_service set to the backend service, and google_compute_target_http_proxy with url_map set to the URL map.
4
Create global forwarding rule
Create a global forwarding rule named my-forwarding-rule that listens on port 80 and directs traffic to the target HTTP proxy my-http-proxy.
GCP
Hint
Use google_compute_global_forwarding_rule with port_range = "80" and target set to the HTTP proxy.
Practice
(1/5)
1. What is the primary purpose of Google Cloud CDN in a web application architecture?
easy
A. To cache content closer to users for faster delivery
B. To store user data securely in the cloud
C. To manage database connections efficiently
D. To provide virtual machines for computation
Solution
Step 1: Understand Cloud CDN's role
Cloud CDN caches static and dynamic content at edge locations near users to reduce latency.
Step 2: Compare with other options
Options A, B, and D describe other cloud services unrelated to CDN's caching function.
Final Answer:
To cache content closer to users for faster delivery -> Option A
Quick Check:
Cloud CDN = caching content near users [OK]
Hint: Cloud CDN speeds up content by caching near users [OK]
Common Mistakes:
Confusing CDN with storage or compute services
Thinking CDN manages databases
Assuming CDN is for security only
2. Which GCP component must be configured to enable Cloud CDN for a backend service?
easy
A. Create a Cloud Storage bucket
B. Set up a Cloud SQL instance
C. Enable CDN on the backend service
D. Configure a Pub/Sub topic
Solution
Step 1: Identify CDN enabling step
Cloud CDN is enabled by turning on the CDN option on the backend service linked to the load balancer.
Step 2: Eliminate unrelated components
Cloud Storage buckets, Cloud SQL, and Pub/Sub are unrelated to enabling CDN on backend services.
Final Answer:
Enable CDN on the backend service -> Option C
Quick Check:
Enable CDN = backend service setting [OK]
Hint: Enable CDN directly on backend service in GCP [OK]
Common Mistakes:
Trying to enable CDN on storage buckets only
Confusing CDN with database or messaging setup
Missing the backend service step
3. Given this simplified request flow for Cloud CDN: User -> HTTP(S) Load Balancer -> Backend Service (CDN enabled) -> Origin Server. What happens when a user requests a cached object that is still valid in the CDN cache?
medium
A. The load balancer fetches the object from the origin server
B. The CDN serves the cached object directly to the user
C. The backend service disables caching for that request
D. The request is redirected to another region
Solution
Step 1: Understand CDN cache hit behavior
If the requested object is cached and valid, Cloud CDN serves it directly from the cache without contacting the origin.
Step 2: Analyze other options
The load balancer fetches the object from the origin server is incorrect because the origin is bypassed on cache hit; options B and C do not describe CDN cache behavior.
Final Answer:
The CDN serves the cached object directly to the user -> Option B
Quick Check:
Cache hit = CDN serves cached content [OK]
Hint: Cache hit means CDN serves content, no origin call [OK]
Common Mistakes:
Assuming origin is always contacted
Confusing backend service disabling cache
Thinking request redirects on cache hit
4. You configured Cloud CDN but notice that content is not being cached. Which of the following is the most likely misconfiguration?
medium
A. CDN is not enabled on the backend service
B. The load balancer is using HTTP instead of HTTPS
C. The origin server is unreachable
D. The forwarding rule is missing a static IP
Solution
Step 1: Check CDN enablement
Cloud CDN must be explicitly enabled on the backend service to cache content.
Step 2: Evaluate other options
Using HTTP vs HTTPS or missing static IP does not prevent caching; origin unreachable causes errors but not silent no-cache.
Final Answer:
CDN is not enabled on the backend service -> Option A
Quick Check:
CDN enabled on backend = caching works [OK]
Hint: Always enable CDN on backend service to cache content [OK]
Common Mistakes:
Assuming HTTPS is required for caching
Thinking static IP affects caching
Ignoring backend service CDN setting
5. You want to design a scalable web app using Cloud CDN to serve static assets from a Cloud Storage bucket. Which setup correctly integrates Cloud CDN for this use case?
hard
A. Configure a forwarding rule to Cloud Storage and enable CDN there
B. Directly enable CDN on the Cloud Storage bucket without a load balancer
C. Use Cloud SQL as backend and enable CDN on it
D. Create a backend bucket pointing to Cloud Storage, enable CDN on it, then configure an HTTP(S) load balancer with this backend bucket
Solution
Step 1: Understand Cloud CDN integration with storage
Cloud CDN integrates with Cloud Storage via a backend bucket configured in an HTTP(S) load balancer.
Step 2: Evaluate options
Directly enable CDN on the Cloud Storage bucket without a load balancer is invalid because CDN cannot be enabled directly on storage buckets; C and D misuse services or configurations.
Final Answer:
Create a backend bucket pointing to Cloud Storage, enable CDN on it, then configure an HTTP(S) load balancer with this backend bucket -> Option D