Bird
Raised Fist0
GCPcloud~7 mins

Cloud CDN integration in GCP - Commands & Configuration

Choose your learning style10 modes available
Introduction
Cloud CDN helps deliver your website or app content faster by storing copies closer to users around the world. It solves the problem of slow loading times by caching content at locations near your users.
When you want to speed up your website for visitors in different countries.
When you have a web app that serves large files like images or videos and want to reduce load on your main server.
When you want to reduce bandwidth costs by caching content at Google’s edge locations.
When you want to improve reliability by serving cached content even if your main server is slow or down.
When you want to secure your content delivery with HTTPS and Google’s security features.
Config File - backend_service.yaml
backend_service.yaml
apiVersion: compute.googleapis.com/v1
kind: BackendService
metadata:
  name: example-backend-service
spec:
  backends:
  - group: projects/my-project/zones/us-central1-a/instanceGroups/example-instance-group
  cdnPolicy:
    cacheMode: CACHE_ALL_STATIC
    signedUrlCacheMaxAgeSec: 3600
  protocol: HTTP
  portName: http
  timeoutSec: 30
  enableCdn: true

This file defines a Backend Service in Google Cloud that uses Cloud CDN.

backends: Points to the instance group serving your content.

cdnPolicy: Configures caching behavior, here caching all static content for 1 hour.

enableCdn: Enables Cloud CDN for this backend service.

Commands
Creates a backend service named example-backend-service with HTTP protocol and enables Cloud CDN globally.
Terminal
gcloud compute backend-services create example-backend-service --protocol=HTTP --port-name=http --timeout=30 --enable-cdn --global
Expected OutputExpected
Created [https://www.googleapis.com/compute/v1/projects/my-project/global/backendServices/example-backend-service].
→
--enable-cdn - Turns on Cloud CDN for this backend service.
→
--global - Creates the backend service as a global resource.
Adds an instance group named example-instance-group in zone us-central1-a as a backend to the backend service.
Terminal
gcloud compute backend-services add-backend example-backend-service --instance-group=example-instance-group --instance-group-zone=us-central1-a --global
Expected OutputExpected
Updated [https://www.googleapis.com/compute/v1/projects/my-project/global/backendServices/example-backend-service].
→
--instance-group - Specifies the instance group to add.
→
--instance-group-zone - Specifies the zone of the instance group.
→
--global - Indicates the backend service is global.
Creates a URL map that routes all traffic to the backend service with Cloud CDN enabled.
Terminal
gcloud compute url-maps create example-url-map --default-service=example-backend-service
Expected OutputExpected
Created [https://www.googleapis.com/compute/v1/projects/my-project/global/urlMaps/example-url-map].
Creates an HTTP proxy that uses the URL map to route requests to the backend service.
Terminal
gcloud compute target-http-proxies create example-http-proxy --url-map=example-url-map
Expected OutputExpected
Created [https://www.googleapis.com/compute/v1/projects/my-project/global/targetHttpProxies/example-http-proxy].
Creates a global forwarding rule to send incoming HTTP traffic on port 80 to the HTTP proxy.
Terminal
gcloud compute forwarding-rules create example-http-forwarding-rule --global --target-http-proxy=example-http-proxy --ports=80
Expected OutputExpected
Creating forwarding rule...done. NAME REGION IP_ADDRESS IP_PROTOCOL PORT_RANGE TARGET example-http-forwarding-rule global 34.123.45.67 TCP 80 https://www.googleapis.com/compute/v1/projects/my-project/global/targetHttpProxies/example-http-proxy
→
--global - Creates a global forwarding rule.
→
--ports - Specifies the port to listen on.
Checks the backend service details to verify Cloud CDN is enabled and caching policy is set.
Terminal
gcloud compute backend-services describe example-backend-service --global
Expected OutputExpected
cdnPolicy: cacheMode: CACHE_ALL_STATIC signedUrlCacheMaxAgeSec: 3600 enableCdn: true name: example-backend-service protocol: HTTP portName: http timeoutSec: 30
→
--global - Specifies the backend service is global.
Key Concept

If you remember nothing else from this pattern, remember: enabling Cloud CDN on a backend service caches your content at Google’s edge locations to speed up delivery worldwide.

Common Mistakes
Not enabling CDN when creating the backend service.
Without enabling CDN, your content won't be cached and users won't get faster delivery.
Always use the --enable-cdn flag when creating or updating your backend service.
Adding backend instance groups without specifying the correct zone.
The backend service won't connect properly to your instance group, causing traffic failures.
Use the --instance-group-zone flag with the correct zone when adding backends.
Skipping verification of backend service settings after creation.
You might miss misconfigurations like CDN not being enabled or wrong cache policies.
Run gcloud compute backend-services describe to confirm settings.
Summary
Create a backend service with Cloud CDN enabled using gcloud commands.
Add your instance group as a backend to serve your content.
Set up URL maps, HTTP proxies, and forwarding rules to route traffic through Cloud CDN.
Verify your backend service to ensure CDN is active and caching policies are correct.

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

  1. Step 1: Understand Cloud CDN's role

    Cloud CDN caches static and dynamic content at edge locations near users to reduce latency.
  2. Step 2: Compare with other options

    Options A, B, and D describe other cloud services unrelated to CDN's caching function.
  3. Final Answer:

    To cache content closer to users for faster delivery -> Option A
  4. 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

  1. 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.
  2. Step 2: Eliminate unrelated components

    Cloud Storage buckets, Cloud SQL, and Pub/Sub are unrelated to enabling CDN on backend services.
  3. Final Answer:

    Enable CDN on the backend service -> Option C
  4. 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

  1. 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.
  2. 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.
  3. Final Answer:

    The CDN serves the cached object directly to the user -> Option B
  4. 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

  1. Step 1: Check CDN enablement

    Cloud CDN must be explicitly enabled on the backend service to cache content.
  2. 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.
  3. Final Answer:

    CDN is not enabled on the backend service -> Option A
  4. 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

  1. 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.
  2. 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.
  3. 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
  4. Quick Check:

    Backend bucket + load balancer + CDN = correct setup [OK]
Hint: Use backend bucket with load balancer to enable CDN on storage [OK]
Common Mistakes:
  • Trying to enable CDN directly on storage buckets
  • Using databases as backend for CDN
  • Misconfiguring forwarding rules without load balancer
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard