2 packs: 15% off with code BUY2. 3 or more: 20% off with code BUY3.

Free Google Professional Cloud Architect Practice Questions

90 free Google Professional Cloud Architect practice questions from the CertStash pack of 360, each with the correct answer and a full explanation. The rule is the same for every exam: ten free on the product page, 90 free here, all 360 in the pack, and each step includes the one before it.

Question 1

Your company has decided to make a major revision of their API in order to create better experiences for their developers. They need to keep the old version of the API available and deployable, while allowing new customers and testers to try out the new API. They want to keep the same SSL and DNS records in place to serve both APIs. What should they do?

  1. Configure a new load balancer for the new version of the API
  2. Reconfigure old clients to use a new endpoint for the new API
  3. Have the old API forward traffic to the new API based on the path
  4. Use separate backend pools for each API path behind the load balancer
Show answer and explanation

Correct answer: D. Use separate backend pools for each API path behind the load balancer

Using separate backend pools for each API path behind a single load balancer allows the company to serve both old and new API versions from the same SSL certificate and DNS record. The load balancer can route requests to different backend pools based on the request path, keeping the same endpoint while supporting both API versions simultaneously.

Why the other options are wrong

  • A. A new load balancer would require separate DNS/SSL records, contradicting the requirement to keep these unchanged.
  • B. Reconfiguring old clients defeats the purpose of maintaining backward compatibility with the same endpoint.
  • C. Having the old API forward to the new API would not allow running both versions independently and could cause compatibility issues.

Question 2

Your company plans to migrate a multi-petabyte data set to the cloud. The data set must be available 24hrs a day. Your business analysts have experience only with using a SQL interface. How should you store the data to optimize it for ease of analysis?

  1. Load data into Google BigQuery
  2. Insert data into Google Cloud SQL
  3. Put flat files into Google Cloud Storage
  4. Stream data into Google Cloud Datastore
Show answer and explanation

Correct answer: A. Load data into Google BigQuery

Google BigQuery is a fully managed data warehouse optimized for large-scale analytical queries. It provides SQL interface for business analysts, handles multi-petabyte datasets efficiently, offers 24/7 availability, and is purpose-built for analysis and reporting scenarios like this.

Why the other options are wrong

  • B. Cloud SQL is designed for transactional databases, not analytical workloads, and has limitations for multi-petabyte datasets.
  • C. Cloud Storage with flat files lacks the query capability and SQL interface needed by business analysts.
  • D. Cloud Datastore is a NoSQL document database unsuitable for analytical queries and not optimized for this use case.

Question 3

The operations manager asks you for a list of recommended practices that she should consider when migrating a J2EE application to the cloud. Which three practices should you recommend? (Choose three.)

  1. Port the application code to run on Google App Engine
  2. Integrate Cloud Dataflow into the application to capture real-time metrics
  3. Instrument the application with a monitoring tool like Stackdriver Debugger
  4. Select an automation framework to reliably provision the cloud infrastructure
  5. Deploy a continuous integration tool with automated testing in a staging environment
  6. Migrate from MySQL to a managed NoSQL database like Google Cloud Datastore or Bigtable
Show answer and explanation

Correct answer: C, D, E. Instrument the application with a monitoring tool like Stackdriver Debugger; Select an automation framework to reliably provision the cloud infrastructure; Deploy a continuous integration tool with automated testing in a staging environment

The three recommended practices are: (C) Instrumenting with monitoring tools like Stackdriver Debugger provides visibility into application performance and debugging; (D) Automation frameworks reliably provision infrastructure consistently; and (E) Continuous integration with automated testing in staging catches errors before production. These address operational excellence, reliability, and quality assurance in cloud migrations.

Why the other options are wrong

  • A. Porting to App Engine is an implementation choice that may not fit all J2EE applications and isn't universally recommended for migration strategy.
  • B. Cloud Dataflow is for data pipeline processing, not a general recommendation for application migration monitoring needs.

Question 4

A news feed web service has the following code running on Google App Engine. During peak load, users report that they can see news articles they already viewed. What is the most likely cause of this problem?

  1. The session variable is local to just a single instance
  2. The session variable is being overwritten in Cloud Datastore
  3. The URL of the API needs to be modified to prevent caching
  4. The HTTP Expires header needs to be set to -1 stop caching
Show answer and explanation

Correct answer: A. The session variable is local to just a single instance

The code stores session data in a local Python dictionary (`sessions = {}`), which exists only in memory on a single App Engine instance. During peak load, Google App Engine automatically scales by creating multiple instances to handle requests. When users are routed to different instances (due to load balancing), their session data is not available on the new instance because each instance has its own separate in-memory dictionary. This causes previously viewed articles to reappear since the viewing history is lost when the user hits a different instance.

Why the other options are wrong

  • B. The code does not use Cloud Datastore for session storage; it only uses a local in-memory dictionary, so overwriting in Datastore is not the issue.
  • C. The problem is not related to URL caching or API endpoint design; it's a session persistence issue across multiple instances.
  • D. HTTP Expires headers control browser caching of responses, not the server-side session persistence problem of tracking viewed articles across instances.

Question 5

An application development team believes their current logging tool will not meet their needs for their new cloud-based product. They want a better tool to capture errors and help them analyze their historical log data. You want to help them find a solution that meets their needs. What should you do?

  1. Direct them to download and install the Google StackDriver logging agent
  2. Send them a list of online resources about logging best practices
  3. Help them define their requirements and assess viable logging tools
  4. Help them upgrade their current tool to take advantage of any new features
Show answer and explanation

Correct answer: C. Help them define their requirements and assess viable logging tools

The best approach is to help the team define their specific requirements and assess viable solutions. This consultative approach ensures the selected tool actually meets their needs for error capture and historical log analysis, rather than immediately prescribing a specific product or assuming the current tool can be fixed.

Why the other options are wrong

  • A. Directing them to install Stackdriver immediately skips the requirements assessment phase and may not be the right tool.
  • B. Providing generic resources doesn't address their specific problem of finding the right tool for their needs.
  • D. Upgrading their current tool assumes it can be fixed, but they've already determined it won't meet their needs.

Question 6

You need to reduce the number of unplanned rollbacks of erroneous production deployments in your company's web hosting platform. Improvement to the QA/ Test processes accomplished an 80% reduction. Which additional two approaches can you take to further reduce the rollbacks? (Choose two.)

  1. Introduce a green-blue deployment model
  2. Replace the QA environment with canary releases
  3. Fragment the monolithic platform into microservices
  4. Reduce the platform's dependency on relational database systems
  5. Replace the platform's relational database systems with a NoSQL database
Show answer and explanation

Correct answer: A, C. Introduce a green-blue deployment model; Fragment the monolithic platform into microservices

Blue-green deployment (A) allows testing the new version completely before switching traffic, reducing rollback risk. Canary releases (B as the alternative) gradually roll out changes to detect issues. Fragmenting into microservices (C) reduces the blast radius of failed deployments by limiting impact to single services rather than the entire platform.

Why the other options are wrong

  • B. Replacing QA with canary releases eliminates testing, creating more risk rather than reducing it.
  • D. Reducing relational database dependencies doesn't directly address deployment rollback issues.
  • E. Switching database types doesn't reduce deployment-related rollbacks.

Question 7

To reduce costs, the Director of Engineering has required all developers to move their development infrastructure resources from on-premises virtual machines (VMs) to Google Cloud Platform. These resources go through multiple start/stop events during the day and require state to persist. You have been asked to design the process of running a development environment in Google Cloud while providing cost visibility to the finance department. Which two steps should you take? (Choose two.)

  1. Use the - -no-auto-delete flag on all persistent disks and stop the VM
  2. Use the - -auto-delete flag on all persistent disks and terminate the VM
  3. Apply VM CPU utilization label and include it in the BigQuery billing export
  4. Use Google BigQuery billing export and labels to associate cost to groups
  5. Store all state into local SSD, snapshot the persistent disks, and terminate the VM
  6. Store all state in Google Cloud Storage, snapshot the persistent disks, and terminate the VM
Show answer and explanation

Correct answer: A, D. Use the - -no-auto-delete flag on all persistent disks and stop the VM; Use Google BigQuery billing export and labels to associate cost to groups

Using the --no-auto-delete flag (A) preserves persistent disks when stopping VMs, allowing state to persist and VMs to restart without recreating disks. This reduces costs since stopped VMs are cheaper than running ones. Using BigQuery billing export with labels (D) provides cost visibility to the finance department by associating resource usage with developer groups.

Why the other options are wrong

  • B. Auto-delete flag terminates persistent disks, losing state that needs to persist.
  • C. Labels alone don't provide sufficient cost tracking without the billing export mechanism.
  • E. Local SSDs are ephemeral and lost on termination; this doesn't persist state.
  • F. Terminating VMs contradicts the requirement to preserve state and enable cost-effective restart.

Question 8

Your company wants to track whether someone is present in a meeting room reserved for a scheduled meeting. There are 1000 meeting rooms across 5 offices on 3 continents. Each room is equipped with a motion sensor that reports its status every second. The data from the motion detector includes only a sensor ID and several different discrete items of information. Analysts will use this data, together with information about account owners and office locations. Which database type should you use?

  1. Flat file
  2. NoSQL
  3. Relational
  4. Blobstore
Show answer and explanation

Correct answer: B. NoSQL

NoSQL databases are ideal for this scenario because the data is high-volume time-series sensor data (1000 rooms × continuous readings), has flexible schema (sensor ID plus discrete information items), and needs to be joined with other data sources (account owners, office locations) during analysis. NoSQL handles high-velocity IoT data efficiently and scales horizontally across continents.

Why the other options are wrong

  • A. Flat files are inefficient for 1000 rooms generating continuous data and querying with related datasets.
  • C. Relational databases can work but are less efficient for high-velocity sensor data and have scaling challenges.
  • D. Blobstore is for unstructured binary data, not structured sensor readings that need querying and analysis.

Question 9

You set up an autoscaling instance group to serve web traffic for an upcoming launch. After configuring the instance group as a backend service to an HTTP(S) load balancer, you notice that virtual machine (VM) instances are being terminated and re-launched every minute. The instances do not have a public IP address. You have verified the appropriate web response is coming from each instance using the curl command. You want to ensure the backend is configured correctly. What should you do?

  1. Ensure that a firewall rules exists to allow source traffic on HTTP/HTTPS to reach the load balancer.
  2. Assign a public IP to each instance and configure a firewall rule to allow the load balancer to reach the instance public IP.
  3. Ensure that a firewall rule exists to allow load balancer health checks to reach the instances in the instance group.
  4. Create a tag on each instance with the name of the load balancer. Configure a firewall rule with the name of the load balancer as the source and the instance tag as the destination.
Show answer and explanation

Correct answer: C. Ensure that a firewall rule exists to allow load balancer health checks to reach the instances in the instance group.

VMs are terminating and relaunching every minute because health checks are failing. Since curl commands work from the instances themselves, the application is responding correctly. The issue is that the load balancer's health check probes cannot reach the instances because a firewall rule is blocking the health check traffic. Allowing health check source traffic (typically from Google's health check IP ranges) to the instances solves this.

Why the other options are wrong

  • A. Firewall rules for HTTP/HTTPS to the load balancer don't address the internal health check communication issue.
  • B. Public IPs aren't necessary for instances behind a load balancer; this wastes resources and isn't the root cause.
  • D. Creating tags with the load balancer name doesn't configure proper health check firewall rules and is incorrectly specified.

Question 10

You write a Python script to connect to Google BigQuery from a Google Compute Engine virtual machine. The script is printing errors that it cannot connect to BigQuery. What should you do to fix the script?

  1. Install the latest BigQuery API client library for Python
  2. Run your script on a new virtual machine with the BigQuery access scope enabled
  3. Create a new service account with BigQuery access and execute your script with that user
  4. Install the bq component for gcloud with the command gcloud components install bq.
Show answer and explanation

Correct answer: B. Run your script on a new virtual machine with the BigQuery access scope enabled

Google Compute Engine instances require the appropriate OAuth scopes to access BigQuery. A VM created without the BigQuery access scope enabled cannot authenticate to the BigQuery API, regardless of client library installation or service account configuration. Creating a new VM with the BigQuery scope enabled (or adding the scope to an existing VM) is the fundamental requirement for BigQuery access from GCE.

Why the other options are wrong

  • A. Installing the client library is necessary but insufficient without proper authentication scopes on the VM.
  • C. While service accounts can be used, the VM itself must have the BigQuery scope enabled to use any credentials.
  • D. The bq CLI component is optional tooling and does not resolve the underlying authentication scope problem.

What people say about the full Professional Cloud Architect pack 5.0 from 11

PCA went as planned, passed easy
Elia KaminskiProfessional Cloud Architect
This is my fourth certification with Cert Stash’s help and they never disappoint. Each time, the materials are spot-on! Thanks Cert Stash.
Dee RomeroProfessional Cloud Architect
Passed PCA, no complaints
Stan BarbieriProfessional Cloud Architect

Question 11

Your company has an application deployed on Anthos clusters (formerly Anthos GKE) that is running multiple microservices. The cluster has both Anthos Service Mesh and Anthos Config Management configured. End users inform you that the application is responding very slowly. You want to identify the microservice that is causing the delay. What should you do?

  1. Use the Service Mesh visualization in the Cloud Console to inspect the telemetry between the microservices.
  2. Use Anthos Config Management to create a ClusterSelector selecting the relevant cluster. On the Google Cloud Console page for Google Kubernetes Engine, view the Workloads and filter on the cluster. Inspect the configurations of the filtered workloads.
  3. Use Anthos Config Management to create a namespaceSelector selecting the relevant cluster namespace. On the Google Cloud Console page for Google Kubernetes Engine, visit the workloads and filter on the namespace. Inspect the configurations of the filtered workloads.
  4. Reinstall istio using the default istio profile in order to collect request latency. Evaluate the telemetry between the microservices in the Cloud Console.
Show answer and explanation

Correct answer: A. Use the Service Mesh visualization in the Cloud Console to inspect the telemetry between the microservices.

Anthos Service Mesh (Istio) provides built-in telemetry and visualization capabilities directly in the Cloud Console. The Service Mesh visualization dashboard displays request flows, latencies, and error rates between microservices, making it the ideal tool to identify which microservice is causing the slowdown. Options B and C involve Anthos Config Management, which manages configurations but doesn't provide performance telemetry. Option D requires unnecessary Istio reinstallation when telemetry is already available in an existing installation.

Why the other options are wrong

  • B. Anthos Config Management is for configuration management, not performance diagnostics between services
  • C. Anthos Config Management selectors manage configurations, not performance telemetry analysis
  • D. Reinstalling Istio is unnecessary and causes disruption when the existing installation already collects telemetry

Question 12

The database administration team has asked you to help them improve the performance of their new database server running on Google Compute Engine. The database is for importing and normalizing their performance statistics and is built with MySQL running on Debian Linux. They have an n1-standard-8 virtual machine with 80 GB of SSD persistent disk. What should they change to get better performance from this system?

  1. Increase the virtual machine's memory to 64 GB
  2. Create a new virtual machine running PostgreSQL
  3. Dynamically resize the SSD persistent disk to 500 GB
  4. Migrate their performance metrics warehouse to BigQuery
  5. Modify all of their batch jobs to use bulk inserts into the database
Show answer and explanation

Correct answer: C. Dynamically resize the SSD persistent disk to 500 GB

The n1-standard-8 machine already has 30 GB of memory (sufficient for most database operations), but only 80 GB of SSD storage. For a database handling import and normalization of performance statistics with ongoing growth, increasing the persistent disk from 80 GB to 500 GB addresses I/O bottlenecks and provides capacity for data growth, which is the most likely performance constraint.

Why the other options are wrong

  • A. The n1-standard-8 already includes 30 GB of memory, which is adequate; increasing to 64 GB would be excessive and expensive for a normalization database.
  • B. Switching database engines is a major migration with no guarantee of performance improvement and introduces operational risk.
  • D. BigQuery is an analytical data warehouse, not appropriate for transactional database operations and real-time performance statistics ingestion.
  • E. While bulk inserts help, they address only one aspect of performance; the storage constraint is more fundamental.

Question 13

A development manager is building a new application. He asks you to review his requirements and identify what cloud technologies he can use to meet them. The application must: 1. Be based on open-source technology for cloud portability 2. Dynamically scale compute capacity based on demand 3. Support continuous software delivery 4. Run multiple segregated copies of the same application stack 5. Deploy application bundles using dynamic templates 6. Route network traffic to specific services based on URL Which combination of technologies will meet all of his requirements?

  1. Google Kubernetes Engine, Jenkins, and Helm
  2. Google Kubernetes Engine and Cloud Load Balancing
  3. Google Kubernetes Engine and Cloud Deployment Manager
  4. Google Kubernetes Engine, Jenkins, and Cloud Load Balancing
