Free PR000260 Practice Questions & Study Guide: Google Cloud Certified – Associate Cloud Engineer

Official Exam Details: (PR000260)

Exam Code:
PR000260
Passing Score:
70%
Total Question Bank:
381 Verified Questions
Exam Duration:
120 Minutes

Exam Format & Question Types

This certification exam features multiple-choice questions (single and multi-select), interactive Hotspots, Hot Areas, and Drag-and-Drop scenario configurations designed to test real-world technical competency.

PR000260: Advanced Cloud Architecture Certification Study Guide & Blueprint

Welcome, aspiring certified cloud architects! This comprehensive study guide and architectural blueprint is meticulously crafted to prepare you for the PR000260 certification exam. This exam validates an individual’s deep expertise in designing, deploying, and optimizing robust, scalable, and secure cloud solutions across diverse scenarios. Success hinges on not just knowing individual services, but understanding how to integrate them into cohesive, high-performance architectures that meet specific business objectives and technical constraints.

Exam Overview & Profile

The PR000260 certification is targeted at experienced Cloud Architects, Senior Solution Designers, and Lead Engineers who possess a profound understanding of cloud platforms and best practices. Candidates are expected to demonstrate mastery in translating complex business requirements into resilient, cost-effective, and secure cloud designs.

  • Target Audience: Professionals with 3-5+ years of hands-on experience in cloud architecture, infrastructure design, and solution implementation.
  • Question Count: Approximately 60-75 questions.
  • Duration: 150-180 minutes, allowing ample time for scenario analysis.
  • Passing Score Context: While the exact passing score may vary, expect to achieve roughly 70-75% accuracy. The exam heavily features scenario-based questions, demanding critical thinking and architectural judgment rather than mere memorization.

Deep-Dive Domain Breakdown

1. Core Infrastructure & Network Design (25%)

  • Compute: Advanced selection between IaaS (VMs), PaaS (App Services, Functions), and Containerization (Kubernetes, Serverless Containers). Auto-scaling strategies, load balancing (L4/L7), fault domains, and availability zones/regions.
  • Storage: Deep understanding of object storage tiers (hot, cool, archive), block storage performance characteristics, file storage protocols, and managed database services (SQL, NoSQL, data warehousing). Caching patterns and data lifecycle management.
  • Networking: Complex VPC/VNet topologies, cross-region/hybrid connectivity (VPN, Direct Connect/ExpressRoute), DNS resolution, CDN integration, and advanced network security groups/ACLs, WAFs.

2. Data Management & Analytics Architectures (20%)

  • Big Data: Designing data lakes, data warehouses, streaming data pipelines (e.g., Kafka, Kinesis), ETL/ELT processes, and data governance.
  • Databases: Selecting the right database for specific workloads (relational vs. NoSQL, analytical vs. transactional), ensuring high availability, disaster recovery, and performance optimization.
  • Data Security: Encryption at rest/in transit, tokenization, data masking, and compliance considerations (GDPR, HIPAA).

3. Security, Identity & Compliance (25%)

  • Identity & Access Management (IAM): Implementing least privilege, roles-based access control (RBAC), multi-factor authentication (MFA), federation, and single sign-on (SSO).
  • Network Security: In-depth knowledge of firewalls, IDS/IPS, DDoS mitigation, API Gateway security, and private endpoints/service endpoints.
  • Data Protection: Key management services (KMS), hardware security modules (HSM), data loss prevention (DLP), and secure secret management.
  • Compliance: Mapping cloud services to regulatory frameworks (e.g., PCI-DSS, SOC 2, ISO 27001) and shared responsibility model implications.

4. Cost Optimization & Operational Excellence (15%)

  • Cost Management: Implementing cost allocation tagging strategies, rightsizing instances, leveraging reserved instances/savings plans, and spot instances for appropriate workloads. Budgeting and forecasting.
  • Monitoring & Logging: Designing centralized logging, monitoring, and alerting solutions. Implementing incident response procedures.
  • Disaster Recovery & Business Continuity: Defining RTO/RPO objectives and designing appropriate multi-region/multi-AZ strategies (active-passive, active-active, backup & restore).
  • Automation: Infrastructure as Code (IaC) principles (e.g., Terraform, CloudFormation), CI/CD pipelines, and configuration management.

5. Application Modernization & Hybrid Cloud (15%)

  • Containerization & Serverless: Architecting microservices using containers (e.g., Kubernetes, ECS/AKS) and serverless functions (e.g., Lambda, Azure Functions). API Gateway design.
  • Hybrid Cloud: Seamless integration between on-premises and cloud environments, data synchronization, workload migration strategies, and managing multi-cloud deployments.
  • DevOps Integration: Understanding the architectural implications of DevOps practices for faster deployments and operational stability.

High-Yield Exam Tips & Scenario Traps

  • Prioritize Business Requirements: Always start by identifying the core business needs, RTO/RPO, budget, and performance constraints mentioned in the scenario. The “best” technical solution is the one that meets these requirements optimally.
  • Cost vs. Performance vs. Resiliency: Understand the inherent trade-offs. A “least cost” solution might sacrifice some resiliency or performance. A “maximum uptime” solution will often incur higher costs.
  • Security First Principle: In any security-related question, default to the most secure option that meets the requirements without unnecessary complexity. Always apply the principle of least privilege.
  • Managed Services Over Self-Managed: Unless a scenario explicitly demands fine-grained control or a specific legacy integration, cloud providers’ managed services are almost always the preferred architectural choice for reduced operational overhead and built-in HA/DR.
  • Distinguish Network Security Boundaries: Be clear on the differences and appropriate use cases for network-level firewalls (e.g., NACLs/Security Groups) versus application-level WAFs or in-instance firewalls.
  • Avoid Over-Engineering: Look for the simplest, most robust solution. Don’t add complexity (e.g., a service mesh) unless the scenario clearly indicates a need for its advanced features.
  • RTO vs. RPO: Differentiate clearly. RTO (Recovery Time Objective) is how quickly you’re back online. RPO (Recovery Point Objective) is how much data you can afford to lose. Your DR strategy must align perfectly with these metrics.

Frequently Asked Questions (FAQ)

Q1: What is the best way to prepare for the PR000260 exam?

A1: Focus on hands-on experience. Theoretical knowledge is important, but the exam emphasizes practical application. Supplement your experience with official documentation, architecture whitepapers, and scenario-based practice questions. Build reference architectures and understand the “why” behind design decisions. Actively participate in design discussions in your professional role.

Q2: What kind of questions can I expect on the PR000260 exam?

A2: The majority of questions will be scenario-based, presenting a detailed business problem or technical requirement and asking you to select the most appropriate architectural solution. These often include considerations for cost, scalability, security, and operational efficiency. Expect a mix of multiple-choice, multiple-select, and potentially drag-and-drop questions where you order steps or match components.

Q3: How crucial is understanding cost optimization in this certification?

A3: Extremely crucial. Cost optimization is a fundamental pillar of cloud architecture. Expect numerous questions that require you to choose between solutions based on their cost implications, balancing them against performance, availability, and security requirements. Understanding strategies like rightsizing, reserved instances, spot instances, and effective tagging is vital.

Q4: Should I focus on a single cloud provider’s services or generalize?

A4: While many foundational cloud principles are universal, PR000260 typically expects a deep understanding of specific service implementations and their best practices within a primary cloud ecosystem. Therefore, it’s essential to familiarize yourself thoroughly with the nomenclature, capabilities, and architectural patterns of the cloud provider for which this exam is intended. Generic concepts are a foundation, but specific service knowledge is key.

Free PR000260 Sample Practice Questions

Test your knowledge with these sample scenario questions complete with verified explanations:

General Practice Questions

QUESTION 1

You are planning to manage all of your Google Cloud resources by using Terraform. You have multiple applications that you want to manage independently of each other. You need to structure your Terraform code repository to facilitate this separation. What should you do?

  • A. Create a single module for each resource type, and place all modules in the same directory.
  • B. Put the Terraform configuration resources for each application in its own root directory.
  • C. Create a single module for each application, and place all modules in the same directory.
  • D. Put resources of the same type in their own root directory.
Click to View Verified Solution & Explanation

Correct Option: B

Explanation:

✅ Option B (Correct)
Reasoning: Putting each application’s Terraform configuration in its own root directory ensures independent state management, lifecycle, and deployment. This allows changes to one application’s infrastructure without affecting others, adhering to the requirement for separate management.

❌ Why the other choices are incorrect:
* Option A is incorrect: Organizing by resource type couples all applications using that resource, making independent management impossible and creating a monolithic state file.
* Option C is incorrect: While modules are reusable components, placing all application modules in a single root configuration still ties them to a single state and deployment lifecycle, defeating independent management.
* Option D is incorrect: Similar to option A, structuring by resource type prevents isolated management of individual applications, as each application typically uses multiple resource types.

Reference: https://developer.hashicorp.com/terraform/tutorials/state/organize-terraform#standard-module-structure

QUESTION 2

Every employee of your company has a Google account. Your operational team needs to manage a large number of instances on Compute Engine. Each member of this team needs only administrative access to the servers. Your security team wants to ensure that the deployment of credentials is operationally efficient and must be able to determine who accessed a given instance. What should you do?

  • A. Generate a new SSH key pair. Give the private key to each member of your team. Configure the public key in the metadata of each instance.
  • B. Ask each member of the team to generate a new SSH key pair and to send you their public key. Use a configuration management tool to deploy those keys on each instance.
  • C. Ask each member of the team to generate a new SSH key pair and to add the public key to their Google account. Grant the “compute.osAdminLogin” role to the Google group corresponding to this team.
  • D. Generate a new SSH key pair. Give the private key to each member of your team. Configure the public key as a project-wide public SSH key in your Cloud Platform project and allow project-wide public SSH keys on each instance.
Click to View Verified Solution & Explanation

Correct Option: C

Explanation: ✅ Option C (Correct)
Reasoning: OS Login (enabled by adding SSH keys to Google accounts) centrally manages SSH access via IAM roles. Granting compute.osAdminLogin to a Google group provides scalable administrative access. This method ensures individual accountability for auditing and streamlines credential deployment by linking to Google identities.

❌ Why the other choices are incorrect:

  • Option A is incorrect: Sharing a single private key prevents individual accountability and makes revocation difficult. It’s not scalable for a large number of instances or auditable per user.
  • Option B is incorrect: Collecting and deploying individual public keys, even with configuration management, is less operationally efficient and auditable than OS Login which integrates with Google identities.
  • Option D is incorrect: Using a shared project-wide SSH key suffers from the same security and auditability issues as option A: no individual accountability, difficult revocation, and poor operational efficiency for user management.

QUESTION 3

You need to create a custom VPC with a single subnet. The subnet’s range must be as large as possible. Which range should you use?

  • A. 0.0.0.0/0
  • B. 10.0.0.0/8
  • C. 172.16.0.0/12
  • D. 192.168.0.0/16
Click to View Verified Solution & Explanation

Correct Option: B

Explanation: ✅ Option B (Correct)
Reasoning: The 10.0.0.0/8 range is the largest of the RFC 1918 private IP address blocks. It provides 16,777,216 addresses, maximizing the subnet size as requested for a single custom VPC subnet.

❌ Why the other choices are incorrect:

  • Option A is incorrect: 0.0.0.0/0 represents all IP addresses and is used as a default route for the internet, not a valid private IP range for a custom VPC subnet.
  • Option C is incorrect: 172.16.0.0/12 is an RFC 1918 private range but is smaller than 10.0.0.0/8, providing 1,048,576 addresses.
  • Option D is incorrect: 192.168.0.0/16 is an RFC 1918 private range but is smaller than 10.0.0.0/8 and 172.16.0.0/12, providing 65,536 addresses.

QUESTION 4

You want to select and configure a cost-effective solution for relational data on Google Cloud Platform. You are working with a small set of operational data in one geographic location. You need to support point-in- time recovery. What should you do?

  • A. Select Cloud SQL (MySQL). Verify that the enable binary logging option is selected.
  • B. Select Cloud SQL (MySQL). Select the create failover replicas option.
  • C. Select Cloud Spanner. Set up your instance with 2 nodes.
  • D. Select Cloud Spanner. Set up your instance as multi-regional.
Click to View Verified Solution & Explanation

Correct Option: A

Explanation: ✅ Option A (Correct)
Reasoning: Cloud SQL (MySQL) is a managed relational database suitable for small, regional datasets and cost-effective. Point-in-time recovery for Cloud SQL MySQL specifically relies on enabling binary logging, which backs up transaction logs, allowing restoration to any moment within the backup retention period.

❌ Why the other choices are incorrect:

  • Option B is incorrect: Failover replicas provide high availability, not point-in-time recovery. While they ensure operational continuity, PITR requires specific logging for transactional rollback, which binary logging provides.
  • Option C is incorrect: Cloud Spanner is designed for massive scale and global distribution, making it significantly less cost-effective for a "small set of operational data in one geographic location" compared to Cloud SQL.
  • Option D is incorrect: Cloud Spanner’s multi-regional setup is even more expensive and contradicts the requirement for "one geographic location." It’s overkill for the specified needs.

QUESTION 5

You want to configure autohealing for network load balancing for a group of Compute Engine instances that run in multiple zones, using the fewest possible steps. You need to configure re-creation of VMs if they are unresponsive after 3 attempts of 10 seconds each. What should you do?

  • A. Create an HTTP load balancer with a backend configuration that references an existing instance group. Set the health check to healthy (HTTP)
  • B. Create an HTTP load balancer with a backend configuration that references an existing instance group. Define a balancing mode and set the maximum RPS to 10.
  • C. Create a managed instance group. Set the Autohealing health check to healthy (HTTP)
  • D. Create a managed instance group. Verify that the autoscaling setting is on.
Click to View Verified Solution & Explanation

Correct Option: C

Explanation: ✅ Option C (Correct)
Reasoning: Creating a Managed Instance Group (MIG) is fundamental for autohealing, which re-creates unresponsive VMs. Setting an Autohealing health check on the MIG directly enables this feature. The health check parameters (e.g., unhealthy threshold, check interval) can then be configured to meet the specified "3 attempts of 10 seconds each." Regional MIGs support multiple zones.

❌ Why the other choices are incorrect:

  • Option A is incorrect: Creating an HTTP load balancer focuses on L7 traffic. While it uses health checks, it doesn’t enable autohealing for an instance group; autohealing is a MIG feature.
  • Option B is incorrect: This option describes HTTP load balancer configuration for traffic distribution and scaling (RPS), not the autohealing mechanism for unresponsive VMs.
  • Option D is incorrect: While creating a MIG is correct, verifying autoscaling addresses scaling up/down based on load, not re-creating individual unresponsive VMs. Autohealing and autoscaling are distinct functions.

QUESTION 6

You are using multiple configurations for gcloud. You want to review the configured Kubernetes Engine cluster of an inactive configuration using the fewest possible steps. What should you do?

  • A. Use gcloud config configurations describe to review the output.
  • B. Use gcloud config configurations activate and gcloud config list to review the output.
  • C. Use kubectl config get-contexts to review the output.
  • D. Use kubectl config use-context and kubectl config view to review the output.
Click to View Verified Solution & Explanation

Correct Option: D

Explanation: ✅ Option D (Correct)
Reasoning: kubectl config use-context allows switching to the specific Kubernetes context associated with the inactive gcloud configuration. Then, kubectl config view displays the full kubeconfig, prominently showing all details for the currently active context’s cluster. This reviews the cluster configuration without activating the gcloud configuration.

