Ngân hàng đề — Google Cloud Professional Cloud Developer

Tìm thấy 358 câu.

Câu 1
You want to upload files from an on-premises virtual machine to Google Cloud Storage as part of a data migration. These files will be consumed by Cloud
DataProc Hadoop cluster in a GCP environment.
Which command should you use?
  1. A gsutil cp [LOCAL_OBJECT] gs://[DESTINATION_BUCKET_NAME]/
  2. B gcloud cp [LOCAL_OBJECT] gs://[DESTINATION_BUCKET_NAME]/
  3. C hadoop fs cp [LOCAL_OBJECT] gs://[DESTINATION_BUCKET_NAME]/
  4. D gcloud dataproc cp [LOCAL_OBJECT] gs://[DESTINATION_BUCKET_NAME]/
Xem giải thích

🧩 Phân tích chi tiết nội dung câu hỏi

Câu hỏi tập trung vào việc chuyển dữ liệu (data migration) từ một máy ảo (virtual machine) on-premises (tại chỗ, ngoài cloud) lên Google Cloud Storage (GCS). Các file này sau đó sẽ được sử dụng bởi Cloud Dataproc Hadoop cluster trong môi trường Google Cloud Platform (GCP).

📌 Yêu cầu cụ thể:

  • Upload file từ local path ([LOCAL_OBJECT]) đến một bucket GCS (gs://[DESTINATION_BUCKET_NAME]/).
  • Đây là bước chuẩn bị dữ liệu cho Dataproc, nơi GCS thường làm data lake hoặc storage layer cho Hadoop/Spark jobs.
  • Câu hỏi kiểm tra kiến thức về công cụ command-line phù hợp nhất để tương tác với GCS từ môi trường on-premises (không phải từ trong cluster Dataproc).

Ngữ cảnh cập nhật 2026: Theo tài liệu GCP mới nhất (Google Cloud Storage gsutil v5.x và Dataproc 2.1+), gsutil vẫn là công cụ tiêu chuẩn cho bulk upload/download GCS, hỗ trợ resumable transfer, parallelism (multi-threaded), và integration mượt mà với Dataproc (qua connector gs:// scheme). Không có thay đổi lớn từ AWS (câu hỏi không liên quan AWS, có thể là nhầm lẫn chủ đề).

Nguồn tham khảo:

✅ Đáp án đúng: gsutil cp [LOCAL_OBJECT] gs://[DESTINATION_BUCKET_NAME]/

Lý do lựa chọn:

  • gsutil là command-line tool chính thức của Google Cloud dành riêng cho GCS, hỗ trợ upload file/folder từ local machine (on-premises) một cách hiệu quả.
  • Nó sử dụng Hadoop-compatible GCS connector ngầm định, nên file upload sẽ dễ dàng được Dataproc cluster đọc qua gs:// URI (như hdfs dfs -ls gs://bucket/ trong Dataproc).
  • Ưu điểm: Parallel upload (option -m), resumable (tự động resume nếu đứt mạng), versioning, ACL management. Hoàn hảo cho data migration lớn.
  • ✅ Phù hợp 100% với scenario on-premises → GCS → Dataproc.

🔍 Giải thích tất cả các phương án (đúng/sai)

  • ✅ [ĐÚNG] gsutil cp [LOCAL_OBJECT] gs://[DESTINATION_BUCKET_NAME]/
    Phương án này hoàn toàn đúng vì gsutil cp là lệnh chuẩn để copy local file lên GCS. Nó hỗ trợ wildcard, recursive (-r), và tối ưu cho migration. Dataproc sẽ truy cập trực tiếp qua GCS connector mà không cần bước trung gian. 🛠️ Ví dụ: gsutil -m cp -r /local/dir gs://my-bucket/data/.

  • ❌ [SAI] gcloud cp [LOCAL_OBJECT] gs://[DESTINATION_BUCKET_NAME]/
    Sai vì gcloud là CLI cho quản lý GCP resources (như compute instances, IAM), không có lệnh cp cho GCS objects. Lệnh gcloud storage cp (beta ở 2025) tồn tại nhưng không thay thế gsutil cho bulk transfer từ on-premises; gsutil vẫn được khuyến nghị chính thức. Sử dụng sẽ báo lỗi "command not found".

  • ❌ [SAI] hadoop fs cp [LOCAL_OBJECT] gs://[DESTINATION_BUCKET_NAME]/
    Sai vì hadoop fs (hoặc hdfs dfs) dùng để thao tác HDFS hoặc filesystem Hadoop-supported, không hỗ trợ direct upload từ local on-premises mà không chạy trên Hadoop cluster. Từ on-premises VM, bạn cần gsutil trước; chỉ dùng trong Dataproc cluster sau khi data đã ở GCS. Connector GCS yêu cầu Hadoop env đầy đủ (không có ở VM thông thường).

  • ❌ [SAI] gcloud dataproc cp [LOCAL_OBJECT] gs://[DESTINATION_BUCKET_NAME]/
    Sai vì gcloud dataproc dùng để quản lý cluster/jobs (như gcloud dataproc jobs submit), không có lệnh cp nào. Không tồn tại tính năng copy file trực tiếp từ local qua Dataproc CLI. Phải dùng gsutil upload trước, rồi Dataproc đọc từ GCS.

Kết luận 🎯: Chọn gsutil để đảm bảo tính tương thích và hiệu suất cao nhất cho workflow migration → Dataproc! Nếu scale lớn, xem thêm Storage Transfer Service hoặc Transfer Appliance.

Câu 2
You migrated your applications to Google Cloud Platform and kept your existing monitoring platform. You now find that your notification system is too slow for time critical problems.
What should you do?
  1. A Replace your entire monitoring platform with Observability.
  2. B Install the Observability agents on your Compute Engine instances.
  3. C Use Observability to capture and alert on logs, then ship them to your existing platform.
  4. D Migrate some traffic back to your old platform and perform AB testing on the two platforms concurrently.
Xem giải thích

🧩 Phân tích nội dung câu hỏi

Câu hỏi mô tả tình huống: Bạn đã di chuyển ứng dụng sang Google Cloud Platform (GCP), nhưng vẫn giữ nguyên nền tảng giám sát (monitoring platform) cũ từ trước. Bây giờ, hệ thống thông báo (notification system) của nền tảng cũ quá chậm, không đáp ứng được các vấn đề thời gian thực (time-critical problems) cần phản ứng nhanh chóng.
📌 Mục tiêu: Tìm giải pháp tối ưu, không thay đổi toàn bộ hệ thống, tận dụng GCP để cải thiện tốc độ thông báo mà vẫn giữ nền tảng cũ.
🛠️ Bối cảnh GCP mới nhất (2026): Google Cloud Observability (tên mới của Stackdriver từ 2022) là bộ công cụ tích hợp mạnh mẽ cho monitoring, logging, tracing và alerting trên GCP, hỗ trợ tích hợp hybrid với các hệ thống bên ngoài qua Pub/Sub hoặc API export logs/metrics.

✅ Đáp án đúng và lý do lựa chọn

Đáp án đúng: Use Observability to capture and alert on logs, then ship them to your existing platform.

Lý do:

  • Phương án này tận dụng lợi thế tốc độ của Google Cloud Observability để thu thập (capture), phân tích và kích hoạt cảnh báo (alert) trên logs/metrics ngay trên GCP – nơi có độ trễ thấp cho các vấn đề time-critical.
  • Sau đó, chuyển tiếp (ship) dữ liệu sang nền tảng cũ qua các tính năng export như Cloud Pub/Sub, Log Export hoặc Cloud Monitoring API, giữ nguyên notification system quen thuộc mà không cần thay đổi lớn.
  • ✅ Hiệu quả cao, chi phí thấp, hybrid linh hoạt – phù hợp best practice GCP cho migration gradual (theo tài liệu GCP 2026).

📋 Giải thích tất cả các phương án

Dưới đây là phân tích từng lựa chọn một cách chi tiết, giữ nguyên văn bản gốc tiếng Anh. Mỗi phương án được đánh giá đúng/sai với lý do cụ thể dựa trên kiến thức GCP Observability mới nhất:

  • ❌ [SAI] Replace your entire monitoring platform with Observability.
    Giải thích: Việc thay thế toàn bộ nền tảng giám sát cũ bằng Observability là giải pháp quá cực đoan và không cần thiết. Nó đòi hỏi migrate toàn diện (dữ liệu, quy trình, team quen thuộc), tốn thời gian/khí phí cao, và câu hỏi chỉ tập trung vào vấn đề notification chậm chứ không phải toàn bộ monitoring. GCP khuyến nghị tích hợp dần dần thay vì "big bang" migration.

  • ❌ [SAI] Install the Observability agents on your Compute Engine instances.
    Giải thích: Cài Observability agents (như Ops Agent) chỉ trên Compute Engine instances giúp thu thập metrics/logs từ VM, nhưng không giải quyết gốc rễ vấn đề notification chậm từ nền tảng cũ. Agents chỉ hỗ trợ monitoring cục bộ, không tích hợp alerting toàn diện hay ship dữ liệu ra ngoài nhanh chóng cho time-critical alerts. Đây là bước bán phần, không tối ưu.

  • ✅ [ĐÚNG] Use Observability to capture and alert on logs, then ship them to your existing platform.
    Giải thích: Như đã nêu ở phần đáp án đúng, đây là giải pháp hybrid lý tưởng. Observability capture/alert logs nhanh chóng (dùng Cloud Logging/Monitoring với SLO/SLI), rồi export qua Log Router/Sinks hoặc Pub/Sub đến nền tảng cũ. Hỗ trợ zero-downtime và scale tốt cho GCP workloads (cập nhật 2026 với AI-powered alerting).

  • ❌ [SAI] Migrate some traffic back to your old platform and perform AB testing on the two platforms concurrently.
    Giải thích: Việc chuyển một phần traffic ngược về nền tảng cũ và A/B testing là không liên quan trực tiếp. Vấn đề là notification chậm, không phải traffic hoặc performance app. A/B testing dùng cho feature rollout, không phải monitoring, và sẽ tăng complexity/complexity mà không fix tốc độ alerting.

📘 Tài liệu tham khảo (GCP chính thức, cập nhật 2026)

🛠️ Khuyến nghị thực tế: Bắt đầu bằng setup Log Sink trong Observability để test alerting pipeline! Nếu cần lab, dùng GCP Free Tier.

Câu 3
You are planning to migrate a MySQL database to the managed Cloud SQL database for Google Cloud. You have Compute Engine virtual machine instances that will connect with this Cloud SQL instance. You do not want to whitelist IPs for the Compute Engine instances to be able to access Cloud SQL.
What should you do?
  1. A Enable private IP for the Cloud SQL instance.
  2. B Whitelist a project to access Cloud SQL, and add Compute Engine instances in the whitelisted project.
  3. C Create a role in Cloud SQL that allows access to the database from external instances, and assign the Compute Engine instances to that role.
  4. D Create a CloudSQL instance on one project. Create Compute engine instances in a different project. Create a VPN between these two projects to allow internal access to CloudSQL.
Xem giải thích

🧩 Phân tích chi tiết câu hỏi trắc nghiệm

✅ Nội dung câu hỏi được giải thích rõ ràng:
Câu hỏi mô tả tình huống bạn đang lập kế hoạch di chuyển cơ sở dữ liệu MySQL sang dịch vụ Cloud SQL (dịch vụ quản lý cơ sở dữ liệu quan hệ trên Google Cloud). Bạn có các máy ảo Compute Engine cần kết nối với instance Cloud SQL này. Yêu cầu chính: Không muốn sử dụng whitelist IP công khai (public IP whitelisting) cho các Compute Engine để truy cập Cloud SQL, nhằm tăng tính bảo mật và tránh rủi ro từ IP động hoặc public exposure.
🛠️ Mục tiêu: Tìm cách kết nối an toàn qua private IP nội bộ, thường thông qua VPC network, mà không cần cấu hình IP whitelist thủ công. Đây là best practice của Google Cloud để đảm bảo kết nối private services access (Serverless VPC Access hoặc Private IP cho Cloud SQL).

📘 Đáp án đúng và lý do lựa chọn:
Đáp án đúng: Enable private IP for the Cloud SQL instance.
✅ Lý do chi tiết: Khi kích hoạt private IP cho Cloud SQL instance (thông qua Private Services Access hoặc allocated private IP range trong VPC), Cloud SQL sẽ có địa chỉ IP riêng tư (private IP) thuộc cùng VPC hoặc VPC peered. Các Compute Engine trong cùng VPC (hoặc peered VPC) có thể kết nối trực tiếp qua private IP mà không cần whitelist IP công khai. Điều này tuân thủ nguyên tắc zero-trust security, giảm thiểu tấn công từ internet. Theo tài liệu Google Cloud cập nhật đến 2026, tính năng này hỗ trợ MySQL và được khuyến nghị cho production workloads.
Nguồn tham khảo:

🔍 Giải thích tất cả các phương án (đúng/sai)

  • Enable private IP for the Cloud SQL instance.
    ✅ Đúng: Như đã giải thích ở trên, đây là cách đơn giản, hiệu quả nhất để cho phép Compute Engine kết nối nội bộ qua private IP mà không cần whitelist IP public. Không yêu cầu cấu hình phức tạp, hỗ trợ cross-project qua VPC peering nếu cần.

  • Whitelist a project to access Cloud SQL, and add Compute Engine instances in the whitelisted project.
    ❌ Sai: Google Cloud không hỗ trợ "whitelist project" trực tiếp cho Cloud SQL access. Cloud SQL sử dụng IAM policies và authorized networks (IP-based), không có cơ chế whitelist toàn bộ project. Phương án này không tồn tại và không giải quyết vấn đề tránh whitelist IP.

  • Create a role in Cloud SQL that allows access to the database from external instances, and assign the Compute Engine instances to that role.
    ❌ Sai: Cloud SQL sử dụng Cloud IAM roles (như roles/cloudsql.client) cho authentication, nhưng không có "role trong Cloud SQL" dành riêng cho external instances như Compute Engine. Compute Engine cần kết nối network-level (private IP hoặc public IP + SSL), không phải assign role trực tiếp vào VM. Phương án này nhầm lẫn giữa IAM và network access.

  • Create a CloudSQL instance on one project. Create Compute engine instances in a different project. Create a VPN between these two projects to allow internal access to CloudSQL.
    ❌ Sai: Mặc dù VPN (Cloud VPN hoặc HA VPN) có thể kết nối cross-project, đây là giải pháp phức tạp, tốn kém và không cần thiết. Google Cloud ưu tiên VPC Network Peering hoặc Shared VPC kết hợp private IP cho Cloud SQL, thay vì VPN (chỉ dùng cho on-premises hybrid). Theo best practices 2026, VPN làm tăng latency và chi phí không đáng kể so với private IP.

🛠️ Lời khuyên bổ sung: Để triển khai, hãy configure Private IP khi tạo/edit Cloud SQL instance qua Console/CLI/gcloud, và đảm bảo Compute Engine có IP internal trong cùng subnet/VPC. Test kết nối bằng mysql -h <private-ip>. Nếu cross-project, dùng VPC Peering! 🚀

Câu 4
You have deployed an HTTP(s) Load Balancer with the gcloud commands shown below.
export NAME=load-balance

# create network
gcloud compute networks create ${NAME}

# add instance
gcloud compute instances create ${NAME}-backend-instance-1  --subnet ${NAME} --no address

# create the instance group
gcloud compute instance-groups unmanaged create ${NAME}-i
gcloud compute instance-groups unmanaged set-named-ports ${NAME}-i --named-ports http:80
gcloud compute instance-groups unmanaged add-instances ${NAME}-i --instances ${NAME}-instance-1

# configure health checks
gcloud compute health-checks create http ${NAME}-http-hc --port 80 

# create backend service
gcloud compute backend-services create ${NAME}-http-bes --health-checks ${NAME}-http-hc --protocol HTTP --port-name http --global
gcloud compute backend-services add-backend ${NAME}-http-bes --instance-group ${NAME}-i --balancing-mode RATE --max-rate 100000 --capacity-scaler 1.0 --global --instance-group-zone us-east1-d

# create urls maps and forwarding rule
gcloud compute url-maps create ${NAME}-http-urlmap --default-service ${NAME}-http-bes 
gcloud compute target-http-proxies create ${NAME}-http-proxy --url-map  ${NAME}-http-urlmap
gcloud compute forwarding-rules create ${NAME}-http-fw --global --ip-protocol TCP --target-http-proxy ${NAME}-http-proxy --ports 80

Health checks to port 80 on the Compute Engine virtual machine instance are failing and no traffic is sent to your instances. You want to resolve the problem.
Which commands should you run?
  1. A gcloud compute instances add-access-config ${NAME}-backend-instance-1
  2. B gcloud compute instances add-tags ${NAME}-backend-instance-1 --tags http-server
  3. C gcloud compute firewall-rules create allow-lb --network load-balancer --allow tcp --source-ranges 130.211.0.0/22,35.191.0.0/16 --direction INGRESS
  4. D gcloud compute firewall-rules create allow-lb --network load-balancer --allow tcp --destination-ranges 130.211.0.0/22,35.191.0.0/16 --direction EGRESS
Xem giải thích

🧩 Phân tích chi tiết nội dung câu hỏi

Câu hỏi mô tả tình huống bạn đã triển khai một HTTP(S) Load Balancer trên Google Cloud Platform (GCP) bằng các lệnh gcloud cụ thể. Các bước bao gồm:

  • Tạo mạng VPC mới (load-balance).
  • Tạo instance Compute Engine (load-balance-backend-instance-1) trong subnet của mạng đó, không có external IP (--no-address).
  • Tạo unmanaged instance group (load-balance-i), đặt named port http:80, và thêm instance vào group.
  • Tạo health check HTTP trên port 80.
  • Tạo backend service toàn cầu (load-balance-http-bes) với protocol HTTP, port name http, liên kết instance group ở zone us-east1-d, balancing mode RATE.
  • Tạo URL map, target HTTP proxy, và global forwarding rule trên port 80.

Vấn đề chính 📉: Health checks đến port 80 trên instance thất bại, dẫn đến không có traffic nào được gửi đến instances. Lý do phổ biến là firewall rules không cho phép traffic từ health check probes của Load Balancer (có IP ranges đặc biệt: 130.211.0.0/22 và 35.191.0.0/16) truy cập vào backend instances trên port health check (80/TCP).

Mục tiêu: Chạy lệnh nào để resolve vấn đề này? (Dựa trên kiến thức GCP cập nhật đến 2026, health check probes vẫn sử dụng các IP ranges cố định này cho global load balancers, theo docs mới nhất).

✅ Đáp án đúng và lý do lựa chọn

Đáp án đúng: gcloud compute firewall-rules create allow-lb --network load-balancer --allow tcp --source-ranges 130.211.0.0/22,35.191.0.0/16 --direction INGRESS

Lý do 🛠️:

  • Load Balancer health checks gửi traffic từ các IP ranges 130.211.0.0/22 và 35.191.0.0/16 đến port 80 trên backend instances (direction INGRESS).
  • Lệnh này tạo firewall rule allow TCP traffic INGRESS từ đúng source ranges của GCP Load Balancer probes vào mạng load-balance (lưu ý: tên network là load-balance, khớp với ${NAME}).
  • Sau khi áp dụng, health checks sẽ pass ✅, backend healthy, và traffic được route đến instances.
  • Đây là giải pháp chuẩn theo best practices GCP cho global HTTP LB (không cần external IP trên instances).

📋 Giải thích tất cả các phương án (đúng/sai)

Dưới đây là phân tích từng lựa chọn giữ nguyên văn bản gốc tiếng Anh, với giải thích chi tiết bằng tiếng Việt:

  • ❌ [SAI] gcloud compute instances add-access-config ${NAME}-backend-instance-1
    Lệnh này thêm external IP (ephemeral) cho instance. Không giải quyết vấn đề vì: Instance đã có internal IP trong VPC, và global Load Balancer không yêu cầu external IP trên backends (proxy traffic nội bộ). Vấn đề là firewall chặn health checks, không phải thiếu IP. Thêm IP chỉ làm phức tạp, không fix health checks failing.

  • ❌ [SAI] gcloud compute instances add-tags ${NAME}-backend-instance-1 --tags http-server
    Lệnh này thêm tags (http-server) cho instance. Không liên quan vì: GCP Load Balancer backend không sử dụng instance tags để kiểm tra health (chỉ dùng health checks riêng). Tags chỉ dùng cho firewall rules (ví dụ: target tags), nhưng ở đây network firewall áp dụng cho toàn subnet, và vấn đề là source ranges cụ thể từ LB probes, không phải tags.

  • ✅ [ĐÚNG] gcloud compute firewall-rules create allow-lb --network load-balancer --allow tcp --source-ranges 130.211.0.0/22,35.191.0.0/16 --direction INGRESS
    Như đã giải thích ở phần đáp án đúng: Chính xác fix firewall cho health check traffic INGRESS từ LB IP ranges vào port TCP 80 (mặc định cho HTTP health check). Áp dụng ngay lập tức, health checks pass, traffic flow bình thường.

  • ❌ [SAI] gcloud compute firewall-rules create allow-lb --network load-balancer --allow tcp --destination-ranges 130.211.0.0/22,35.191.0.0/16 --direction EGRESS
    Lệnh này tạo rule EGRESS allow TCP đến destination ranges của LB probes. Hoàn toàn sai vì: Health checks là traffic từ LB probes VÀO instances (source là LB IPs, direction INGRESS). EGRESS là traffic ra khỏi instances, và destination-ranges không dùng cho probes (chỉ source-ranges mới đúng). Rule này vô hiệu, có thể gây security hole không cần thiết.

📘 Tài liệu tham khảo (GCP docs cập nhật 2026)

Hy vọng phân tích này giúp bạn nắm vững! 🚀 Nếu cần demo lệnh thực tế, hãy cho biết thêm chi tiết.

Câu 5
Your website is deployed on Compute Engine. Your marketing team wants to test conversion rates between 3 different website designs.
Which approach should you use?
  1. A Deploy the website on App Engine and use traffic splitting.
  2. B Deploy the website on App Engine as three separate services.
  3. C Deploy the website on Cloud Functions and use traffic splitting.
  4. D Deploy the website on Cloud Functions as three separate functions.
Xem giải thích

🧩 Phân tích nội dung câu hỏi

Câu hỏi mô tả tình huống: Website của bạn đang được triển khai trên Compute Engine (dịch vụ máy ảo VM trên Google Cloud Platform - GCP). Đội ngũ marketing muốn thử nghiệm tỷ lệ chuyển đổi (conversion rates) giữa 3 thiết kế website khác nhau.
📌 Mục tiêu chính: Tìm cách tiếp cận tốt nhất để thực hiện A/B testing hoặc multivariate testing (phân bổ lưu lượng truy cập ngẫu nhiên đến các phiên bản thiết kế khác nhau, đo lường hiệu suất conversion như mua hàng, đăng ký...).
🛠️ Bối cảnh GCP (cập nhật đến 2026): Compute Engine không hỗ trợ tích hợp sẵn traffic splitting cho testing. Cần di chuyển hoặc điều chỉnh để hỗ trợ testing hiệu quả, scalable, serverless.
Yêu cầu approach: Phải đơn giản, tự động hóa phân bổ traffic (ví dụ: 33% mỗi design), theo dõi metrics qua Cloud Monitoring/Logging.

🟢 Đáp án đúng và lý do lựa chọn

✅ Đáp án đúng: Deploy the website on App Engine and use traffic splitting.
Lý do chi tiết:

  • App Engine (Standard hoặc Flexible Environment, phiên bản mới nhất 2026) hỗ trợ Traffic Splitting tích hợp sẵn cho versions của cùng một service. Bạn deploy 3 versions (mỗi version là 1 design), sau đó split traffic (ví dụ: 40%-30%-30%) mà không cần load balancer riêng.
  • Lý tưởng cho testing conversion: Tự động route requests dựa trên cookie/user IP, tích hợp Google Analytics/Cloud Monitoring để đo metrics realtime.
  • Từ Compute Engine migrate dễ dàng (containerize app → App Engine). Giảm chi phí, auto-scale.
    📘 Dẫn nguồn: App Engine Traffic Splitting Docs & Versions Overview (cập nhật GCP 2026).

📋 Giải thích tất cả các phương án

Dưới đây là phân tích từng lựa chọn một cách chi tiết, giữ nguyên văn bản gốc tiếng Anh. Mỗi phương án được đánh giá ✅ (đúng) hoặc ❌ (sai), kèm lý do dựa trên best practices GCP mới nhất.

  • ✅ Deploy the website on App Engine and use traffic splitting.
    Giải thích đúng: Đây là giải pháp tối ưu nhất 🏆. App Engine cho phép tạo nhiều versions trong một service duy nhất, sau đó dùng Traffic Splitting để phân bổ % traffic chính xác (dựa trên IP, cookie, hoặc random). Hoàn hảo cho testing 3 designs mà không downtime, auto-scale theo traffic. Metrics conversion dễ track qua Cloud Operations Suite. Migrate từ Compute Engine chỉ cần gcloud app deploy với app.yaml config split (ví dụ: traffic_allocation: 0.4,0.3,0.3).

  • ❌ Deploy the website on App Engine as three separate services.
    Giải thích sai: Không hiệu quả và phức tạp hóa 🛑. Mỗi "service" riêng biệt yêu cầu Global Load Balancer hoặc Cloud Load Balancing thủ công để split traffic – tốn kém, khó quản lý DNS/CNAME. Không tận dụng built-in versioning của App Engine, dẫn đến duplicate code/config, khó rollback/test nhanh. Best practice là dùng single service + multiple versions.

  • ❌ Deploy the website on Cloud Functions and use traffic splitting.
    Giải thích sai: Cloud Functions (2nd gen, 2026) không hỗ trợ traffic splitting tích hợp 🚫. Đây là serverless functions cho API/task ngắn hạn (max 60s sync, 9 phút async), không phù hợp website đầy đủ (HTML/CSS/JS static/dynamic cần stateful, long-lived connections). Testing designs yêu cầu full web server như App Engine/Kubernetes, không phải functions. Split traffic phải dùng Cloud Load Balancing + Functions router thủ công – overkill và không scalable cho conversion tracking.

  • ❌ Deploy the website on Cloud Functions as three separate functions.
    Giải thích sai: Tương tự trên, Cloud Functions không dành cho website với 3 designs phức tạp ❌. Mỗi function = 1 design → phải tự code router/split logic (dùng API Gateway hoặc Load Balancer), thiếu session affinity/cookie stickiness cho accurate A/B testing. Không hỗ trợ static assets dễ dàng, cold starts làm chậm conversion rates. GCP recommend Cloud Run/App Engine cho web apps testing thay vì Functions.

🔍 Kết luận & Best Practices bổ sung

  • Approach khuyến nghị đầy đủ: Migrate app sang App Engine → Deploy 3 versions → Config traffic split qua gcloud app versions split hoặc Console → Integrate Cloud Trace/Profiler đo conversion.
  • Lợi ích: Zero-config scaling, pay-per-use, A/B testing native (cập nhật GCP 2026 với AI-optimized splitting).
    📘 Tài liệu tham khảo thêm:
Câu 6
You need to copy directory local-scripts and all of its contents from your local workstation to a Compute Engine virtual machine instance.
Which command should you use?
  1. A gsutil cp --project ג€my-gcp-projectג€ -r ~/local-scripts/ gcp-instance-name:~/server-scripts/ --zone ג€us-east1-bג€
  2. B gsutil cp --project ג€my-gcp-projectג€ -R ~/local-scripts/ gcp-instance-name:~/server-scripts/ --zone ג€us-east1-bג€
  3. C gcloud compute scp --project ג€my-gcp-projectג€ --recurse ~/local-scripts/ gcp-instance-name:~/server-scripts/ --zone ג€us-east1-bג€
  4. D gcloud compute mv --project ג€my-gcp-projectג€ --recurse ~/local-scripts/ gcp-instance-name:~/server-scripts/ --zone ג€us-east1-bג€
Xem giải thích

🧩 Phân tích nội dung câu hỏi

Câu hỏi yêu cầu sao chép toàn bộ thư mục local-scripts và tất cả nội dung bên trong từ máy tính local workstation (máy cá nhân của bạn) đến một instance Compute Engine VM trên Google Cloud Platform (GCP).
📌 Yêu cầu chính: Sử dụng lệnh phù hợp để thực hiện việc copy thư mục một cách đệ quy (recursive), chỉ định project, instance name, zone, và đường dẫn đích trên VM (~/server-scripts/).
🛠️ Bối cảnh: Đây là tác vụ phổ biến khi triển khai script hoặc file từ local lên VM GCP. Lệnh phải hỗ trợ SCP (Secure Copy Protocol) với tùy chọn đệ quy để copy thư mục, không phải upload lên Cloud Storage hay di chuyển file.
(Kiến thức cập nhật đến 2026: GCP SDK phiên bản mới nhất vẫn sử dụng gcloud compute scp cho tác vụ này, theo docs chính thức).

✅ Đáp án đúng và lý do lựa chọn

Đáp án đúng:
gcloud compute scp --project ג€my-gcp-projectג€ --recurse ~/local-scripts/ gcp-instance-name:~/server-scripts/ --zone ג€us-east1-bג€

Lý do:
🟢 Lệnh gcloud compute scp là công cụ chuẩn của GCP SDK để sao chép file/thư mục an toàn qua SSH/SCP từ local đến Compute Engine VM (và ngược lại).

  • --recurse (hoặc -r) cho phép copy đệ quy toàn bộ thư mục và subfolder.
  • Các flag --project, --zone, instance name được chỉ định đúng để xác định VM.
  • Đây là cách an toàn, nhanh chóng và được khuyến nghị bởi Google, hỗ trợ nén dữ liệu nếu cần (--compress).
    📘 Nguồn tham khảo: GCP Docs - gcloud compute scp (cập nhật 2025-2026).

🔍 Giải thích chi tiết tất cả các phương án

Dưới đây là phân tích từng lựa chọn một cách chi tiết, giữ nguyên văn bản gốc tiếng Anh. Mỗi phương án được đánh giá đúng/sai với lý do cụ thể dựa trên tài liệu GCP mới nhất.

  • Phương án 1: gsutil cp --project ג€my-gcp-projectג€ -r ~/local-scripts/ gcp-instance-name:~/server-scripts/ --zone ג€us-east1-bג€
    ❌ Sai.
    gsutil cp là lệnh dành cho Cloud Storage (GS bucket), KHÔNG dùng để copy trực tiếp đến Compute Engine VM. Nó chỉ upload/download giữa local và bucket, không hỗ trợ địa chỉ instance kiểu instance-name:~/path. Flag -r cũng không áp dụng ở đây vì gsutil không xử lý VM.

  • Phương án 2: gsutil cp --project ג€my-gcp-projectג€ -R ~/local-scripts/ gcp-instance-name:~/server-scripts/ --zone ג€us-east1-bג€
    ❌ Sai.
    Tương tự phương án 1, gsutil cp chỉ dành cho Cloud Storage, không copy đến VM. Flag -R (uppercase) là đệ quy cho gsutil (đúng syntax cho bucket), nhưng vẫn thất bại vì không nhận địa chỉ VM. Lệnh sẽ báo lỗi "Invalid destination URI".

  • Phương án 3: gcloud compute scp --project ג€my-gcp-projectג€ --recurse ~/local-scripts/ gcp-instance-name:~/server-scripts/ --zone ג€us-east1-bג€
    ✅ Đúng.
    Như đã giải thích ở phần đáp án: Đây là lệnh chuẩn, hỗ trợ --recurse để copy thư mục đệ quy an toàn qua SSH. Hoạt động hoàn hảo với Compute Engine (yêu cầu SSH key đã setup).
    📘 Nguồn: GCP Compute Engine - Transfer files.

  • Phương án 4: gcloud compute mv --project ג€my-gcp-projectג€ --recurse ~/local-scripts/ gcp-instance-name:~/server-scripts/ --zone ג€us-east1-bג€
    ❌ Sai.
    Không tồn tại lệnh gcloud compute mv cho VM. gcloud compute chỉ có scp cho copy, không có mv (move). Nếu chạy, sẽ báo lỗi "command not found". Đây là nhầm lẫn với lệnh local mv hoặc các dịch vụ khác như gsutil mv (cho bucket).

🏆 Tóm tắt nhanh

  • ✅ Chọn phương án 3 để copy thư mục an toàn và hiệu quả nhất trên GCP.
  • 🚫 Các phương án gsutil sai vì lẫn với Cloud Storage; mv không tồn tại.
    💡 Mẹo thực tế: Trước khi chạy, đảm bảo VM có firewall SSH (port 22) và bạn có quyền IAM Compute Instance Admin. Test với gcloud compute ssh trước!
    📚 Tài liệu bổ sung: GCP SDK Reference (2026 edition).
Câu 7
You are deploying your application to a Compute Engine virtual machine instance with the Observability Monitoring Agent installed. Your application is a unix process on the instance. You want to be alerted if the unix process has not run for at least 5 minutes. You are not able to change the application to generate metrics or logs.
Which alert condition should you configure?
  1. A Uptime check
  2. B Process health
  3. C Metric absence
  4. D Metric threshold
Xem giải thích

🧩 Phân tích chi tiết nội dung câu hỏi

Câu hỏi tập trung vào việc cấu hình cảnh báo (alert condition) trong Google Cloud Monitoring (trước đây là Stackdriver) trên một Compute Engine VM instance. Ứng dụng là một quá trình Unix (unix process) đang chạy trên instance, và đã cài đặt Observability Monitoring Agent (đại lý giám sát thu thập metrics hệ thống).
Yêu cầu chính: Phát hiện và cảnh báo nếu quá trình Unix không chạy ít nhất 5 phút, mà không được phép thay đổi ứng dụng để tự tạo metrics hoặc logs.
🛠️ Bối cảnh: Agent tự động thu thập metrics từ hệ thống (như CPU, memory, process-specific metrics). Chúng ta cần một loại alert policy phát hiện sự vắng mặt của hoạt động process (process không chạy → không có dữ liệu metrics liên quan).

✅ Đáp án đúng: Metric absence

Lý do chọn:

  • Metric absence là chính sách cảnh báo phát hiện khi một metric cụ thể không có dữ liệu mới trong khoảng thời gian định trước (ở đây ≥5 phút).
  • Với Observability Monitoring Agent, nó thu thập metrics process-specific như agent.googleapis.com/process/uptime hoặc agent.googleapis.com/process/cpu/user_time. Nếu process dừng, metric này sẽ không được cập nhật, kích hoạt alert absence.
  • Hoàn hảo vì không cần thay đổi app, agent tự handle. Theo docs Google Cloud 2024-2026, đây là cách chuẩn cho "blackbox" monitoring process health mà không cần instrumentation.
    📘 Nguồn: Google Cloud Monitoring - Metric absence policies & Ops Agent process metrics.

📋 Giải thích tất cả các phương án

Dưới đây là phân tích từng lựa chọn (giữ nguyên text gốc tiếng Anh), với lý do đúng/sai dựa trên tính năng Google Cloud Monitoring mới nhất (2026):

  • Uptime check ❌
    Sai vì: Uptime check chỉ kiểm tra tính khả dụng từ bên ngoài qua HTTP/TCP/ping đến IP/port của VM, không giám sát internal Unix process. Nó không phát hiện process chết nếu VM vẫn up và respond. Không phù hợp với yêu cầu process-specific mà không thay đổi app.

  • Process health ❌
    Sai vì: Không tồn tại chính sách alert tên "Process health" chuẩn trong Cloud Monitoring. Ops Agent có metrics process (như uptime, CPU), nhưng phải dùng absence/threshold để alert, không có policy riêng "Process health". Đây có thể là nhầm lẫn với custom dashboard, không phải alert condition.

  • Metric absence ✅
    Đúng vì: Như giải thích trên, phát hiện absence của metric process (ví dụ: process/uptime không update ≥5 phút). Agent tự thu thập mà không cần code thay đổi. Linh hoạt set duration 5 phút chính xác.

  • Metric threshold ❌
    Sai vì: Metric threshold alert khi giá trị metric vượt/ngưới threshold (ví dụ: CPU >80%). Không detect absence hoàn toàn (process chết → no data). Phải có data mới alert, không phù hợp cho trường hợp "không chạy".

🛠️ Lời khuyên thực hành

  • Cấu hình: Tạo Alerting Policy → Chọn Metric agent.googleapis.com/process/uptime (filter by process name/PID) → Absence duration 300s (5 phút).
  • Test: Kill process → Verify alert fire sau 5 phút.
    📘 Tài liệu tham khảo thêm:
  • Cloud Monitoring best practices for processes.
  • Ops Agent configuration.
    Hy vọng phân tích giúp bạn ôn thi Professional Cloud Developer! 🚀
Câu 8
You have two tables in an ANSI-SQL compliant database with identical columns that you need to quickly combine into a single table, removing duplicate rows from the result set.
What should you do?
  1. A Use the JOIN operator in SQL to combine the tables.
  2. B Use nested WITH statements to combine the tables.
  3. C Use the UNION operator in SQL to combine the tables.
  4. D Use the UNION ALL operator in SQL to combine the tables.
Xem giải thích

🧩 Phân tích nội dung câu hỏi

Câu hỏi yêu cầu xử lý hai bảng dữ liệu trong cơ sở dữ liệu tuân thủ chuẩn ANSI-SQL (chuẩn SQL quốc tế), với các cột hoàn toàn giống hệt nhau. Nhiệm vụ là kết hợp nhanh chóng hai bảng này thành một bảng duy nhất, đồng thời tự động loại bỏ các hàng trùng lặp (duplicate rows) từ kết quả cuối cùng.
🔑 Yêu cầu chính:

  • Kết hợp theo chiều dọc (vertically, stack rows từ hai bảng).
  • Loại bỏ duplicates một cách hiệu quả và nhanh chóng.
  • Không cần thay đổi cấu trúc bảng gốc.
    🛠️ Bối cảnh liên quan AWS: Trong các dịch vụ AWS như Amazon Athena, Amazon Redshift, hoặc Amazon RDS (hỗ trợ ANSI-SQL), đây là tình huống phổ biến khi query dữ liệu từ nhiều nguồn (ví dụ: S3 partitions) mà cần deduplicate nhanh. Kiến thức áp dụng phiên bản mới nhất AWS (2026): UNION vẫn là operator chuẩn, không thay đổi semantics từ SQL:2016.

✅ Đáp án đúng

Use the UNION operator in SQL to combine the tables.
Lý do chọn:

  • UNION là operator chuẩn ANSI-SQL dùng để kết hợp kết quả từ hai hoặc nhiều SELECT statements theo chiều dọc, tự động loại bỏ duplicates bằng cách thực hiện distinct operation (so sánh toàn bộ hàng).
  • Đây là cách nhanh chóng và hiệu quả nhất cho hai bảng có cột giống hệt (chỉ cần SELECT * FROM table1 UNION SELECT * FROM table2).
  • Không cần thêm subquery hay CTE phức tạp.
    📘 Tài liệu tham khảo:
  • AWS Athena Docs: UNION operator (xác nhận loại bỏ duplicates).
  • ANSI SQL Standard (ISO/IEC 9075): UNION thực hiện set union với distinct.

📋 Giải thích chi tiết tất cả các phương án

Dưới đây là phân tích từng lựa chọn, đánh dấu ✅ đúng / ❌ sai, giữ nguyên văn bản gốc bằng tiếng Anh:

  • ❌ Use the JOIN operator in SQL to combine the tables.
    Sai vì: JOIN (INNER JOIN, LEFT JOIN, v.v.) dùng để kết hợp theo chiều ngang (horizontally) dựa trên điều kiện khớp cột chung (ví dụ: ON key=), tạo ra Cartesian product nếu không có điều kiện. Không phù hợp để stack rows từ hai bảng giống hệt, và không tự động loại bỏ duplicates. Sử dụng JOIN sẽ tạo kết quả sai cấu trúc (số cột tăng gấp đôi).

  • ❌ Use nested WITH statements to combine the tables.
    Sai vì: WITH (Common Table Expressions - CTE) chỉ là cách định nghĩa subquery tạm thời để làm query dễ đọc hơn, không phải operator kết hợp bảng. Nested WITH có thể dùng để wrap UNION, nhưng không giải quyết trực tiếp việc combine + deduplicate. Cách này phức tạp, chậm hơn, và không "nhanh chóng" như yêu cầu.

  • ✅ Use the UNION operator in SQL to combine the tables.
    Đúng vì: Như giải thích ở phần đáp án đúng. UNION = table1 UNION table2 tự động distinct rows, hiệu suất cao trên AWS (Athena/Redshift tối ưu hóa set operations). Không giữ duplicates, phù hợp hoàn hảo.

  • ❌ Use the UNION ALL operator in SQL to combine the tables.
    Sai vì: UNION ALL cũng kết hợp theo chiều dọc nhưng KHÔNG loại bỏ duplicates (giữ nguyên tất cả rows, nhanh hơn UNION một chút vì skip distinct). Kết quả sẽ có duplicates nếu hai bảng có rows giống nhau, vi phạm yêu cầu "removing duplicate rows".

🧮 So sánh nhanh UNION vs UNION ALL (dùng emoji minh họa):
| Operator | Loại bỏ duplicates? | Tốc độ |
|----------|---------------------|--------|
| UNION | ✅ Có | Nhanh (nhưng sort/distinct) |
| UNION ALL| ❌ Không | Nhanh hơn |

Kết luận: Chọn UNION để đảm bảo kết quả sạch, hiệu quả trên AWS SQL engines! 🚀

Câu 9
You have an application deployed in production. When a new version is deployed, some issues don't arise until the application receives traffic from users in production. You want to reduce both the impact and the number of users affected.
Which deployment strategy should you use?
  1. A Blue/green deployment
  2. B Canary deployment
  3. C Rolling deployment
  4. D Recreate deployment
Xem giải thích

🧩 Phân tích nội dung câu hỏi

Câu hỏi tập trung vào chiến lược triển khai (deployment strategy) trong môi trường sản xuất (production) trên AWS. Ứng dụng đã deploy và đang chạy, nhưng khi cập nhật phiên bản mới, một số vấn đề chỉ xuất hiện khi có traffic thực tế từ người dùng sản xuất. Mục tiêu là giảm thiểu tác động (impact) và số lượng người dùng bị ảnh hưởng.

🛠️ Chi tiết vấn đề:

  • Các lỗi không lộ ra trong môi trường test/dev, chỉ khi có tải thực tế (user traffic).
  • Cần strategy cho phép kiểm tra dần dần với ít user, tránh ảnh hưởng toàn bộ hệ thống ngay lập tức.
  • Liên quan đến các dịch vụ AWS như Amazon ECS, EKS, Elastic Beanstalk, hoặc CodeDeploy, nơi hỗ trợ nhiều loại deployment để quản lý rủi ro rollout.

📘 Kiến thức cập nhật (AWS 2026): AWS tiếp tục khuyến nghị các strategy zero-downtime như Canary cho high-traffic apps, với hỗ trợ tích hợp AI/ML monitoring qua Amazon DevOps Guru và CloudWatch để tự động rollback nếu phát hiện anomaly.

✅ Đáp án đúng: Canary deployment

Lý do chọn:

  • Canary deployment triển khai phiên bản mới chỉ cho một phần nhỏ traffic/users (ví dụ: 5-10%) trước, monitor metrics (CPU, error rate, latency) qua CloudWatch. Nếu ổn, dần dần tăng tỷ lệ; nếu có vấn đề, rollback nhanh mà chỉ ảnh hưởng ít user.
  • Hoàn hảo cho trường hợp issues chỉ lộ dưới production traffic, giảm cả impact (downtime ngắn) và số users affected (chỉ subset nhỏ).
  • Hỗ trợ tốt trên AWS CodeDeploy (cho EC2/ECS), EKS (với Istio/Knative), và App Runner (phiên bản 2026 với auto-canary).

🛠️ Giải thích tất cả các phương án

Dưới đây là phân tích chi tiết từng lựa chọn, giữ nguyên nội dung gốc bằng tiếng Anh. Mỗi phương án được đánh giá đúng/sai dựa trên yêu cầu câu hỏi:

  • ❌ [SAI] Blue/green deployment
    Strategy này tạo môi trường "blue" (cũ) và "green" (mới) song song, sau đó switch toàn bộ traffic sang green một lần. Ưu điểm: zero-downtime, dễ rollback. Nhưng sai vì: switch toàn bộ traffic cùng lúc → nếu issues lộ ra (như câu hỏi), toàn bộ users bị ảnh hưởng ngay, không giảm số users affected. Phù hợp hơn cho low-risk updates (AWS ECS Blue/Green đến 2026).

  • ✅ [ĐÚNG] Canary deployment
    (Như đã giải thích ở trên). Đây là lựa chọn tối ưu, khớp chính xác yêu cầu "reduce both the impact and the number of users affected" nhờ progressive rollout.

  • ❌ [SAI] Rolling deployment
    Triển khai dần dần bằng cách thay thế instances cũ bằng mới theo batch (ví dụ: 10% mỗi lần trên ECS). Nhưng sai vì: trong quá trình rolling, có mix versions → issues có thể affect một phần lớn traffic sớm, và khó isolate vấn đề chỉ với "subset nhỏ". Không kiểm soát chặt số users như Canary (AWS Elastic Beanstalk hỗ trợ, nhưng kém linh hoạt hơn).

  • ❌ [SAI] Recreate deployment
    Kill toàn bộ instances cũ rồi deploy mới từ đầu. Nhưng sai hoàn toàn vì: gây downtime cao (toàn bộ app ngừng), ảnh hưởng tất cả users trong lúc recreate. Không phù hợp production traffic-sensitive (Kubernetes/EKS hỗ trợ, nhưng chỉ dùng cho non-critical apps).

📘 Tài liệu tham khảo (AWS mới nhất 2026)

Hy vọng phân tích này giúp bạn nắm vững! 🚀 Nếu cần ví dụ code Terraform/CloudFormation, hãy hỏi thêm.

Câu 10 Chọn nhiều đáp án
Your company wants to expand their users outside the United States for their popular application. The company wants to ensure 99.999% availability of the database for their application and also wants to minimize the read latency for their users across the globe.
Which two actions should they take? (Choose two.)
  1. A Create a multi-regional Cloud Spanner instance with "nam-asia-eur1" configuration.
  2. B Create a multi-regional Cloud Spanner instance with "nam3" configuration.
  3. C Create a cluster with at least 3 Spanner nodes.
  4. D Create a cluster with at least 1 Spanner node.
  5. E Create a minimum of two Cloud Spanner instances in separate regions with at least one node.
  6. F Create a Cloud Dataflow pipeline to replicate data across different databases.
Xem giải thích

🧩 Giải thích nội dung câu hỏi

Câu hỏi này tập trung vào việc thiết kế cơ sở dữ liệu Cloud Spanner (dịch vụ của Google Cloud Platform - GCP) để hỗ trợ mở rộng ứng dụng ra toàn cầu ngoài Mỹ. Các yêu cầu chính bao gồm:

  • Đảm bảo độ khả dụng 99.999% (SLA cao nhất cho database phân tán).
  • Giảm thiểu độ trễ đọc (read latency) cho người dùng trên toàn thế giới.
    Câu hỏi yêu cầu chọn hai hành động (Choose two) để đạt được mục tiêu này. Cloud Spanner là database quan hệ phân tán hỗ trợ global scale, với các cấu hình regional (một vùng) hoặc multi-regional (nhiều vùng địa lý) để đảm bảo tính sẵn sàng cao và phân phối dữ liệu gần người dùng hơn, giúp giảm latency.
    (Lưu ý: Mặc dù người dùng đề cập "Chủ đề liên quan đến AWS", nhưng nội dung rõ ràng là về Cloud Spanner của GCP. Tôi sẽ phân tích dựa trên kiến thức GCP cập nhật đến 2026, theo tài liệu chính thức mới nhất).

✅ Đáp án đúng (Chọn hai phương án sau)

Hai hành động đúng là:

  1. Create a multi-regional Cloud Spanner instance with "nam-asia-eur1" configuration.
    • Lý do: Cấu hình multi-regional "nam-eur-asia1" (hay còn gọi nam-asia-eur1 trong một số docs cũ, nhưng chuẩn là nam-eur-asia1 theo update 2024-2026) bao phủ Bắc Mỹ (nam), châu Á (asia1), châu Âu (eur). Điều này đảm bảo SLA 99.999% availability (cao hơn regional chỉ 99.99%) và giảm read latency toàn cầu nhờ dữ liệu replicate synchronous qua 3 khu vực địa lý, phục vụ người dùng ở Mỹ, châu Á, châu Âu mà không cần sync thủ công.
  2. Create a cluster with at least 3 Spanner nodes.
    • Lý do: Cloud Spanner yêu cầu ít nhất 3 nodes trong cluster để đảm bảo fault tolerance và high availability (chịu được failure của 1 node mà không downtime). Với <3 nodes, SLA giảm xuống và không khuyến nghị cho production global. Kết hợp multi-regional, 3 nodes giúp duy trì 99.999% uptime ngay cả khi có outage vùng.

📋 Phân tích chi tiết tất cả các phương án

Dưới đây là giải thích từng lựa chọn một cách rõ ràng. Tôi giữ nguyên văn bản gốc tiếng Anh, chỉ phân tích bằng tiếng Việt với emoji đánh dấu đúng/sai:

✅ Create a multi-regional Cloud Spanner instance with "nam-asia-eur1" configuration.

  • Đúng: Như đã giải thích, cấu hình này (nam-eur-asia1) là multi-regional chuẩn, replicate dữ liệu qua 3 châu lục, đạt 99.999% SLA và minimize read latency toàn cầu bằng cách phục vụ read gần nhất từ replica. Hoàn hảo cho mở rộng ngoài Mỹ.

❌ Create a multi-regional Cloud Spanner instance with "nam3" configuration.

  • Sai: "nam3" là cấu hình regional (chỉ trong Bắc Mỹ, ví dụ us-central1/us-east1), không phải multi-regional. Nó chỉ đạt 99.99% SLA (không đủ 99.999%), và latency cao cho người dùng châu Á/châu Âu vì dữ liệu không replicate global.

✅ Create a cluster with at least 3 Spanner nodes.

  • Đúng: Theo best practice GCP (update 2026), tối thiểu 3 nodes/cluster đảm bảo replication 3x nội bộ, chịu lỗi node/zone mà không mất dữ liệu. Kết hợp multi-regional, đạt full 99.999% availability và hỗ trợ read scaling global.

❌ Create a cluster with at least 1 Spanner node.

  • Sai: Chỉ 1 node không có fault tolerance (single point of failure), SLA chỉ ~99.9% hoặc thấp hơn, không khuyến nghị production. Latency không cải thiện global vì thiếu replication.

❌ Create a minimum of two Cloud Spanner instances in separate regions with at least one node.

  • Sai: Tạo nhiều instances riêng biệt không tự động sync dữ liệu (cần app-level replication phức tạp), không đạt 99.999% SLA native như multi-regional single instance. Tăng chi phí, latency cao do read từ instance xa, và khó maintain consistency.

❌ Create a Cloud Dataflow pipeline to replicate data across different databases.

  • Sai: Cloud Dataflow là ETL streaming/batch, không dành cho real-time replication với strong consistency như Spanner cần. Sẽ gây eventual consistency, latency cao, không đạt 99.999% availability, và phức tạp hơn giải pháp native multi-regional của Spanner.

🛠️ Khuyến nghị bổ sung

  • Kết hợp hai đáp án đúng để tạo instance multi-regional nam-eur-asia1 với ≥3 nodes/cluster.
  • Theo dõi metrics qua Cloud Monitoring để optimize read/write units.
  • Chi phí: Multi-regional đắt hơn ~2-3x regional, nhưng đáng giá cho global app.

📘 Tài liệu tham khảo (cập nhật 2026)