Show answer and explanation

Correct answer: D. Google Kubernetes Engine, Jenkins, and Cloud Load Balancing

Google Kubernetes Engine (GKE) meets requirements 1-4 and 6: it uses open-source Kubernetes for portability, dynamically scales compute, supports continuous delivery through container orchestration, runs multiple segregated application copies via pods/deployments, and uses Services with load balancing for URL-based routing. Jenkins (requirement 3) provides continuous software delivery pipelines. Cloud Load Balancing (requirement 6) enables URL-based routing to specific services. Helm is not necessary because requirement 5 (dynamic templates) is adequately handled by Kubernetes manifests and GKE's native capabilities.

Why the other options are wrong

  • A. While Helm provides dynamic templates, Jenkins and Helm together don't address load balancing for URL-based traffic routing (requirement 6) as directly as the chosen answer.
  • B. Lacks continuous software delivery capability (requirement 3) and doesn't address dynamic template deployment (requirement 5).
  • C. Cloud Deployment Manager only supports Google Cloud resources and doesn't provide continuous delivery (requirement 3) or URL-based routing (requirement 6) natively.

Question 14

Your company has an application running on multiple Compute Engine instances. You need to ensure that the application can communicate with an on-premises service that requires high throughput via internal IPs, while minimizing latency. What should you do?

  1. Use OpenVPN to configure a VPN tunnel between the on-premises environment and Google Cloud.
  2. Configure a direct peering connection between the on-premises environment and Google Cloud.
  3. Use Cloud VPN to configure a VPN tunnel between the on-premises environment and Google Cloud.
  4. Configure a Cloud Dedicated Interconnect connection between the on-premises environment and Google Cloud.
Show answer and explanation

Correct answer: D. Configure a Cloud Dedicated Interconnect connection between the on-premises environment and Google Cloud.

For high throughput with minimal latency between Google Cloud and on-premises environments, Cloud Dedicated Interconnect provides dedicated physical connections with guaranteed bandwidth and lower latency than VPN. While VPN or peering could work, the requirement for high throughput and internal IP communication specifically points to Dedicated Interconnect as the optimal solution that meets the performance requirements.

Why the other options are wrong

  • A. OpenVPN adds overhead and encryption processing that increases latency; it also does not guarantee the throughput needed for high-performance applications.
  • B. Direct Peering is for public IP traffic and connecting to Google's network edge; it does not provide internal IP connectivity needed for this use case.
  • C. Cloud VPN operates over the public internet, introducing variable latency and bandwidth constraints that may not meet high-throughput requirements effectively.

Question 15

Your BigQuery project has several users. For audit purposes, you need to see how many queries each user ran in the last month. What should you do?

  1. Connect Google Data Studio to BigQuery. Create a dimension for the users and a metric for the amount of queries per user.
  2. In the BigQuery interface, execute a query on the JOBS table to get the required information.
  3. Use 'bq show' to list all jobs. Per job, use 'bq ls' to list job information and get the required information.
  4. Use Cloud Audit Logging to view Cloud Audit Logs, and create a filter on the query operation to get the required information.
Show answer and explanation

Correct answer: B. In the BigQuery interface, execute a query on the JOBS table to get the required information.

BigQuery maintains a JOBS table (in the `region-us.INFORMATION_SCHEMA.JOBS_BY_PROJECT` view) that contains job metadata. By querying this table to filter by user and job creation time, you can determine exactly how many queries each user ran in the last month. This is the most direct and accurate method for obtaining audit information about query execution.

Why the other options are wrong

  • A. Data Studio is a visualization tool; while it can display data, it's not the source of BigQuery job audit information.
  • C. The 'bq show' and 'bq ls' commands are for listing datasets and tables, not querying job execution history.
  • D. Cloud Audit Logging tracks administrative actions and access, not individual query execution counts; the JOBS table is the correct source for query audit data.

Question 16

You need to deploy a stateful workload on Google Cloud. The workload can scale horizontally, but each instance needs to read and write to the same POSIX filesystem. At high load, the stateful workload needs to support up to 100 MB/s of writes. What should you do?

  1. Use a persistent disk for each instance.
  2. Use a regional persistent disk for each instance.
  3. Create a Cloud Filestore instance and mount it in each instance.
  4. Create a Cloud Storage bucket and mount it in each instance using gcsfuse.
Show answer and explanation

Correct answer: C. Create a Cloud Filestore instance and mount it in each instance.

Cloud Filestore provides a managed NFS service supporting POSIX compliance and handles 100 MB/s write throughput at scale, making it ideal for multiple instances requiring shared filesystem access. Persistent disks (options A and B) cannot be simultaneously attached to multiple instances. While Cloud Storage with gcsfuse (option D) is technically mountable, it has throughput limitations and is not optimized for POSIX-compliance or write-heavy workloads at 100 MB/s scale.

Why the other options are wrong

  • A. Standard persistent disks cannot be attached to multiple instances simultaneously
  • B. Regional persistent disks cannot be attached to multiple instances simultaneously
  • D. Cloud Storage with gcsfuse lacks the throughput performance and POSIX compliance needed for 100 MB/s writes

Question 17

Your company has a support ticketing solution that uses App Engine Standard. The project that contains the App Engine application already has a Virtual Private Cloud (VPC) network fully connected to the company's on-premises environment through a Cloud VPN tunnel. You want to enable the App Engine application to communicate with a database that is running in the company's on-premises environment. What should you do?

  1. Configure private Google access for on-premises hosts only.
  2. Configure private Google access.
  3. Configure private services access.
  4. Configure serverless VPC access.
Show answer and explanation

Correct answer: D. Configure serverless VPC access.

Option D is correct because Serverless VPC Access is the Google Cloud native solution that allows App Engine Standard to access resources in a VPC network. Since the VPC is already connected to on-premises via Cloud VPN, configuring Serverless VPC Access on App Engine enables communication with the on-premises database through the existing VPN tunnel. This is the recommended approach for serverless services needing VPC access.

Why the other options are wrong

  • A. Private Google Access for on-premises only is not a valid configuration option.
  • B. Private Google Access enables access only to Google Cloud services, not to resources in the VPC or on-premises.
  • C. Private Services Access is for accessing managed services like Cloud SQL, not for accessing custom on-premises databases.

Question 18

You have an outage in your Compute Engine managed instance group: all instances keep restarting after 5 seconds. You have a health check configured, but autoscaling is disabled. Your colleague, who is a Linux expert, offered to look into the issue. You need to make sure that he can access the VMs. What should you do?

  1. Grant your colleague the IAM role of project Viewer
  2. Perform a rolling restart on the instance group
  3. Disable the health check for the instance group. Add his SSH key to the project-wide SSH Keys
  4. Disable autoscaling for the instance group. Add his SSH key to the project-wide SSH Keys
Show answer and explanation

Correct answer: C. Disable the health check for the instance group. Add his SSH key to the project-wide SSH Keys

To allow the Linux expert colleague to SSH into the restarting VMs, the health check must be disabled to prevent instances from being terminated during investigation. Then adding his SSH key to project-wide SSH keys grants him access to all instances in the project. This allows direct investigation of why instances are restarting every 5 seconds. Disabling the health check is necessary because the continuous restart cycle would prevent meaningful troubleshooting.

Why the other options are wrong

  • A. Project Viewer role provides read-only access and does not include SSH permissions needed to access and troubleshoot the instances.
  • B. A rolling restart would not help diagnose the root cause and would continue the restart cycle, providing no debugging opportunity.
  • D. Autoscaling is already disabled per the question; this option addresses the wrong problem and doesn't solve the access issue.

Question 19

Your operations team currently stores 10 TB of data in an object storage service from a third-party provider. They want to move this data to a Cloud Storage bucket as quickly as possible, following Google-recommended practices. They want to minimize the cost of this data migration. Which approach should they use?

  1. Use the gsutil mv command to move the data.
  2. Use the Storage Transfer Service to move the data.
  3. Download the data to a Transfer Appliance, and ship it to Google.
  4. Download the data to the on-premises data center, and upload it to the Cloud Storage bucket.
Show answer and explanation

Correct answer: B. Use the Storage Transfer Service to move the data.

Storage Transfer Service is Google's recommended solution for migrating data from third-party cloud providers to Cloud Storage. It handles network optimization, retry logic, and monitoring automatically. For 10 TB from a third-party provider, it's faster, more reliable, and follows Google best practices compared to manual approaches.

Why the other options are wrong

  • A. The gsutil mv command is for local file operations and isn't optimized for large-scale cloud-to-cloud transfers from third-party providers.
  • C. Transfer Appliance is designed for petabyte-scale on-premises data centers, not for 10 TB cloud-to-cloud transfers, making it unnecessarily complex and expensive.
  • D. Downloading to on-premises data center and re-uploading is slower, more expensive in bandwidth costs, and doesn't follow Google-recommended practices.

Question 20

A development team at your company has created a dockerized HTTPS web application. You need to deploy the application on Google Kubernetes Engine (GKE) and make sure that the application scales automatically. How should you deploy to GKE?

  1. Use the Horizontal Pod Autoscaler and enable cluster autoscaling. Use an Ingress resource to load-balance the HTTPS traffic.
  2. Use the Horizontal Pod Autoscaler and enable cluster autoscaling on the Kubernetes cluster. Use a Service resource of type LoadBalancer to load-balance the HTTPS traffic.
  3. Enable autoscaling on the Compute Engine instance group. Use an Ingress resource to load-balance the HTTPS traffic.
  4. Enable autoscaling on the Compute Engine instance group. Use a Service resource of type LoadBalancer to load-balance the HTTPS traffic.
Show answer and explanation

Correct answer: B. Use the Horizontal Pod Autoscaler and enable cluster autoscaling on the Kubernetes cluster. Use a Service resource of type LoadBalancer to load-balance the HTTPS traffic.

For automatic scaling in GKE, use the Horizontal Pod Autoscaler (HPA) to scale pods based on metrics and enable cluster autoscaling to scale the underlying nodes. For HTTPS load balancing, a LoadBalancer Service is the appropriate Kubernetes-native resource that creates a Google Cloud Load Balancer with HTTPS support. This approach uses GKE's native capabilities rather than managing Compute Engine instance groups directly.

Why the other options are wrong

  • A. While Ingress can handle HTTPS, it's better suited for Layer 7 routing; a LoadBalancer Service is more appropriate for straightforward HTTPS load balancing across the cluster.
  • C. Managing Compute Engine instance group autoscaling is lower-level and not the recommended approach when using GKE, which abstracts this complexity.
  • D. Manually managing Compute Engine instance groups contradicts using GKE's native autoscaling capabilities and is not the recommended practice.

Question 21

You are working at an institution that processes medical data. You are migrating several workloads onto Google Cloud. Company policies require all workloads to run on physically separated hardware, and workloads from different clients must also be separated. You created a sole-tenant node group and added a node for each client. You need to deploy the workloads on these dedicated hosts. What should you do?

  1. Add the node group name as a network tag when creating Compute Engine instances in order to host each workload on the correct node group.
  2. Add the node name as a network tag when creating Compute Engine instances in order to host each workload on the correct node.
  3. Use node affinity labels based on the node group name when creating Compute Engine instances in order to host each workload on the correct node group.
  4. Use node affinity labels based on the node name when creating Compute Engine instances in order to host each workload on the correct node.
Show answer and explanation

Correct answer: D. Use node affinity labels based on the node name when creating Compute Engine instances in order to host each workload on the correct node.

Node affinity labels are the correct mechanism in Google Cloud to ensure instances run on specific nodes. Since the requirement specifies workload separation at the individual node level (one node per client), you must use node affinity labels based on the node name. This ensures each client's workload runs on its dedicated node. Network tags are used for firewall rules, not for placement constraints. Node group affinity would only guarantee placement within a group, not on a specific node.

Why the other options are wrong

  • A. Network tags are firewall constructs, not placement directives for nodes.
  • B. Network tags cannot be used to enforce node placement or affinity.
  • C. Node group affinity is insufficient; you need to target specific nodes, not just the group, since each client requires its own dedicated node.

Question 22

An application development team has come to you for advice. They are planning to write and deploy an HTTP(S) API using Go 1.12. The API will have a very unpredictable workload and must remain reliable during peaks in traffic. They want to minimize operational overhead for this application. Which approach should you recommend?

  1. Develop the application with containers, and deploy to Google Kubernetes Engine.
  2. Develop the application for App Engine standard environment.
  3. Use a Managed Instance Group when deploying to Compute Engine.
  4. Develop the application for App Engine flexible environment, using a custom runtime.
Show answer and explanation

Correct answer: B. Develop the application for App Engine standard environment.

App Engine standard environment is the optimal choice for this scenario because it automatically handles unpredictable workloads through built-in autoscaling, requires minimal operational overhead with fully managed infrastructure, and provides native support for Go 1.12. It abstracts away all infrastructure concerns while delivering the reliability and scalability needed for traffic peaks.

Why the other options are wrong

  • A. GKE requires significantly more operational overhead for cluster management, node configuration, and maintenance despite offering container flexibility.
  • C. Managed Instance Groups still require manual configuration of scaling policies and instance management, increasing operational burden.
  • D. App Engine flexible environment has more operational overhead than standard and is better suited for applications requiring custom runtime features not available in standard.

Question 23

Your company has just acquired another company, and you have been asked to integrate their existing Google Cloud environment into your company's data center. Upon investigation, you discover that some of the RFC 1918 IP ranges being used in the new company's Virtual Private Cloud (VPC) overlap with your data center IP space. What should you do to enable connectivity and make sure that there are no routing conflicts when connectivity is established?

  1. Create a Cloud VPN connection from the new VPC to the data center, create a Cloud Router, and apply new IP addresses so there is no overlapping IP space.
  2. Create a Cloud VPN connection from the new VPC to the data center, and create a Cloud NAT instance to perform NAT on the overlapping IP space.
  3. Create a Cloud VPN connection from the new VPC to the data center, create a Cloud Router, and apply a custom route advertisement to block the overlapping IP space.
  4. Create a Cloud VPN connection from the new VPC to the data center, and apply a firewall rule that blocks the overlapping IP space.
Show answer and explanation

Correct answer: A. Create a Cloud VPN connection from the new VPC to the data center, create a Cloud Router, and apply new IP addresses so there is no overlapping IP space.

When RFC 1918 ranges overlap between a VPC and on-premises infrastructure, the only viable solution is to reassign IP addresses to eliminate the overlap before establishing connectivity. Cloud VPN with Cloud Router provides the secure connection mechanism, but routing will fail if overlapping IP space exists. NAT (option B) cannot reliably handle bidirectional traffic between overlapping ranges. Firewall rules (option D) cannot prevent routing conflicts. Custom route advertisement blocking (option C) would prevent connectivity entirely rather than resolve the issue.

Why the other options are wrong

  • B. NAT cannot properly handle overlapping RFC 1918 ranges for bidirectional communication
  • C. Blocking routes prevents connectivity rather than resolving the overlap issue
  • D. Firewall rules cannot resolve routing conflicts caused by overlapping IP space

Question 24

You have developed a non-critical update to your application that is running in a managed instance group, and have created a new instance template with the update that you want to release. To prevent any possible impact to the application, you don't want to update any running instances. You want any new instances that are created by the managed instance group to contain the new update. What should you do?

  1. Start a new rolling restart operation.
  2. Start a new rolling replace operation.
  3. Start a new rolling update. Select the Proactive update mode.
  4. Start a new rolling update. Select the Opportunistic update mode.
Show answer and explanation

Correct answer: D. Start a new rolling update. Select the Opportunistic update mode.

Opportunistic update mode applies updates only to new instances created after the template change, without modifying existing running instances. This perfectly matches the requirement to leave running instances untouched while ensuring new instances get the update. Proactive mode (option C) actively replaces existing instances, which violates the constraint of not updating running instances. Rolling replace and rolling restart operations modify existing instances, making them unsuitable.

Why the other options are wrong

  • A. Rolling restart restarts existing instances, which disrupts running applications
  • B. Rolling replace terminates and recreates existing instances, causing service disruption
  • C. Proactive update mode actively updates existing instances, contradicting the requirement to leave them untouched

Question 25