❌ Why the other choices are incorrect:

  • Option A is incorrect: gcloud config configurations describe displays properties of a gcloud configuration (project, zone), not the detailed Kubernetes Engine cluster configuration (e.g., API server endpoint) from kubeconfig.
  • Option B is incorrect: gcloud config configurations activate would make the configuration active, which contradicts reviewing an inactive configuration. gcloud config list shows gcloud properties, not Kubernetes cluster details.
  • Option C is incorrect: kubectl config get-contexts only lists summary information about contexts (name, cluster, user, namespace). It does not provide the detailed cluster configuration required for a review.

QUESTION 7

Your company uses Cloud Storage to store application backup files for disaster recovery purposes. You want to follow Google’s recommended practices. Which storage option should you use?

  • A. Multi-Regional Storage
  • B. Regional Storage
  • C. Nearline Storage
  • D. Coldline Storage
Click to View Verified Solution & Explanation

Correct Option: D

Explanation: ✅ Option D (Coldline Storage) (Correct)
Reasoning: Coldline Storage is optimized for infrequently accessed data (less than once a quarter) like disaster recovery backups. It offers very low storage costs while providing millisecond access times, balancing cost-effectiveness with rapid recovery needs.

❌ Why the other choices are incorrect:

  • Option A is incorrect: Multi-Regional Storage is for highly available, frequently accessed data across regions. It’s too expensive for infrequently accessed disaster recovery backups.
  • Option B is incorrect: Regional Storage is for high-performance, frequently accessed data within a single region. It’s too expensive for infrequent disaster recovery backups.
  • Option C is incorrect: Nearline Storage is for data accessed less than once a month. While less expensive, Coldline Storage is more cost-effective for true disaster recovery backups accessed even less frequently (quarterly).

QUESTION 8

Several employees at your company have been creating projects with Cloud Platform and paying for it with their personal credit cards, which the company reimburses. The company wants to centralize all these projects under a single, new billing account. What should you do?

  • A. Contact <a href="mailto:cloud-billing@google.com">cloud-billing@google.com </a>with your bank account details and request a corporate billing account for your company.
  • B. Create a ticket with Google Support and wait for their call to share your credit card details over the phone.
  • C. In the Google Platform Console, go to the Resource Manage and move all projects to the root Organizarion.
  • D. In the Google Cloud Platform Console, create a new billing account and set up a payment method.
Click to View Verified Solution & Explanation

Correct Option: C

Explanation: ✅ Option C (Correct)
Reasoning: To "centralize all these projects" effectively under corporate control, moving them from individual employee accounts or "No Organization" to the company’s root Organization is a crucial first step. This establishes hierarchical management and control, making it possible for administrators to consistently manage projects and change their associated billing accounts to the new corporate one.

❌ Why the other choices are incorrect:

  • Option A is incorrect: Contacting a generic email for bank details is not the standard procedure for creating a new billing account in GCP; it’s done via the console.
  • Option B is incorrect: Creating a support ticket to share credit card details over the phone is not a secure or standard method for setting up payment information for a GCP billing account.
  • Option D is incorrect: While creating a new billing account is necessary, it doesn’t address "centralizing all these projects" under the company’s management hierarchy. Projects must first be brought under the company’s Organization for effective centralized control before their billing can be consistently managed.

QUESTION 9

You have an application that looks for its licensing server on the IP 10.0.3.21. You need to deploy the licensing server on Compute Engine. You do not want to change the configuration of the application and want the application to be able to reach the licensing server. What should you do?

  • A. Reserve the IP 10.0.3.21 as a static internal IP address using gcloud and assign it to the licensing server.
  • B. Reserve the IP 10.0.3.21 as a static public IP address using gcloud and assign it to the licensing server.
  • C. Use the IP 10.0.3.21 as a custom ephemeral IP address and assign it to the licensing server.
  • D. Start the licensing server with an automatic ephemeral IP address, and then promote it to a static internal IP address.
Click to View Verified Solution & Explanation

Correct Option: A

Explanation: ✅ Option A (Correct)
Reasoning: Reserving 10.0.3.21 as a static internal IP address ensures the Compute Engine instance reliably receives the exact private IP required. This allows the application to reach the licensing server at its configured address without any changes, fulfilling the core requirement for a persistent internal endpoint.

❌ Why the other choices are incorrect:

  • Option B is incorrect: 10.0.3.21 is a private IP address; it cannot be reserved as a static public IP address. Public IPs are globally routable, and attempting this would fail as it’s not a valid public IP range. The application also expects an internal connection.
  • Option C is incorrect: Ephemeral IPs are temporary and change upon instance restart or deletion. This contradicts the need for a stable, fixed IP address (10.0.3.21) that the application is hardcoded to use. A custom ephemeral IP still lacks persistence.
  • Option D is incorrect: Starting with an automatic ephemeral IP means it’s highly unlikely to be 10.0.3.21. While promoting an ephemeral IP to static is possible, you cannot promote an arbitrary ephemeral IP to a specific, pre-defined static IP that wasn’t initially assigned. You must reserve 10.0.3.21 first.

QUESTION 10

You are deploying an application to App Engine. You want the number of instances to scale based on request rate. You need at least 3 unoccupied instances at all times. Which scaling type should you use?

  • A. Manual Scaling with 3 instances.
  • B. Basic Scaling with min_instances set to 3.
  • C. Basic Scaling with max_instances set to 3.
  • D. Automatic Scaling with min_idle_instances set to 3.
Click to View Verified Solution & Explanation

Correct Option: D

Explanation: ✅ Option D: Automatic Scaling with min_idle_instances set to 3 (Correct)
Reasoning: Automatic Scaling dynamically adjusts instances based on request rate and other metrics. The min_idle_instances setting directly ensures that App Engine maintains a specified minimum number of instances in an unoccupied, ready state at all times, satisfying the requirement for 3 unoccupied instances.

❌ Why the other choices are incorrect:

  • Option A is incorrect: Manual Scaling maintains a fixed number of instances and does not scale based on request rate or ensure idle instances. It cannot dynamically adapt to traffic changes as required.
  • Option B is incorrect: Basic Scaling creates instances on demand and shuts them down when idle to optimize costs. While it can have min_instances, these are not guaranteed to be idle at all times; they are only kept running if actively serving requests or starting up.
  • Option C is incorrect: Basic Scaling with max_instances only limits the upper bound of instances. It does not ensure a minimum number of idle instances or scale dynamically to maintain idle capacity based on request rate.

QUESTION 11

You have a development project with appropriate IAM roles defined. You are creating a production project and want to have the same IAM roles on the new project, using the fewest possible steps. What should you do?

  • A. Use gcloud iam roles copy and specify the production project as the destination project.
  • B. Use gcloud iam roles copy and specify your organization as the destination organization.
  • C. In the Google Cloud Platform Console, use the ‘create role from role’ functionality.
  • D. In the Google Cloud Platform Console, use the ‘create role’ functionality and select all applicable permissions.
Click to View Verified Solution & Explanation

Correct Option: A

Explanation: ✅ Option A (Correct)
Reasoning: The gcloud iam roles copy command is specifically designed to replicate custom IAM roles from one resource (e.g., a project) to another. Specifying the production project as the destination directly fulfills the requirement of copying roles with the fewest possible steps.

❌ Why the other choices are incorrect:

  • Option B is incorrect: Copying roles to the organization level makes them available globally, which might be overkill and not what the question implies ("on the new project"). It also doesn’t target the production project specifically.
  • Option C is incorrect: The ‘create role from role’ functionality in the Console would require manual steps for each role, essentially recreating them one by one, which is not the fewest steps.
  • Option D is incorrect: Manually creating each role and selecting all permissions is highly inefficient and error-prone, requiring significantly more steps than a programmatic copy.

QUESTION 12

You need a dynamic way of provisioning VMs on Compute Engine. The exact specifications will be in a dedicated configuration file. You want to follow Google’s recommended practices. Which method should you use?

  • A. Deployment Manager
  • B. Cloud Composer
  • C. Managed Instance Group
  • D. Unmanaged Instance Group
Click to View Verified Solution & Explanation

Correct Option: A

Explanation: ✅ Option A (Correct)
Reasoning: Deployment Manager is Google Cloud’s infrastructure as code (IaC) service, enabling dynamic provisioning of Compute Engine VMs and other resources using declarative configuration files (YAML/Jinja2/Python). This aligns with best practices for defining specifications in a dedicated file.

❌ Why the other choices are incorrect:

  • Option B is incorrect: Cloud Composer is a workflow orchestration service for data pipelines, not a tool for direct infrastructure provisioning from a configuration file.
  • Option C is incorrect: A Managed Instance Group provisions multiple identical VMs based on an instance template, primarily for scaling and high availability, not a general method for defining diverse VMs from a comprehensive config file.
  • Option D is incorrect: An Unmanaged Instance Group is a logical grouping of existing VMs for load balancing, it does not provision new VMs.

QUESTION 13

You have a Dockerfile that you need to deploy on Kubernetes Engine. What should you do?

  • A. Use kubectl app deploy <dockerfilename>.
  • B. Use gcloud app deploy <dockerfilename>.
  • C. Create a docker image from the Dockerfile and upload it to Container Registry. Create a Deployment YAML file to point to that image. Use kubectl to create the deployment with that file.
  • D. Create a docker image from the Dockerfile and upload it to Cloud Storage. Create a Deployment YAML file to point to that image. Use kubectl to create the deployment with that file.
Click to View Verified Solution & Explanation

Correct Option: C

Explanation: ✅ Option C (Correct)
Reasoning: The standard process for deploying a Dockerfile-based application to Kubernetes Engine involves building a Docker image, pushing it to a container registry (like Container Registry or Artifact Registry), defining a Kubernetes Deployment YAML file that references this image, and then using kubectl apply to create the deployment on the cluster. This option accurately describes this workflow.

❌ Why the other choices are incorrect:

  • Option A is incorrect: kubectl app deploy is not a valid kubectl command for deploying applications.
  • Option B is incorrect: gcloud app deploy is used for deploying applications to Google App Engine, not Kubernetes Engine.
  • Option D is incorrect: Kubernetes pulls container images from image registries (e.g., Container Registry), not directly from Cloud Storage buckets. Cloud Storage is not a container image registry.

QUESTION 14

Your development team needs a new Jenkins server for their project. You need to deploy the server using the fewest steps possible. What should you do?

  • A. Download and deploy the Jenkins Java WAR to App Engine Standard.
  • B. Create a new Compute Engine instance and install Jenkins through the command line interface.
  • C. Create a Kubernetes cluster on Compute Engine and create a deployment with the Jenkins Docker image.
  • D. Use GCP Marketplace to launch the Jenkins solution.
Click to View Verified Solution & Explanation

Correct Option: D

Explanation: ✅ Option D (Correct)
Reasoning: GCP Marketplace provides pre-configured solutions that automate the deployment of applications like Jenkins with minimal user interaction, consolidating many setup steps into a few wizard clicks. This directly addresses the "fewest steps possible" requirement.

❌ Why the other choices are incorrect:

  • Option A is incorrect: Deploying a WAR file to App Engine Standard requires manual configuration, environment setup, and App Engine is generally not the most suitable platform for a stateful, long-running CI/CD server like Jenkins. More steps than Marketplace.
  • Option B is incorrect: This involves creating a VM, then manually installing Java, Jenkins packages, and configuring services via command line. This is a multi-step, manual process.
  • Option C is incorrect: Deploying on Kubernetes involves creating a cluster, defining Persistent Volumes, writing deployment manifests, and exposing services. This is a significantly more complex and multi-step process.

QUESTION 15

You need to update a deployment in Deployment Manager without any resource downtime in the

deployment. Which command should you use?

  • A. gcloud deployment-manager deployments create –config <deployment-config- path>
  • B. gcloud deployment-manager deployments update –config <deployment-config- path>
  • C. gcloud deployment-manager resources create –config <deployment-config-path>
  • D. gcloud deployment-manager resources update –config <deployment-config-path>
Click to View Verified Solution & Explanation

Correct Option: B

Explanation: ✅ Option B (Correct)
Reasoning: The gcloud deployment-manager deployments update --config command is used to modify an existing Deployment Manager deployment. When changes are applied via an updated configuration, Deployment Manager intelligently updates resources, often striving to minimize or eliminate downtime for services that support rolling updates or similar mechanisms, aligning with the "without any resource downtime" requirement.

❌ Why the other choices are incorrect:

  • Option A is incorrect: gcloud deployment-manager deployments create --config is used to create a new deployment, not to update an existing one.
  • Option C is incorrect: gcloud deployment-manager resources create --config is not a standard or valid command for creating or updating resources within a deployment manager context via a config file. Updates are applied at the deployment level.
  • Option D is incorrect: gcloud deployment-manager resources update --config is not a standard or valid command for updating individual resources within a deployment via a config file. Deployment updates are performed at the deployment level.

QUESTION 16

You need to run an important query in BigQuery but expect it to return a lot of records. You want to find out how much it will cost to run the query. You are using on-demand pricing. What should you do?

  • A. Arrange to switch to Flat-Rate pricing for this query, then move back to on-demand.
  • B. Use the command line to run a dry run query to estimate the number of bytes read. Then convert that bytes estimate to dollars using the Pricing Calculator.
  • C. Use the command line to run a dry run query to estimate the number of bytes returned. Then convert that bytes estimate to dollars using the Pricing Calculator.
  • D. Run a select count (*) to get an idea of how many records your query will look through. Then convert that number of rows to dollars using the Pricing Calculator.
Click to View Verified Solution & Explanation

Correct Option: B

Explanation: ✅ Option B (Correct)
Reasoning: BigQuery’s on-demand pricing is based on the amount of data processed (scanned). The bq query --dry_run command-line option estimates these bytes without executing the query, allowing calculation of the processing cost using the pricing calculator before commitment.

❌ Why the other choices are incorrect:

  • Option A is incorrect: Switching to Flat-Rate for a single query is not practical for cost estimation and Flat-Rate is a different billing model.
  • Option C is incorrect: A dry run estimates bytes processed/scanned, not bytes returned. On-demand query costs are based on data processed.
  • Option D is incorrect: Running SELECT COUNT(*) is itself a query that incurs cost and estimates rows, not bytes processed by the original query, which is the basis for on-demand pricing.

QUESTION 17

You have a single binary application that you want to run on Google Cloud Platform. You decided to automatically scale the application based on underlying infrastructure CPU usage. Your organizational policies require you to use virtual machines directly. You need to ensure that the application scaling is operationally efficient and completed as quickly as possible. What should you do?

  • A. Create a Google Kubernetes Engine cluster, and use horizontal pod autoscaling to scale the application.
  • B. Create an instance template, and use the template in a managed instance group with autoscaling configured.
  • C. Create an instance template, and use the template in a managed instance group that scales up and down based on the time of day.
  • D. Use a set of third-party tools to build automation around scaling the application up and down, based on Stackdriver CPU usage monitoring.
Click to View Verified Solution & Explanation

Correct Option: B

Explanation: ✅ Option B (Correct)
Reasoning: An instance template defines the VM configuration, and a Managed Instance Group (MIG) automates VM creation and management. Configuring autoscaling on the MIG based on CPU utilization directly meets the requirement for automatic, CPU-based scaling of VMs efficiently and quickly.

❌ Why the other choices are incorrect:

  • Option A is incorrect: Organizational policy requires using virtual machines directly. GKE abstracts away direct VM management, focusing on containers.
  • Option C is incorrect: This scales based on the time of day, not "underlying infrastructure CPU usage," which is a specific requirement.
  • Option D is incorrect: While possible, custom third-party automation is generally less "operationally efficient and completed as quickly as possible" compared to native, managed Google Cloud services like MIG autoscaling.