You need to develop procedures to test a disaster plan for a mission-critical application. You want to use Google-recommended practices and native capabilities within GCP. What should you do?

  1. Use Deployment Manager to automate service provisioning. Use Activity Logs to monitor and debug your tests.
  2. Use Deployment Manager to automate service provisioning. Use Stackdriver to monitor and debug your tests.
  3. Use gcloud scripts to automate service provisioning. Use Activity Logs to monitor and debug your tests.
  4. Use gcloud scripts to automate service provisioning. Use Stackdriver to monitor and debug your tests.
Show answer and explanation

Correct answer: B. Use Deployment Manager to automate service provisioning. Use Stackdriver to monitor and debug your tests.

Deployment Manager is Google's recommended tool for infrastructure-as-code automation to provision services for disaster recovery testing. Stackdriver (now Cloud Operations) is Google's recommended monitoring and debugging platform for observing and troubleshooting your applications and infrastructure during these tests. This combination represents Google's native, best-practice approach.

Why the other options are wrong

  • A. Activity Logs (Audit Logs) are primarily for compliance and auditing, not for real-time monitoring and debugging of application performance during disaster recovery tests.
  • C. gcloud scripts are lower-level command-line tools; Deployment Manager is the recommended best practice for infrastructure automation.
  • D. gcloud scripts are not the recommended approach; Deployment Manager provides better infrastructure-as-code practices for repeatable disaster recovery testing.

25 questions in. Want the rest? The first half of the pack, free by email · The full pack

Question 26

You are migrating your on-premises solution to Google Cloud in several phases. You will use Cloud VPN to maintain a connection between your on-premises systems and Google Cloud until the migration is completed. You want to make sure all your on-premise systems remain reachable during this period. How should you organize your networking in Google Cloud?

  1. Use the same IP range on Google Cloud as you use on-premises
  2. Use the same IP range on Google Cloud as you use on-premises for your primary IP range and use a secondary range that does not overlap with the range you use on-premises
  3. Use an IP range on Google Cloud that does not overlap with the range you use on-premises
  4. Use an IP range on Google Cloud that does not overlap with the range you use on-premises for your primary IP range and use a secondary range with the same IP range as you use on-premises
Show answer and explanation

Correct answer: C. Use an IP range on Google Cloud that does not overlap with the range you use on-premises

When using Cloud VPN to connect on-premises systems to Google Cloud, the IP ranges must not overlap. Using overlapping IP ranges would cause routing conflicts and make it impossible for on-premises systems to reach resources in Google Cloud with the same IP range, breaking connectivity. Non-overlapping ranges allow the VPN gateway to route traffic correctly between the two networks. This is a fundamental requirement for site-to-site VPN connectivity.

Why the other options are wrong

  • A. Using the same IP range on both sides creates routing conflicts and prevents proper VPN communication.
  • B. While secondary ranges could be non-overlapping, using the same primary range creates the same routing problem as option A.
  • D. Using the same IP range for the secondary range on-premises still creates conflicts with the on-premises primary range and is unnecessarily complex.

Question 27

You are deploying an application on App Engine that needs to integrate with an on-premises database. For security purposes, your on-premises database must not be accessible through the public internet. What should you do?

  1. Deploy your application on App Engine standard environment and use App Engine firewall rules to limit access to the open on-premises database.
  2. Deploy your application on App Engine standard environment and use Cloud VPN to limit access to the on-premises database.
  3. Deploy your application on App Engine flexible environment and use App Engine firewall rules to limit access to the on-premises database.
  4. Deploy your application on App Engine flexible environment and use Cloud VPN to limit access to the on-premises database.
Show answer and explanation

Correct answer: D. Deploy your application on App Engine flexible environment and use Cloud VPN to limit access to the on-premises database.

App Engine flexible environment supports VPC connector integration, enabling secure communication with on-premises resources via Cloud VPN without exposing the database to the public internet. App Engine firewall rules alone cannot create a secure tunnel to on-premises systems. Standard environment does not support VPC connectors for on-premises connectivity. Cloud VPN establishes an encrypted tunnel that keeps the on-premises database completely isolated from public internet access while allowing authenticated application traffic.

Why the other options are wrong

  • A. App Engine firewall rules do not provide secure on-premises connectivity; they only filter traffic within GCP.
  • B. Standard environment lacks VPC connector support needed for secure on-premises database access.
  • C. While flexible environment is correct, App Engine firewall rules alone cannot secure on-premises database connectivity without a VPN tunnel.

Question 28

Your customer support tool logs all email and chat conversations to Cloud Bigtable for retention and analysis. What is the recommended approach for sanitizing this data of personally identifiable information or payment card information before initial storage?

  1. Hash all data using SHA256
  2. Encrypt all data using elliptic curve cryptography
  3. De-identify the data with the Cloud Data Loss Prevention API
  4. Use regular expressions to find and redact phone numbers, email addresses, and credit card numbers
Show answer and explanation

Correct answer: C. De-identify the data with the Cloud Data Loss Prevention API

The Cloud Data Loss Prevention API (C) is purpose-built for detecting and de-identifying PII and payment card information at scale before storage. It uses machine learning and pattern matching to identify sensitive data types and apply appropriate redaction, masking, or tokenization, the recommended approach for sanitizing sensitive data.

Why the other options are wrong

  • A. Hashing is one-way and irreversible; it doesn't sanitize data for storage and analysis where the original data needs to be recovered.
  • B. Encryption secures data but doesn't de-identify or sanitize it; encrypted PII is still PII and poses compliance risks.
  • D. Regular expressions are brittle, error-prone, and miss many PII patterns; they lack the sophistication of a dedicated DLP service.

Question 29

Your company's user-feedback portal comprises a standard LAMP stack replicated across two zones. It is deployed in the us-central1 region and uses autoscaled managed instance groups on all layers, except the database. Currently, only a small group of select customers have access to the portal. The portal meets a 99,99% availability SLA under these conditions. However next quarter, your company will be making the portal available to all users, including unauthenticated users. You need to develop a resiliency testing strategy to ensure the system maintains the SLA once they introduce additional user load. What should you do?

  1. Capture existing users input, and replay captured user load until autoscale is triggered on all layers. At the same time, terminate all resources in one of the zones
  2. Create synthetic random user input, replay synthetic load until autoscale logic is triggered on at least one layer, and introduce "chaos" to the system by terminating random resources on both zones
  3. Expose the new system to a larger group of users, and increase group size each day until autoscale logic is triggered on all layers. At the same time, terminate random resources on both zones
  4. Capture existing users input, and replay captured user load until resource utilization crosses 80%. Also, derive estimated number of users based on existing user's usage of the app, and deploy enough resources to handle 200% of expected load
Show answer and explanation

Correct answer: B. Create synthetic random user input, replay synthetic load until autoscale logic is triggered on at least one layer, and introduce "chaos" to the system by terminating random resources on both zones

Effective resiliency testing requires both realistic load simulation and failure injection. Option B uses synthetic load to verify autoscaling behavior across layers and introduces chaos engineering (random resource termination in both zones) to test actual failover capabilities. This comprehensive approach validates the system can maintain 99.99% SLA under increased load with real failures occurring.

Why the other options are wrong

  • A. Using only captured existing user load is insufficient to test new user scale; terminating resources in only one zone doesn't fully test cross-zone resilience.
  • C. Exposing real unauthenticated users to untested infrastructure is risky and doesn't provide controlled testing conditions.
  • D. Reactive resource deployment based on 80% utilization doesn't test autoscaling triggers; 200% over-provisioning masks real scalability issues rather than validating them.

Question 30

You want to allow your operations team to store logs from all the production projects in your Organization, without including logs from other projects. All of the production projects are contained in a folder. You want to ensure that all logs for existing and new production projects are captured automatically. What should you do?

  1. Create an aggregated export on the Production folder. Set the log sink to be a Cloud Storage bucket in an operations project.
  2. Create an aggregated export on the Organization resource. Set the log sink to be a Cloud Storage bucket in an operations project.
  3. Create log exports in the production projects. Set the log sinks to be a Cloud Storage bucket in an operations project.
  4. Create log exports in the production projects. Set the log sinks to be BigQuery datasets in the production projects, and grant IAM access to the operations team to run queries on the datasets.
Show answer and explanation

Correct answer: A. Create an aggregated export on the Production folder. Set the log sink to be a Cloud Storage bucket in an operations project.

Creating an aggregated export at the folder level automatically captures logs from all projects within that folder, including new projects added in the future. This satisfies the requirement to capture existing and new production projects without manually configuring each project. A folder-level export is more scalable and maintainable than managing individual project exports.

Why the other options are wrong

  • B. Organization-level export would capture logs from all projects in the organization, including non-production projects, violating the requirement to exclude logs from other projects.
  • C. While individual project exports would work, they don't automatically capture new production projects and require manual configuration for each project.
  • D. BigQuery datasets in production projects don't provide centralized storage in an operations project, and this approach requires manual per-project setup.

Question 31

Your company has successfully migrated to the cloud and wants to analyze their data stream to optimize operations. They do not have any existing code for this analysis, so they are exploring all their options. These options include a mix of batch and stream processing, as they are running some hourly jobs and live-processing some data as it comes in. Which technology should they use for this?

  1. Google Cloud Dataproc
  2. Google Cloud Dataflow
  3. Google Container Engine with Bigtable
  4. Google Compute Engine with Google BigQuery
Show answer and explanation

Correct answer: B. Google Cloud Dataflow

Google Cloud Dataflow is a unified stream and batch processing service built on Apache Beam. It handles both streaming data processing (live data as it arrives) and batch processing (hourly jobs) within a single framework, making it ideal for mixed workloads. Unlike other options, Dataflow is specifically designed for both processing paradigms without requiring separate tools.

Why the other options are wrong

  • A. Dataproc is designed for Hadoop and Spark batch processing; it is not optimized for stream processing.
  • C. Container Engine with Bigtable requires custom code development and lacks the built-in processing abstractions of Dataflow.
  • D. Compute Engine with BigQuery separates storage from processing and is not a stream processing solution.

Question 32

Auditors visit your teams every 12 months and ask to review all the Google Cloud Identity and Access Management (Cloud IAM) policy changes in the previous 12 months. You want to streamline and expedite the analysis and audit process. What should you do?

  1. Create custom Google Stackdriver alerts and send them to the auditor
  2. Enable Logging export to Google BigQuery and use ACLs and views to scope the data shared with the auditor
  3. Use cloud functions to transfer log entries to Google Cloud SQL and use ACLs and views to limit an auditor's view
  4. Enable Google Cloud Storage (GCS) log export to audit logs into a GCS bucket and delegate access to the bucket
Show answer and explanation

Correct answer: B. Enable Logging export to Google BigQuery and use ACLs and views to scope the data shared with the auditor

Exporting Cloud IAM policy change logs to BigQuery enables efficient querying, analysis, and filtering of audit data. BigQuery's ACLs and views allow you to create custom views that scope the data shared with auditors to only relevant IAM policy changes, making the audit process streamlined and expedited while maintaining security and data governance. This approach is auditor-friendly, searchable, and supports complex queries across 12 months of data.

Why the other options are wrong

  • A. Custom Stackdriver alerts are designed for real-time monitoring notifications, not for historical audit log analysis or review.
  • C. Cloud SQL is not optimized for large-scale log analysis and adds unnecessary ETL complexity compared to BigQuery's native log integration.
  • D. GCS bucket exports lack the query and analysis capabilities needed for efficient audit log review; BigQuery is purpose-built for this use case.

Question 33

You are tasked with building an online analytical processing (OLAP) marketing analytics and reporting tool. This requires a relational database that can operate on hundreds of terabytes of data. What is the Google-recommended tool for such applications?

  1. Cloud Spanner, because it is globally distributed
  2. Cloud SQL, because it is a fully managed relational database
  3. Cloud Firestore, because it offers real-time synchronization across devices
  4. BigQuery, because it is designed for large-scale processing of tabular data
Show answer and explanation

Correct answer: D. BigQuery, because it is designed for large-scale processing of tabular data

BigQuery is Google's purpose-built data warehouse designed for large-scale analytical processing on massive datasets (hundreds of terabytes). It excels at OLAP workloads, supports SQL queries, and provides automatic scaling and cost efficiency for analytical reporting applications.

Why the other options are wrong

  • A. Cloud Spanner is designed for globally distributed transactional workloads, not analytical processing at petabyte scale.
  • B. Cloud SQL is suitable for transactional databases with operational workloads, not for OLAP on hundreds of terabytes of data.
  • C. Cloud Firestore is a NoSQL document database designed for real-time synchronization, not for large-scale analytical processing.

Question 34

Your company has a Kubernetes application that pulls messages from Pub/Sub and stores them in Filestore. Because the application is simple, it was deployed as a single pod. The infrastructure team has analyzed Pub/Sub metrics and discovered that the application cannot process the messages in real time. Most of them wait for minutes before being processed. You need to scale the elaboration process that is I/O-intensive. What should you do?

  1. Use kubectl autoscale deployment APP_NAME --max 6 --min 2 --cpu-percent 50 to configure Kubernetes autoscaling deployment.
  2. Configure a Kubernetes autoscaling deployment based on the subscription/push_request_latencies metric.
  3. Use the --enable-autoscaling flag when you create the Kubernetes cluster.
  4. Configure a Kubernetes autoscaling deployment based on the subscription/num_undelivered_messages metric.
Show answer and explanation

Correct answer: D. Configure a Kubernetes autoscaling deployment based on the subscription/num_undelivered_messages metric.

For an I/O-intensive application pulling messages from Pub/Sub, the optimal scaling metric is the number of undelivered messages (subscription/num_undelivered_messages). When messages queue up, this metric increases, triggering horizontal pod autoscaling to add more replicas to process messages faster. This metric directly reflects the application's workload and responsiveness.

Why the other options are wrong

  • A. CPU-based autoscaling is unsuitable for I/O-intensive workloads that don't heavily use CPU; the application will scale too slowly based on irrelevant metrics.
  • B. Push request latencies measure delivery latency from Pub/Sub, not the application's processing backlog, making it a poor scaling indicator.
  • C. The --enable-autoscaling flag enables node autoscaling for the cluster itself, not pod-level autoscaling needed to scale the message processing workload.

Question 35

The operations team in your company wants to save Cloud VPN log events for one year. You need to configure the cloud infrastructure to save the logs. What should you do?

  1. Set up a filter in Cloud Logging and a Cloud Storage bucket as an export target for the logs you want to save.
  2. Enable the Compute Engine API, and then enable logging on the firewall rules that match the traffic you want to save.
  3. Set up a Cloud Logging Dashboard titled Cloud VPN Logs, and then add a chart that queries for the VPN metrics over a one-year time period.
  4. Set up a filter in Cloud Logging and a topic in Pub/Sub to publish the logs.
Show answer and explanation

Correct answer: A. Set up a filter in Cloud Logging and a Cloud Storage bucket as an export target for the logs you want to save.

To save Cloud VPN logs for a one-year retention period, you need to export them to persistent storage. Setting up a filter in Cloud Logging and exporting to a Cloud Storage bucket is the standard approach for long-term log retention. Cloud Storage provides durable, cost-effective storage with configurable retention policies, making it ideal for compliance and archival requirements.

Why the other options are wrong

  • B. Enabling logging on firewall rules captures traffic logs but doesn't configure the export destination for one-year retention.
  • C. A Cloud Logging Dashboard is for visualization and querying, not for persistent storage of logs over time.
  • D. Pub/Sub is a message queue for real-time streaming, not a permanent storage solution for year-long log retention.

Question 36

Your company wants to try out the cloud with low risk. They want to archive approximately 100 TB of their log data to the cloud and test the analytics features available to them there, while also retaining that data as a long-term disaster recovery backup. Which two steps should you take? (Choose two.)

  1. Load logs into Google BigQuery
  2. Load logs into Google Cloud SQL
  3. Import logs into Google Stackdriver
  4. Insert logs into Google Cloud Bigtable
  5. Upload log files into Google Cloud Storage
Show answer and explanation

Correct answer: A, E. Load logs into Google BigQuery; Upload log files into Google Cloud Storage

BigQuery (A) is the optimal choice for analytics on large datasets like logs, providing powerful querying and analysis capabilities. Cloud Storage (E) serves as the long-term, cost-effective disaster recovery backup for the 100 TB of log data. Together, they satisfy both requirements: analytics testing and archival backup with low risk and minimal upfront investment.

Why the other options are wrong

  • B. Cloud SQL is designed for transactional databases, not for archiving 100 TB of unstructured log data or performing analytics at scale.
  • C. Stackdriver (now Cloud Logging) is for log ingestion and management, not for the kind of analytics testing and long-term archival backup the company needs.
  • D. Bigtable is a NoSQL database requiring significant operational overhead and is not the recommended approach for simple log archival or analytics compared to BigQuery and Cloud Storage.

Question 37

You are developing your microservices application on Google Kubernetes Engine. During testing, you want to validate the behavior of your application in case a specific microservice should suddenly crash. What should you do?

  1. Add a taint to one of the nodes of the Kubernetes cluster. For the specific microservice, configure a pod anti-affinity label that has the name of the tainted node as a value.
  2. Use Istio's fault injection on the particular microservice whose faulty behavior you want to simulate.
  3. Destroy one of the nodes of the Kubernetes cluster to observe the behavior.
  4. Configure Istio's traffic management features to steer the traffic away from a crashing microservice.
Show answer and explanation

Correct answer: B. Use Istio's fault injection on the particular microservice whose faulty behavior you want to simulate.

Istio's fault injection feature is the proper tool for chaos testing microservices by simulating failures like crashes, delays, and connection errors. This allows you to test application resilience without actually destroying infrastructure. Fault injection can inject faults into specific microservices to observe how the system handles failures in a controlled manner.

Why the other options are wrong

  • A. Taints and pod anti-affinity prevent pod scheduling but don't simulate a crash or test failure behavior.
  • C. Destroying a node is destructive and uncontrolled; it's not a proper testing methodology and could disrupt the actual application.
  • D. Traffic management steers traffic away from services but doesn't simulate or validate the behavior when a microservice crashes.

Question 38

You want to establish a Compute Engine application in a single VPC across two regions. The application must communicate over VPN to an on-premises network. How should you deploy the VPN?

  1. Use VPC Network Peering between the VPC and the on-premises network.
  2. Expose the VPC to the on-premises network using IAM and VPC Sharing.
  3. Create a global Cloud VPN Gateway with VPN tunnels from each region to the on-premises peer gateway.
  4. Deploy Cloud VPN Gateway in each region. Ensure that each region has at least one VPN tunnel to the on-premises peer gateway.
Show answer and explanation

Correct answer: D. Deploy Cloud VPN Gateway in each region. Ensure that each region has at least one VPN tunnel to the on-premises peer gateway.

For a single VPC spanning two regions with on-premises connectivity, the recommended approach is to deploy Cloud VPN Gateways in each region, with each having at least one tunnel to the on-premises peer gateway. This provides redundancy and ensures both regions can communicate with on-premises infrastructure. Cloud VPN is regional, so you need one gateway per region to serve that region's traffic.

Why the other options are wrong

  • A. VPC Network Peering connects two VPCs; it cannot connect to on-premises networks, which require VPN or Interconnect.
  • B. IAM and VPC Sharing are identity and access management tools, not networking solutions for on-premises connectivity.
  • C. Cloud VPN Gateway is regional, not global; you cannot create a single global gateway to serve multiple regions.

Question 39

Your web application uses Google Kubernetes Engine to manage several workloads. One workload requires a consistent set of hostnames even after pod scaling and relaunches. Which feature of Kubernetes should you use to accomplish this?

  1. StatefulSets
  2. Role-based access control
  3. Container environment variables
  4. Persistent Volumes
Show answer and explanation

Correct answer: A. StatefulSets

StatefulSets in Kubernetes are specifically designed to manage stateful applications requiring stable, persistent hostnames. Each pod in a StatefulSet gets a unique, stable hostname that persists across pod restarts and scaling operations, following a predictable naming pattern (e.g., pod-0, pod-1). This is exactly what the workload requires for consistent hostnames after scaling and relaunches.

Why the other options are wrong

  • B. RBAC controls who can access Kubernetes resources, not hostname consistency.
  • C. Environment variables are set at pod creation and don't provide persistent, stable hostnames across pod lifecycle events.
  • D. Persistent Volumes address storage persistence, not hostname consistency for pods.

Question 40

You are using a single Cloud SQL instance to serve your application from a specific zone. You want to introduce high availability. What should you do?

  1. Create a read replica instance in a different region
  2. Create a failover replica instance in a different region
  3. Create a read replica instance in the same region, but in a different zone
  4. Create a failover replica instance in the same region, but in a different zone
Show answer and explanation

Correct answer: D. Create a failover replica instance in the same region, but in a different zone

To introduce high availability while minimizing latency and network costs, a failover replica in the same region but different zone provides automatic failover capability without the overhead of cross-region replication. This maintains acceptable replication lag while ensuring zone-level failure tolerance.

Why the other options are wrong

  • A. Read replicas across regions support read scaling but do not provide automatic failover for high availability.
  • B. While a failover replica in a different region provides HA, it introduces unnecessary latency and complexity when same-region redundancy is sufficient.
  • C. Read replicas do not provide automatic failover; they are designed for read scaling only.

Question 41

Your marketing department wants to send out a promotional email campaign. The development team wants to minimize direct operation management. They project a wide range of possible customer responses, from 100 to 500,000 click-through per day. The link leads to a simple website that explains the promotion and collects user information and preferences. Which infrastructure should you recommend? (Choose two.)

  1. Use Google App Engine to serve the website and Google Cloud Datastore to store user data.
  2. Use a Google Container Engine cluster to serve the website and store data to persistent disk.
  3. Use a managed instance group to serve the website and Google Cloud Bigtable to store user data.
  4. Use a single Compute Engine virtual machine (VM) to host a web server, backend by Google Cloud SQL.
Show answer and explanation

Correct answer: A, C. Use Google App Engine to serve the website and Google Cloud Datastore to store user data; Use a managed instance group to serve the website and Google Cloud Bigtable to store user data.

App Engine (A) is a serverless platform that automatically scales from zero to handle traffic spikes without operational overhead, and Cloud Datastore is a fully managed NoSQL database that scales automatically. Cloud Storage (C) with a managed instance group or similar can also scale, but the combination of App Engine with Cloud Datastore is optimal for the variable load (100 to 500,000 requests per day) with minimal operations required.

Why the other options are wrong

  • B. Container Engine requires managing the cluster and persistent disk has scaling and performance limitations for this variable load pattern.
  • D. A single Compute Engine VM cannot scale horizontally and will fail under the projected maximum load of 500,000 requests per day.

Question 42

Your team will start developing a new application using microservices architecture on Kubernetes Engine. As part of the development lifecycle, any code change that has been pushed to the remote develop branch on your GitHub repository should be built and tested automatically. When the build and test are successful, the relevant microservice will be deployed automatically in the development environment. You want to ensure that all code deployed in the development environment follows this process. What should you do?

  1. Have each developer install a pre-commit hook on their workstation that tests the code and builds the container when committing on the development branch. After a successful commit, have the developer deploy the newly built container image on the development cluster.
  2. Install a post-commit hook on the remote git repository that tests the code and builds the container when code is pushed to the development branch. After a successful commit, have the developer deploy the newly built container image on the development cluster.
  3. Create a Cloud Build trigger based on the development branch that tests the code, builds the container, and stores it in Container Registry. Create a deployment pipeline that watches for new images and deploys the new image on the development cluster. Ensure only the deployment tool has access to deploy new versions.
  4. Create a Cloud Build trigger based on the development branch to build a new container image and store it in Container Registry. Rely on Vulnerability Scanning to ensure the code tests succeed. As the final step of the Cloud Build process, deploy the new container image on the development cluster. Ensure only Cloud Build has access to deploy new versions.
Show answer and explanation

Correct answer: C. Create a Cloud Build trigger based on the development branch that tests the code, builds the container, and stores it in Container Registry. Create a deployment pipeline that watches for new images and deploys the new image on the development cluster. Ensure only the deployment tool has access to deploy new versions.

Cloud Build trigger automatically tests and builds on code push to the develop branch, storing images in Container Registry. A separate deployment pipeline watches for new images and automatically deploys to the development cluster. This ensures all code follows the automated process and only the deployment tool can push to production, preventing manual deployments that bypass testing. This is the most robust and automated approach.

Why the other options are wrong

  • A. Pre-commit hooks on developer workstations are not enforceable and rely on developers to follow the process; developers could still manually deploy or skip the hook.
  • B. Post-commit hooks on the git repository still require manual deployment by developers, which is error-prone and doesn't enforce the automated process.
  • D. While Cloud Build automates testing and building, relying on Vulnerability Scanning is not a substitute for actual code tests, and directly deploying from Cloud Build in the final step doesn't separate the build and deployment concerns.

Question 43

You want to make a copy of a production Linux virtual machine in the US-Central region. You want to manage and replace the copy easily if there are changes on the production virtual machine. You will deploy the copy as a new instance in a different project in the US-East region. What steps must you take?

  1. Use the Linux dd and netcat commands to copy and stream the root disk contents to a new virtual machine instance in the US-East region.
  2. Create a snapshot of the root disk and select the snapshot as the root disk when you create a new virtual machine instance in the US-East region.
  3. Create an image file from the root disk with Linux dd command, create a new virtual machine instance in the US-East region
  4. Create a snapshot of the root disk, create an image file in Google Cloud Storage from the snapshot, and create a new virtual machine instance in the US-East region using the image file the root disk.
Show answer and explanation

Correct answer: D. Create a snapshot of the root disk, create an image file in Google Cloud Storage from the snapshot, and create a new virtual machine instance in the US-East region using the image file the root disk.

To copy a VM across regions (US-Central to US-East) and different projects while maintaining manageability, Option D is correct: create a snapshot of the root disk, create an image from that snapshot in Cloud Storage, then use that image to instantiate the new VM in the target region and project. Snapshots alone are regional, so creating an image enables cross-region portability. This approach allows easy replacement and updates. Using dd/netcat (A) is manual and error-prone, snapshots alone (B) are regional and can't cross projects easily, and dd without image creation (C) lacks proper versioning and management.

Why the other options are wrong

  • A. Manual dd/netcat copying is error-prone, difficult to manage, and lacks GCP-native version control.
  • B. Snapshots are regional; they cannot easily be used across different projects and regions without conversion to an image.
  • C. Creating an image via dd command on the instance is manual and doesn't leverage GCP's image management capabilities for cross-project portability.

Question 44

You are implementing a single Cloud SQL MySQL second-generation database that contains business-critical transaction data. You want to ensure that the minimum amount of data is lost in case of catastrophic failure. Which two features should you implement? (Choose two.)

  1. Sharding
  2. Read replicas
  3. Binary logging
  4. Automated backups
  5. Semisynchronous replication
Show answer and explanation

Correct answer: C, D. Binary logging; Automated backups

Binary logging (C) enables point-in-time recovery by recording all database changes, allowing you to recover to any moment before a failure. Automated backups (D) provide periodic snapshots for recovery from catastrophic failures. Together, these features minimize data loss: backups provide recovery points, and binary logs allow recovery between backup intervals. Sharding (A) distributes data but doesn't prevent loss. Read replicas (B) provide availability but not backup protection. Semisynchronous replication (E) improves durability for a single instance but isn't necessary for second-generation Cloud SQL with automated backups and binary logging.

Why the other options are wrong

  • A. Sharding distributes data across multiple instances for performance and availability, not for disaster recovery or minimizing data loss.
  • B. Read replicas provide high availability and read scaling but do not protect against data loss if the primary instance fails.
  • E. Semisynchronous replication ensures replicas acknowledge writes before commit, useful for multi-instance setups but not the primary mechanism for minimizing loss in a single-instance deployment.

Question 45

Your company wants to start using Google Cloud resources but wants to retain their on-premises Active Directory domain controller for identity management. What should you do?

  1. Use the Admin Directory API to authenticate against the Active Directory domain controller.
  2. Use Google Cloud Directory Sync to synchronize Active Directory usernames with cloud identities and configure SAML SSO.
  3. Use Cloud Identity-Aware Proxy configured to use the on-premises Active Directory domain controller as an identity provider.
  4. Use Compute Engine to create an Active Directory (AD) domain controller that is a replica of the on-premises AD domain controller using Google Cloud Directory Sync.
Show answer and explanation

Correct answer: B. Use Google Cloud Directory Sync to synchronize Active Directory usernames with cloud identities and configure SAML SSO.

Google Cloud Directory Sync synchronizes on-premises Active Directory users with Google Cloud Identity, allowing the company to maintain their existing AD infrastructure while enabling cloud resource access. Combined with SAML SSO configuration, this enables seamless authentication against the on-premises AD domain controller from Google Cloud resources.

Why the other options are wrong

  • A. The Admin Directory API is for managing cloud identities, not for authenticating against on-premises Active Directory domain controllers.
  • C. Cloud Identity-Aware Proxy is designed for application-level access control, not for synchronizing on-premises AD with cloud identities.
  • D. Creating a replica AD domain controller defeats the purpose of retaining the on-premises domain controller for identity management.

Question 46

Your web application has several VM instances running within a VPC. You want to restrict communications between instances to only the paths and ports you authorize, but you don't want to rely on static IP addresses or subnets because the app can autoscale. How should you restrict communications?

  1. Use separate VPCs to restrict traffic
  2. Use firewall rules based on network tags attached to the compute instances
  3. Use Cloud DNS and only allow connections from authorized hostnames
  4. Use service accounts and configure the web application to authorize particular service accounts to have access
Show answer and explanation

Correct answer: B. Use firewall rules based on network tags attached to the compute instances

Network tags attached to compute instances allow firewall rules to dynamically apply restrictions based on instance metadata rather than static IP addresses or subnets. This approach scales with autoscaling since new instances can be tagged appropriately, enabling fine-grained port and protocol restrictions without requiring static addressing.

Why the other options are wrong

  • A. Separate VPCs would isolate instances but prevent communication between them, which is not the goal.
  • C. Cloud DNS resolves hostnames to IP addresses but does not provide traffic restriction capabilities at the network level.
  • D. Service accounts control API access to GCP resources, not inter-instance network communication policies.

Question 47

Your company has a Google Workspace account and Google Cloud Organization. Some developers in the company have created Google Cloud projects outside of the Google Cloud Organization. You want to create an Organization structure that allows developers to create projects, but prevents them from modifying production projects. You want to manage policies for all projects centrally and be able to set more restrictive policies for production projects. You want to minimize disruption to users and developers when business needs change in the future. You want to follow Google-recommended practices. Now should you design the Organization structure?

  1. 1. Create a second Google Workspace account and Organization. 2. Grant all developers the Project Creator IAM role on the new Organization. 3. Move the developer projects into the new Organization. 4. Set the policies for all projects on both Organizations. 5. Additionally, set the production policies on the original Organization.
  2. 1. Create a folder under the Organization resource named "Production." 2. Grant all developers the Project Creator IAM role on the new Organization. 3. Move the developer projects into the new Organization. 4. Set the policies for all projects on the Organization. 5. Additionally, set the production policies on the "Production" folder.
  3. 1. Create folders under the Organization resource named "Development" and "Production." 2. Grant all developers the Project Creator IAM role on the "Development" folder. 3. Move the developer projects into the "Development" folder. 4. Set the policies for all projects on the Organization. 5. Additionally, set the production policies on the "Production" folder.
  4. 1. Designate the Organization for production projects only. 2. Ensure that developers do not have the Project Creator IAM role on the Organization. 3. Create development projects outside of the Organization using the developer Google Workspace accounts. 4. Set the policies for all projects on the Organization. 5. Additionally, set the production policies on the individual production projects.
Show answer and explanation

Correct answer: C. 1. Create folders under the Organization resource named "Development" and "Production." 2. Grant all developers the Project Creator IAM role on the "Development" folder. 3. Move the developer projects into the "Development" folder. 4. Set the policies for all projects on the Organization. 5. Additionally, set the production policies on the "Production" folder.

Creating separate Development and Production folders under the Organization allows centralized policy management at the organization level while enabling production-specific policies on the Production folder. Granting developers Project Creator on the Development folder allows them to create projects without affecting production, and moving existing developer projects into Development provides minimal disruption while following Google's recommended practices of using folder hierarchies for policy separation.

Why the other options are wrong

  • A. Creating a second Organization duplicates management overhead and prevents centralized policy management across all projects.
  • B. Granting Project Creator on the Organization level allows developers to create production projects, which violates the goal of preventing modification of production resources.
  • D. Leaving development projects outside the Organization prevents centralized policy management and creates operational complexity rather than minimizing disruption.

Question 48

You are creating an App Engine application that uses Cloud Datastore as its persistence layer. You need to retrieve several root entities for which you have the identifiers. You want to minimize the overhead in operations performed by Cloud Datastore. What should you do?

  1. Create the Key object for each Entity and run a batch get operation
  2. Create the Key object for each Entity and run multiple get operations, one operation for each entity
  3. Use the identifiers to create a query filter and run a batch query operation
  4. Use the identifiers to create a query filter and run multiple query operations, one operation for each entity