QUESTION 18

You are analyzing Google Cloud Platform service costs from three separate projects. You want to use this information to create service cost estimates by service type, daily and monthly, for the next six months using standard query syntax. What should you do?

  • A. Export your bill to a Cloud Storage bucket, and then import into Cloud Bigtable for analysis.
  • B. Export your bill to a Cloud Storage bucket, and then import into Google Sheets for analysis.
  • C. Export your transactions to a local file, and perform analysis with a desktop tool.
  • D. Export your bill to a BigQuery dataset, and then write time window-based SQL queries for analysis.
Click to View Verified Solution & Explanation

Correct Option: D

Explanation: ✅ Option D (Correct)
Reasoning: Exporting billing data to BigQuery provides a scalable, SQL-queryable dataset for detailed cost analysis across projects. BigQuery’s standard SQL capabilities are ideal for writing time window-based queries to calculate daily/monthly service costs and generate future estimates.

❌ Why the other choices are incorrect:

  • Option A is incorrect: Cloud Bigtable is a NoSQL database optimized for operational workloads and high-throughput point lookups, not complex analytical SQL queries for cost estimation.
  • Option B is incorrect: Google Sheets has scalability limitations for large billing datasets from multiple projects and is less suited for robust, automated time-series analysis and complex SQL-like queries.
  • Option C is incorrect: Exporting to a local file and using a desktop tool lacks the scalability, automation, and collaborative features of cloud-native solutions for large, ongoing cost analysis.

QUESTION 19

You need to set up a policy so that videos stored in a specific Cloud Storage Regional bucket are moved to Coldline after 90 days, and then deleted after one year from their creation. How should you set up the policy?

  • A. Use Cloud Storage Object Lifecycle Management using Age conditions with SetStorageClass and Delete actions. Set the SetStorageClass action to 90 days and the Delete action to 275 days (365 – 90)
  • B. Use Cloud Storage Object Lifecycle Management using Age conditions with SetStorageClass and Delete actions. Set the SetStorageClass action to 90 days and the Delete action to 365 days.
  • C. Use gsutil rewrite and set the Delete action to 275 days (365-90).
  • D. Use gsutil rewrite and set the Delete action to 365 days.
Click to View Verified Solution & Explanation

Correct Option: B

Explanation: ✅ Option B (Correct)
Reasoning: Cloud Storage Object Lifecycle Management is the correct service. Setting the SetStorageClass action to 90 days moves videos to Coldline. Setting the Delete action to 365 days correctly deletes them one year from creation, as lifecycle rules calculate age from the object’s creation time.

❌ Why the other choices are incorrect:

  • Option A is incorrect: The Delete action should be set to 365 days. Lifecycle rules evaluate age from the object’s creation time, so 275 days would delete the object prematurely (after 275 days, not 365).
  • Option C is incorrect: gsutil rewrite changes object attributes manually, it does not establish automated lifecycle policies. The 275-day delete logic is also flawed.
  • Option D is incorrect: Similar to C, gsutil rewrite is not for setting automated lifecycle policies.

QUESTION 20

You have a Linux VM that must connect to Cloud SQL. You created a service account with the appropriate access rights. You want to make sure that the VM uses this service account instead of the default Compute Engine service account. What should you do?

  • A. When creating the VM via the web console, specify the service account under the ‘Identity and API Access’ section.
  • B. Download a JSON Private Key for the service account. On the Project Metadata, add that JSON as the value for the key compute-engine-service-account.
  • C. Download a JSON Private Key for the service account. On the Custom Metadata of the VM, add that JSON as the value for the key compute-engine-service-account.
  • D. Download a JSON Private Key for the service account. After creating the VM, ssh into the VM and save the JSON under ~/.gcloud/compute-engine-service-account.json.
Click to View Verified Solution & Explanation

Correct Option: A

Explanation: ✅ Option A (Correct)
Reasoning: When creating a VM, the "Identity and API Access" section in the web console (or equivalent gcloud flags) is the designated and secure method to select a specific service account. This configures the VM’s metadata server to provide tokens for the chosen service account, granting it the appropriate Cloud SQL access without exposing private keys.

❌ Why the other choices are incorrect:

  • Option B is incorrect: Storing JSON private keys in project metadata is insecure and not how service accounts are assigned to VMs for automatic credential provision. Project metadata is for general project-level configurations, not for VM identity.
  • Option C is incorrect: Similar to B, storing a JSON private key in VM custom metadata is insecure. The VM’s primary service account identity is set during creation, not by injecting a key into metadata.
  • Option D is incorrect: While a JSON key can be used manually, SSHing and saving a private key within the VM is less secure and doesn’t change the VM’s assigned service account identity. It requires manual management and doesn’t leverage the automatic credential provision by the metadata server.

QUESTION 21

You created an instance of SQL Server 2017 on Compute Engine to test features in the new version. You want to connect to this instance using the fewest number of steps. What should you do?

  • A. Install a RDP client on your desktop. Verify that a firewall rule for port 3389 exists.
  • B. Install a RDP client in your desktop. Set a Windows username and password in the GCP Console. Use the credentials to log in to the instance.
  • C. Set a Windows password in the GCP Console. Verify that a firewall rule for port 22 exists. Click the RDP button in the GCP Console and supply the credentials to log in.
  • D. Set a Windows username and password in the GCP Console. Verify that a firewall rule for port 3389 exists. Click the RDP button in the GCP Console, and supply the credentials to log in.
Click to View Verified Solution & Explanation

Correct Option: D

Explanation: ✅ Option D (Correct)
Reasoning: Connecting to a Windows instance on Compute Engine requires RDP. Setting Windows credentials and ensuring a firewall rule for port 3389 are prerequisites. The GCP Console’s RDP button directly initiates the connection, offering the most streamlined approach with the fewest steps, avoiding manual client setup.

❌ Why the other choices are incorrect:

  • Option A is incorrect: Installing an RDP client is an extra manual step. While necessary, the GCP Console’s RDP button often automates or simplifies this. It also omits the critical step of setting Windows credentials.
  • Option B is incorrect: Like A, manually installing an RDP client adds steps. Although it includes setting credentials, the GCP Console RDP button provides a more integrated, fewer-step connection method.
  • Option C is incorrect: Port 22 is for SSH, not RDP. SQL Server 2017 runs on Windows, which uses RDP (port 3389). This choice uses the incorrect port for a Windows instance.

QUESTION 22

You have one GCP account running in your default region and zone and another account running in a non- default region and zone. You want to start a new Compute Engine instance in these two Google Cloud Platform accounts using the command line interface. What should you do?

  • A. Create two configurations using gcloud config configurations create [NAME]. Run gcloud config configurations activate [NAME] to switch between accounts when running the commands to start the Compute Engine instances.
  • B. Create two configurations using gcloud config configurations create [NAME]. Run
  • C. Activate two configurations using gcloud configurations activate [NAME]. Run gcloud config list to start the Compute Engine instances.
  • D. Activate two configurations using gcloud configurations activate [NAME]. Run gcloud configurations list to start the Compute Engine instances.
Click to View Verified Solution & Explanation

Correct Option: A

Explanation: ✅ Option A (Correct)
Reasoning: gcloud config configurations allows creating named settings profiles. Each profile can store different project IDs, user accounts, regions, and zones. Creating two configurations—one for each GCP account and its respective region/zone—and then activating them with gcloud config configurations activate is the standard and most efficient way to switch environments and manage instances across multiple accounts from the CLI.

❌ Why the other choices are incorrect:

  • Option B is incorrect: This option is incomplete and grammatically truncated ("Run"). It lacks the crucial step of activating the created configurations for use.
  • Option C is incorrect: Configurations must be created before they can be activated. Also, gcloud config list displays current settings, it does not start Compute Engine instances. The activation command syntax is incorrect.
  • Option D is incorrect: Similar to C, configurations need creation first. gcloud configurations list displays existing configurations, but it does not start Compute Engine instances. The activation command syntax is also incorrect.

QUESTION 23

You significantly changed a complex Deployment Manager template and want to confirm that the dependencies of all defined resources are properly met before committing it to the project. You want the most rapid feedback on your changes. What should you do?

  • A. Use granular logging statements within a Deployment Manager template authored in Python.
  • B. Monitor activity of the Deployment Manager execution on the Cloud logging page of the GCP Console.
  • C. Execute the Deployment Manager template against a separate project with the same configuration, and monitor for failures.
  • D. Execute the Deployment Manager template using the –-preview option in the same project, and observe the state of interdependent resources.
Click to View Verified Solution & Explanation

Correct Option: D

Explanation: ✅ Option D (Correct)
Reasoning: The --preview option (or gcloud deployment-manager deployments create --preview) performs a dry run. It validates the template syntax and checks resource dependencies without creating actual resources, providing the fastest feedback on potential issues before full deployment or committing changes.

❌ Why the other choices are incorrect:

  • Option A is incorrect: Logging statements require the template to execute, which is not rapid feedback before committing changes.
  • Option B is incorrect: Monitoring Cloud Logging occurs during or after execution, not as a rapid pre-check before deployment.
  • Option C is incorrect: Executing against another project is a full deployment, resource-intensive, and much slower than a --preview dry run for dependency validation.

QUESTION 24

You are building a pipeline to process time-series data. Which Google Cloud Platform services should you put in boxes 1,2,3, and 4?

  • A. options/AssociateCloudEngineer_410c884fd7.webp
  • B. Firebase Messages, Cloud Pub/Sub, Cloud Spanner, BigQuery
  • C. Cloud Pub/Sub, Cloud Storage, BigQuery, Cloud Bigtable
  • D. Cloud Pub/Sub, Cloud Dataflow, Cloud Bigtable, BigQuery
Click to View Verified Solution & Explanation

Correct Option: D

Explanation: ✅ Option D (Correct)
Reasoning: This pipeline design correctly leverages GCP services for time-series data processing. Pub/Sub ingests high-volume streams, Dataflow processes them in real-time, Cloud Bigtable stores hot time-series data for fast access, and BigQuery provides analytical capabilities for historical data.

❌ Why the other choices are incorrect:

  • Option B is incorrect: Firebase Messages is for user notifications, not general time-series data ingestion (Box 1). Cloud Spanner is a relational database not typically optimized for raw, high-throughput time-series hot storage like Cloud Bigtable (Box 3).
  • Option C is incorrect: Cloud Storage is object storage, not a real-time stream processing engine for Box 2. Placing BigQuery as hot storage (Box 3) and Cloud Bigtable as cold storage (Box 4) is generally inverted for typical time-series use cases; Bigtable excels at hot, operational time-series data, while BigQuery is for analytical cold storage.

QUESTION 25

You have a project for your App Engine application that serves a development environment. The required testing has succeeded and you want to create a new project to serve as your production environment. What should you do?

  • A. Use gcloud to create the new project, and then deploy your application to the new project.
  • B. Use gcloud to create the new project and to copy the deployed application to the new project.
  • C. Create a Deployment Manager configuration file that copies the current App Engine deployment into a new project.
  • D. Deploy your application again using gcloud and specify the project parameter with the new project name to create the new project.
Click to View Verified Solution & Explanation

Correct Option: A

Explanation: ✅ Option A (Correct)
Reasoning: To establish a new production environment, you first need a dedicated project, which gcloud projects create accomplishes. Subsequently, deploying your application using gcloud app deploy to this newly created project properly provisions your production service, maintaining clear separation from development.

❌ Why the other choices are incorrect:

  • Option B is incorrect: There is no gcloud command to directly "copy" a deployed App Engine application between projects. Applications are deployed from source code.
  • Option C is incorrect: Deployment Manager provisions infrastructure but doesn’t "copy" an already deployed App Engine application. App Engine deployments originate from source code.
  • Option D is incorrect: While gcloud app deploy uses a project parameter, it only deploys to an existing project. It does not create new projects.

QUESTION 26

You need to configure IAM access audit logging in BigQuery for external auditors. You want to follow Google-recommended practices. What should you do?

  • A. Add the auditors group to the ‘logging.viewer’ and ‘bigQuery.dataViewer’ predefined IAM roles.
  • B. Add the auditors group to two new custom IAM roles.
  • C. Add the auditor user accounts to the ‘logging.viewer’ and ‘bigQuery.dataViewer’ predefined IAM roles.
  • D. Add the auditor user accounts to two new custom IAM roles.
Click to View Verified Solution & Explanation

Correct Option: A

Explanation: ✅ Option A (Correct)
Reasoning: Adding auditors to a group simplifies management and follows best practices. The roles/logging.viewer role grants permissions to view Cloud Logging entries. The roles/bigquery.dataViewer role allows read access to BigQuery datasets, where exported audit logs are stored. Using predefined roles for common viewing tasks is a Google-recommended practice.

❌ Why the other choices are incorrect:

  • Option B is incorrect: Creating custom roles for standard viewing tasks is generally not recommended when appropriate predefined roles exist. It introduces unnecessary management overhead and complexity, diverging from Google’s best practices for simplicity and efficiency.
  • Option C is incorrect: Directly assigning roles to individual user accounts is less scalable and harder to manage than using a group, especially for external auditors. Managing access for multiple users via groups is a key Google best practice.
  • Option D is incorrect: This option combines the disadvantages of assigning roles to individual user accounts and the unnecessary complexity of creating custom roles for a standard viewing requirement, making it inefficient and not recommended.

QUESTION 27

You need to set up permissions for a set of Compute Engine instances to enable them to write data into a particular Cloud Storage bucket. You want to follow Google-recommended practices. What should you do?

  • A. Create a service account with an access scope. Use the access scope ‘https<a href="http://www.googleapis.com/">://www.googleapis.com/</a> auth/devstorage.write_only’.
  • B. Create a service account with an access scope. Use the access scope ‘https<a href="http://www.googleapis.com/">://www.googleapis.com/</a> auth/cloud-platform’.
  • C. Create a service account and add it to the IAM role ‘storage.objectCreator’ for that bucket.
  • D. Create a service account and add it to the IAM role ‘storage.objectAdmin’ for that bucket.
Click to View Verified Solution & Explanation

Correct Option: B

Explanation: ✅ Option B (Correct)
Reasoning: Google’s recommended practice for Compute Engine instances accessing Cloud services is to grant the cloud-platform access scope. This scope broadly enables the instance to authenticate with all Google Cloud APIs, while granular permissions are then controlled by specific IAM roles assigned to the instance’s service account.

❌ Why the other choices are incorrect:

  • Option A is incorrect: While devstorage.write_only is a specific scope for Storage write access, the general recommendation for instances is cloud-platform scope to ensure broad API access, with IAM roles providing fine-grained control.
  • Option C is incorrect: Assigning the storage.objectCreator IAM role is crucial for granular permissions. However, without an adequate access scope (like cloud-platform), the Compute Engine instance’s service account might be unable to even authenticate or make calls to the Cloud Storage API.
  • Option D is incorrect: The storage.objectAdmin role grants excessive permissions (read, write, delete, manage) when the requirement is only to write data. It violates the principle of least privilege.

QUESTION 28

You have sensitive data stored in three Cloud Storage buckets and have enabled data access logging. You want to verify activities for a particular user for these buckets, using the fewest possible steps. You need to verify the addition of metadata labels and which files have been viewed from those buckets. What should you do?

  • A. Using the GCP Console, filter the Activity log to view the information.
  • B. Using the GCP Console, filter the Stackdriver log to view the information.
  • C. View the bucket in the Storage section of the GCP Console.
  • D. Create a trace in Stackdriver to view the information.