Show answer and explanation

Correct answer: A. Create the Key object for each Entity and run a batch get operation

To minimize overhead when retrieving multiple root entities by identifier, you should create Key objects for each entity and perform a single batch get operation. Batch operations are more efficient than multiple individual operations as they reduce network round-trips and API call overhead. Query filters (options C and D) are less efficient for known entity identifiers and incur additional query processing overhead compared to direct key-based lookups.

Why the other options are wrong

  • B. Multiple individual get operations incur more overhead than a single batch operation.
  • C. Query filters are less efficient than batch key lookups and incur query processing overhead.
  • D. Multiple query operations are inefficient and incur more overhead than batch key operations.

Question 49

You are running a cluster on Kubernetes Engine (GKE) to serve a web application. Users are reporting that a specific part of the application is not responding anymore. You notice that all pods of your deployment keep restarting after 2 seconds. The application writes logs to standard output. You want to inspect the logs to find the cause of the issue. Which approach can you take?

  1. Review the Stackdriver logs for each Compute Engine instance that is serving as a node in the cluster.
  2. Review the Stackdriver logs for the specific GKE container that is serving the unresponsive part of the application.
  3. Connect to the cluster using gcloud credentials and connect to a container in one of the pods to read the logs.
  4. Review the Serial Port logs for each Compute Engine instance that is serving as a node in the cluster.
Show answer and explanation

Correct answer: B. Review the Stackdriver logs for the specific GKE container that is serving the unresponsive part of the application.

When pods are continuously restarting and applications write logs to stdout, Stackdriver (Cloud Logging) automatically captures container logs. Viewing the Stackdriver logs specifically for the problematic GKE container provides direct access to the application's standard output, which will reveal the cause of the restart loop.

Why the other options are wrong

  • A. Node-level logs would show system-level issues, not application output written to stdout within containers.
  • C. Connecting to a restarting container is impractical since the pod restarts every 2 seconds, making it difficult to capture logs.
  • D. Serial Port logs are for VM console output, not for application container logs running on Kubernetes.

Question 50

Your company has announced that they will be outsourcing operations functions. You want to allow developers to easily stage new versions of a cloud-based application in the production environment and allow the outsourced operations team to autonomously promote staged versions to production. You want to minimize the operational overhead of the solution. Which Google Cloud product should you migrate to?

  1. App Engine
  2. GKE On-Prem
  3. Compute Engine
  4. Google Kubernetes Engine
Show answer and explanation

Correct answer: D. Google Kubernetes Engine

Google Kubernetes Engine (GKE) is the ideal choice for this scenario. It allows developers to easily stage new versions in production and enables the outsourced operations team to autonomously promote staged versions using Kubernetes deployment strategies (rolling updates, canary deployments, etc.). GKE minimizes operational overhead through managed Kubernetes, automated scaling, and built-in deployment tools. App Engine (A) is simpler but lacks the flexibility for staged deployments and autonomous operations control. GKE On-Prem (B) adds operational complexity. Compute Engine (C) requires manual instance management.

Why the other options are wrong

  • A. App Engine abstracts infrastructure but provides less control for staging versions and autonomous promotion workflows that operations teams need.
  • B. GKE On-Prem adds significant operational overhead compared to the managed GKE service.
  • C. Compute Engine requires manual deployment and promotion processes, increasing operational overhead rather than minimizing it.

50 questions in. Want the rest? The first half of the pack, free by email · The full pack

Question 51

You have deployed several instances on Compute Engine. As a security requirement, instances cannot have a public IP address. There is no VPN connection between Google Cloud and your office, and you need to connect via SSH into a specific machine without violating the security requirements. What should you do?

  1. Configure Cloud NAT on the subnet where the instance is hosted. Create an SSH connection to the Cloud NAT IP address to reach the instance.
  2. Add all instances to an unmanaged instance group. Configure TCP Proxy Load Balancing with the instance group as a backend. Connect to the instance using the TCP Proxy IP.
  3. Configure Identity-Aware Proxy (IAP) for the instance and ensure that you have the role of IAP-secured Tunnel User. Use the gcloud command line tool to ssh into the instance.
  4. Create a bastion host in the network to SSH into the bastion host from your office location. From the bastion host, SSH into the desired instance.
Show answer and explanation

Correct answer: C. Configure Identity-Aware Proxy (IAP) for the instance and ensure that you have the role of IAP-secured Tunnel User. Use the gcloud command line tool to ssh into the instance.

Identity-Aware Proxy (IAP) is Google Cloud's recommended solution for SSH access to instances without public IPs. IAP provides secure, authenticated tunneling through Google's infrastructure without requiring VPN or bastion hosts. With the IAP-secured Tunnel User role and gcloud CLI, you can SSH directly into the instance while maintaining the security requirement of no public IP addresses.

Why the other options are wrong

  • A. Cloud NAT allows outbound internet access but doesn't provide inbound SSH connectivity to instances without public IPs.
  • B. TCP Proxy Load Balancing is designed for load balancing traffic, not for providing SSH access to individual instances.
  • D. While a bastion host works, it requires an additional instance and is not the Google-recommended best practice when IAP is available.

Question 52

Your company has sensitive data in Cloud Storage buckets. Data analysts have Identity Access Management (IAM) permissions to read the buckets. You want to prevent data analysts from retrieving the data in the buckets from outside the office network. What should you do?

  1. 1. Create a VPC Service Controls perimeter that includes the projects with the buckets. 2. Create an access level with the CIDR of the office network.
  2. 1. Create a firewall rule for all instances in the Virtual Private Cloud (VPC) network for source range. 2. Use the Classless Inter-domain Routing (CIDR) of the office network.
  3. 1. Create a Cloud Function to remove IAM permissions from the buckets, and another Cloud Function to add IAM permissions to the buckets. 2. Schedule the Cloud Functions with Cloud Scheduler to add permissions at the start of business and remove permissions at the end of business.
  4. 1. Create a Cloud VPN to the office network. 2. Configure Private Google Access for on-premises hosts.
Show answer and explanation

Correct answer: A. 1. Create a VPC Service Controls perimeter that includes the projects with the buckets. 2. Create an access level with the CIDR of the office network.

Option A uses VPC Service Controls to create a security perimeter around projects containing Cloud Storage buckets and defines an access level restricting data access to the office network CIDR. This prevents data analysts from reading bucket data from outside the office, even if they have IAM permissions. VPC Service Controls operates at the service level and is specifically designed for this use case. Option B applies firewall rules only to Compute Engine instances, not to Cloud Storage. Option C dynamically removes/adds IAM permissions, which is complex and doesn't prevent network-based access. Option D uses Cloud VPN and Private Google Access, which enable access rather than restrict it.

Why the other options are wrong

  • B. Firewall rules apply to Compute Engine traffic, not to Cloud Storage API calls made by data analysts.
  • C. Dynamically adding/removing IAM permissions based on time is operationally complex and doesn't prevent network-based access control.
  • D. Cloud VPN and Private Google Access enable secure access from on-premises to Google Cloud services, which is the opposite of restricting access.

Question 53

You created a pipeline that can deploy your source code changes to your infrastructure in instance groups for self-healing. One of the changes negatively affects your key performance indicator. You are not sure how to fix it, and investigation could take up to a week. What should you do?

  1. Log in to a server, and iterate on the fox locally
  2. Revert the source code change, and rerun the deployment pipeline
  3. Log into the servers with the bad code change, and swap in the previous code
  4. Change the instance group template to the previous one, and delete all instances
Show answer and explanation

Correct answer: B. Revert the source code change, and rerun the deployment pipeline

Reverting the source code change and rerunning the deployment pipeline (B) is the correct approach because it maintains infrastructure-as-code principles, ensures reproducibility, and quickly restores the system to a known good state. This follows best practices for continuous deployment and allows investigation to happen on non-production infrastructure without business impact.

Why the other options are wrong

  • A. Manual iteration on a live server breaks the deployment pipeline principle and makes the infrastructure state untrackable and unreproducible.
  • C. Manually swapping code on servers circumvents the deployment pipeline, violates infrastructure-as-code principles, and creates configuration drift.
  • D. Changing the instance group template and deleting instances is cumbersome, slower than reverting code, and doesn't follow the principle of maintaining infrastructure through source control.

Question 54

Your company has a Google Cloud project that uses BigQuery for data warehousing. There are some tables that contain personally identifiable information (PII). Only the compliance team may access the PII. The other information in the tables must be available to the data science team. You want to minimize cost and the time it takes to assign appropriate access to the tables. What should you do?

  1. 1. From the dataset where you have the source data, create views of tables that you want to share, excluding PII. 2. Assign an appropriate project-level IAM role to the members of the data science team. 3. Assign access controls to the dataset that contains the view.
  2. 1. From the dataset where you have the source data, create materialized views of tables that you want to share, excluding PII. 2. Assign an appropriate project-level IAM role to the members of the data science team. 3. Assign access controls to the dataset that contains the view.
  3. 1. Create a dataset for the data science team. 2. Create views of tables that you want to share, excluding PII. 3. Assign an appropriate project-level IAM role to the members of the data science team. 4. Assign access controls to the dataset that contains the view. 5. Authorize the view to access the source dataset.
  4. 1. Create a dataset for the data science team. 2. Create materialized views of tables that you want to share, excluding PII. 3. Assign an appropriate project-level IAM role to the members of the data science team. 4. Assign access controls to the dataset that contains the view. 5. Authorize the view to access the source dataset.
Show answer and explanation

Correct answer: C. 1. Create a dataset for the data science team. 2. Create views of tables that you want to share, excluding PII. 3. Assign an appropriate project-level IAM role to the members of the data science team. 4. Assign access controls to the dataset that contains the view. 5. Authorize the view to access the source dataset.

Option C creates a separate dataset for the data science team with views that exclude PII columns. This approach provides proper access isolation: the compliance team retains access to the original dataset with full data, while the data science team accesses only the sanitized view. Authorizing the view to access the source dataset enables this separation with minimal configuration overhead.

Why the other options are wrong

  • A. Using regular views in the source dataset doesn't provide proper access isolation; both the compliance team and data science team would need access to the same dataset.
  • B. Materialized views create physical copies of data, which is more costly and requires more storage than regular views for this use case.
  • D. Materialized views are unnecessarily expensive for this scenario since regular views provide the same logical separation at lower cost.

Question 55

You have an application that makes HTTP requests to Cloud Storage. Occasionally the requests fail with HTTP status codes of 5xx and 429. How should you handle these types of errors?

  1. Use gRPC instead of HTTP for better performance.
  2. Implement retry logic using a truncated exponential backoff strategy.
  3. Make sure the Cloud Storage bucket is multi-regional for geo-redundancy.
  4. Monitor https://status.cloud.google.com/feed.atom and only make requests if Cloud Storage is not reporting an incident.
Show answer and explanation

Correct answer: B. Implement retry logic using a truncated exponential backoff strategy.

HTTP 5xx errors indicate server-side issues and 429 errors indicate rate limiting. Both are transient errors that should be retried. Implementing retry logic with truncated exponential backoff is the Google-recommended best practice for handling transient failures, as it allows the system to recover while avoiding overwhelming the service with immediate retries.

Why the other options are wrong

  • A. Using gRPC instead of HTTP doesn't address the root cause of 5xx and 429 errors, which are service availability issues.
  • C. Multi-regional redundancy doesn't prevent 429 rate-limiting errors or resolve transient 5xx failures from the service itself.
  • D. Monitoring the status page is not a programmatic solution and doesn't handle individual request failures; the application should handle transient errors gracefully through retries.

Question 56

You need to set up Microsoft SQL Server on GCP. Management requires that there's no downtime in case of a data center outage in any of the zones within a GCP region. What should you do?

  1. Configure a Cloud SQL instance with high availability enabled.
  2. Configure a Cloud Spanner instance with a regional instance configuration.
  3. Set up SQL Server on Compute Engine, using Always On Availability Groups using Windows Failover Clustering. Place nodes in different subnets.
  4. Set up SQL Server Always On Availability Groups using Windows Failover Clustering. Place nodes in different zones.
Show answer and explanation

Correct answer: D. Set up SQL Server Always On Availability Groups using Windows Failover Clustering. Place nodes in different zones.

For SQL Server on GCP with zone-level redundancy, you must use Compute Engine instances with Always On Availability Groups and Windows Failover Clustering distributed across different zones. This ensures automatic failover when a zone becomes unavailable. Cloud SQL (option A) is a managed service but doesn't support SQL Server with the same HA guarantees across zones. Cloud Spanner (option B) is not SQL Server. Option C places nodes in different subnets within the same zone, which doesn't protect against zone outages.

Why the other options are wrong

  • A. Cloud SQL doesn't provide the zone-level redundancy required for SQL Server across multiple zones.
  • B. Cloud Spanner is a different database product, not Microsoft SQL Server.
  • C. Placing nodes in different subnets within the same zone doesn't protect against zone outages.

Question 57

Your company has just recently activated Cloud Identity to manage users. The Google Cloud Organization has been configured as well. The security team needs to secure projects that will be part of the Organization. They want to prohibit IAM users outside the domain from gaining permissions from now on. What should they do?

  1. Configure an organization policy to restrict identities by domain.
  2. Configure an organization policy to block creation of service accounts.
  3. Configure Cloud Scheduler to trigger a Cloud Function every hour that removes all users that don't belong to the Cloud Identity domain from all projects.
  4. Create a technical user (e.g., crawler@yourdomain.com), and give it the project owner role at root organization level. Write a bash script that: • Lists all the IAM rules of all projects within the organization. • Deletes all users that do not belong to the company domain. Create a Compute Engine instance in a project within the Organization and configure gcloud to be executed with technical user credentials. Configure a cron job that executes the bash script every hour.
Show answer and explanation

Correct answer: A. Configure an organization policy to restrict identities by domain.

Organization policies provide the native Google Cloud mechanism to enforce security constraints across an organization. The domain restriction organization policy prevents IAM users outside the specified Cloud Identity domain from gaining permissions, directly addressing the security team's requirement. This is an automated, policy-based solution that scales across all projects.

Why the other options are wrong

  • B. Restricting service account creation doesn't prevent external domain users from gaining permissions on existing accounts.
  • D. While technically feasible, this manual scripting approach is unmaintainable, error-prone, and not a Google-recommended practice compared to native organization policies.

Question 58

You are creating a solution to remove backup files older than 90 days from your backup Cloud Storage bucket. You want to optimize ongoing Cloud Storage spend. What should you do?

  1. Write a lifecycle management rule in XML and push it to the bucket with gsutil
  2. Write a lifecycle management rule in JSON and push it to the bucket with gsutil
  3. Schedule a cron script using gsutil ls -lr gs://backups/** to find and remove items older than 90 days
  4. Schedule a cron script using gsutil ls -l gs://backups/** to find and remove items older than 90 days and schedule it with cron
Show answer and explanation

Correct answer: B. Write a lifecycle management rule in JSON and push it to the bucket with gsutil

Cloud Storage lifecycle management rules, defined in JSON format and pushed via gsutil, automatically delete objects matching specified criteria (such as age over 90 days) without requiring custom scripts or manual intervention. This is the proper, scalable, and cost-effective approach to managing backup retention policies.

Why the other options are wrong

  • A. Lifecycle rules are defined in JSON, not XML, for Cloud Storage.
  • C. The gsutil ls -lr syntax is incorrect and a cron script requires manual maintenance and monitoring.
  • D. Custom cron scripts are inefficient, error-prone, and more expensive than built-in lifecycle rules.

Question 59

One of your primary business objectives is being able to trust the data stored in your application. You want to log all changes to the application data. How can you design your logging system to verify authenticity of your logs?

  1. Write the log concurrently in the cloud and on premises
  2. Use a SQL database and limit who can modify the log table
  3. Digitally sign each timestamp and log entry and store the signature
  4. Create a JSON dump of each log entry and store it in Google Cloud Storage
Show answer and explanation

Correct answer: C. Digitally sign each timestamp and log entry and store the signature

Digital signatures provide cryptographic proof that log entries have not been tampered with and confirm their authenticity. By signing each timestamp and log entry with a private key, you create an unforgeable record where any modification to the log would invalidate the signature, making tampering immediately detectable. This is the industry standard approach for ensuring log integrity and non-repudiation in security-critical systems.

Why the other options are wrong

  • A. Writing logs in multiple locations does not verify authenticity; distributed copies can all be modified identically without detection.
  • B. Access controls on a database only prevent unauthorized modifications by limiting permissions, but do not detect if an authorized user or compromised account alters logs.
  • D. Storing JSON dumps in cloud storage provides backups but offers no mechanism to verify that logs have not been altered since creation.