Click to View Verified Solution & Explanation

Correct Option: B

Explanation: ✅ Option B (Correct)
Reasoning: Data access logs, once enabled, are stored in Cloud Logging (formerly Stackdriver Logging). To verify specific activities (metadata changes, file views) for a particular user across multiple buckets, the most efficient method is to use the GCP Console’s Logs Explorer to filter these logs by user principal, resource type (gcs_bucket), bucket names, and relevant method names (e.g., storage.objects.update for metadata, storage.objects.get for views).

❌ Why the other choices are incorrect:

  • Option A is incorrect: While "Activity log" often refers to audit logs, "Stackdriver log" (Cloud Logging) is the specific service where these detailed data access logs reside and are filtered. Option B is more precise.
  • Option C is incorrect: Viewing the bucket in the Storage section only shows its current state and contents. It does not provide a historical record of who accessed files or changed metadata.
  • Option D is incorrect: Stackdriver Trace (Cloud Trace) is for application performance monitoring and debugging distributed requests, not for auditing Cloud Storage data access events.

QUESTION 29

You are the project owner of a GCP project and want to delegate control to colleagues to manage buckets and files in Cloud Storage. You want to follow Google-recommended practices. Which IAM roles should you grant your colleagues?

  • A. Project Editor
  • B. Storage Admin
  • C. Storage Object Admin
  • D. Storage Object Creator
Click to View Verified Solution & Explanation

Correct Option: B

Explanation: ✅ Option B (Correct)
Reasoning: The Storage Admin role grants full control over Cloud Storage buckets and their objects. This includes creating, deleting, and setting IAM policies on buckets, as well as managing all objects within them. It directly satisfies the requirement to "manage buckets and files" effectively and securely, adhering to least privilege for Cloud Storage.

❌ Why the other choices are incorrect:

  • Option A is incorrect: Project Editor grants extensive permissions across most GCP services, far exceeding the Cloud Storage-specific control requested. This violates the principle of least privilege.
  • Option C is incorrect: Storage Object Admin only allows full control over objects within buckets. It does not provide permissions to create, delete, or manage the buckets themselves.
  • Option D is incorrect: Storage Object Creator is too restrictive, only permitting the creation of new objects. It lacks permissions to manage existing objects, delete objects, or interact with buckets.

QUESTION 30

You have an object in a Cloud Storage bucket that you want to share with an external company. The object contains sensitive data. You want access to the content to be removed after four hours. The external company does not have a Google account to which you can grant specific user-based access privileges.

You want to use the most secure method that requires the fewest steps. What should you do?

  • A. Create a signed URL with a four-hour expiration and share the URL with the company.
  • B. Set object access to ‘public’ and use object lifecycle management to remove the object after four hours.
  • C. Configure the storage bucket as a static website and furnish the object’s URL to the company. Delete the object from the storage bucket after four hours.
  • D. Create a new Cloud Storage bucket specifically for the external company to access. Copy the object to that bucket. Delete the bucket after four hours have passed.
Click to View Verified Solution & Explanation

Correct Option: A

Explanation: ✅ Option A (Correct)
Reasoning: Signed URLs provide time-limited, secure access to a specific Cloud Storage object without requiring the recipient to have a Google account or making the object public. This method directly fulfills the requirement for temporary access to sensitive data with minimal steps.

❌ Why the other choices are incorrect:

  • Option B is incorrect: Setting object access to ‘public’ compromises security by exposing sensitive data to anyone on the internet, which violates the "most secure" requirement.
  • Option C is incorrect: Configuring a bucket as a static website makes objects public, compromising security. Manually deleting the object is less efficient and prone to error than an automatic expiration.
  • Option D is incorrect: Creating a new bucket, copying the object, and then deleting the bucket involves more steps and complexity than a signed URL, and doesn’t inherently offer a more secure or simpler way to share with non-Google accounts.

QUESTION 31

You are creating a Google Kubernetes Engine (GKE) cluster with a cluster autoscaler feature enabled. You need to make sure that each node of the cluster will run a monitoring pod that sends container metrics to a third-party monitoring solution. What should you do?

  • A. Deploy the monitoring pod in a StatefulSet object.
  • B. Deploy the monitoring pod in a DaemonSet object.
  • C. Reference the monitoring pod in a Deployment object.
  • D. Reference the monitoring pod in a cluster initializer at the GKE cluster creation time.
Click to View Verified Solution & Explanation

Correct Option: B

Explanation: ✅ Option B (Correct)
Reasoning: DaemonSets ensure a specific pod runs on all (or some) nodes in a cluster. This is ideal for node-level agents like monitoring, logging, or storage daemons. When new nodes are added by the cluster autoscaler, the DaemonSet automatically schedules a monitoring pod onto them, fulfilling the requirement.

❌ Why the other choices are incorrect:

  • Option A is incorrect: StatefulSets manage stateful applications, providing stable network identities and persistent storage for a fixed number of pods. They are not designed to ensure one pod per node dynamically across an autoscaling cluster.
  • Option C is incorrect: Deployments manage a desired number of identical pods, distributing them across available nodes but without guaranteeing one pod per node. They aim for replica count, not per-node residency, making them unsuitable for node-level agents.
  • Option D is incorrect: Cluster initializers (a deprecated Kubernetes feature) perform actions before an object is created. They do not deploy or manage pods continuously on nodes, nor do they ensure deployment onto new nodes added by an autoscaler.

QUESTION 32

You want to send and consume Cloud Pub/Sub messages from your App Engine application. The Cloud Pub/Sub API is currently disabled. You will use a service account to authenticate your application to the API. You want to make sure your application can use Cloud Pub/Sub. What should you do?

  • A. Enable the Cloud Pub/Sub API in the API Library on the GCP Console.
  • B. Rely on the automatic enablement of the Cloud Pub/Sub API when the Service Account accesses it.
  • C. Use Deployment Manager to deploy your application. Rely on the automatic enablement of all APIs used by the application being deployed.
  • D. Grant the App Engine Default service account the role of Cloud Pub/Sub Admin. Have your application
Click to View Verified Solution & Explanation

Correct Option: A

Explanation: ✅ Option A (Correct)
Reasoning: All Google Cloud APIs must be explicitly enabled at the project level within the API Library. An application, regardless of its authentication method, cannot use a disabled API. Enabling it is the foundational first step.

❌ Why the other choices are incorrect:

  • Option B is incorrect: APIs are not automatically enabled by a service account attempting to access them; manual or declarative enablement is always required.
  • Option C is incorrect: While Deployment Manager can manage API enablement, it doesn’t automatically enable all APIs an application uses without explicit configuration within the template.
  • Option D is incorrect: Granting permissions (like Pub/Sub Admin) allows a service account to use an API, but only if the API itself is already enabled for the project. Permissions do not enable the API.

QUESTION 33

You need to monitor resources that are distributed over different projects in Google Cloud Platform. You want to consolidate reporting under the same Stackdriver Monitoring dashboard. What should you do?

  • A. Use Shared VPC to connect all projects, and link Stackdriver to one of the projects.
  • B. For each project, create a Stackdriver account. In each project, create a service account for that project and grant it the role of Stackdriver Account Editor in all other projects.
  • C. Configure a single Stackdriver account, and link all projects to the same account.
  • D. Configure a single Stackdriver account for one of the projects. In Stackdriver, create a Group and add the other project names as criteria for that Group.
Click to View Verified Solution & Explanation

Correct Option: C

Explanation: ✅ Option C (Correct)
Reasoning: Cloud Monitoring (formerly Stackdriver) workspaces are configured within a "scoping project." By linking all desired Google Cloud projects to a single scoping project’s Monitoring workspace, you consolidate their metrics, logs, and dashboards for unified reporting.

❌ Why the other choices are incorrect:

  • Option A is incorrect: Shared VPC connects networks between projects and is unrelated to how Cloud Monitoring consolidates data for dashboards across projects.
  • Option B is incorrect: This is an overly complicated and incorrect method. Cloud Monitoring uses a single workspace to aggregate data from multiple linked projects, not separate "accounts" per project with cross-project editor roles.
  • Option D is incorrect: While starting with a single "account" (scoping project) is correct, Cloud Monitoring Groups organize resources within already monitored projects, not the mechanism for linking projects for cross-project monitoring itself.

QUESTION 34

You are deploying an application to a Compute Engine VM in a managed instance group. The application must be running at all times, but only a single instance of the VM should run per GCP project. How should you configure the instance group?

  • A. Set autoscaling to On, set the minimum number of instances to 1, and then set the maximum number of instances to 1.
  • B. Set autoscaling to Off, set the minimum number of instances to 1, and then set the maximum number of instances to 1.
  • C. Set autoscaling to On, set the minimum number of instances to 1, and then set the maximum number of instances to 2.
  • D. Set autoscaling to Off, set the minimum number of instances to 1, and then set the maximum number of instances to 2.
Click to View Verified Solution & Explanation

Correct Option: A

Explanation: ✅ Option A (Correct)
Reasoning: Setting autoscaling to On with both minimum and maximum instances set to 1 ensures the Managed Instance Group (MIG) always maintains exactly one running VM. The MIG’s auto-healing capability restarts the instance if it fails, satisfying the "running at all times" requirement.

❌ Why the other choices are incorrect:

  • Option B is incorrect: While a non-autoscaled MIG (autoscaling Off) can maintain a fixed size, the parameters minimum and maximum instances are typically applied when autoscaling is On. If autoscaling is off, you specify a targetSize. This option presents an inconsistent configuration.
  • Option C is incorrect: Setting the maximum number of instances to 2 violates the requirement that "only a single instance of the VM should run per GCP project."
  • Option D is incorrect: Similar to C, a maximum of 2 instances violates the single instance requirement. Additionally, it shares the same configuration inconsistency as B regarding autoscaling Off with min/max parameters.

QUESTION 35

You want to verify the IAM users and roles assigned within a GCP project named my-project. What should you do?

  • A. Run gcloud iam roles list. Review the output section.
  • B. Run gcloud iam service-accounts list. Review the output section.
  • C. Navigate to the project and then to the IAM section in the GCP Console. Review the members and roles.
  • D. Navigate to the project and then to the Roles section in the GCP Console. Review the roles and status.
Click to View Verified Solution & Explanation

Correct Option: C

Explanation: ✅ Option C (Correct)
Reasoning: The GCP Console’s "IAM & Admin" > "IAM" section for a specific project directly displays all members (users, service accounts, groups) and their assigned roles within that project, fulfilling the verification requirement.

❌ Why the other choices are incorrect:

  • Option A is incorrect: gcloud iam roles list displays available IAM role definitions, not which members are assigned specific roles.
  • Option B is incorrect: gcloud iam service-accounts list shows only service accounts in a project, not other user types or their role assignments.
  • Option D is incorrect: There isn’t a standalone "Roles section" in the Console that shows role assignments. The "IAM & Admin" > "IAM" section is where assignments are reviewed.

QUESTION 36

You need to create a new billing account and then link it with an existing Google Cloud Platform project. What should you do?

  • A. Verify that you are Project Billing Manager for the GCP project. Update the existing project to link it to the existing billing account.
  • B. Verify that you are Project Billing Manager for the GCP project. Create a new billing account and link the new billing account to the existing project.
  • C. Verify that you are Billing Administrator for the billing account. Create a new project and link the new project to the existing billing account.
  • D. Verify that you are Billing Administrator for the billing account. Update the existing project to link it to the existing billing account.
Click to View Verified Solution & Explanation

Correct Option: B

Explanation:

✅ Option B (Correct)
Reasoning: To link an existing Google Cloud project to a billing account, you must have the Project Billing Manager role on that specific project. The workflow involves creating the new billing account first, and then associating the existing project with this newly created billing account.

❌ Why the other choices are incorrect:
* Option A is incorrect: The question specifies creating a new billing account, but this option refers to linking to an existing billing account.
* Option C is incorrect: This option suggests creating a new project and linking to an existing billing account, which contradicts the requirements of an existing project and a new billing account.
* Option D is incorrect: Similar to option A, it refers to linking to an existing billing account, not a new one. While a Billing Administrator can manage billing accounts, the Project Billing Manager role is specifically required on the project to modify its billing association.

Reference: https://cloud.google.com/billing/docs/how-to/manage-billing-account#change_billing_account_for_a_project

QUESTION 37

You have one project called proj-sa where you manage all your service accounts. You want to be able to use a service account from this project to take snapshots of VMs running in another project called proj- vm. What should you do?

  • A. Download the private key from the service account, and add it to each VMs custom metadata.
  • B. Download the private key from the service account, and add the private key to each VM’s SSH keys.
  • C. Grant the service account the IAM Role of Compute Storage Admin in the project called proj-vm.
  • D. When creating the VMs, set the service account’s API scope for Compute Engine to read/write.
Click to View Verified Solution & Explanation

Correct Option: C

Explanation: ✅ Option C (Correct)
Reasoning: The Compute Storage Admin role (roles/compute.storageAdmin) includes permissions like compute.disks.createSnapshot, essential for taking VM snapshots. Granting this role to the service account in proj-vm enables it to manage snapshots within that project.

❌ Why the other choices are incorrect:

  • Option A is incorrect: Downloading private keys is for application authentication. Custom metadata passes instance-specific information, not cross-project IAM permissions for resource management.
  • Option B is incorrect: SSH keys are for secure shell access to a VM instance and are unrelated to granting a service account permissions to take snapshots.
  • Option D is incorrect: API scopes define what a VM’s attached service account can access from other Google Cloud services. They do not grant an external service account permissions to manage resources (like taking snapshots) in a project.

QUESTION 38

You created a Google Cloud Platform project with an App Engine application inside the project. You initially configured the application to be served from the us-central region. Now you want the application to be served from the asia-northeast1 region. What should you do?

  • A. Change the default region property setting in the existing GCP project to asia-northeast1.
  • B. Change the region property setting in the existing App Engine application from us-central to asia- northeast1.
  • C. Create a second App Engine application in the existing GCP project and specify asia-northeast1 as the region to serve your application.
  • D. Create a new GCP project and create an App Engine application inside this new project. Specify asia- northeast1 as the region to serve your application.
Click to View Verified Solution & Explanation

Correct Option: D

Explanation: ✅ Option D (Correct)
Reasoning: An App Engine application’s region is set permanently upon its creation within a Google Cloud project. It cannot be changed, and a project can only host one App Engine application. To serve an application from a different region, a new Google Cloud project must be created, and the App Engine application initialized there.

❌ Why the other choices are incorrect:

  • Option A is incorrect: Changing the default region property of a project affects other services but not an existing, region-locked App Engine application.
  • Option B is incorrect: App Engine application regions are immutable once configured; they cannot be changed directly.
  • Option C is incorrect: A Google Cloud project can only host one App Engine application. Creating a second one in the same project is not possible.

QUESTION 39

You need to grant access for three users so that they can view and edit table data on a Cloud Spanner instance. What should you do?

  • A. Run gcloud iam roles describe roles/spanner.databaseUser. Add the users to the role.
  • B. Run gcloud iam roles describe roles/spanner.databaseUser. Add the users to a new group. Add the group to the role.
  • C. Run gcloud iam roles describe roles/spanner.viewer – -project my-project. Add the users to the role.
  • D. Run gcloud iam roles describe roles/spanner.viewer – -project my-project. Add the users to a new group. Add the group to the role.
Click to View Verified Solution & Explanation

Correct Option: B

Explanation: ✅ Option B (Correct)
Reasoning: The roles/spanner.databaseUser role provides necessary permissions to view and edit Spanner table data. Using a group is a best practice for managing access for multiple users, simplifying administration and auditing.