Question 60

A recent audit revealed that a new network was created in your GCP project. In this network, a GCE instance has an SSH port open to the world. You want to discover this network's origin. What should you do?

  1. Search for Create VM entry in the Stackdriver alerting console
  2. Navigate to the Activity page in the Home section. Set category to Data Access and search for Create VM entry
  3. In the Logging section of the console, specify GCE Network as the logging section. Search for the Create Insert entry
  4. Connect to the GCE instance using project SSH keys. Identify previous logins in system logs, and match these with the project owners list
Show answer and explanation

Correct answer: C. In the Logging section of the console, specify GCE Network as the logging section. Search for the Create Insert entry

The Cloud Logging section (formerly Stackdriver Logging) with GCE Network as the resource type will capture network creation events. Searching for 'Insert' entries in the logs will reveal when the network was created, including who created it and when. This is the proper forensic approach using Cloud's audit logs. The Activity page is for broader project-level actions, Stackdriver alerting is for alerts not historical audit, and SSH logs on the instance only show login activity, not network creation events which happen at the GCP API level.

Why the other options are wrong

  • A. Stackdriver alerting is for setting up alerts on conditions, not for historical audit log searches.
  • B. The Activity page shows Data Access and Admin Activity but is less granular than Cloud Logging for network-specific resource creation events.
  • D. System login logs on the instance won't reveal when the network was created; that metadata is in GCP audit logs, not OS logs.

Question 61

You are deploying a PHP App Engine Standard service with Cloud SQL as the backend. You want to minimize the number of queries to the database. What should you do?

  1. Set the memcache service level to dedicated. Create a key from the hash of the query, and return database values from memcache before issuing a query to Cloud SQL.
  2. Set the memcache service level to dedicated. Create a cron task that runs every minute to populate the cache with keys containing query results.
  3. Set the memcache service level to shared. Create a cron task that runs every minute to save all expected queries to a key called "cached_queries".
  4. Set the memcache service level to shared. Create a key called "cached_queries", and return database values from the key before using a query to Cloud SQL.
Show answer and explanation

Correct answer: A. Set the memcache service level to dedicated. Create a key from the hash of the query, and return database values from memcache before issuing a query to Cloud SQL.

To minimize database queries, use dedicated memcache (which is more reliable and performant for App Engine Standard) and implement cache-aside pattern: create cache keys from query hashes, check memcache first for results, and only query Cloud SQL if the key is not found. This approach leverages memcache for frequently-accessed data while maintaining cache validity.

Why the other options are wrong

  • B. A cron task that populates cache every minute adds unnecessary database load and doesn't adapt to actual query patterns or data changes.
  • C. Shared memcache is less reliable for production applications, and storing all queries in a single key defeats the purpose of caching individual results.
  • D. Shared memcache lacks the reliability needed for consistent query caching, and the single key approach prevents efficient cache invalidation and doesn't leverage memcache's distributed nature.

Question 62

You are managing an application deployed on Cloud Run for Anthos, and you need to define a strategy for deploying new versions of the application. You want to evaluate the new code with a subset of production traffic to decide whether to proceed with the rollout. What should you do?

  1. Deploy a new revision to Cloud Run with the new version. Configure traffic percentage between revisions.
  2. Deploy a new service to Cloud Run with the new version. Add a Cloud Load Balancing instance in front of both services.
  3. In the Google Cloud Console page for Cloud Run, set up continuous deployment using Cloud Build for the development branch. As part of the Cloud Build trigger, configure the substitution variable TRAFFIC_PERCENTAGE with the percentage of traffic you want directed to a new version.
  4. In the Google Cloud Console, configure Traffic Director with a new Service that points to the new version of the application on Cloud Run. Configure Traffic Director to send a small percentage of traffic to the new version of the application.
Show answer and explanation

Correct answer: A. Deploy a new revision to Cloud Run with the new version. Configure traffic percentage between revisions.

Cloud Run natively supports traffic splitting between revisions, allowing deployment of a new revision with traffic percentage configuration to direct a subset of production traffic to the new version for evaluation. This is the simplest, native Cloud Run feature for canary deployments. If the new version performs well, traffic can be gradually increased; if issues occur, traffic is rolled back to the stable revision.

Why the other options are wrong

  • B. Deploying separate services and using Cloud Load Balancing adds unnecessary complexity when Cloud Run's native traffic splitting provides this capability.
  • C. Cloud Build continuous deployment triggers are for automated builds and deployments, not for managing traffic percentages to existing revisions.
  • D. Traffic Director is designed for advanced routing across global infrastructure; it is overkill for simple canary deployments on Cloud Run which has native support.

Question 63

A small number of API requests to your microservices-based application take a very long time. You know that each request to the API can traverse many services. You want to know which service takes the longest in those cases. What should you do?

  1. Set timeouts on your application so that you can fail requests faster
  2. Send custom metrics for each of your requests to Stackdriver Monitoring
  3. Use Stackdriver Monitoring to look for insights that show when your API latencies are high
  4. Instrument your application with Stackdriver Trace in order to break down the request latencies at each microservice
Show answer and explanation

Correct answer: D. Instrument your application with Stackdriver Trace in order to break down the request latencies at each microservice

Stackdriver Trace (now Cloud Trace) instruments applications to capture end-to-end request latency across microservices, breaking down where time is spent at each service hop. This direct visibility into request flow through the service mesh is exactly what's needed to identify which service causes slowness in specific API requests.

Why the other options are wrong

  • A. Setting timeouts fails requests faster but doesn't identify the problematic service causing the latency.
  • B. Custom metrics to Monitoring show aggregate metrics but lack the per-request granularity needed to trace specific slow requests through services.
  • C. Monitoring dashboards show when latencies are high but don't break down which service in the chain is responsible for delays.

Question 64

Your team needs to create a Google Kubernetes Engine (GKE) cluster to host a newly built application that requires access to third-party services on the internet. Your company does not allow any Compute Engine instance to have a public IP address on Google Cloud. You need to create a deployment strategy that adheres to these guidelines. What should you do?

  1. Configure the GKE cluster as a private cluster, and configure Cloud NAT Gateway for the cluster subnet.
  2. Configure the GKE cluster as a private cluster. Configure Private Google Access on the Virtual Private Cloud (VPC).
  3. Configure the GKE cluster as a route-based cluster. Configure Private Google Access on the Virtual Private Cloud (VPC).
  4. Create a Compute Engine instance, and install a NAT Proxy on the instance. Configure all workloads on GKE to pass through this proxy to access third-party services on the Internet.
Show answer and explanation

Correct answer: A. Configure the GKE cluster as a private cluster, and configure Cloud NAT Gateway for the cluster subnet.

Option A is correct because a private GKE cluster prevents Compute Engine instances from having public IP addresses, and Cloud NAT Gateway enables outbound internet access for third-party services without requiring public IPs. This configuration allows nodes and pods to communicate with external services while maintaining the requirement that no instance has a public IP address. The combination directly addresses both the security requirement and the functional need for internet access.

Why the other options are wrong

  • B. Private Google Access only enables access to Google Cloud services, not third-party services on the internet.
  • C. Route-based clusters are deprecated and don't provide the same level of security isolation as private clusters.
  • D. Installing a NAT Proxy on a Compute Engine instance would require that instance to have internet connectivity, likely violating the no-public-IP policy.

Question 65

Your company has a networking team and a development team. The development team runs applications on Compute Engine instances that contain sensitive data. The development team requires administrative permissions for Compute Engine. Your company requires all network resources to be managed by the networking team. The development team does not want the networking team to have access to the sensitive data on the instances. What should you do?

  1. 1. Create a project with a standalone VPC and assign the Network Admin role to the networking team. 2. Create a second project with a standalone VPC and assign the Compute Admin role to the development team. 3. Use Cloud VPN to join the two VPCs.
  2. 1. Create a project with a standalone Virtual Private Cloud (VPC), assign the Network Admin role to the networking team, and assign the Compute Admin role to the development team.
  3. 1. Create a project with a Shared VPC and assign the Network Admin role to the networking team. 2. Create a second project without a VPC, configure it as a Shared VPC service project, and assign the Compute Admin role to the development team.
  4. 1. Create a project with a standalone VPC and assign the Network Admin role to the networking team. 2. Create a second project with a standalone VPC and assign the Compute Admin role to the development team. 3. Use VPC Peering to join the two VPCs.
Show answer and explanation

Correct answer: C. 1. Create a project with a Shared VPC and assign the Network Admin role to the networking team. 2. Create a second project without a VPC, configure it as a Shared VPC service project, and assign the Compute Admin role to the development team.

Shared VPC allows centralized network management by the networking team while isolating sensitive data. By making the development project a Shared VPC service project, the networking team (with Network Admin role in the host project) manages all network resources, while the development team (with Compute Admin role in the service project) manages instances and data without accessing the host project network controls. This enforces separation of concerns and protects data from network team access.

Why the other options are wrong

  • A. Using separate projects with VPN doesn't enforce that the networking team cannot access the development project; Network Admin in one project still has significant permissions.
  • B. Assigning both roles to the same project means the networking team would have both Network Admin and indirect access to Compute resources, violating the separation requirement.
  • D. VPC Peering with separate projects still doesn't prevent the networking team from accessing or affecting the development project's resources through their Network Admin role.

Question 66

You have an application that runs in Google Kubernetes Engine (GKE). Over the last 2 weeks, customers have reported that a specific part of the application returns errors very frequently. You currently have no logging or monitoring solution enabled on your GKE cluster. You want to diagnose the problem, but you have not been able to replicate the issue. You want to cause minimal disruption to the application. What should you do?

  1. 1. Update your GKE cluster to use Cloud Operations for GKE. 2. Use the GKE Monitoring dashboard to investigate logs from affected Pods.
  2. 1. Create a new GKE cluster with Cloud Operations for GKE enabled. 2. Migrate the affected Pods to the new cluster, and redirect traffic for those Pods to the new cluster. 3. Use the GKE Monitoring dashboard to investigate logs from affected Pods.
  3. 1. Update your GKE cluster to use Cloud Operations for GKE, and deploy Prometheus. 2. Set an alert to trigger whenever the application returns an error.
  4. 1. Create a new GKE cluster with Cloud Operations for GKE enabled, and deploy Prometheus. 2. Migrate the affected Pods to the new cluster, and redirect traffic for those Pods to the new cluster. 3. Set an alert to trigger whenever the application returns an error.
Show answer and explanation

Correct answer: A. 1. Update your GKE cluster to use Cloud Operations for GKE. 2. Use the GKE Monitoring dashboard to investigate logs from affected Pods.

Updating the existing cluster to enable Cloud Operations for GKE provides immediate logging and monitoring capability with minimal disruption. This allows diagnosis of the intermittent errors through dashboard investigation. Option B unnecessarily creates a new cluster and migrates workloads, causing additional complexity and potential disruption. Option C adds Prometheus, which requires additional configuration and doesn't leverage Cloud Operations' native integration. Option D combines unnecessary cluster creation with additional tooling overhead.

Why the other options are wrong

  • B. Creating a new cluster and migrating workloads causes unnecessary complexity and disruption
  • C. Deploying Prometheus adds unnecessary complexity when Cloud Operations is already integrated with GKE
  • D. Creating a new cluster is unnecessary and causes disruption when the existing cluster can be updated

Question 67

You want to automate the creation of a managed instance group. The VMs have many OS package dependencies. You want to minimize the startup time for new VMs in the instance group. What should you do?

  1. Use Terraform to create the managed instance group and a startup script to install the OS package dependencies.
  2. Create a custom VM image with all OS package dependencies. Use Deployment Manager to create the managed instance group with the VM image.
  3. Use Puppet to create the managed instance group and install the OS package dependencies.
  4. Use Deployment Manager to create the managed instance group and Ansible to install the OS package dependencies.
Show answer and explanation

Correct answer: B. Create a custom VM image with all OS package dependencies. Use Deployment Manager to create the managed instance group with the VM image.

To minimize startup time for VMs with many OS package dependencies, the best approach is to create a custom VM image with all dependencies pre-installed. This eliminates the need for package installation during VM startup, dramatically reducing initialization time. Using Deployment Manager to orchestrate the managed instance group creation is a standard GCP approach. Startup scripts and configuration management tools like Puppet or Ansible add startup overhead by installing packages at runtime, defeating the goal of minimizing startup time.

Why the other options are wrong

  • A. Startup scripts install packages at runtime, increasing startup time rather than minimizing it.
  • C. Puppet would still need to install dependencies at runtime, adding significant startup delay.
  • D. Ansible would also install dependencies at runtime, adding startup overhead similar to startup scripts.

Question 68

Your organization requires that metrics from all applications be retained for 5 years for future analysis in possible legal proceedings. Which approach should you use?

  1. Grant the security team access to the logs in each Project
  2. Configure Stackdriver Monitoring for all Projects, and export to BigQuery
  3. Configure Stackdriver Monitoring for all Projects with the default retention policies
  4. Configure Stackdriver Monitoring for all Projects, and export to Google Cloud Storage
Show answer and explanation

Correct answer: B. Configure Stackdriver Monitoring for all Projects, and export to BigQuery

Stackdriver Monitoring with export to BigQuery provides 5-year retention capability. BigQuery's cost-effective storage, full queryability, and compliance with legal hold requirements make it suitable for long-term metrics retention and analysis. Exporting to BigQuery bypasses Stackdriver's default short-term retention policies (typically 30 days to 1 year) and enables archival of metrics across all projects for legal proceedings.

Why the other options are wrong

  • A. Granting security team access to logs in each Project doesn't address retention duration or centralized storage for analysis.
  • C. Default Stackdriver Monitoring retention is only 30 days to 1 year, insufficient for the required 5-year retention.
  • D. While Cloud Storage can store data for 5 years economically, it lacks queryability for analysis and is less suited to structured metrics data than BigQuery.

Question 69

You are designing a Data Warehouse on Google Cloud and want to store sensitive data in BigQuery. Your company requires you to generate the encryption keys outside of Google Cloud. You need to implement a solution. What should you do?

  1. Generate a new key in Cloud Key Management Service (Cloud KMS). Store all data in Cloud Storage using the customer-managed key option and select the created key. Set up a Dataflow pipeline to decrypt the data and to store it in a new BigQuery dataset.
  2. Generate a new key in Cloud KMS. Create a dataset in BigQuery using the customer-managed key option and select the created key.
  3. Import a key in Cloud KMS. Store all data in Cloud Storage using the customer-managed key option and select the created key. Set up a Dataflow pipeline to decrypt the data and to store it in a new BigQuery dataset.
  4. Import a key in Cloud KMS. Create a dataset in BigQuery using the customer-supplied key option and select the created key.
Show answer and explanation

Correct answer: D. Import a key in Cloud KMS. Create a dataset in BigQuery using the customer-supplied key option and select the created key.

To generate encryption keys outside Google Cloud and use them with BigQuery, keys must be imported into Cloud KMS and then used with the customer-supplied key (CSEK) option when creating the BigQuery dataset. This allows the company to maintain key generation and management outside Google Cloud while leveraging BigQuery's native encryption capabilities directly without requiring intermediate Cloud Storage or Dataflow processing.

Why the other options are wrong

  • A. This unnecessarily routes data through Cloud Storage and Dataflow for decryption, adding complexity and latency rather than using native BigQuery encryption.
  • B. Cloud KMS-generated keys are Google-managed, not customer-generated outside Google Cloud as required.
  • C. This approach stores data in Cloud Storage with unnecessary intermediate processing through Dataflow instead of directly encrypting the BigQuery dataset.

Question 70

You are developing a globally scaled frontend for a legacy streaming backend data API. This API expects events in strict chronological order with no repeat data for proper processing. Which products should you deploy to ensure guaranteed-once FIFO (first-in, first-out) delivery of data?

  1. Cloud Pub/Sub alone
  2. Cloud Pub/Sub to Cloud Dataflow
  3. Cloud Pub/Sub to Stackdriver
  4. Cloud Pub/Sub to Cloud SQL
Show answer and explanation

Correct answer: B. Cloud Pub/Sub to Cloud Dataflow

Cloud Pub/Sub alone does not guarantee FIFO ordering or exactly-once delivery semantics. Cloud Dataflow, when configured properly, provides exactly-once processing guarantees and can enforce FIFO ordering through stateful processing. The combination of Pub/Sub for ingestion and Dataflow for ordered processing with deduplication ensures that events are delivered exactly once in strict chronological order to the legacy backend API.

Why the other options are wrong

  • A. Cloud Pub/Sub provides at-least-once delivery but not guaranteed FIFO ordering or exactly-once semantics needed for this use case.
  • C. Stackdriver (Cloud Logging) is a monitoring and logging service, not a message processing system; it cannot enforce FIFO or exactly-once delivery.
  • D. Cloud SQL is a relational database; while it could store data, it is not designed for guaranteed-once FIFO message delivery from streaming sources.

Question 71

As part of implementing their disaster recovery plan, your company is trying to replicate their production MySQL database from their private data center to their GCP project using a Google Cloud VPN connection. They are experiencing latency issues and a small amount of packet loss that is disrupting the replication. What should they do?

  1. Configure their replication to use UDP.
  2. Configure a Google Cloud Dedicated Interconnect.
  3. Restore their database daily using Google Cloud SQL.
  4. Add additional VPN connections and load balance them.
  5. Send the replicated transaction to Google Cloud Pub/Sub.
Show answer and explanation

Correct answer: B. Configure a Google Cloud Dedicated Interconnect.

Configuring a Google Cloud Dedicated Interconnect (B) addresses the core issue: VPN connections have inherent latency and packet loss limitations due to their nature as encrypted tunnels over the internet. Dedicated Interconnect provides a private, high-bandwidth (up to 100 Gbps), low-latency connection between the data center and GCP, eliminating replication disruptions.

Why the other options are wrong

  • A. UDP is unreliable and would worsen replication issues; database replication requires TCP's reliability guarantees.
  • C. Cloud SQL restoration is a backup strategy, not a solution to the replication latency and packet loss problems.
  • D. Multiple VPN connections don't solve the fundamental latency and packet loss issues inherent to VPN technology.
  • E. Cloud Pub/Sub adds complexity and latency; it's not designed for synchronous database replication.

Question 72

You want your Google Kubernetes Engine cluster to automatically add or remove nodes based on CPU load. What should you do?

  1. Configure a HorizontalPodAutoscaler with a target CPU usage. Enable the Cluster Autoscaler from the GCP Console.
  2. Configure a HorizontalPodAutoscaler with a target CPU usage. Enable autoscaling on the managed instance group for the cluster using the gcloud command.
  3. Create a deployment and set the maxUnavailable and maxSurge properties. Enable the Cluster Autoscaler using the gcloud command.
  4. Create a deployment and set the maxUnavailable and maxSurge properties. Enable autoscaling on the cluster managed instance group from the GCP Console.
Show answer and explanation

Correct answer: A. Configure a HorizontalPodAutoscaler with a target CPU usage. Enable the Cluster Autoscaler from the GCP Console.

To automatically add or remove nodes based on CPU load in GKE, you need two components working together: HorizontalPodAutoscaler (HPA) scales pods based on target CPU usage, and Cluster Autoscaler scales the underlying nodes to accommodate the pods. HPA handles pod-level scaling, while Cluster Autoscaler handles node-level scaling. Both should be enabled for complete auto-scaling based on CPU load.

Why the other options are wrong

  • B. Using 'gcloud' command for managed instance group autoscaling is the old approach; Cluster Autoscaler should be enabled through the GCP Console or gcloud, but using managed instance group scaling directly bypasses GKE's integrated autoscaling.
  • C. maxUnavailable and maxSurge are deployment rolling update parameters, not autoscaling mechanisms; they don't enable automatic scaling based on CPU.
  • D. maxUnavailable and maxSurge do not trigger autoscaling; these are only used for rolling updates and don't respond to CPU load.

Question 73

You are designing a mobile chat application. You want to ensure people cannot spoof chat messages, by providing a message were sent by a specific user. What should you do?

  1. Tag messages client side with the originating user identifier and the destination user.
  2. Encrypt the message client side using block-based encryption with a shared key.
  3. Use public key infrastructure (PKI) to encrypt the message client side using the originating user's private key.
  4. Use a trusted certificate authority to enable SSL connectivity between the client application and the server.
Show answer and explanation

Correct answer: C. Use public key infrastructure (PKI) to encrypt the message client side using the originating user's private key.

Using PKI to encrypt with the originating user's private key (C) provides cryptographic proof of message origin through digital signatures. Only the user with the private key could have created that encrypted message, preventing spoofing and providing non-repudiation, the recipient can verify the message came from the claimed sender.

Why the other options are wrong

  • A. Client-side tagging can be spoofed; an attacker can simply tag a message with another user's identifier.
  • B. Shared-key encryption doesn't prove who sent the message, only that it came from someone with the shared key.
  • D. SSL connectivity secures the transport layer but doesn't authenticate the message content itself or prevent spoofing at the application level.

Question 74

Your customer runs a web service used by e-commerce sites to offer product recommendations to users. The company has begun experimenting with a machine learning model on Google Cloud Platform to improve the quality of results. What should the customer do to improve their model's results over time?

  1. Export Cloud Machine Learning Engine performance metrics from Stackdriver to BigQuery, to be used to analyze the efficiency of the model.
  2. Build a roadmap to move the machine learning model training from Cloud GPUs to Cloud TPUs, which offer better results.
  3. Monitor Compute Engine announcements for availability of newer CPU architectures, and deploy the model to them as soon as they are available for additional performance.
  4. Save a history of recommendations and results of the recommendations in BigQuery, to be used as training data.
Show answer and explanation

Correct answer: D. Save a history of recommendations and results of the recommendations in BigQuery, to be used as training data.

To improve machine learning model results over time, you need quality training data. Saving a history of recommendations and their outcomes in BigQuery creates a feedback loop that provides real-world data for retraining and improving the model. This is a fundamental ML best practice for continuous model improvement based on actual user interactions and recommendation performance.

Why the other options are wrong

  • A. Exporting performance metrics to BigQuery helps with analysis but doesn't directly improve model results without using that data for retraining.
  • B. Moving from GPUs to TPUs is an infrastructure optimization that doesn't inherently improve model quality or results.
  • C. Deploying to newer CPU architectures provides performance gains but doesn't improve the machine learning model's actual recommendations or accuracy.

Question 75

Your company acquired a healthcare startup and must retain its customers' medical information for up to 4 more years, depending on when it was created. Your corporate policy is to securely retain this data, and then delete it as soon as regulations allow. Which approach should you take?

  1. Store the data in Google Drive and manually delete records as they expire.
  2. Anonymize the data using the Cloud Data Loss Prevention API and store it indefinitely.
  3. Store the data in Cloud Storage and use lifecycle management to delete files when they expire.
  4. Store the data in Cloud Storage and run a nightly batch script that deletes all expired data.
Show answer and explanation

Correct answer: C. Store the data in Cloud Storage and use lifecycle management to delete files when they expire.

Cloud Storage with lifecycle management is the secure, scalable, and automated approach for retaining data for a variable duration (up to 4 years depending on creation date) and then deleting it. Lifecycle policies can be configured with object age conditions to automatically delete files when they expire, ensuring compliance with regulations while following the corporate policy of deleting data as soon as allowed.

Why the other options are wrong

  • A. Google Drive is not designed for large-scale healthcare data retention, and manual deletion is error-prone and doesn't scale.
  • B. Anonymizing data indefinitely defeats the purpose of the regulatory requirement to delete it; regulations typically require deletion, not anonymization.
  • D. A nightly batch script is less reliable and maintainable than lifecycle management, which provides automatic, auditable deletion at scale.

75 questions in. Want the rest? The first half of the pack, free by email · The full pack

Question 76

You have been asked to select the storage system for the click-data of your company's large portfolio of websites. This data is streamed in from a custom website analytics package at a typical rate of 6,000 clicks per minute. With bursts of up to 8,500 clicks per second. It must have been stored for future analysis by your data science and user experience teams. Which storage infrastructure should you choose?

  1. Google Cloud SQL
  2. Google Cloud Bigtable
  3. Google Cloud Storage
  4. Google Cloud Datastore
Show answer and explanation

Correct answer: B. Google Cloud Bigtable

Google Cloud Bigtable is purpose-built for high-volume, low-latency time-series data ingestion and analysis. It handles the write rates of 6,000 clicks per minute with bursts to 8,500 clicks per second efficiently, scales automatically, and provides excellent query performance for analytical workloads. Bigtable is the standard choice for click-stream and similar analytics use cases.

Why the other options are wrong

  • A. Cloud SQL is a relational database unsuitable for high-velocity click-stream data at this scale.
  • C. Cloud Storage is for object storage, not for querying structured time-series data efficiently.
  • D. Cloud Datastore is a document database not optimized for high-velocity time-series analytics at this scale.

Question 77

You are migrating third-party applications from optimized on-premises virtual machines to Google Cloud. You are unsure about the optimum CPU and memory options. The applications have a consistent usage pattern across multiple weeks. You want to optimize resource usage for the lowest cost. What should you do?

  1. Create an instance template with the smallest available machine type, and use an image of the third-party application taken from a current on-premises virtual machine. Create a managed instance group that uses average CPU utilization to autoscale the number of instances in the group. Modify the average CPU utilization threshold to optimize the number of instances running.
  2. Create an App Engine flexible environment, and deploy the third-party application using a Dockerfile and a custom runtime. Set CPU and memory options similar to your application's current on-premises virtual machine in the app.yaml file.
  3. Create multiple Compute Engine instances with varying CPU and memory options. Install the Cloud Monitoring agent, and deploy the thirdparty application on each of them. Run a load test with high traffic levels on the application, and use the results to determine the optimal settings.
  4. Create a Compute Engine instance with CPU and memory options similar to your application's current on-premises virtual machine. Install the Cloud Monitoring agent, and deploy the third-party application. Run a load test with normal traffic levels on the application, and follow the Rightsizing Recommendations in the Cloud Console.
Show answer and explanation

Correct answer: D. Create a Compute Engine instance with CPU and memory options similar to your application's current on-premises virtual machine. Install the Cloud Monitoring agent, and deploy the third-party application. Run a load test with normal traffic levels on the application, and follow the Rightsizing Recommendations in the Cloud Console.

Option D is correct because it uses Cloud's Rightsizing Recommendations feature, which analyzes actual application performance metrics over time to provide data-driven optimization suggestions. By deploying the application with similar specs to on-premises, running a normal load test, and following Google's Rightsizing Recommendations in the Console, you get the most cost-effective configuration without over-engineering or unnecessary testing.

Why the other options are wrong

  • A. Starting with the smallest machine type and autoscaling may result in poor performance and doesn't leverage Google's built-in rightsizing analysis.
  • B. App Engine flexible environment is not suitable for legacy third-party applications requiring specific system-level configurations.
  • C. Testing multiple configurations with high traffic is inefficient and costly compared to using Rightsizing Recommendations based on normal traffic patterns.

Question 78

Your company is running its application workloads on Compute Engine. The applications have been deployed in production, acceptance, and development environments. The production environment is business-critical and is used 24/7, while the acceptance and development environments are only critical during office hours. Your CFO has asked you to optimize these environments to achieve cost savings during idle times. What should you do?

  1. Create a shell script that uses the gcloud command to change the machine type of the development and acceptance instances to a smaller machine type outside of office hours. Schedule the shell script on one of the production instances to automate the task.
  2. Use Cloud Scheduler to trigger a Cloud Function that will stop the development and acceptance environments after office hours and start them just before office hours.
  3. Deploy the development and acceptance applications on a managed instance group and enable autoscaling.
  4. Use regular Compute Engine instances for the production environment, and use preemptible VMs for the acceptance and development environments.
Show answer and explanation

Correct answer: B. Use Cloud Scheduler to trigger a Cloud Function that will stop the development and acceptance environments after office hours and start them just before office hours.

Cloud Scheduler (B) paired with Cloud Functions provides the optimal solution: it automatically stops development and acceptance environments after office hours and starts them before office hours, reducing costs during idle times while ensuring readiness during work hours. This approach requires no modifications to instances and automates the entire process. Option A risks running on production instances and requires manual script management. Option C wastes resources since development/acceptance don't need autoscaling. Option D uses preemptible VMs, which are unpredictable and unsuitable for acceptance/development work during office hours.

Why the other options are wrong

  • A. Running scripts from production instances creates operational risk and lacks automation; manual scheduling is error-prone.
  • C. Autoscaling doesn't address idle time during non-office hours; instances will still consume resources unless stopped.
  • D. Preemptible VMs can be interrupted without warning, making them unsuitable for acceptance and development environments that need reliability during office hours.

Question 79

Your company has an application running as a Deployment in a Google Kubernetes Engine (GKE) cluster. You have separate clusters for development, staging, and production. You have discovered that the team is able to deploy a Docker image to the production cluster without first testing the deployment in development and then staging. You want to allow the team to have autonomy but want to prevent this from happening. You want a Google Cloud solution that can be implemented quickly with minimal effort. What should you do?

  1. Configure a Kubernetes lifecycle hook to prevent the container from starting if it is not approved for usage in the given environment.
  2. Implement a corporate policy to prevent teams from deploying Docker images to an environment unless the Docker image was tested in an earlier environment.
  3. Configure binary authorization policies for the development, staging, and production clusters. Create attestations as part of the continuous integration pipeline.
  4. Create a Kubernetes admissions controller to prevent the container from starting if it is not approved for usage in the given environment.
Show answer and explanation

Correct answer: C. Configure binary authorization policies for the development, staging, and production clusters. Create attestations as part of the continuous integration pipeline.

Binary Authorization with attestations enforces that container images can only be deployed to production if they have been approved through the development and staging environments. Attestations are created as part of the CI/CD pipeline when images pass testing in earlier environments. This provides policy-driven enforcement directly in GKE without requiring architectural changes, implementing it quickly with minimal effort while maintaining team autonomy.

Why the other options are wrong

  • A. Kubernetes lifecycle hooks do not provide the necessary policy enforcement for cross-cluster deployment approval workflows.
  • B. Corporate policy alone is not enforceable at the technical level and relies on manual compliance without automated prevention.
  • D. While a custom admissions controller could work, it requires significant development effort and is more complex than using the native Binary Authorization feature.

Question 80

During a high traffic portion of the day, one of your relational databases crashes, but the replica is never promoted to a master. You want to avoid this in the future. What should you do?

  1. Use a different database
  2. Choose larger instances for your database
  3. Create snapshots of your database more regularly
  4. Implement routinely scheduled failovers of your databases
Show answer and explanation

Correct answer: D. Implement routinely scheduled failovers of your databases

Routinely scheduled failovers test and validate the replica promotion process before a real crisis occurs. Regular failover testing ensures the failover mechanism actually works, identifies operational gaps, and builds confidence that replicas will correctly promote when needed, preventing the scenario where a crashed master leaves the replica unpromotable.

Why the other options are wrong

  • A. Changing databases doesn't solve the fundamental issue of untested failover processes.
  • B. Larger instances improve capacity but don't address failover reliability or automation issues.
  • C. More frequent snapshots improve recovery point objective (RPO) but don't prevent the replica promotion failure that occurred.

Question 81

Your company has a stateless web API that performs scientific calculations. The web API runs on a single Google Kubernetes Engine (GKE) cluster. The cluster is currently deployed in us-central1. Your company has expanded to offer your API to customers in Asia. You want to reduce the latency for users in Asia. What should you do?

  1. Create a second GKE cluster in asia-southeast1, and expose both APIs using a Service of type LoadBalancer. Add the public IPs to the Cloud DNS zone.
  2. Use a global HTTP(s) load balancer with Cloud CDN enabled.
  3. Create a second GKE cluster in asia-southeast1, and use kubemci to create a global HTTP(s) load balancer.
  4. Increase the memory and CPU allocated to the application in the cluster.
Show answer and explanation

Correct answer: C. Create a second GKE cluster in asia-southeast1, and use kubemci to create a global HTTP(s) load balancer.

Option C is correct because it creates a second GKE cluster in asia-southeast1 to serve Asian customers with reduced latency, and uses kubemci (Kubernetes Multi-Cluster Ingress) to create a global HTTP(s) load balancer that routes traffic to the nearest cluster. This provides true multi-region redundancy and latency optimization for a stateless API serving global customers, with intelligent traffic routing.

Why the other options are wrong

  • A. Using LoadBalancer services with DNS requires manual management and doesn't provide intelligent global routing or automatic failover.
  • B. Cloud CDN caches responses but doesn't reduce latency for compute-heavy scientific calculations that require actual processing.
  • D. Increasing CPU and memory on a single cluster doesn't reduce latency for geographically distant users in Asia.

Question 82