❌ Why the other choices are incorrect:

  • Option A is incorrect: While roles/spanner.databaseUser is correct, directly adding individual users is less scalable and maintainable than using a group for three or more users.
  • Option C is incorrect: The roles/spanner.viewer role grants read-only access to Spanner instances and databases metadata, not the ability to edit table data. The --project flag is misplaced for describing a predefined role.
  • Option D is incorrect: Similar to C, roles/spanner.viewer does not permit editing table data. The --project flag is also incorrectly used.

QUESTION 40

You create a new Google Kubernetes Engine (GKE) cluster and want to make sure that it always runs a supported and stable version of Kubernetes. What should you do?

  • A. Enable the Node Auto-Repair feature for your GKE cluster.
  • B. Enable the Node Auto-Upgrades feature for your GKE cluster.
  • C. Select the latest available cluster version for your GKE cluster.
  • D. Select “Container-Optimized OS (cos)” as a node image for your GKE cluster.
Click to View Verified Solution & Explanation

Correct Option: B

Explanation: ✅ Option B (Correct)
Reasoning: Node Auto-Upgrades automatically updates GKE nodes to the latest stable and supported Kubernetes version. This ensures the cluster consistently runs a supported and secure version without manual intervention.

❌ Why the other choices are incorrect:

  • Option A is incorrect: Node Auto-Repair replaces unhealthy nodes but does not update the Kubernetes version running on the nodes.
  • Option C is incorrect: Selecting the latest version is a one-time action at creation; it doesn’t ensure the cluster always remains updated as new versions are released.
  • Option D is incorrect: Container-Optimized OS is a node operating system image for GKE, offering security and optimization, but it does not manage Kubernetes version upgrades.

QUESTION 41

You have an instance group that you want to load balance. You want the load balancer to terminate the client SSL session. The instance group is used to serve a public web application over HTTPS. You want to follow Google-recommended practices. What should you do?

  • A. Configure an HTTP(S) load balancer.
  • B. Configure an internal TCP load balancer.
  • C. Configure an external SSL proxy load balancer.
  • D. Configure an external TCP proxy load balancer.
Click to View Verified Solution & Explanation

Correct Option: A

Explanation: ✅ Option A (Correct)
Reasoning: An HTTP(S) load balancer is Google’s recommended solution for public web applications over HTTPS. It is specifically designed to terminate client SSL sessions at the load balancer, offloading this task from backend instances, and provides comprehensive Layer 7 traffic management.

❌ Why the other choices are incorrect:

  • Option B is incorrect: Internal TCP load balancers are designed for internal-only services, operate at Layer 4 (TCP), and do not terminate SSL sessions; they perform pass-through load balancing.
  • Option C is incorrect: External SSL proxy load balancers terminate SSL but are generally intended for non-HTTP(S) SSL/TLS protocols. For web applications, HTTP(S) load balancing is the appropriate and feature-rich choice.
  • Option D is incorrect: External TCP proxy load balancers operate at Layer 4 (TCP) and do not terminate SSL sessions. They are used for non-HTTP(S) protocols where SSL termination isn’t required at the load balancer or handled by the backend.

QUESTION 42

You have 32 GB of data in a single file that you need to upload to a Nearline Storage bucket. The WAN connection you are using is rated at 1 Gbps, and you are the only one on the connection. You want to use as much of the rated 1 Gbps as possible to transfer the file rapidly. How should you upload the file?

  • A. Use the GCP Console to transfer the file instead of gsutil.
  • B. Enable parallel composite uploads using gsutil on the file transfer.
  • C. Decrease the TCP window size on the machine initiating the transfer.
  • D. Change the storage class of the bucket from Nearline to Multi-Regional.
Click to View Verified Solution & Explanation

Correct Option: B

Explanation: ✅ Option B (Correct)
Reasoning: Enabling parallel composite uploads with gsutil divides the 32 GB file into smaller chunks, uploading them concurrently. This leverages the full 1 Gbps WAN connection by overcoming single-stream limitations and latency, drastically increasing the overall upload speed for large objects.

❌ Why the other choices are incorrect:

  • Option A is incorrect: GCP Console uploads usually employ single-stream transfers, which are less efficient than gsutil‘s optimized parallel methods for very large files over high-bandwidth connections.
  • Option C is incorrect: Decreasing the TCP window size would limit the amount of data in flight, thereby reducing throughput and slowing down transfers, especially over high-latency WANs.
  • Option D is incorrect: Changing the storage class (e.g., Nearline to Multi-Regional) affects cost, availability, and retrieval latency, but does not directly impact the initial upload speed from the client machine.

QUESTION 43

You’ve deployed a microservice called myapp1 to a Google Kubernetes Engine cluster using the YAML file specified below:

You need to refactor this configuration so that the database password is not stored in plain text. You want to follow Google-recommended practices. What should you do?

  • A. Store the database password inside the Docker image of the container, not in the YAML file.
  • B. Store the database password inside a Secret object. Modify the YAML file to populate the DB_PASSWORD environment variable from the Secret.
  • C. Store the database password inside a ConfigMap object. Modify the YAML file to populate the DB_PASSWORD environment variable from the ConfigMap.
  • D. Store the database password in a file inside a Kubernetes persistent volume, and use a persistent volume claim to mount the volume to the container.
Click to View Verified Solution & Explanation

Correct Option: B

Explanation: ✅ Option B (Correct)
Reasoning: Kubernetes Secret objects are the standard, recommended way to store sensitive information like database passwords. They allow you to decouple credentials from your application code and configuration, making them more secure than plain text in YAML.

❌ Why the other choices are incorrect:

  • Option A is incorrect: Storing passwords directly within a Docker image is insecure. Images can be inspected, revealing credentials.
  • Option C is incorrect: ConfigMap objects are for non-confidential configuration data and do not provide the necessary security measures for sensitive information like passwords.
  • Option D is incorrect: Persistent Volumes are designed for durable storage of application data, not for managing configuration secrets. This method is overly complex and less secure than using Kubernetes Secrets.

QUESTION 44

You are running an application on multiple virtual machines within a managed instance group and have autoscaling enabled. The autoscaling policy is configured so that additional instances are added to the group if the CPU utilization of instances goes above 80%. VMs are added until the instance group reaches its maximum limit of five VMs or until CPU utilization of instances lowers to 80%. The initial delay for HTTP health checks against the instances is set to 30 seconds. The virtual machine instances take around three minutes to become available for users. You observe that when the instance group autoscales, it adds more instances then necessary to support the levels of end-user traffic. You want to properly maintain instance group sizes when autoscaling. What should you do?

  • A. Set the maximum number of instances to 1.
  • B. Decrease the maximum number of instances to 3.
  • C. Use a TCP health check instead of an HTTP health check.
  • D. Increase the initial delay of the HTTP health check to 200 seconds.
Click to View Verified Solution & Explanation

Correct Option: D

Explanation: ✅ Option D (Correct)
Reasoning: Instances take 180 seconds (3 minutes) to become available. With a 30-second initial health check delay, instances are probed before they are ready, causing them to be marked unhealthy. This leads the autoscaler to perceive insufficient healthy capacity and overprovision. Increasing the initial delay to 200 seconds ensures instances are fully ready before health checks begin, preventing premature unhealthiness and thus preventing unnecessary additional scaling.

❌ Why the other choices are incorrect:

  • Option A is incorrect: Setting the maximum to 1 defeats the purpose of autoscaling for varying loads and doesn’t solve the overscaling behavior itself.
  • Option B is incorrect: Decreasing the maximum instances only limits the upper bound, but doesn’t address the underlying issue of adding more than necessary instances during a scale-up event.
  • Option C is incorrect: Changing the health check protocol (HTTP to TCP) does not address the fundamental problem of the time it takes for instances to become available or the timing of health check probes relative to that startup time.

QUESTION 45

You need to select and configure compute resources for a set of batch processing jobs. These jobs take around 2 hours to complete and are run nightly. You want to minimize service costs. What should you do?

  • A. Select Google Kubernetes Engine. Use a single-node cluster with a small instance type.
  • B. Select Google Kubernetes Engine. Use a three-node cluster with micro instance types.
  • C. Select Compute Engine. Use preemptible VM instances of the appropriate standard machine type.
  • D. Select Compute Engine. Use VM instance types that support micro bursting.
Click to View Verified Solution & Explanation

Correct Option: C

Explanation: ✅ Option C (Correct)
Reasoning: Compute Engine with preemptible VMs offers significant cost savings (up to 80%) compared to standard VMs. They are ideal for fault-tolerant, short-duration (2 hours), nightly batch jobs as preemption is tolerable, and they directly minimize service costs for this scenario.

❌ Why the other choices are incorrect:

  • Option A is incorrect: GKE adds overhead costs and complexity for simple batch jobs if not already required. A single-node cluster doesn’t inherently minimize cost more than preemptible VMs.
  • Option B is incorrect: GKE still adds overhead. A three-node cluster is more expensive than a single node or direct VMs, and micro instance types are likely insufficient for 2-hour batch processing jobs, risking longer run times or failures.
  • Option D is incorrect: VM instance types supporting micro bursting (e.g., f1-micro, e2-micro) are designed for very low, intermittent usage. They are generally unsuitable for sustained 2-hour batch processing, which requires consistent compute, potentially extending job duration or failing.

QUESTION 46

You recently deployed a new version of an application to App Engine and then discovered a bug in the release. You need to immediately revert to the prior version of the application. What should you do?

  • A. Run gcloud app restore.
  • B. On the App Engine page of the GCP Console, select the application that needs to be reverted and click
  • C. On the App Engine Versions page of the GCP Console, route 100% of the traffic to the previous version.
  • D. Deploy the original version as a separate application. Then go to App Engine settings and split traffic between applications so that the original version serves 100% of the requests.
Click to View Verified Solution & Explanation

Correct Option: C

Explanation: ✅ Option C (Correct)
Reasoning: To immediately revert an App Engine application, the standard and most efficient method is to redirect 100% of the incoming traffic from the buggy version to a previously deployed, stable version on the App Engine Versions page. This is a quick configuration change.

❌ Why the other choices are incorrect:

  • Option A is incorrect: There is no gcloud app restore command. Reverting involves traffic management, not a "restore" operation.
  • Option B is incorrect: This choice is incomplete and vague. Reverting traffic is managed at the version level, not by a generic application selection and click on the main App Engine page.
  • Option D is incorrect: Deploying as a "separate application" is incorrect; versions belong to the same application. You manage traffic between versions, not separate applications. Re-deploying also adds unnecessary time when an older version is already available.

QUESTION 47

You deployed an App Engine application using gcloud app deploy, but it did not deploy to the intended project. You want to find out why this happened and where the application deployed. What should you do?

  • A. Check the app.yaml file for your application and check project settings.
  • B. Check the web-application.xml file for your application and check project settings.
  • C. Go to Deployment Manager and review settings for deployment of applications.
  • D. Go to Cloud Shell and run gcloud config list to review the Google Cloud configuration used for deployment.
Click to View Verified Solution & Explanation

Correct Option: D

Explanation: ✅ Option D (Correct)
Reasoning: The gcloud CLI uses its active configuration, including the project, for all commands like gcloud app deploy. Running gcloud config list displays this configuration, directly revealing the project the deployment targeted and explaining why it didn’t go to the intended one.

❌ Why the other choices are incorrect:

  • Option A is incorrect: The app.yaml file defines application services and settings within a project, but does not specify the target Google Cloud project for deployment. Project settings are too general.
  • Option B is incorrect: web-application.xml is a Java Servlet deployment descriptor, mostly irrelevant for modern App Engine project targeting. It doesn’t define the GCP project ID.
  • Option C is incorrect: Deployment Manager creates and manages Google Cloud resources declaratively. gcloud app deploy is a direct CLI command for deploying application code, not typically managed through Deployment Manager to resolve incorrect project targets.

QUESTION 48

You want to configure 10 Compute Engine instances for availability when maintenance occurs. Your requirements state that these instances should attempt to automatically restart if they crash. Also, the instances should be highly available including during system maintenance. What should you do?

  • A. Create an instance template for the instances. Set the ‘Automatic Restart’ to on. Set the ‘On-host maintenance’ to Migrate VM instance. Add the instance template to an instance group.
  • B. Create an instance template for the instances. Set ‘Automatic Restart’ to off. Set ‘On-host maintenance’ to Terminate VM instances. Add the instance template to an instance group.
  • C. Create an instance group for the instances. Set the ‘Autohealing’ health check to healthy (HTTP).
  • D. Create an instance group for the instance. Verify that the ‘Advanced creation options’ setting for ‘do not retry machine creation’ is set to off.
Click to View Verified Solution & Explanation

Correct Option: A

Explanation: ✅ Option A (Correct)
Reasoning: Setting Automatic Restart to on ensures instances attempt to restart after a crash, meeting the auto-restart requirement. Configuring On-host maintenance to Migrate VM instance enables Live Migration, maintaining instance availability and high availability during system maintenance. Using an instance template and group applies these settings consistently to 10 instances.

❌ Why the other choices are incorrect:

  • Option B is incorrect: Setting Automatic Restart to off prevents instances from restarting after a crash. Setting On-host maintenance to Terminate VM instances causes instances to stop during maintenance, failing both availability requirements.
  • Option C is incorrect: Autohealing with health checks manages application responsiveness by recreating unhealthy instances. It does not configure automatic VM restarts on crash or specify on-host maintenance behavior for running VMs.
  • Option D is incorrect: This setting ensures that machine creation is retried if it initially fails, helping an instance group reach its target size. It does not control automaticRestart behavior for crashed VMs or on-host maintenance during system events.

QUESTION 49

You host a static website on Cloud Storage. Recently, you began to include links to PDF files on this site. Currently, when users click on the links to these PDF files, their browsers prompt them to save the file onto their local system. Instead, you want the clicked PDF files to be displayed within the browser window directly, without prompting the user to save the file locally. What should you do?

  • A. Enable Cloud CDN on the website frontend.
  • B. Enable ‘Share publicly’ on the PDF file objects.
  • C. Set Content-Type metadata to application/pdf on the PDF file objects.
  • D. Add a label to the storage bucket with a key of Content-Type and value of application/pdf.
Click to View Verified Solution & Explanation

Correct Option: C

Explanation: ✅ Option C (Correct)
Reasoning: Setting the Content-Type metadata to application/pdf for the PDF file objects explicitly informs web browsers that the file is a PDF. Modern browsers are equipped with built-in PDF viewers and will consequently display the document directly within the browser window rather than prompting the user for a download. This is the standard HTTP mechanism for controlling how file types are handled.

❌ Why the other choices are incorrect:

  • Option A is incorrect: Cloud CDN primarily optimizes content delivery speed through caching. It does not alter the Content-Type metadata of objects or dictate how a browser renders specific file types.
  • Option B is incorrect: Enabling ‘Share publicly’ makes the file accessible via a URL, but it does not control the browser’s display behavior for the content itself. The browser still relies on Content-Type.
  • Option D is incorrect: Adding a label to the storage bucket is for organizational purposes, such as billing or policy enforcement, and metadata about the bucket. It does not set HTTP headers like Content-Type for individual objects served from the bucket.

QUESTION 50

You have a virtual machine that is currently configured with 2 vCPUs and 4 GB of memory. It is running out of memory. You want to upgrade the virtual machine to have 8 GB of memory. What should you do?

  • A. Rely on live migration to move the workload to a machine with more memory.
  • B. Use gcloud to add metadata to the VM. Set the key to required-memory-size and the value to 8 GB.
  • C. Stop the VM, change the machine type to n1-standard-8, and start the VM.
  • D. Stop the VM, increase the memory to 8 GB, and start the VM.