Your company is planning to upload several important files to Cloud Storage. After the upload is completed, they want to verify that the uploaded content is identical to what they have on-premises. You want to minimize the cost and effort of performing this check. What should you do?

  1. 1. Use Linux shasum to compute a digest of files you want to upload. 2. Use gsutil -m to upload all the files to Cloud Storage. 3. Use gsutil cp to download the uploaded files. 4. Use Linux shasum to compute a digest of the downloaded files. 5. Compare the hashes.
  2. 1. Use gsutil -m to upload the files to Cloud Storage. 2. Develop a custom Java application that computes CRC32C hashes. 3. Use gsutil ls L gs://[YOUR_BUCKET_NAME] to collect CRC32C hashes of the uploaded files. 4. Compare the hashes.
  3. 1. Use gsutil -m to upload all the files to Cloud Storage. 2. Use gsutil cp to download the uploaded files. 3. Use Linux diff to compare the content of the files.
  4. 1. Use gsutil -m to upload the files to Cloud Storage. 2. Use gsutil hash -c FILE_NAME to generate CRC32C hashes of all on-premises files. 3. Use gsutil ls -L gs://[YOUR_BUCKET_NAME] to collect CRC32C hashes of the uploaded files. 4. Compare the hashes.
Show answer and explanation

Correct answer: D. 1. Use gsutil -m to upload the files to Cloud Storage. 2. Use gsutil hash -c FILE_NAME to generate CRC32C hashes of all on-premises files. 3. Use gsutil ls -L gs://[YOUR_BUCKET_NAME] to collect CRC32C hashes of the uploaded files. 4. Compare the hashes.

Option D is correct because it uses CRC32C hashes, which Cloud Storage natively computes and stores for every object. By generating CRC32C hashes of on-premises files using gsutil hash and comparing them with the hashes retrieved via gsutil ls -L, you verify data integrity with minimal cost and effort. This approach avoids downloading files (option A/C cost) or building custom applications (option B), and leverages Google's native hash support.

Why the other options are wrong

  • A. Downloading files requires significant bandwidth and storage, making it costly and inefficient compared to using native CRC32C hashes.
  • B. Developing a custom Java application is unnecessary effort when gsutil and Cloud Storage already provide CRC32C hash support.
  • C. Using diff after downloading files is expensive in terms of bandwidth and storage costs, and less efficient than comparing pre-computed hashes.

Question 83

You need to deploy an application to Google Cloud. The application receives traffic via TCP and reads and writes data to the filesystem. The application does not support horizontal scaling. The application process requires full control over the data on the file system because concurrent access causes corruption. The business is willing to accept a downtime when an incident occurs, but the application must be available 24/7 to support their business operations. You need to design the architecture of this application on Google Cloud. What should you do?

  1. Use a managed instance group with instances in multiple zones, use Cloud Filestore, and use an HTTP load balancer in front of the instances.
  2. Use a managed instance group with instances in multiple zones, use Cloud Filestore, and use a network load balancer in front of the instances.
  3. Use an unmanaged instance group with an active and standby instance in different zones, use a regional persistent disk, and use an HTTP load balancer in front of the instances.
  4. Use an unmanaged instance group with an active and standby instance in different zones, use a regional persistent disk, and use a network load balancer in front of the instances.
Show answer and explanation

Correct answer: D. Use an unmanaged instance group with an active and standby instance in different zones, use a regional persistent disk, and use a network load balancer in front of the instances.

Since the application does not support horizontal scaling and requires exclusive filesystem access to prevent corruption, a managed instance group is inappropriate. An unmanaged instance group with active/standby instances in different zones provides high availability while preventing concurrent access issues. Regional persistent disks support failover between zones, allowing the standby instance to take over if the active fails. A network load balancer (Layer 4) is required for TCP traffic, not an HTTP load balancer (Layer 7).

Why the other options are wrong

  • A. Managed instance groups with multiple active instances would violate the exclusive filesystem access requirement and cause data corruption.
  • B. Multiple instances in a managed instance group still risks concurrent filesystem access; this architecture doesn't prevent the corruption problem.
  • C. HTTP load balancer operates at Layer 7 and is designed for HTTP/HTTPS; TCP applications require a network load balancer at Layer 4.

Question 84

Your company is building a new architecture to support its data-centric business focus. You are responsible for setting up the network. Your company's mobile and web-facing applications will be deployed on-premises, and all data analysis will be conducted in GCP. The plan is to process and load 7 years of archived .csv files totaling 900 TB of data and then continue loading 10 TB of data daily. You currently have an existing 100-MB internet connection. What actions will meet your company's needs?

  1. Compress and upload both archived files and files uploaded daily using the gsutil -m option.
  2. Lease a Transfer Appliance, upload archived files to it, and send it to Google to transfer archived data to Cloud Storage. Establish a connection with Google using a Dedicated Interconnect or Direct Peering connection and use it to upload files daily.
  3. Lease a Transfer Appliance, upload archived files to it, and send it to Google to transfer archived data to Cloud Storage. Establish one Cloud VPN Tunnel to VPC networks over the public internet, and compress and upload files daily using the gsutil -m option.
  4. Lease a Transfer Appliance, upload archived files to it, and send it to Google to transfer archived data to Cloud Storage. Establish a Cloud VPN Tunnel to VPC networks over the public internet, and compress and upload files daily.
Show answer and explanation

Correct answer: B. Lease a Transfer Appliance, upload archived files to it, and send it to Google to transfer archived data to Cloud Storage. Establish a connection with Google using a Dedicated Interconnect or Direct Peering connection and use it to upload files daily.

For 900 TB of archived data with an existing 100-MB connection, Transfer Appliance is the optimal solution for initial bulk data transfer. For the 10 TB daily uploads, Dedicated Interconnect or Direct Peering provides the dedicated, high-throughput connection needed to reliably handle that volume without competing with regular internet traffic. This approach meets both the massive initial transfer requirement and the ongoing daily data load.

Why the other options are wrong

  • A. Compression and gsutil alone cannot overcome the 100-MB connection bottleneck for 900 TB of data; this would take months.
  • C. Cloud VPN over the public internet lacks the throughput needed for reliable 10 TB daily uploads and introduces unnecessary latency.
  • D. Cloud VPN without the gsutil -m option is suboptimal; VPN also cannot provide the dedicated bandwidth that Interconnect/Peering offers.

Question 85

Your company wants you to build a highly reliable web application with a few public APIs as the backend. You don't expect a lot of user traffic, but traffic could spike occasionally. You want to leverage Cloud Load Balancing, and the solution must be cost-effective for users. What should you do?

  1. Store static content such as HTML and images in Cloud CDN. Host the APIs on App Engine and store the user data in Cloud SQL.
  2. Store static content such as HTML and images in a Cloud Storage bucket. Host the APIs on a zonal Google Kubernetes Engine cluster with worker nodes in multiple zones, and save the user data in Cloud Spanner.
  3. Store static content such as HTML and images in Cloud CDN. Use Cloud Run to host the APIs and save the user data in Cloud SQL.
  4. Store static content such as HTML and images in a Cloud Storage bucket. Use Cloud Functions to host the APIs and save the user data in Firestore.
Show answer and explanation

Correct answer: C. Store static content such as HTML and images in Cloud CDN. Use Cloud Run to host the APIs and save the user data in Cloud SQL.

Cloud Run provides serverless compute that scales automatically from zero to handle traffic spikes without paying for idle capacity, directly addressing the cost-effectiveness requirement for variable traffic. Cloud CDN caches static content globally, reducing origin requests. Cloud SQL is a managed relational database suitable for application data. This combination leverages Cloud Load Balancing with Cloud Run's pay-per-request model and automatic scaling, optimizing for both reliability and cost.

Why the other options are wrong

  • A. App Engine has minimum instance requirements that increase costs during low-traffic periods; it's less cost-effective than Cloud Run for variable traffic.
  • B. A zonal GKE cluster with worker nodes requires minimum running instances even during idle periods, significantly increasing baseline costs for a low-traffic application.
  • D. While Cloud Functions and Firestore offer cost benefits, this option lacks Cloud CDN for static content caching, and Cloud Functions may have latency concerns for APIs compared to Cloud Run.

Question 86

You need to develop procedures to verify resilience of disaster recovery for remote recovery using GCP. Your production environment is hosted on-premises. You need to establish a secure, redundant connection between your on-premises network and the GCP network. What should you do?

  1. Verify that Dedicated Interconnect can replicate files to GCP. Verify that direct peering can establish a secure connection between your networks if Dedicated Interconnect fails.
  2. Verify that Dedicated Interconnect can replicate files to GCP. Verify that Cloud VPN can establish a secure connection between your networks if Dedicated Interconnect fails.
  3. Verify that the Transfer Appliance can replicate files to GCP. Verify that direct peering can establish a secure connection between your networks if the Transfer Appliance fails.
  4. Verify that the Transfer Appliance can replicate files to GCP. Verify that Cloud VPN can establish a secure connection between your networks if the Transfer Appliance fails.
Show answer and explanation

Correct answer: B. Verify that Dedicated Interconnect can replicate files to GCP. Verify that Cloud VPN can establish a secure connection between your networks if Dedicated Interconnect fails.

For resilience testing of disaster recovery with on-premises to GCP connectivity, Dedicated Interconnect provides the primary high-capacity, low-latency connection for data replication. Cloud VPN serves as the redundant failover connection, providing a secure IPsec tunnel that remains available if Dedicated Interconnect fails. This two-layer approach ensures continuous connectivity for disaster recovery procedures.

Why the other options are wrong

  • A. Direct peering is not a secure or appropriate failover mechanism; it's primarily for large-scale traffic exchange and doesn't provide the security encryption needed for disaster recovery.
  • C. Transfer Appliance is a one-time data migration tool, not suitable for ongoing replication; it cannot replicate files continuously.
  • D. Transfer Appliance is not designed for continuous file replication; it's a physical data migration appliance for one-time bulk transfers.

Question 87

You are monitoring Google Kubernetes Engine (GKE) clusters in a Cloud Monitoring workspace. As a Site Reliability Engineer (SRE), you need to triage incidents quickly. What should you do?

  1. Navigate the predefined dashboards in the Cloud Monitoring workspace, and then add metrics and create alert policies.
  2. Navigate the predefined dashboards in the Cloud Monitoring workspace, create custom metrics, and install alerting software on a Compute Engine instance.
  3. Write a shell script that gathers metrics from GKE nodes, publish these metrics to a Pub/Sub topic, export the data to BigQuery, and make a Data Studio dashboard.
  4. Create a custom dashboard in the Cloud Monitoring workspace for each incident, and then add metrics and create alert policies.
Show answer and explanation

Correct answer: A. Navigate the predefined dashboards in the Cloud Monitoring workspace, and then add metrics and create alert policies.

For efficient SRE incident triage, the best practice is to start with Cloud Monitoring's predefined dashboards for GKE, which provide immediate visibility into cluster health and metrics. From there, customize by adding relevant metrics and creating targeted alert policies to catch issues proactively. This approach leverages Google's built-in expertise while allowing customization for specific needs.

Why the other options are wrong

  • B. Custom metrics and external alerting software are unnecessary when Cloud Monitoring provides built-in metrics and native alert policies.
  • C. Writing shell scripts to gather metrics and exporting to BigQuery/Data Studio introduces unnecessary complexity and delays when Cloud Monitoring provides real-time dashboards.
  • D. Creating custom dashboards per incident is reactive and inefficient; starting with predefined dashboards and adding to them is more practical for rapid triage.

Question 88

Your company captures all web traffic data in Google Analytics 360 and stores it in BigQuery. Each country has its own dataset. Each dataset has multiple tables. You want analysts from each country to be able to see and query only the data for their respective countries. How should you configure the access rights?

  1. Create a group per country. Add analysts to their respective country-groups. Create a single group 'all_analysts', and add all country-groups as members. Grant the 'all_analysts' group the IAM role of BigQuery jobUser. Share the appropriate dataset with view access with each respective analyst country-group.
  2. Create a group per country. Add analysts to their respective country-groups. Create a single group 'all_analysts', and add all country-groups as members. Grant the 'all_analysts' group the IAM role of BigQuery jobUser. Share the appropriate tables with view access with each respective analyst country-group.
  3. Create a group per country. Add analysts to their respective country-groups. Create a single group 'all_analysts', and add all country-groups as members. Grant the 'all_analysts' group the IAM role of BigQuery dataViewer. Share the appropriate dataset with view access with each respective analyst country-group.
  4. Create a group per country. Add analysts to their respective country-groups. Create a single group 'all_analysts', and add all country-groups as members. Grant the 'all_analysts' group the IAM role of BigQuery dataViewer. Share the appropriate table with view access with each respective analyst country-group.
Show answer and explanation

Correct answer: A. Create a group per country. Add analysts to their respective country-groups. Create a single group 'all_analysts', and add all country-groups as members. Grant the 'all_analysts' group the IAM role of BigQuery jobUser. Share the appropriate dataset with view access with each respective analyst country-group.

The correct approach uses dataset-level access control with the BigQuery jobUser role. Dataset-level sharing ensures analysts can only access their country's dataset (the appropriate level of granularity for this use case). The jobUser role allows analysts to run queries, which is the minimum permission needed. Granting dataViewer would give broader permissions than necessary. Table-level sharing would be inefficient when entire datasets need to be restricted by country.

Why the other options are wrong

  • B. Table-level sharing is unnecessarily granular and cumbersome when full datasets should be isolated by country.
  • C. DataViewer role grants read access to all dataset content but doesn't allow query execution; jobUser is required to run queries.
  • D. DataViewer doesn't include query execution permissions, and table-level sharing is not the appropriate granularity for country-based access.

Question 89

Your web application must comply with the requirements of the European Union's General Data Protection Regulation (GDPR). You are responsible for the technical architecture of your web application. What should you do?

  1. Ensure that your web application only uses native features and services of Google Cloud Platform, because Google already has various certifications and provides "pass-on" compliance when you use native features.
  2. Enable the relevant GDPR compliance setting within the GCPConsole for each of the services in use within your application.
  3. Ensure that Cloud Security Scanner is part of your test planning strategy in order to pick up any compliance gaps.
  4. Define a design for the security of data in your web application that meets GDPR requirements.
Show answer and explanation

Correct answer: D. Define a design for the security of data in your web application that meets GDPR requirements.

GDPR compliance is fundamentally a technical and organizational design responsibility that requires defining specific security and data handling measures tailored to your application's requirements. While Google provides compliant infrastructure and tools, you must architect your application to meet GDPR requirements such as data encryption, access controls, data retention policies, and breach notification procedures. No automated GCP setting can substitute for proper architectural design that accounts for data residency, processing, and user rights.

Why the other options are wrong

  • A. Using only native GCP services does not guarantee GDPR compliance; you must still design and implement compliant data handling practices specific to your application.
  • B. There is no single "GDPR compliance setting" in GCP Console; compliance requires intentional architectural design across services.
  • C. Cloud Security Scanner detects security vulnerabilities but does not ensure GDPR compliance; it is a security tool, not a compliance tool.

Question 90

You have an application deployed on Google Kubernetes Engine using a Deployment named echo-deployment. The deployment is exposed using a Service called echo-service. You need to perform an update to the application with minimal downtime to the application. What should you do?

  1. Use kubectl set image deployment/echo-deployment <new-image>
  2. Use the rolling update functionality of the Instance Group behind the Kubernetes cluster
  3. Update the deployment yaml file with the new container image. Use kubectl delete deployment/echo-deployment and kubectl create -f <yaml-file>
  4. Update the service yaml file which the new container image. Use kubectl delete service/echo-service and kubectl create -f <yaml-file>
Show answer and explanation

Correct answer: A. Use kubectl set image deployment/echo-deployment <new-image>

kubectl set image is the standard kubectl command for performing rolling updates to a deployment, which automatically manages the gradual replacement of old pods with new ones, ensuring minimal downtime. The command natively handles the rolling update strategy defined in the deployment spec. This approach maintains service availability throughout the update process by keeping some pods running while others are being updated.

Why the other options are wrong

  • B. Instance Group rolling updates are a lower-level GCP mechanism that bypasses Kubernetes orchestration; kubectl commands are the proper interface for Kubernetes deployments.
  • C. Deleting and recreating a deployment causes downtime because all pods are terminated before new ones start; this is not a minimal downtime approach.
  • D. Services expose applications but do not manage container images; updating the service definition does not update the running application code.

That was 90 of 360.

The full Google Professional Cloud Architect pack has all 360 questions, each with the answer, the explanation and why the other options are wrong, plus a questions-only copy for timed runs. US$39, paid once, with free monthly updates and a pass-or-your-money-back guarantee.

Get the full pack

Not ready yet? Get the first 180 free as one PDF by email. Get the Half Pack →