Click to View Verified Solution & Explanation

Correct Option: D

Explanation: ✅ Option D (Correct)
Reasoning: To modify a Compute Engine VM’s resources, like memory, the instance must first be stopped. After stopping, you can edit the machine configuration (machine type) to increase the memory to 8 GB (e.g., using a custom machine type or a predefined type). Finally, the VM must be started again for these changes to take effect.

❌ Why the other choices are incorrect:

  • Option A is incorrect: Live migration moves a running VM to a different host but does not change its allocated resources (vCPUs or memory). Resource upgrades require modifying the VM configuration.
  • Option B is incorrect: VM metadata is used to pass information to the guest operating system or for startup scripts, not to directly configure fundamental VM resources like memory or vCPUs.
  • Option C is incorrect: Changing to n1-standard-8 would provide 30 GB of memory and 8 vCPUs. While it includes 8 GB of memory, it also significantly over-provisions vCPUs (from 2 to 8) and total memory, which is more than just upgrading to 8 GB of memory.

QUESTION 51

You have production and test workloads that you want to deploy on Compute Engine. Production VMs need to be in a different subnet than the test VMs. All the VMs must be able to reach each other over Internal IP without creating additional routes. You need to set up VPC and the 2 subnets. Which configuration meets these requirements?

  • A. Create a single custom VPC with 2 subnets. Create each subnet in a different region and with a different CIDR range.
  • B. Create a single custom VPC with 2 subnets. Create each subnet in the same region and with the same CIDR range.
  • C. Create 2 custom VPCs, each with a single subnet. Create each subnet in a different region and with a different CIDR range.
  • D. Create 2 custom VPCs, each with a single subnet. Create each subnet in the same region and with the same CIDR range.
Click to View Verified Solution & Explanation

Correct Option: A

Explanation: ✅ Option A (Correct)
Reasoning: A single custom VPC allows all VMs to communicate via internal IP without additional routes. Creating two subnets within this VPC (each with a unique CIDR range and potentially in different regions) satisfies the requirement for separating production and test workloads while maintaining seamless internal connectivity.

❌ Why the other choices are incorrect:

  • Option B is incorrect: Subnets within the same VPC cannot have the same or overlapping CIDR ranges. This configuration is invalid and impossible to create.
  • Option C is incorrect: Creating two separate VPCs would prevent VMs from reaching each other over internal IP without requiring additional routing configurations, such as VPC Peering.
  • Option D is incorrect: Similar to Option C, two separate VPCs would not allow internal IP communication without additional routes. The CIDR ranges themselves are not the primary issue here, but the separation of VPCs.

QUESTION 52

You need to create an autoscaling managed instance group for an HTTPS web application. You want to make sure that unhealthy VMs are recreated. What should you do?

  • A. Create a health check on port 443 and use that when creating the Managed Instance Group.
  • B. Select Multi-Zone instead of Single-Zone when creating the Managed Instance Group.
  • C. In the Instance Template, add the label ‘health-check’.
  • D. In the Instance Template, add a startup script that sends a heartbeat to the metadata server.
Click to View Verified Solution & Explanation

Correct Option: A

Explanation: ✅ Option A (Correct)
Reasoning: A health check configured on port 443 (for HTTPS) and associated with the Managed Instance Group (MIG) enables the MIG to monitor instance health. If an instance fails the health check, the MIG automatically recreates it, ensuring unhealthy VMs are replaced.

❌ Why the other choices are incorrect:

  • Option B is incorrect: Multi-Zone MIGs improve availability against zone failures but do not inherently detect and recreate unhealthy individual instances within a zone. Health checks are still required for instance-level health monitoring.
  • Option C is incorrect: Adding a label ‘health-check’ to an instance template is merely metadata. It does not configure an actual health check or enable the MIG to detect and recreate unhealthy instances.
  • Option D is incorrect: While a startup script can perform initial configuration, sending a heartbeat to the metadata server is not the standard or effective mechanism for a MIG to detect application unhealthiness and trigger auto-healing. Native GCP health checks are designed for this.

QUESTION 53

Your company has a Google Cloud Platform project that uses BigQuery for data warehousing. Your data science team changes frequently and has few members. You need to allow members of this team to perform queries. You want to follow Google-recommended practices. What should you do?

  • A. 1. Create an IAM entry for each data scientist's user account. 2. Assign the BigQuery jobUser role to the group.
  • B. 1. Create an IAM entry for each data scientist's user account. 2. Assign the BigQuery dataViewer user role to the group.
  • C. 1. Create a dedicated Google group in Cloud Identity. 2. Add each data scientist's user account to the group. 3. Assign the BigQuery jobUser role to the group.
  • D. 1. Create a dedicated Google group in Cloud Identity. 2. Add each data scientist's user account to the group. 3. Assign the BigQuery dataViewer user role to the group.
Click to View Verified Solution & Explanation

Correct Option: C

Explanation: ✅ Option C (Correct)
Reasoning: Creating a dedicated Google Group is Google’s recommended practice for managing IAM for teams, especially those with frequent changes. Assigning the BigQuery jobUser role to this group grants members the necessary permissions to execute BigQuery queries, adhering to the principle of least privilege.

❌ Why the other choices are incorrect:

  • Option A is incorrect: Creating individual IAM entries is not recommended for frequently changing teams. Using a group simplifies management. The role assignment statement is also contradictory.
  • Option B is incorrect: Individual IAM entries are not recommended. The BigQuery dataViewer role only allows viewing data and metadata; it does not grant permission to perform queries (run jobs).
  • Option D is incorrect: While using a Google Group is correct for user management, the BigQuery dataViewer role is insufficient as it does not allow users to perform queries.

QUESTION 54

Your company has a 3-tier solution running on Compute Engine. The configuration of the current infrastructure is shown below.

 

 

Each tier has a service account that is associated with all instances within it. You need to enable communication on TCP port 8080 between tiers as follows:

 

* Instances in tier #1 must communicate with tier #2.
* Instances in tier #2 must communicate with tier #3.

What should you do?

  • A. 1. Create an ingress firewall rule with the following settings:* Targets: all instances* Source filter: IP ranges (with the range set to 10.0.2.0/24)* Protocols: allow all2. Create an ingress firewall rule with the following settings:* Targets: all instances* Source filter: IP ranges (with the range set to 10.0.1.0/24)* Protocols: allow all
  • B. 1. Create an ingress firewall rule with the following settings:* Targets: all instances with tier #2 service account* Source filter: all instances with tier #1 service account* Protocols: allow TCP:80802. Create an ingress firewall rule with the following settings:* Targets: all instances with tier #3 service account* Source filter: all instances with tier #2 service account* Protocols: allow TCP: 8080
  • C. 1. Create an ingress firewall rule with the following settings:* Targets: all instances with tier #2 service account* Source filter: all instances with tier #1 service account* Protocols: allow all2. Create an ingress firewall rule with the following settings:* Targets: all instances with tier #3 service account* Source filter: all instances with tier #2 service account* Protocols: allow all
  • D. 1. Create an egress firewall rule with the following settings:* Targets: all instances* Source filter: IP ranges (with the range set to 10.0.2.0/24)* Protocols: allow TCP: 80802. Create an egress firewall rule with the following settings:* Targets: all instances* Source filter: IP ranges (with the range set to 10.0.1.0/24)* Protocols: allow TCP: 8080
Click to View Verified Solution & Explanation

Correct Option: B

Explanation:

Option B is the correct solution because it properly configures ingress firewall rules using service accounts for both targets and sources, and specifically allows communication on TCP port 8080 as required.

  • For instances in Tier #1 to communicate with Tier #2, an ingress rule is needed on Tier #2 (target) allowing traffic from Tier #1 (source) on TCP port 8080.
  • For instances in Tier #2 to communicate with Tier #3, an ingress rule is needed on Tier #3 (target) allowing traffic from Tier #2 (source) on TCP port 8080.
  • Using service accounts as target and source filters provides dynamic and granular control, ensuring that only instances associated with those specific service accounts can send or receive traffic, respectively. This is a best practice for security and manageability in Google Cloud.

The other options are incorrect for the following reasons:

  • Option A is incorrect: It uses IP ranges as source filters instead of service accounts, which is less flexible and secure. It also allows ‘all’ protocols, violating the principle of least privilege by opening up more ports than necessary.
  • Option C is incorrect: While it correctly uses service accounts for targets and sources, it allows ‘all’ protocols instead of specifying TCP:8080. This opens up unnecessary ports and reduces security.
  • Option D is incorrect: It specifies egress firewall rules. While egress rules control outgoing traffic, for inter-tier communication, the receiving instances require ingress rules to permit incoming connections. Additionally, it uses IP ranges instead of service accounts and allows ‘all’ protocols.

Reference: https://cloud.google.com/vpc/docs/firewall-rules

QUESTION 55

You are given a project with a single virtual private cloud (VPC) and a single subnetwork in the us-central1 region. There is a Compute Engine instance hosting an application in this subnetwork. You need to deploy a new instance in the same project in the europe-west1 region. This new instance needs access to the application. You want to follow Google-recommended practices. What should you do?

  • A. 1. Create a subnetwork in the same VPC, in europe-west1. 2. Create the new instance in the new subnetwork and use the first instance's private address as the endpoint.
  • B. 1. Create a VPC and a subnetwork in europe-west1. 2. Expose the application with an internal load balancer. 3. Create the new instance in the new subnetwork and use the load balancer's address as the endpoint.
  • C. 1. Create a subnetwork in the same VPC, in europe-west1. 2. Use Cloud VPN to connect the two subnetworks. 3. Create the new instance in the new subnetwork and use the first instance's private address as the endpoint.
  • D. 1. Create a VPC and a subnetwork in europe-west1. 2. Peer the 2 VPCs. 3. Create the new instance in the new subnetwork and use the first instance's private address as the endpoint.
Click to View Verified Solution & Explanation

Correct Option: A

Explanation:

✅ Option A (Correct) Reasoning: GCP VPC networks are global. Instances in different regional subnetworks of the same VPC can communicate directly via private IPs. Creating a subnetwork in europe-west1 within the existing VPC allows the new instance to access the application via its private address without additional networking components, following best practices.

 

❌ Why the other choices are incorrect:

  • Option B is incorrect: Creating a separate VPC and then using an internal load balancer introduces unnecessary complexity. Direct private IP communication within the same global VPC is simpler and preferred for this scenario. An ILB primarily distributes traffic, not just expose a single instance’s private IP across separate VPCs.
  • Option C is incorrect: Cloud VPN is used for connecting distinct networks (e.g., on-prem or separate VPCs), not for instances within the same VPC network across regions. VPCs are global, enabling direct private IP communication between instances in different regional subnetworks without VPN.
  • Option D is incorrect: Creating a separate VPC and peering it is more complex than simply extending the existing global VPC with a new subnetwork. While peering enables cross-VPC private communication, leveraging the global nature of a single VPC is simpler and recommended for this specific requirement.

 

Reference: https://cloud.google.com/vpc/docs/overview#global_connectivity

QUESTION 56

Your projects incurred more costs than you expected last month. Your research reveals that a development GKE container emitted a huge number of logs, which resulted in higher costs. You want to disable the logs quickly using the minimum number of steps. What should you do?

  • A. 1. Go to the Logs ingestion window in Cloud logging, and disable the log source for the GKE container resource.
  • B. 1. Go to the Logs ingestion window in Cloud logging, and disable the log source for the GKE Cluster Operations resource.
  • C. 1. Go to the GKE console, and delete existing clusters.
  • D. Recreate a new cluster.
  • E. Clear the option to enable legacy Cloud logging.
  • F. 1. Go to the GKE console, and delete existing clusters.
  • G. Recreate a new cluster.
  • H. Clear the option to enable legacy Stackdriver Monitoring.
Click to View Verified Solution & Explanation

Correct Option: A

Explanation: ✅ Option A (Correct)
Reasoning: To quickly disable excessive logs from a specific GKE container and reduce costs, you should use Cloud Logging’s ingestion controls. Creating an exclusion filter (managed in the "Logs Ingestion" or "Log Router" section) for the specific k8s_container resource type and its attributes will prevent those logs from being ingested and billed, fulfilling the requirement for minimum steps.

❌ Why the other choices are incorrect:

  • Option B is incorrect: This targets GKE Cluster Operations logs, which are different from a specific "development GKE container’s" application logs, the source of the problem.
  • Options C, F, D, G are incorrect: Deleting or recreating clusters is a destructive and complex process, not a minimum-step solution for disabling specific logs from a running container.
  • Options E, H are incorrect: Clearing legacy logging/monitoring options is unrelated to managing specific GKE container log ingestion to reduce current costs.

QUESTION 57

You have a website hosted on App Engine standard environment. You want 1% of your users to see a new test version of the website. You want to minimize complexity. What should you do?

  • A. Deploy the new version in the same application and use the –migrate option.
  • B. Deploy the new version in the same application and use the –splits option to give a weight of 99 to the current version and a weight of 1 to the new version.
  • C. Create a new App Engine application in the same project. Deploy the new version in that application. Use the App Engine library to proxy 1% of the requests to the new version.
  • D. Create a new App Engine application in the same project. Deploy the new version in that application. Configure your network load balancer to send 1% of the traffic to that new application.
Click to View Verified Solution & Explanation

Correct Option: B

Explanation: ✅ Option B (Correct)
Reasoning: App Engine’s built-in traffic splitting feature is designed for this. Deploying the new version and then using traffic splitting (e.g., gcloud app services set-traffic --splits <VERSION_A>=99,<VERSION_B>=1) allows you to direct a specific percentage of user traffic to the test version with minimal complexity.

❌ Why the other choices are incorrect:

  • Option A is incorrect: The --migrate option (or gcloud app deploy --promote) sends 100% of traffic to the new version and stops the old, not 1%, failing the requirement.
  • Option C is incorrect: Creating a new App Engine application is unnecessary; versions are managed within a single application. Using custom libraries for proxying requests adds significant complexity compared to the native splitting.
  • Option D is incorrect: Creating a new App Engine application is incorrect for versioning. App Engine Standard manages its own load balancing; manually configuring an external Network Load Balancer adds unwarranted complexity and is not the intended integration for this scenario.

QUESTION 58

You have a web application deployed as a managed instance group. You have a new version of the application to gradually deploy. Your web application is currently receiving live web traffic. You want to ensure that the available capacity does not decrease during the deployment. What should you do?

  • A. Perform a rolling-action start-update with maxSurge set to 0 and maxUnavailable set to 1.
  • B. Perform a rolling-action start-update with maxSurge set to 1 and maxUnavailable set to 0.
  • C. Create a new managed instance group with an updated instance template. Add the group to the backend service for the load balancer. When all instances in the new managed instance group are
  • D. Create a new instance template with the new application version. Update the existing managed instance group with the new instance template. Delete the instances in the managed instance group to allow the managed instance group to recreate the instance using the new instance template.
Click to View Verified Solution & Explanation

Correct Option: B

Explanation: ✅ Option B (Correct)
Reasoning: Setting maxSurge to 1 allows a new instance to be created and brought online before an existing instance is terminated. Setting maxUnavailable to 0 ensures no instances are taken offline until new ones are fully operational. This combination guarantees that the total available capacity never decreases, as new instances are added before old ones are removed during the rolling update.

❌ Why the other choices are incorrect:

  • Option A is incorrect: maxUnavailable set to 1 means one instance can become unavailable at a time. This would cause a temporary decrease in available capacity during the update, directly contradicting the requirement.
  • Option C is incorrect: This describes a blue/green deployment, which maintains capacity. However, the question specifically refers to a "rolling-action start-update" and implies modifying the existing MIG, whereas this option suggests creating an entirely new group.
  • Option D is incorrect: Manually deleting instances in the MIG would result in immediate and significant downtime and capacity loss while the MIG recreates them. This is not a gradual deployment and drastically fails the requirement to maintain capacity.

QUESTION 59

You are building an application that stores relational data from users. Users across the globe will use this application. Your CTO is concerned about the scaling requirements because the size of the user base is unknown. You need to implement a database solution that can scale with your user growth with minimum configuration changes. Which storage solution should you use?

  • A. Cloud SQL
  • B. Cloud Spanner
  • C. Cloud Firestore
  • D. Cloud Datastore
Click to View Verified Solution & Explanation

Correct Option: B

Explanation:

The correct solution for this scenario is B. Cloud Spanner.

Why Cloud Spanner is the Correct Choice

Cloud Spanner is specifically designed to handle the exact requirements mentioned by your CTO: global scale, relational data, and minimal configuration changes during growth.

Global Scalability: Cloud Spanner provides horizontal scaling across regions and continents while maintaining strong consistency, making it ideal for a global user base.

Relational Data: Unlike NoSQL options, Spanner supports standard relational schemas, ACID transactions, and SQL queries, which meets your requirement for relational data.

Minimum Configuration Changes: You can scale a Spanner instance by simply increasing the number of nodes or processing units; the database automatically handles the sharding and distribution of data without requiring you to re-architect your application.

Why Other Options are Less Ideal

A. Cloud SQL: While relational, Cloud SQL is a regional service. Scaling it globally or handling massive, unknown growth usually requires manual sharding or complex “Read Replica” setups, which involves significant configuration changes.

C & D. Cloud Firestore / Datastore: These are NoSQL databases. While they scale very well with minimal configuration, they do not store data in a native relational format as requested in your prompt.

QUESTION 60

You are the organization and billing administrator for your company. The engineering team has the Project Creator role on the organization. You do not want the engineering team to be able to link projects to the billing account. Only the finance team should be able to link a project to a billing account, but they should not be able to make any other changes to projects. What should you do?

  • A. Assign the finance team only the Billing Account User role on the billing account.
  • B. Assign the engineering team only the Billing Account User role on the billing account.
  • C. Assign the finance team the Billing Account User role on the billing account and the Project Billing Manager role on the organization.
  • D. Assign the engineering team the Billing Account User role on the billing account and the Project Billing Manager role on the organization.
Click to View Verified Solution & Explanation

Correct Option: C

Explanation: ✅ Option C (Correct)
Reasoning: The Billing Account User role on the billing account allows the finance team to use the billing account. The Project Billing Manager role granted at the organization level gives them the necessary permission (billing.resourceAssociations.create) to link any project within the organization to that billing account. These roles are billing-specific and prevent other project changes, fulfilling all requirements.

❌ Why the other choices are incorrect:

  • Option A is incorrect: Billing Account User alone is insufficient to link a project; it only grants permission to use the billing account once linked. The Project Billing Manager role is also required to perform the linking action.
  • Option B is incorrect: Granting the Billing Account User role to the engineering team contradicts the requirement that they should not be able to link projects.
  • Option D is incorrect: Granting Billing Account User on the billing account and Project Billing Manager on the organization to the engineering team would explicitly allow them to link projects, directly violating the stated requirement.

QUESTION 61

You have an application running in Google Kubernetes Engine (GKE) with cluster autoscaling enabled. The application exposes a TCP endpoint. There are several replicas of this application. You have a Compute Engine instance in the same region, but in another Virtual Private Cloud (VPC), called gce-network, that has no overlapping IP ranges with the first VPC. This instance needs to connect to the application on GKE. You want to minimize effort. What should you do?

  • A. 1. In GKE, create a Service of type LoadBalancer that uses the application's Pods as backend. 2. Set the service's externalTrafficPolicy to Cluster. 3. Configure the Compute Engine instance to use the address of the load balancer that has been created.
  • B. 1. In GKE, create a Service of type NodePort that uses the application's Pods as backend. 2. Create a Compute Engine instance called proxy with 2 network interfaces, one in each VPC. 3. Use iptables on this instance to forward traffic from gce-network to the GKE nodes. 4. Configure the Compute Engine instance to use the address of proxy in gce-network as endpoint.
  • C. 1. In GKE, create a Service of type LoadBalancer that uses the application's Pods as backend. 2. Add an annotation to this service: cloud.google.com/load-balancer-type: Internal 3. Peer the two VPCs together. 4. Configure the Compute Engine instance to use the address of the load balancer that has been created.
  • D. 1. In GKE, create a Service of type LoadBalancer that uses the application's Pods as backend. 2. Add a Cloud Armor Security Policy to the load balancer that whitelists the internal IPs of the MIG's instances. 3. Configure the Compute Engine instance to use the address of the load balancer that has been created.
Click to View Verified Solution & Explanation

Correct Option: C

Explanation: ✅ Option C (Correct)
Reasoning: Creating an Internal Load Balancer in GKE provides a private IP for the service. VPC Peering then enables the Compute Engine instance in the separate VPC to securely access this internal IP address, fulfilling the requirement for private cross-VPC communication with minimal effort.

❌ Why the other choices are incorrect:

  • Option A is incorrect: Using a standard LoadBalancer without specifying "Internal" typically results in an external IP, exposing the service publicly. It does not leverage private cross-VPC connectivity via peering.
  • Option B is incorrect: Deploying and manually configuring a proxy VM with iptables is high-effort, involving significant setup for network interfaces, routing, and operational management.
  • Option D is incorrect: Cloud Armor provides external WAF/DDoS protection for HTTP(S) Load Balancers; it’s irrelevant for establishing internal TCP connectivity across VPCs and doesn’t replace VPC Peering.

QUESTION 62

Your organization is a financial company that needs to store audit log files for 3 years. Your organization has hundreds of Google Cloud projects. You need to implement a cost-effective approach for log file retention. What should you do?

  • A. Create an export to the sink that saves logs from Cloud Audit to BigQuery.
  • B. Create an export to the sink that saves logs from Cloud Audit to a Coldline Storage bucket.
  • C. Write a custom script that uses logging API to copy the logs from Stackdriver logs to BigQuery.
  • D. Export these logs to Cloud Pub/Sub and write a Cloud Dataflow pipeline to store logs to Cloud SQL.
Click to View Verified Solution & Explanation

Correct Option: A

Explanation: ✅ Option A (Correct)
Reasoning: Exporting audit logs from Cloud Logging via a sink to BigQuery is a highly scalable and cost-effective solution for 3-year retention. BigQuery automatically tiers older data to long-term storage, reducing costs. Crucially, it provides immediate SQL queryability, which is vital for compliance and forensic analysis of audit logs in a financial company.

❌ Why the other choices are incorrect:

  • Option B is incorrect: While Coldline Storage is cost-effective for raw storage, audit logs stored as objects are not directly queryable via SQL, requiring additional processing to analyze, which increases total cost of ownership for a financial firm needing queryable logs.
  • Option C is incorrect: A custom script for log copying is less reliable, more complex to maintain, and incurs higher operational overhead than utilizing native, managed log export sinks provided by Cloud Logging, making it less cost-effective.
  • Option D is incorrect: Cloud Pub/Sub is for streaming, not long-term storage. Cloud SQL is a relational database, prohibitively expensive, and unsuitable for storing vast volumes of raw log data for three years, making this approach extremely costly.

QUESTION 63

You want to run a single caching HTTP reverse proxy on GCP for a latency-sensitive website. This specific reverse proxy consumes almost no CPU. You want to have a 30-GB in-memory cache, and need an additional 2 GB of memory for the rest of the processes. You want to minimize cost. How should you run this reverse proxy?

  • A. Create a Cloud Memorystore for Redis instance with 32-GB capacity.
  • B. Run it on Compute Engine, and choose a custom instance type with 6 vCPUs and 32 GB of memory.
  • C. Package it in a container image, and run it on Kubernetes Engine, using n1-standard-32 instances as nodes.
  • D. Run it on Compute Engine, choose the instance type n1-standard-1, and add an SSD persistent disk of 32 GB.
Click to View Verified Solution & Explanation

Correct Option: A

Explanation: ✅ Option A (Correct)
Reasoning: Cloud Memorystore for Redis provides a fully managed, in-memory data store, perfectly suited for the 30-GB latency-sensitive cache. By separating the cache into a dedicated, scalable service, you can run the proxy’s core logic (2 GB memory, almost no CPU) on a minimal, low-cost Compute Engine instance (e.g., e2-micro), optimizing overall cost.

❌ Why the other choices are incorrect:

  • Option B is incorrect: 6 vCPUs are significantly over-provisioned and costly for a proxy consuming "almost no CPU." This violates the "minimize cost" requirement.
  • Option C is incorrect: Kubernetes Engine introduces complexity and significant cost for a "single caching HTTP reverse proxy." Using n1-standard-32 nodes is massive overkill (32 vCPUs, 120 GB RAM) for the stated requirements.
  • Option D is incorrect: An SSD persistent disk is block storage, not "in-memory" cache, failing a critical requirement. The n1-standard-1 instance type only provides 3.75 GB of RAM, far short of the 32 GB needed.

QUESTION 64

You are hosting an application on bare-metal servers in your own data center. The application needs access to Cloud Storage. However, security policies prevent the servers hosting the application from having public IP addresses or access to the internet. You want to follow Google-recommended practices to provide

the application with access to Cloud Storage. What should you do?

  • A. 1. Use nslookup to get the IP address for storage.googleapis.com.
  • B. Negotiate with the security team to be able to give a public IP address to the servers.
  • C. Only allow egress traffic from those servers to the IP addresses for storage.googleapis.com.
  • D. 1. Using Cloud VPN, create a VPN tunnel to a Virtual Private Cloud (VPC) in Google Cloud Platform (GCP).
  • E. In this VPC, create a Compute Engine instance and install the Squid proxy server on this instance.
  • F. Configure your servers to use that instance as a proxy to access Cloud Storage.
  • G. 1. Use Migrate for Compute Engine (formerly known as Velostrata) to migrate those servers to Compute Engine.
  • H. Create an internal load balancer (ILB) that uses storage.googleapis.com as backend.
  • I. Configure your new instances to use this ILB as proxy.
Click to View Verified Solution & Explanation

Correct Option: D

Explanation: ✅ Option D (Correct)
Reasoning: Establishing a Cloud VPN tunnel creates a secure, private network link between the on-premises data center and a Google Cloud VPC. This is the crucial prerequisite for the bare-metal servers, which lack public IPs and internet access, to privately reach Google Cloud resources like Cloud Storage. Subsequent steps (like a proxy in the VPC) would build upon this connectivity.

❌ Why the other choices are incorrect:

  • Options A & C are incorrect: These options incorrectly assume the servers have internet access, which the security policy explicitly prevents. Hardcoding IP addresses for Google services is also not a recommended practice.
  • Option B is incorrect: Directly violates the security policy stated in the problem, which prevents public IP addresses or internet access for the servers.
  • Option G is incorrect: Migrate for Compute Engine migrates servers to GCP; the question asks how to provide Cloud Storage access for existing on-premises bare-metal servers.
  • Options H & I are incorrect: An Internal Load Balancer cannot directly use storage.googleapis.com as a backend service. This is not the pattern for privately accessing Google APIs from a VPC.

QUESTION 65

You want to deploy an application on Cloud Run that processes messages from a Cloud Pub/Sub topic. You want to follow Google-recommended practices. What should you do?

 

You want to deploy an application on Cloud Run that processes messages from a Cloud Pub/Sub topic. You want to follow Google-recommended practices. What should you do?

  • A. 1. Create a Cloud Function that uses a Cloud Pub/Sub trigger on that topic. 2. Call your application on Cloud Run from the Cloud Function for every message.
  • B. 1. Grant the Pub/Sub Subscriber role to the service account used by Cloud Run. 2. Create a Cloud Pub/Sub subscription for that topic. 3. Make your application pull messages from that subscription.
  • C. 1. Create a service account. 2. Give the Cloud Run Invoker role to that service account for your Cloud Run application. 3. Create a Cloud Pub/Sub subscription that uses that service account and uses your Cloud Run application as the push endpoint.
  • D. 1. Deploy your application on Cloud Run on GKE with the connectivity set to Internal. 2. Create a Cloud Pub/Sub subscription for that topic. 3. In the same Google Kubernetes Engine cluster as your application, deploy a container that takes the messages and sends them to your application.
Click to View Verified Solution & Explanation

Correct Option: C

Explanation: ✅ Option C (Correct)
Reasoning: This is the recommended and most direct approach. Pub/Sub push subscriptions enable messages to be delivered directly to the Cloud Run service endpoint. The service account with Cloud Run Invoker role ensures secure, authenticated calls from Pub/Sub to your Cloud Run application, adhering to serverless best practices.

❌ Why the other choices are incorrect:

  • Option A is incorrect: Using a Cloud Function as an intermediary adds unnecessary latency, complexity, and additional compute costs. Pub/Sub can directly push to Cloud Run without an intermediate function.
  • Option B is incorrect: While possible, implementing a pull mechanism in Cloud Run is generally less efficient and deviates from its event-driven nature. It requires the application to constantly poll, which is not ideal for message processing compared to push.
  • Option D is incorrect: Deploying Cloud Run on GKE adds significant operational overhead, and deploying a separate forwarding container is an overly complex and inefficient solution compared to a direct Pub/Sub push subscription.

QUESTION 66

You need to deploy an application, which is packaged in a container image, in a new project. The application exposes an HTTP endpoint and receives very few requests per day. You want to minimize costs. What should you do?

  • A. Deploy the container on Cloud Run.
  • B. Deploy the container on Cloud Run on GKE.
  • C. Deploy the container on App Engine Flexible.
  • D. Deploy the container on Google Kubernetes Engine, with cluster autoscaling and horizontal pod autoscaling enabled.
Click to View Verified Solution & Explanation

Correct Option: A

Explanation: ✅ Option A (Correct)
Reasoning: Cloud Run is a fully managed serverless platform that scales containers from zero to N instances. It charges only for resources consumed during active requests, making it the most cost-effective choice for applications with very low or infrequent traffic.

❌ Why the other choices are incorrect:

  • Option B is incorrect: Cloud Run on GKE incurs GKE cluster costs even when idle, making it more expensive than standalone Cloud Run for low-traffic applications.
  • Option C is incorrect: App Engine Flexible can be more expensive than Cloud Run for very low traffic, often having higher baseline costs or slower scale-to-zero.
  • Option D is incorrect: GKE always incurs control plane costs and requires maintaining minimum node resources, preventing true scale-to-zero and resulting in significantly higher costs for low-traffic applications.

QUESTION 67

Your company has an existing GCP organization with hundreds of projects and a billing account. Your company recently acquired another company that also has hundreds of projects and its own billing account. You would like to consolidate all GCP costs of both GCP organizations onto a single invoice. You would like to consolidate all costs as of tomorrow. What should you do?

  • A. Link the acquired company’s projects to your company's billing account.
  • B. Configure the acquired company's billing account and your company's billing account to export the billing data into the same BigQuery dataset.
  • C. Migrate the acquired company’s projects into your company’s GCP organization. Link the migrated projects to your company's billing account.
  • D. Create a new GCP organization and a new billing account. Migrate the acquired company's projects and your company's projects into the new GCP organization and link the projects to the new billing account.
Click to View Verified Solution & Explanation

Correct Option: A

Explanation: ✅ Option A (Correct)
Reasoning: Linking the acquired company’s projects to your company’s existing billing account consolidates all future charges under one billing account, which then generates a single invoice. This is the most direct and immediate method to achieve the stated goal of a single invoice as of tomorrow.

❌ Why the other choices are incorrect:

  • Option B is incorrect: Exporting billing data to BigQuery helps with analysis and reporting, but it does not consolidate the actual invoices. You would still receive two separate invoices.
  • Option C is incorrect: Migrating projects between organizations is a complex and potentially time-consuming process. While eventually beneficial for resource hierarchy, it is not strictly necessary for immediate billing consolidation, as projects can be linked to a different billing account within their current organization.
  • Option D is incorrect: Creating a new organization and migrating all projects from both companies is a highly disruptive and extensive undertaking, certainly not achievable "as of tomorrow" and far beyond what’s needed for billing consolidation.

QUESTION 68

You built an application on Google Cloud Platform that uses Cloud Spanner. Your support team needs to monitor the environment but should not have access to table data. You need a streamlined solution to grant the correct permissions to your support team, and you want to follow Google-recommended practices.

What should you do?

  • A. Add the support team group to the roles/monitoring.viewer role
  • B. Add the support team group to the roles/spanner.databaseUser role.
  • C. Add the support team group to the roles/spanner.databaseReader role.
  • D. Add the support team group to the roles/stackdriver.accounts.viewer role.
Click to View Verified Solution & Explanation

Correct Option: A

Explanation: ✅ Option A (Correct)
Reasoning: The roles/monitoring.viewer grants read-only access to Cloud Monitoring data, dashboards, and alerts across Google Cloud. This allows the support team to monitor the environment effectively without accessing sensitive Cloud Spanner table data, adhering to all requirements and Google-recommended practices.

❌ Why the other choices are incorrect:

  • Option B is incorrect: roles/spanner.databaseUser provides read/write access to Spanner database data, directly violating the requirement to not access table data.
  • Option C is incorrect: roles/spanner.databaseReader grants read-only access to Spanner database data, which explicitly goes against the requirement to not access table data.
  • Option D is incorrect: While related to monitoring, roles/stackdriver.accounts.viewer primarily views Stackdriver account settings. roles/monitoring.viewer is the current, broader, and more appropriate role for viewing comprehensive monitoring data across GCP.

QUESTION 69

For analysis purposes, you need to send all the logs from all of your Compute Engine instances to a BigQuery dataset called platform-logs. You have already installed the Cloud logging agent on all the instances. You want to minimize cost. What should you do?

  • A. 1. Give the BigQuery Data Editor role on the platform-logs dataset to the service accounts used by your instances. 2. Update your instances' metadata to add the following value: logs-destination: bq://platform-logs.
  • B. 1. In Cloud Logging, create a logs export with a Cloud Pub/Sub topic called logs as a sink. 2. Create a Cloud Function that is triggered by messages in the logs topic. 3. Configure that Cloud Function to drop logs that are not from Compute Engine and to insert Compute Engine logs in the platform-logs dataset.
  • C. 1. In Cloud Logging, create a filter to view only Compute Engine logs. 2. Click Create Export. 3. Choose BigQuery as Sink Service, and the platform-logs dataset as Sink Destination.
  • D. 1. Create a Cloud Function that has the BigQuery User role on the platform-logs dataset. 2. Configure this Cloud Function to create a BigQuery Job that executes this query: INSERT INTO dataset.platform-logs (timestamp, log) SELECT timestamp, log FROM compute.logs WHERE timestamp > DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY) 3. Use Cloud Scheduler to trigger this Cloud Function once a day.
Click to View Verified Solution & Explanation

Correct Option: C

Explanation: ✅ Option C (Correct)
Reasoning: Cloud Logging’s native Logs Export (sinks) feature directly sends filtered logs to a BigQuery dataset. This is a fully managed service, minimizing operational overhead and cost compared to custom solutions involving multiple services. Filtering ensures only Compute Engine logs are processed and stored.

❌ Why the other choices are incorrect:

  • Option A is incorrect: The Cloud Logging agent sends logs to Cloud Logging, not directly to BigQuery via instance metadata. This approach is not a supported or standard way to configure log routing.
  • Option B is incorrect: While technically possible, this solution uses Cloud Pub/Sub and Cloud Functions, adding complexity, custom code, and significantly higher costs for message processing and function invocations compared to a native log export sink.
  • Option D is incorrect: This approach attempts to query compute.logs directly in BigQuery, which is not a valid BigQuery source for Cloud Logging data. It also uses Cloud Functions and Cloud Scheduler for a daily batch process, missing real-time logs and incurring unnecessary costs.

QUESTION 70

You are using Deployment Manager to create a Google Kubernetes Engine cluster. Using the same Deployment Manager deployment, you also want to create a DaemonSet in the kube-system namespace of the cluster. You want a solution that uses the fewest possible services. What should you do?

  • A. Add the cluster’s API as a new Type Provider in Deployment Manager, and use the new type to create the DaemonSet.
  • B. Use the Deployment Manager Runtime Configurator to create a new Config resource that contains the DaemonSet definition.
  • C. With Deployment Manager, create a Compute Engine instance with a startup script that uses kubectl
  • D. In the cluster’s definition in Deployment Manager, add a metadata that has kube-system as key and the DaemonSet manifest as value.
Click to View Verified Solution & Explanation

Correct Option: A

Explanation: ✅ Option A (Correct)
Reasoning: Deployment Manager allows integrating with any API having an OpenAPI specification through Type Providers. The Kubernetes API fits this, enabling Deployment Manager to directly create Kubernetes resources like DaemonSets in the cluster after provisioning it, ensuring the fewest possible additional services.

❌ Why the other choices are incorrect:

  • Option B is incorrect: Runtime Configurator stores data but does not deploy Kubernetes resources; it would still require another service to apply the DaemonSet.
  • Option C is incorrect: Creating a Compute Engine instance adds an unnecessary service (the VM) specifically to run kubectl, which is less efficient than extending Deployment Manager directly.
  • Option D is incorrect: GKE cluster metadata is for descriptive information or configuration. It does not provide a mechanism to directly deploy Kubernetes API objects like DaemonSets into the cluster.

QUESTION 71

You are building an application that will run in your data center. The application will use Google Cloud Platform (GCP) services like AutoML. You created a service account that has appropriate access to AutoML. You need to enable authentication to the APIs from your on-premises environment. What should you do?

  • A. Use service account credentials in your on-premises application.
  • B. Use gcloud to create a key file for the service account that has appropriate permissions.
  • C. Set up direct interconnect between your data center and Google Cloud Platform to enable authentication for your on-premises applications.
  • D. Go to the IAM & admin console, grant a user account permissions similar to the service account permissions, and use this user account for authentication from your data center.
Click to View Verified Solution & Explanation

Correct Option: B

Explanation:

✅ Option B (Correct) Reasoning: Creating a service account key file using gcloud provides the necessary credentials (JSON private key) for an on-premises application to authenticate as the service account. This key file is then used by client libraries or APIs in the on-premises environment to access GCP services like AutoML, directly enabling authentication from outside GCP.

 

❌ Why the other choices are incorrect:

  • Option A is incorrect: While technically correct that credentials are used, “use service account credentials” is too vague. The question asks what specific action you should do to enable authentication. Creating a key file is the specific action required to obtain usable credentials for an on-premises application.
  • Option C is incorrect: Direct Interconnect provides network connectivity and lower latency but does not handle authentication itself. Authentication requires specific credentials (like a service account key), regardless of the network connection type. This option is irrelevant to the authentication mechanism.
  • Option D is incorrect: Using a user account for programmatic application authentication is generally discouraged. Service accounts are designed for this purpose, and one already exists. Moreover, setting up user authentication for an on-premises app is more complex and less secure than using a service account key.

 

Reference: https://cloud.google.com/iam/docs/creating-managing-service-account-keys#creating_service_account_keys

QUESTION 72

You are using Container Registry to centrally store your company’s container images in a separate project. In another project, you want to create a Google Kubernetes Engine (GKE) cluster. You want to ensure that Kubernetes can download images from Container Registry. What should you do?

  • A. In the project where the images are stored, grant the Storage Object Viewer IAM role to the service account used by the Kubernetes nodes.
  • B. When you create the GKE cluster, choose the Allow full access to all Cloud APIs option
  • C. Create a service account, and give it access to Cloud Storage. Create a P12 key for this service account and use it as an imagePullSecrets in Kubernetes.
  • D. Configure the ACLs on each image in Cloud Storage to give read-only access to the default Compute Engine service account.
Click to View Verified Solution & Explanation

Correct Option: A

Explanation: ✅ Option A (Correct)
Reasoning: GKE nodes need Storage Object Viewer permissions to pull images from Container Registry (which stores images in Cloud Storage). Granting this role in the image’s project to the GKE node service account enables secure cross-project image access. This follows the principle of least privilege.

❌ Why the other choices are incorrect:

  • Option B is incorrect: "Allow full access" applies permissions within the GKE cluster’s project and does not automatically grant cross-project access to resources in another project. It’s also an overly broad permission.
  • Option C is incorrect: While imagePullSecrets can work, using a service account key (especially a P12 key, which is legacy) as a secret is less secure and more complex than leveraging IAM permissions directly for Google-managed Container Registry.
  • Option D is incorrect: Configuring ACLs on individual images is a deprecated and impractical method for managing access. IAM roles are the recommended, scalable, and granular approach for permissions.

QUESTION 73

You deployed a new application inside your Google Kubernetes Engine cluster using the YAML file specified below.

You check the status of the deployed pods and notice that one of them is still in PENDING status:

You want to find out why the pod is stuck in pending status. What should you do?

  • A. Review details of the myapp-service Service object and check for error messages.
  • B. Review details of the myapp-deployment Deployment object and check for error messages.
  • C. Review details of myapp-deployment-58ddbbb995-lp86m Pod and check for warning messages.
  • D. View logs of the container in myapp-deployment-58ddbbb995-lp86m pod and check for warning messages.
Click to View Verified Solution & Explanation

Correct Option: C

Explanation: ✅ Option C (Correct)
Reasoning: When a Pod is in Pending status, it means it has been accepted by the Kubernetes API server but has not yet been scheduled onto a node or its containers haven’t successfully started. The kubectl describe pod <pod-name> command provides detailed information about the pod, including Events which often contain warning messages explaining why the pod is stuck in pending (e.g., scheduling failures, insufficient resources, image pull errors).

❌ Why the other choices are incorrect:

  • Option A is incorrect: A Service object primarily defines network access to a set of pods. Issues with a Service would not directly cause a pod to be in Pending status.
  • Option B is incorrect: The Deployment object manages the desired state of pods (e.g., number of replicas). While it creates pods, it won’t directly show the low-level scheduling or image pull errors that cause a specific pod to be Pending.
  • Option D is incorrect: kubectl logs retrieves logs from containers running inside a pod. If a pod is in Pending status, its containers have not started successfully yet, so there would be no container logs to view to diagnose the Pending state itself.

QUESTION 74

You are setting up a Windows VM on Compute Engine and want to make sure you can log in to the VM via RDP. What should you do?

  • A. After the VM has been created, use your Google Account credentials to log in into the VM.
  • B. After the VM has been created, use gcloud compute reset-windows-password to retrieve the login credentials for the VM.
  • C. When creating the VM, add metadata to the instance using ‘windows-password’ as the key and a password as the value.
  • D. After the VM has been created, download the JSON private key for the default Compute Engine service account. Use the credentials in the JSON file to log in to the VM.
Click to View Verified Solution & Explanation

Correct Option: B

Explanation: ✅ Option B (Correct)
Reasoning: The gcloud compute reset-windows-password command is the standard and recommended way to generate new login credentials (username and a strong password) for a Windows Compute Engine VM, enabling RDP access.

❌ Why the other choices are incorrect:

  • Option A is incorrect: Google Account credentials are for authenticating to Google Cloud services (e.g., Console), not for direct RDP login to the VM’s operating system.
  • Option C is incorrect: While metadata can be used, directly adding windows-password as a key-value pair does not automatically configure the Windows OS for RDP login with that password. The gcloud command handles this securely.
  • Option D is incorrect: Service account JSON keys are for programmatic authentication of applications to Google Cloud APIs, not for interactive user RDP login to the operating system.

QUESTION 75

You want to configure an SSH connection to a single Compute Engine instance for users in the dev1 group. This instance is the only resource in this particular Google Cloud Platform project that the dev1 users should be able to connect to. What should you do?

  • A. Set metadata to enable-oslogin=true for the instance. Grant the dev1 group the
  • B. Set metadata to enable-oslogin=true for the instance. Set the service account to no service account for that instance. Direct them to use the Cloud Shell to ssh to that instance.
  • C. Enable block project wide keys for the instance. Generate an SSH key for each user in the dev1 group. Distribute the keys to dev1 users and direct them to use their third-party tools to connect.
  • D. Enable block project wide keys for the instance. Generate an SSH key and associate the key with that instance. Distribute the key to dev1 users and direct them to use their third-party tools to connect.
Click to View Verified Solution & Explanation

Correct Option: A

Explanation: ✅ Option A (Correct)
Reasoning: OS Login (enabled by enable-oslogin=true on the instance) integrates SSH access with IAM. Granting the roles/compute.osLogin role to the dev1 group at the instance level ensures fine-grained access, allowing only dev1 users to connect to that specific instance, not others.

❌ Why the other choices are incorrect:

  • Option B is incorrect: Setting a service account to "no service account" is irrelevant to user SSH access. Cloud Shell is a connection tool, not an access configuration.
  • Option C is incorrect: While blocking project-wide keys is good, manually generating and managing individual SSH keys for each user in instance metadata is cumbersome and less scalable than OS Login’s IAM integration.
  • Option D is incorrect: Distributing a single SSH key to multiple users in the dev1 group is a critical security vulnerability, as it compromises individual accountability and security.

QUESTION 76

You need to produce a list of the enabled Google Cloud Platform APIs for a GCP project using the gcloud command line in the Cloud Shell. The project name is my-project. What should you do?

  • A. Run gcloud projects list to get the project ID, and then run gcloud services list — project <project ID>.
  • B. Run gcloud init to set the current project to my-project, and then run gcloud services list
  • C. Run gcloud info to view the account value, and then run gcloud services list –account
  • D. Run gcloud projects describe <project ID> to verify the project value, and then run gcloud services list –available.
Click to View Verified Solution & Explanation

Correct Option: A

Explanation: ✅ Option A (Correct)
Reasoning: gcloud projects list helps retrieve the project ID for ‘my-project’. Then, gcloud services list --project <PROJECT_ID> is the precise command to list all enabled APIs for that specific project ID, directly addressing the requirement.

❌ Why the other choices are incorrect:

  • Option B is incorrect: gcloud init is for initial configuration; using gcloud config set project is more direct, but the --project flag is better for a one-off query. gcloud init doesn’t guarantee setting ‘my-project’ specifically without further interaction or knowledge of its ID.
  • Option C is incorrect: gcloud services list does not support an --account flag. APIs are enabled at the project level, not directly tied to an account for listing purposes via this command.
  • Option D is incorrect: gcloud services list --available lists all available APIs, not specifically the enabled ones for the project, which is what the question asks for.

Need the Full Exam Simulator?

Practice the complete question bank in a realistic, timed environment with advanced tracking.

Access Full CertoMetrics Engine →

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top