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

Tìm thấy 169 câu.

Câu 61
You are running a transactional application on Cloud SQL for PostgreSQL in Google Cloud. The database is running in a high availability configuration within one region. You have encountered issues with data and want to restore to the last known pristine version of the database. What should you do?
  1. A Create a clone database from a read replica database, and restore the clone in the same region.
  2. B Create a clone database from a read replica database, and restore the clone into a different zone.
  3. C Use the Cloud SQL point-in-time recovery (PITR) feature. Restore the copy from two hours ago to a new database instance.
  4. D Use the Cloud SQL database import feature. Import last week's dump file from Cloud Storage.
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ả một tình huống thực tế: Bạn đang chạy một ứng dụng giao dịch (transactional application) trên Cloud SQL cho PostgreSQL trong Google Cloud. Cơ sở dữ liệu đang ở chế độ high availability (HA) trong một region duy nhất. Bạn gặp vấn đề với dữ liệu (có thể là dữ liệu bị hỏng, sai sót do giao dịch gần đây) và muốn khôi phục về phiên bản dữ liệu sạch cuối cùng đã biết (last known pristine version).

📌 Yêu cầu chính: Tìm cách khôi phục dữ liệu một cách chính xác, nhanh chóng và an toàn nhất, tận dụng các tính năng của Cloud SQL. Đây là kịch bản phổ biến trong môi trường sản xuất, nơi cần point-in-time recovery (PITR) để quay về thời điểm cụ thể trước khi lỗi xảy ra, mà không ảnh hưởng đến instance gốc.

Bối cảnh cập nhật 2026: Theo tài liệu Google Cloud mới nhất (Cloud SQL v2026), Cloud SQL hỗ trợ PITR cho PostgreSQL với transaction log (write-ahead log - WAL) được lưu trữ tự động lên đến 7 ngày (có thể mở rộng), cho phép khôi phục chính xác đến giây. HA config sử dụng failover replica, nhưng PITR là lựa chọn tối ưu cho recovery từ data corruption.

📘 Tài liệu tham khảo:

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

Đáp án đúng: Use the Cloud SQL point-in-time recovery (PITR) feature. Restore the copy from two hours ago to a new database instance.

🛠️ Lý do chi tiết:

  • PITR là tính năng chuyên dụng của Cloud SQL để khôi phục cơ sở dữ liệu đến một thời điểm cụ thể (point-in-time) dựa trên automated backups và WAL logs. Nó cho phép tạo instance mới từ bản sao cách đây 2 giờ (giả sử đây là thời điểm "last known pristine"), mà không làm gián đoạn instance gốc.
  • Trong HA config (regional), PITR hỗ trợ khôi phục nhanh (thường dưới 10 phút), giữ nguyên tính toàn vẹn giao dịch ACID của PostgreSQL.
  • Đây là cách tối ưu nhất cho transactional app, tránh downtime và data loss. Không cần export/import thủ công, tự động và chính xác đến giây.

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

  • Create a clone database from a read replica database, and restore the clone in the same region.
    ❌ Sai vì: Clone từ read replica chỉ sao chép dữ liệu tại thời điểm clone, nhưng read replica thường có replication lag (độ trễ vài giây đến phút), nên không đảm bảo "pristine version" cuối cùng. Không giải quyết được data corruption nếu replica cũng bị ảnh hưởng. Clone chỉ dùng cho testing/scaling, không phải recovery.

  • Create a clone database from a read replica database, and restore the clone into a different zone.
    ❌ Sai vì: Tương tự phương án trên, clone từ read replica vẫn có vấn đề lag và không phải recovery tool. Việc restore vào zone khác chỉ thay đổi vị trí vật lý (cross-zone), nhưng trong regional HA, zone không ảnh hưởng đến data integrity. Vẫn không khôi phục được về thời điểm pristine cụ thể.

  • Use the Cloud SQL point-in-time recovery (PITR) feature. Restore the copy from two hours ago to a new database instance.
    ✅ Đúng vì: Như đã giải thích ở phần đáp án, PITR là giải pháp chuẩn cho kịch bản này, khôi phục chính xác từ backup + WAL logs đến thời điểm 2 giờ trước, tạo instance mới an toàn. Hoàn hảo cho data issues trong transactional workload.

  • Use the Cloud SQL database import feature. Import last week's dump file from Cloud Storage.
    ❌ Sai vì: Import dump là phương pháp logical export/import (sql dump), chỉ khôi phục từ file backup tuần trước, không phải "last known pristine" (cách đây vài giờ). Quá trình chậm (giờ đến ngày cho DB lớn), mất tính toàn vẹn WAL, và không hỗ trợ PITR. Chỉ dùng cho migration/full restore, không phù hợp emergencies.

🧠 Lời khuyên thực hành: Luôn kích hoạt automated backups và PITR (mặc định 7 ngày) cho production DB. Test recovery định kỳ qua gcloud CLI: gcloud sql instances restore-point-in-time. Nếu cần cross-region, dùng export/import sau PITR! 🚀

Câu 62
Your organization has a security policy to ensure that all Cloud SQL for PostgreSQL databases are secure. You want to protect sensitive data by using a key that meets specific locality or residency requirements. Your organization needs to control the key's lifecycle activities. You need to ensure that data is encrypted at rest and in transit. What should you do?
  1. A Create the database with Google-managed encryption keys.
  2. B Create the database with customer-managed encryption keys.
  3. C Create the database persistent disk with Google-managed encryption keys.
  4. D Create the database persistent disk with customer-managed encryption keys.
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 bảo mật Cloud SQL for PostgreSQL trên Google Cloud Platform (GCP), theo chính sách bảo mật của tổ chức. Các yêu cầu chính bao gồm:

  • ✅ Bảo vệ dữ liệu nhạy cảm bằng khóa mã hóa (encryption key) đáp ứng yêu cầu về vị trí địa lý (locality) hoặc cư trú dữ liệu (residency requirements) – nghĩa là khóa phải được lưu trữ và quản lý ở khu vực cụ thể.
  • 🔐 Tổ chức cần kiểm soát toàn bộ vòng đời khóa (lifecycle activities) như tạo, xoay vòng, vô hiệu hóa, xóa khóa.
  • 📱 Đảm bảo dữ liệu được mã hóa tại chỗ nghỉ (at rest) và trong quá trình truyền (in transit).

🛠️ Giải pháp phù hợp: Sử dụng Customer-managed encryption keys (CMEK) từ Cloud Key Management Service (Cloud KMS) để mã hóa at rest cho Cloud SQL instance. CMEK cho phép tùy chỉnh residency (chọn region/multi-region key) và kiểm soát lifecycle đầy đủ. Mã hóa in transit được kích hoạt mặc định qua SSL/TLS. Google-managed keys không đáp ứng yêu cầu kiểm soát lifecycle hoặc residency tùy chỉnh.

(Kiến thức cập nhật đến 2026: Cloud SQL hỗ trợ CMEK với Cloud KMS phiên bản mới nhất, bao gồm asymmetric keys và multi-region support – theo docs GCP 2024-2026).

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

Create the database with customer-managed encryption keys.

Lý do:

  • Phương án này cho phép tạo Cloud SQL for PostgreSQL instance với CMEK, đáp ứng đầy đủ yêu cầu: kiểm soát lifecycle (tạo/xoay/vô hiệu hóa key qua Cloud KMS), residency (chọn key ở region cụ thể), mã hóa at rest (dữ liệu trên persistent disk), và in transit (SSL mặc định).
  • Đây là cách chính thức để cấu hình: Khi tạo instance, chỉ định --kms-key từ Cloud KMS. Tổ chức có quyền admin hoàn toàn trên key.
  • 🏆 Hoàn hảo khớp yêu cầu security policy!

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

  • Create the database with Google-managed encryption keys.
    ❌ Sai: Google-managed keys (tự động từ Google) mã hóa at rest mặc định, nhưng tổ chức KHÔNG kiểm soát lifecycle (Google quản lý toàn bộ) và KHÔNG tùy chỉnh residency (khóa không ở region cụ thể theo ý muốn). Chỉ phù hợp cho trường hợp không cần control cao.

  • Create the database with customer-managed encryption keys.
    ✅ Đúng: Như đã giải thích ở trên, CMEK đáp ứng toàn bộ yêu cầu về control lifecycle, locality/residency qua Cloud KMS, mã hóa at rest/in transit. Đây là best practice cho enterprise security.

  • Create the database persistent disk with Google-managed encryption keys.
    ❌ Sai: Cloud SQL không tạo persistent disk riêng lẻ; disk được quản lý tự động qua instance. Google-managed keys mặc định cho disk nhưng thiếu control lifecycle/residency. Cách này không áp dụng trực tiếp và không giải quyết yêu cầu.

  • Create the database persistent disk with customer-managed encryption keys.
    ❌ Sai: Tương tự, Cloud SQL không hỗ trợ tạo disk riêng với CMEK độc lập; CMEK phải apply ở mức instance/database. Cách này sai cú pháp và không khả dụng trong GCP (disk là internal).

📘 Tài liệu tham khảo

🛡️ Kết luận: Chọn CMEK để đảm bảo compliance cao nhất! Nếu cần lab thực hành, dùng gcloud CLI: gcloud sql instances create INSTANCE --database-version=POSTGRES_15 --kms-key=projects/PROJ/locations/LOCATION/keyRings/RING/cryptoKeys/KEY.

Câu 63
Your organization has an existing app that just went viral. The app uses a Cloud SQL for MySQL backend database that is experiencing slow disk performance while using hard disk drives (HDDs). You need to improve performance and reduce disk I/O wait times. What should you do?
  1. A Export the data from the existing instance, and import the data into a new instance with solid-state drives (SSDs).
  2. B Edit the instance to change the storage type from HDD to SSD.
  3. C Create a high availability (HA) failover instance with SSDs, and perform a failover to the new instance.
  4. D Create a read replica of the instance with SSDs, and perform a failover to the new instance
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ả một tình huống thực tế: Tổ chức của bạn có một ứng dụng đang bùng nổ lượt sử dụng (viral), sử dụng backend là Cloud SQL cho MySQL với ổ cứng HDD gây chậm hiệu suất đĩa và tăng thời gian chờ I/O.
📌 Mục tiêu chính: Cải thiện hiệu suất và giảm thời gian chờ disk I/O một cách nhanh chóng, đáng tin cậy.
🛠️ Bối cảnh kỹ thuật: Cloud SQL (dịch vụ cơ sở dữ liệu quan hệ trên Google Cloud Platform - GCP) hỗ trợ hai loại lưu trữ chính là HDD (rẻ hơn nhưng chậm) và SSD (nhanh hơn, phù hợp workload cao). Vấn đề phổ biến khi app scale đột ngột là bottleneck ở disk I/O do HDD không đáp ứng được throughput cao.

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

Đáp án đúng: Export the data from the existing instance, and import the data into a new instance with solid-state drives (SSDs).

Lý do chi tiết 🏆:

  • Trong Cloud SQL for MySQL (phiên bản cập nhật mới nhất đến 2026), KHÔNG THỂ thay đổi trực tiếp loại lưu trữ (storage type) từ HDD sang SSD trên instance đang chạy. Bạn phải tạo instance mới với SSD, export dữ liệu từ instance cũ (sử dụng mysqldump hoặc Cloud SQL export job), rồi import vào instance mới.
  • Phương pháp này đảm bảo downtime tối thiểu, hiệu suất cải thiện ngay lập tức nhờ SSD có IOPS cao hơn (lên đến 30,000+ IOPS tùy size), giảm I/O wait từ hàng giây xuống mili giây.
  • Đây là best practice khuyến nghị chính thức từ Google cho migration storage type, đặc biệt với app viral cần scale nhanh.
    📘 Nguồn tham khảo:
  • Cloud SQL Documentation: Edit instance settings (xác nhận không hỗ trợ edit storage type trực tiếp).
  • Migrate to SSD storage (hướng dẫn export/import).

📋 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 một cách chi tiết, dựa trên tài liệu GCP Cloud SQL phiên bản mới nhất (Enterprise Plus edition hỗ trợ SSD hyperdisk đến 2026):

  • ✅ Export the data from the existing instance, and import the data into a new instance with solid-state drives (SSDs).
    Đúng 🥇: Như giải thích ở trên, đây là cách duy nhất và an toàn để chuyển sang SSD. Quá trình export/import hỗ trợ compression, parallel dump, downtime thấp (dùng read replica làm bridge nếu cần). Hiệu suất SSD cải thiện 3-10x so HDD cho random I/O.

  • ❌ Edit the instance to change the storage type from HDD to SSD.
    Sai 🚫: Cloud SQL KHÔNG hỗ trợ edit storage type trực tiếp trên instance hiện tại (kể cả stop/start). Tài liệu GCP rõ ràng: "You cannot change the storage type of an existing instance." Thử sẽ fail, gây gián đoạn không cần thiết.

  • ❌ Create a high availability (HA) failover instance with SSDs, and perform a high availability (HA) failover instance with SSDs, and perform a failover to the new instance.
    Sai 🔒: HA configuration (regional instance) yêu cầu primary và secondary phải cùng storage type. Không thể tạo HA failover với SSD khác biệt HDD. Failover sẽ fail validation, và HA chỉ dùng cho disaster recovery chứ không phải upgrade storage.

  • ❌ Create a read replica of the instance with SSDs, and perform a failover to the new instance.
    Sai ⚠️: Read replica bắt buộc kế thừa storage type từ primary (HDD), không thể chọn SSD khác biệt. Read replica chỉ read-only, không hỗ trợ promote trực tiếp thành primary (phải dùng cross-region replica hoặc manual failover phức tạp). Sẽ không giải quyết được vấn đề I/O gốc.

Kết luận tổng quát 🎯: Phương án đúng tập trung vào migration sạch sẽ, tránh rủi ro downtime lớn. Nếu app viral, kết hợp với autoscaling và monitoring Cloud SQL Insights để tối ưu thêm! 🧑‍💻

Câu 64
You are configuring a new application that has access to an existing Cloud Spanner database. The new application reads from this database to gather statistics for a dashboard. You want to follow Google-recommended practices when granting Identity and Access Management (IAM) permissions. What should you do?
  1. A Reuse the existing service account that populates this database.
  2. B Create a new service account, and grant it the Cloud Spanner Database Admin role.
  3. C Create a new service account, and grant it the Cloud Spanner Database Reader role.
  4. D Create a new service account, and grant it the spanner.databases.select permission.
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 việc cấu hình quyền truy cập IAM (Identity and Access Management) cho một ứng dụng mới trên Google Cloud Spanner. Ứng dụng này chỉ đọc dữ liệu từ cơ sở dữ liệu Cloud Spanner hiện có để thu thập thống kê hiển thị trên dashboard. Yêu cầu tuân thủ best practices của Google, bao gồm nguyên tắc least privilege (quyền hạn tối thiểu) và separation of duties (phân tách trách nhiệm).

📌 Chi tiết ngữ cảnh:

  • Cloud Spanner là dịch vụ database phân tán, hỗ trợ đọc/ghi quy mô lớn.
  • Ứng dụng mới chỉ đọc (read-only), không ghi hoặc quản lý database.
  • Cần cấp quyền cho service account (tài khoản dịch vụ) để ứng dụng xác thực an toàn.
  • Best practices Google (cập nhật đến 2026): Sử dụng service account riêng cho từng workload, tránh reuse tài khoản cũ; ưu tiên predefined roles thay vì custom permissions trừ khi cần thiết; áp dụng least privilege để giảm rủi ro bảo mật.

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

Đáp án đúng: Create a new service account, and grant it the Cloud Spanner Database Reader role.

Lý do 🛡️️:

  • Tuân thủ least privilege: Role Cloud Spanner Database Reader (roles/spanner.databaseReader) chỉ cho phép đọc dữ liệu từ database cụ thể, phù hợp hoàn hảo với nhu cầu "reads from this database to gather statistics" (không ghi, không admin).
  • Best practice Google: Tạo service account mới cho ứng dụng mới để tránh chia sẻ credentials, giảm rủi ro nếu SA cũ bị compromise. Predefined role này an toàn, dễ audit hơn custom permissions.
  • Cập nhật 2026: Theo IAM updates, role này bao gồm các quyền như spanner.databases.read, spanner.operations.get – đủ cho read stats mà không thừa quyền.

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

Dưới đây là phân tích từng phương án (giữ nguyên văn bản gốc bằng tiếng Anh). Tôi đánh dấu ✅ đúng hoặc ❌ sai, kèm giải thích chi tiết bằng tiếng Việt:

  • ❌ Reuse the existing service account that populates this database.
    Sai vì: Reuse SA cũ (dùng để "populates" – ghi dữ liệu) vi phạm separation of duties và least privilege. SA cũ có quyền ghi cao (có thể là Writer/Admin), cấp cho app read-only sẽ thừa quyền, tăng rủi ro bảo mật nếu app bị hack. Best practice: Mỗi workload/app cần SA riêng.

  • ❌ Create a new service account, and grant it the Cloud Spanner Database Admin role.
    Sai vì: Role Cloud Spanner Database Admin (roles/spanner.databaseAdmin) cho quyền toàn diện (read/write/delete DDL/DML, quản lý database), vượt xa nhu cầu chỉ đọc. Vi phạm least privilege, có thể dẫn đến data corruption hoặc privilege escalation. Google khuyến nghị dùng Reader cho read-only workloads.

  • ✅ Create a new service account, and grant it the Cloud Spanner Database Reader role.
    Đúng vì: Như giải thích ở phần đáp án trên – tạo SA mới + role Reader chính xác matching yêu cầu read-only, an toàn và theo best practices.

  • ❌ Create a new service account, and grant it the spanner.databases.select permission.
    Sai vì: Permission spanner.databases.select chỉ cho phép liệt kê/select databases (metadata), không đọc dữ liệu thực tế (không có spanner.databases.read hoặc query SQL). App sẽ không thể "gather statistics" từ data. Google khuyên dùng predefined roles thay vì custom IAM policy trừ khi cần tinh chỉnh cực kỳ cụ thể.

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

Hy vọng phân tích này giúp bạn ôn thi hiệu quả! 🚀 Nếu cần thêm ví dụ code/key IAM policy, hãy hỏi nhé.

Câu 65
Your retail organization is preparing for the holiday season. Use of catalog services is increasing, and your DevOps team is supporting the Cloud SQL databases that power a microservices-based application. The DevOps team has added instrumentation through Sqlcommenter. You need to identify the root cause of why certain microservice calls are failing. What should you do?
  1. A Watch Query Insights for long running queries.
  2. B Watch the Cloud SQL instance monitor for CPU utilization metrics.
  3. C Watch the Cloud SQL recommenders for overprovisioned instances.
  4. D Watch Cloud Trace for application requests that are failing.
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 một tổ chức bán lẻ đang chuẩn bị cho mùa lễ hội, dẫn đến lượng sử dụng dịch vụ catalog tăng cao. Đội DevOps đang hỗ trợ các cơ sở dữ liệu Cloud SQL (dịch vụ quản lý cơ sở dữ liệu quan hệ của Google Cloud) cho một ứng dụng dựa trên microservices. Họ đã tích hợp Sqlcommenter – một công cụ instrumentation để thêm thông tin trace (như trace ID, span ID) vào các câu lệnh SQL, giúp theo dõi luồng thực thi từ ứng dụng đến database.
Vấn đề cần giải quyết: Xác định nguyên nhân gốc rễ (root cause) khiến một số cuộc gọi microservice (microservice calls) bị thất bại (failing). Đây là vấn đề troubleshooting ở mức ứng dụng và trace end-to-end, không chỉ giới hạn ở database performance.

🛠️ Đáp án đúng:
Watch Cloud Trace for application requests that are failing.
Lý do lựa chọn: Cloud Trace là dịch vụ APM (Application Performance Monitoring) của Google Cloud, chuyên theo dõi và phân tích luồng request end-to-end qua các microservices. Với Sqlcommenter đã được thêm vào, các query SQL sẽ được liên kết trực tiếp với trace spans trong Cloud Trace. Do đó, bạn có thể xem chi tiết requests failing (như timeout, lỗi kết nối, hoặc bottleneck ở database), xác định chính xác root cause ở mức ứng dụng/microservices. Đây là cách hiệu quả nhất cho tình huống này, phù hợp với best practices troubleshooting microservices trên Google Cloud (cập nhật đến 2026, Cloud Trace v2 hỗ trợ advanced distributed tracing với Sqlcommenter).

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

Dưới đây là phân tích từng lựa chọn một cách chi tiết. Tôi giữ nguyên văn bản gốc tiếng Anh của các phương án, chỉ giải thích lý do đúng/sai bằng tiếng Việt. Các phương án sai thường tập trung vào monitoring database-level (performance, metrics), không giải quyết root cause của failing microservice calls ở mức ứng dụng.

  • ❌ [SAI] Watch Query Insights for long running queries.
    Query Insights (trong Cloud SQL Insights) chỉ theo dõi và phân tích các query chạy lâu (long running queries) dựa trên performance metrics như execution time, rows examined. Nó hữu ích cho tối ưu hóa query chậm, nhưng không trace failing requests ở mức microservices hay liên kết với Sqlcommenter. Không giúp identify root cause failing calls (ví dụ: lỗi logic app hoặc network).

  • ❌ [SAI] Watch the Cloud SQL instance monitor for CPU utilization metrics.
    Cloud SQL instance monitor (qua Cloud Monitoring) theo dõi metrics hệ thống như CPU utilization, memory, I/O. Đây là monitoring cơ bản cho instance health, nhưng chỉ phát hiện overload tổng quát, không drill-down vào failing microservice calls cụ thể hay trace SQL queries qua Sqlcommenter. Không phù hợp cho root cause analysis ở ứng dụng layer.

  • ❌ [SAI] Watch the Cloud SQL recommenders for overprovisioned instances.
    Cloud SQL recommenders (trong Recommender API) gợi ý tối ưu hóa tài nguyên như overprovisioned instances (instance dư thừa CPU/RAM). Đây là công cụ cost-optimization và scaling, không dùng để troubleshoot failing requests thời gian thực. Nó không liên kết với traces hay Sqlcommenter, nên bỏ qua root cause của microservice failures.

  • ✅ [ĐÚNG] Watch Cloud Trace for application requests that are failing.
    Như đã giải thích ở trên: Cloud Trace cung cấp trace visualization đầy đủ cho requests failing, tích hợp Sqlcommenter để correlate app calls với database spans. Hoàn hảo cho root cause ở microservices (ví dụ: xem latency spike hoặc error ở bước SQL).

🔗 Tài liệu tham khảo (cập nhật mới nhất đến 2026)

  • 📖 Cloud Trace documentation – Hướng dẫn sử dụng Sqlcommenter với Cloud SQL.
  • 📖 Sqlcommenter integration – Tích hợp tracing cho microservices.
  • 📖 Cloud SQL Query Insights – So sánh với Trace để thấy sự khác biệt.
  • 📘 Google Cloud Skills Boost: "Troubleshoot Cloud SQL with Cloud Trace" (certification track cho Professional Cloud Database Engineer, phiên bản 2026).

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

Câu 66
You are designing a database architecture for a global application that stores information about public parks worldwide. The application uses the database for read-only purposes, and a centralized batch job updates the database nightly. You want to select an open source, SQL-compliant database. What should you do?
  1. A Use Bigtable with multi-region clusters.
  2. B Use Memorystore for Redis with multi-zones within a region.
  3. C Use Cloud SQL for PostgreSQL with cross-region replicas.
  4. D Use Cloud Spanner with multi-region configuration.
Xem giải thích

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

Câu hỏi yêu cầu thiết kế kiến trúc cơ sở dữ liệu (database architecture) cho một ứng dụng toàn cầu (global application) lưu trữ thông tin về các công viên công cộng trên thế giới. Các đặc điểm chính:

  • Ứng dụng chỉ sử dụng database cho mục đích đọc (read-only purposes): Nghĩa là hầu hết các truy vấn là đọc dữ liệu, không ghi.
  • Có một batch job tập trung (centralized batch job) cập nhật database hàng đêm (nightly): Dữ liệu được cập nhật định kỳ từ một nguồn trung tâm, không cần ghi realtime.
  • Yêu cầu chọn database: Phải là open source (mã nguồn mở) và SQL-compliant (tuân thủ chuẩn SQL).
  • Mục tiêu: Hỗ trợ quy mô toàn cầu, với khả năng đọc dữ liệu từ nhiều vùng (regions) để giảm độ trễ (latency) cho người dùng toàn cầu.

📘 Tài liệu tham khảo:

  • Cloud SQL Documentation (cập nhật 2024-2026: Hỗ trợ cross-region read replicas cho PostgreSQL).
  • Cloud Spanner Overview (không open source).
  • AWS không liên quan trực tiếp (có thể nhầm lẫn chủ đề), nhưng tương đương là Amazon RDS for PostgreSQL với read replicas.

✅ Đáp án đúng: Use Cloud SQL for PostgreSQL with cross-region replicas

Lý do lựa chọn:

  • Cloud SQL for PostgreSQL là dịch vụ managed database của Google Cloud, sử dụng PostgreSQL – một engine open source và SQL-compliant hoàn hảo (hỗ trợ chuẩn SQL đầy đủ, ACID transactions).
  • Cross-region replicas cho phép tạo read replicas ở nhiều vùng địa lý khác nhau (multi-region), lý tưởng cho ứng dụng global với read-only workload: Primary instance nhận batch updates hàng đêm, replicas phục vụ đọc nhanh chóng, giảm latency toàn cầu.
  • Phù hợp hoàn hảo: Chi phí thấp hơn Spanner, dễ quản lý, scale read traffic mà không cần ghi realtime. Đến 2026, Cloud SQL hỗ trợ HA cross-region với replication lag thấp (<1s cho read replicas).

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

  • ❌ Use Bigtable with multi-region clusters
    Sai vì Bigtable là NoSQL database (wide-column store), không SQL-compliant (không hỗ trợ SQL queries chuẩn). Nó dành cho workload lớn, key-value/NoSQL, không phù hợp open source SQL cho read-only app. Multi-region chỉ hỗ trợ replication nhưng không giải quyết yêu cầu SQL.

  • ❌ Use Memorystore for Redis with multi-zones within a region
    Sai vì Memorystore for Redis là in-memory key-value store (dựa Redis), không SQL-compliant và không open source engine (Redis là open source nhưng Memorystore là managed service không thay thế SQL). Chỉ multi-zone trong 1 region, không hỗ trợ cross-region tốt cho global app; không phù hợp batch SQL updates.

  • ✅ Use Cloud SQL for PostgreSQL with cross-region replicas
    Đúng như giải thích ở trên: Open source (PostgreSQL), SQL-compliant, cross-region replicas tối ưu cho global read-only với nightly batch writes.

  • ❌ Use Cloud Spanner with multi-region configuration
    Sai vì Cloud Spanner tuy SQL-compliant và multi-region mạnh mẽ (global consistency), nhưng không open source (là proprietary database của Google, không dựa trên engine mã nguồn mở như PostgreSQL/MySQL). Chi phí cao hơn, overkill cho read-only + nightly batch (Spanner tối ưu cho OLTP high-write global).

Câu 67
Your company is migrating their MySQL database to Cloud SQL and cannot afford any planned downtime during the month of December. The company is also concerned with cost, so you need the most cost-effective solution. What should you do?
  1. A Open a support ticket in Google Cloud to prevent any maintenance in that MySQL instance during the month of December.
  2. B Use Cloud SQL maintenance settings to prevent any maintenance during the month of December.
  3. C Create MySQL read replicas in different zones so that, if any downtime occurs, the read replicas will act as the primary instance during the month of December.
  4. D Create a MySQL regional instance so that, if any downtime occurs, the standby instance will act as the primary instance during the month of December.
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 tình huống di chuyển cơ sở dữ liệu MySQL sang Cloud SQL (dịch vụ quản lý cơ sở dữ liệu của Google Cloud). Công ty không chấp nhận bất kỳ downtime có kế hoạch nào (planned downtime) trong tháng 12, đồng thời ưu tiên giải pháp tiết kiệm chi phí nhất. Planned downtime ở đây chủ yếu đề cập đến các hoạt động bảo trì định kỳ (maintenance) của Cloud SQL, như cập nhật phiên bản, vá bảo mật, mà Google Cloud thường thực hiện trên các instance.

Mục tiêu là tìm giải pháp tối ưu:

  • Tránh hoàn toàn maintenance trong tháng 12 mà không gây downtime.
  • Tiết kiệm chi phí (không dùng các tính năng HA đắt đỏ hoặc replica thừa).
  • Kiến thức cập nhật đến 2026: Theo tài liệu Google Cloud mới nhất (Cloud SQL for MySQL phiên bản 2024-2026), Cloud SQL hỗ trợ maintenance preferences/windows để người dùng kiểm soát lịch bảo trì, bao gồm tùy chọn defer hoặc skip maintenance trong khoảng thời gian cụ thể thông qua console/API/CLI, mà không cần support ticket. Điều này là cost-effective vì không tốn thêm phí.

📘 Tài liệu tham khảo:

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

Use Cloud SQL maintenance settings to prevent any maintenance during the month of December.

🛠️ Lý do chi tiết:

  • Cloud SQL cho phép cấu hình maintenance settings (qua Google Cloud Console, gcloud CLI hoặc API) để chọn maintenance window ngoài tháng 12 hoặc defer maintenance (hoãn bảo trì) trong khoảng thời gian cụ thể như tháng 12.
  • Đây là giải pháp chính thức, tự động và cost-effective nhất vì không yêu cầu thêm tài nguyên (như replica hoặc HA), chỉ dùng tính năng built-in miễn phí.
  • Không gây downtime planned, phù hợp hoàn hảo với yêu cầu "cannot afford any planned downtime" và "most cost-effective".
  • Cập nhật 2026: Tính năng này được cải tiến với maintenance freeze preferences, cho phép skip lên đến 7 ngày liên tục hoặc tùy chỉnh window (tối thiểu 1 giờ/tuần).

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

  • Open a support ticket in Google Cloud to prevent any maintenance in that MySQL instance during the month of December.
    ❌ Sai vì: Mở support ticket chỉ là giải pháp tạm thời, không chính thức và không đảm bảo (Google chỉ hỗ trợ trường hợp critical, có thể từ chối). Không cost-effective vì tốn phí support (Premium tier), và không scalable. Không phải best practice theo docs.

  • Use Cloud SQL maintenance settings to prevent any maintenance during the month of December.
    ✅ Đúng vì: Như giải thích ở trên, đây là cách trực tiếp, miễn phí và kiểm soát được qua settings để tránh maintenance trong tháng 12. Hoàn hảo cho migration mà không downtime planned.

  • Create MySQL read replicas in different zones so that, if any downtime occurs, the read replicas will act as the primary instance during the month of December.
    ❌ Sai vì: Read replicas chỉ hỗ trợ read traffic, không tự động promote thành primary (cần failover thủ công qua API, gây downtime). Tốn kém (phí replica riêng), và không prevent maintenance trên primary – chỉ mitigate unplanned downtime. Không phù hợp yêu cầu "prevent any planned downtime".

  • Create a MySQL regional instance so that, if any downtime occurs, the standby instance will act as the primary instance during the month of December.
    ❌ Sai vì: Regional instance (High Availability - HA) dùng standby ở zone khác, hỗ trợ failover tự động cho unplanned downtime (RPO=0, RTO<60s), nhưng vẫn thực hiện maintenance trên cả primary và standby, chỉ minimize downtime chứ không prevent hoàn toàn. Chi phí cao gấp đôi (HA config), không "cost-effective" nhất.

🧩 Tóm tắt insight: Giải pháp đúng tận dụng built-in maintenance control của Cloud SQL, tránh các option phức tạp/đắt đỏ. Đây là kiến thức cốt lõi cho chứng chỉ Professional Cloud Database Engineer! 🚀

Câu 68
Your online delivery business that primarily serves retail customers uses Cloud SQL for MySQL for its inventory and scheduling application. The required recovery time objective (RTO) and recovery point objective (RPO) must be in minutes rather than hours as a part of your high availability and disaster recovery design. You need a high availability configuration that can recover without data loss during a zonal or a regional failure. What should you do?
  1. A Set up all read replicas in a different region using asynchronous replication.
  2. B Set up all read replicas in the same region as the primary instance with synchronous replication.
  3. C Set up read replicas in different zones of the same region as the primary instance with synchronous replication, and set up read replicas in different regions with asynchronous replication.
  4. D Set up read replicas in different zones of the same region as the primary instance with asynchronous replication, and set up read replicas in different regions with synchronous replication.
Xem giải thích

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

Câu hỏi xoay quanh việc thiết kế high availability (HA) và disaster recovery (DR) cho một ứng dụng kinh doanh giao hàng trực tuyến sử dụng Cloud SQL for MySQL (dịch vụ cơ sở dữ liệu quản lý trên Google Cloud Platform - GCP).

  • Bối cảnh: Ứng dụng quản lý kho hàng và lịch trình cần RTO (Recovery Time Objective) và RPO (Recovery Point Objective) chỉ trong phút (không phải giờ), đảm bảo phục hồi nhanh chóng và giảm thiểu mất dữ liệu.
  • Yêu cầu chính: Cấu hình HA/DR phải phục hồi mà không mất dữ liệu (zero data loss) trong trường hợp lỗi zonal (zonal failure) hoặc lỗi regional (regional failure).
  • Thách thức:
    • Zonal failure: Xảy ra trong một zone (vùng con) của region, cần synchronous replication (bắt đồng bộ) giữa các zone trong cùng region để RPO ≈ 0.
    • Regional failure: Xảy ra toàn bộ region, cần cross-region replication nhưng thường dùng asynchronous replication (bắt không đồng bộ) vì lý do độ trễ mạng cao, dẫn đến RPO nhỏ nhưng không zero (vẫn chấp nhận được theo best practice).
  • Giải pháp mong đợi: Kết hợp HA configuration (sync intra-region) cho zonal + cross-region read replicas (async) cho regional DR, phù hợp với tính năng Cloud SQL Enterprise Plus edition (hỗ trợ HA với failover replica sync).

📘 Tài liệu tham khảo:

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

Đáp án đúng:
Set up read replicas in different zones of the same region as the primary instance with synchronous replication, and set up read replicas in different regions with asynchronous replication.

Lý do 🛠️:

  • Đây là cấu hình chuẩn của Cloud SQL HA (High Availability tier): Tạo read replicas sync ở các zone khác trong cùng region → failover tự động cho zonal failure với RPO=0 (không mất dữ liệu) và RTO < 60 giây.
  • Kết hợp read replicas async cross-region → DR cho regional failure với RPO thấp (vài giây), phù hợp yêu cầu "phút" (không zero loss hoàn toàn nhưng tối ưu nhất có thể vì GCP không hỗ trợ sync cross-region do latency).
  • Đáp ứng đầy đủ zonal HA + regional DR, scalable cho business retail cao tải.

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

  • ❌ Phương án SAI 1: Set up all read replicas in a different region using asynchronous replication.
    Lý do sai 🧩: Chỉ tập trung cross-region async → tốt cho regional DR (RPO thấp) nhưng không xử lý zonal failure (không có sync intra-region), dẫn đến downtime cao, RTO/RPO không đạt "phút" cho HA zonal. Không phải cấu hình HA chuẩn.

  • ❌ Phương án SAI 2: Set up all read replicas in the same region as the primary instance with synchronous replication.
    Lý do sai 🛠️: Chỉ sync intra-region → HA tốt cho zonal failure (RPO=0), nhưng không có cross-region → thất bại hoàn toàn regional DR (không recover được). Không đáp ứng yêu cầu full HA/DR.

  • ✅ Phương án ĐÚNG: Set up read replicas in different zones of the same region as the primary instance with synchronous replication, and set up read replicas in different regions with asynchronous replication.
    Lý do đúng 📘: Kết hợp hoàn hảo sync multi-zone (HA zonal, zero loss) + async cross-region (DR regional, RPO phút). Đây là best practice Cloud SQL, tự động failover qua gcloud sql instances patch --availability=REGIONAL.

  • ❌ Phương án SAI 4: Set up read replicas in different zones of the same region as the primary instance with asynchronous replication, and set up read replicas in different regions with synchronous replication.
    Lý do sai 🚫: Async intra-region → mất dữ liệu zonal (RPO >0, không HA thực thụ). Sync cross-region không được hỗ trợ trên Cloud SQL (latency cao, chỉ async cho cross-region). Cấu hình không khả thi, vi phạm thiết kế GCP.

Câu 69
Your hotel booking company is expanding into Country A, where personally identifiable information (PII) must comply with regional data residency requirements and audits. You need to isolate customer data in Country A from the rest of the customer data. You want to design a multi-tenancy strategy to efficiently manage costs and operations. What should you do?
  1. A Apply a schema data management pattern.
  2. B Apply an instance data management pattern.
  3. C Apply a table data management pattern.
  4. D Apply a database data management pattern.
Xem giải thích

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

Câu hỏi này tập trung vào việc thiết kế chiến lược multi-tenancy (đa người thuê) cho một công ty đặt phòng khách sạn đang mở rộng sang Country A, nơi có yêu cầu nghiêm ngặt về data residency (dữ liệu phải lưu trữ trong lãnh thổ quốc gia đó) và tuân thủ kiểm toán đối với PII (Personally Identifiable Information - thông tin nhận dạng cá nhân).

Mục tiêu chính:

  • Cách ly (isolate) dữ liệu khách hàng ở Country A khỏi dữ liệu toàn cầu còn lại.
  • Quản lý chi phí và vận hành hiệu quả.

Đây là tình huống điển hình trong AWS khi sử dụng các dịch vụ như Amazon RDS hoặc Amazon Aurora cho multi-tenancy SaaS (Software as a Service). Các data management pattern giúp phân chia dữ liệu tenant (người thuê, ở đây là khách hàng theo quốc gia) mà vẫn tối ưu hóa tài nguyên. Yêu cầu data residency đòi hỏi cách ly vật lý cao nhất (physical isolation), thường bằng cách sử dụng separate RDS instance ở region phù hợp với Country A (ví dụ: region châu Á nếu Country A ở đó), tránh chia sẻ tài nguyên chung để tuân thủ quy định như GDPR hoặc luật địa phương.

📘 Tài liệu tham khảo:

✅ Đáp án đúng: Apply an instance data management pattern

Lý do lựa chọn:

  • Pattern này sử dụng một RDS instance riêng biệt (separate instance) cho dữ liệu của Country A, đảm bảo cách ly vật lý hoàn toàn (physical isolation) tại region địa phương, tuân thủ data residency và dễ dàng kiểm toán PII mà không ảnh hưởng dữ liệu toàn cầu.
  • Hiệu quả chi phí/vận hành: Có thể scale độc lập (ví dụ: dùng Aurora Serverless v2 cho Country A), quản lý qua AWS Organizations hoặc separate VPC. Đây là lựa chọn tối ưu cho high isolation theo AWS best practices (cập nhật đến 2026 với hỗ trợ Graviton4 instances cho hiệu suất cao hơn).
  • 🛠️ Ưu điểm: Không chia sẻ CPU/memory/network, giảm rủi ro breach; hỗ trợ encryption riêng (KMS keys per region).

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

  • Apply a schema data management pattern:
    ❌ Sai vì pattern này chỉ tạo schema riêng (logical schema) trong cùng một RDS instance/database, không cách ly vật lý. Dữ liệu Country A vẫn chia sẻ tài nguyên với dữ liệu toàn cầu, vi phạm data residency (không thể đặt instance ở region riêng) và khó kiểm toán PII do rủi ro cross-schema access.

  • Apply an instance data management pattern:
    ✅ Đúng (như đã giải thích ở trên). Cung cấp isolation cao nhất phù hợp yêu cầu.

  • Apply a table data management pattern:
    ❌ Sai vì pattern này dùng bảng chia sẻ (shared tables) với row-level filtering (tenant_id), chỉ cách ly logic ở mức hàng dữ liệu. Không đáp ứng data residency vì tất cả dữ liệu nằm chung instance/region, dễ bị ảnh hưởng bởi query toàn cầu và khó audit PII riêng biệt.

  • Apply a database data management pattern:
    ❌ Sai vì pattern này tạo database riêng (separate DB) nhưng trong cùng RDS instance, chỉ cách ly logic ở mức catalog/database name. Vẫn chia sẻ hardware/network, không isolate thực sự cho data residency (phải dùng cùng region), dẫn đến rủi ro tuân thủ và chi phí kém hiệu quả hơn instance riêng.

🧩 Tóm tắt so sánh patterns (theo AWS SaaS Lens 2025):

  • Instance: Isolation cao nhất → ✅ Data residency.
  • Database/Schema: Isolation trung bình → ❌ Không đủ cho PII nghiêm ngặt.
  • Table: Isolation thấp nhất → ❌ Chỉ cho low-risk workloads.
Câu 70
You work for a financial services company that wants to use fully managed database services. Traffic volume for your consumer services products has increased annually at a constant rate with occasional spikes around holidays. You frequently need to upgrade the capacity of your database. You want to use Cloud Spanner and include an automated method to increase your hardware capacity to support a higher level of concurrency. What should you do?
  1. A Use linear scaling to implement the Autoscaler-based architecture
  2. B Use direct scaling to implement the Autoscaler-based architecture.
  3. C Upgrade the Cloud Spanner instance on a periodic basis during the scheduled maintenance window.
  4. D Set up alerts that are triggered when Cloud Spanner utilization metrics breach the threshold, and then schedule an upgrade during the scheduled maintenance window.
Xem giải thích

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

📖 Nội dung câu hỏi được giải thích rõ ràng:
Câu hỏi mô tả một công ty dịch vụ tài chính muốn sử dụng các dịch vụ cơ sở dữ liệu fully managed (quản lý hoàn toàn). Lưu lượng truy cập (traffic) cho các sản phẩm dịch vụ người tiêu dùng tăng trưởng hàng năm với tốc độ ổn định, kèm theo các spike đột biến vào dịp lễ hội. Công ty thường xuyên cần nâng cấp dung lượng cơ sở dữ liệu (upgrade capacity). Họ chọn Cloud Spanner (dịch vụ cơ sở dữ liệu phân tán toàn cầu, scale ngang của Google Cloud) và muốn triển khai một phương pháp tự động hóa (automated method) để tăng hardware capacity, nhằm hỗ trợ mức độ concurrency cao hơn (xử lý nhiều kết nối đồng thời).
🛠️ Yêu cầu chính: Tìm giải pháp tự động scale hardware (nodes) trong Cloud Spanner để xử lý traffic tăng dần và spike, mà không cần can thiệp thủ công thường xuyên.
(Lưu ý: Đây là chủ đề Google Cloud, không phải AWS như đề cập ban đầu – dựa trên tài liệu chính thức Google Cloud cập nhật đến 2026).

✅ Đáp án đúng:
Use linear scaling to implement the Autoscaler-based architecture
Lý do chọn đáp án này (bằng tiếng Việt):
Cloud Spanner hỗ trợ autoscaling (tự động điều chỉnh số lượng nodes) cho các cấu hình regional, dựa trên linear scaling (scale tuyến tính theo số nodes). Tính năng Autoscaler tự động tăng/giảm nodes dựa trên metrics như CPU utilization, giúp xử lý traffic tăng dần và spike mà không cần thủ công. Bạn chỉ cần thiết lập min/max nodes khi tạo hoặc update instance config. Điều này phù hợp hoàn hảo với nhu cầu automated hardware capacity increase cho concurrency cao.
📘 Nguồn tham khảo:

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

  • ✅ Use linear scaling to implement the Autoscaler-based architecture
    Phân tích (đúng): Phương án này tận dụng tính năng Autoscaler chính thức của Cloud Spanner, kết hợp linear scaling (mỗi node cung cấp compute/storage cố định, scale tuyến tính). Tự động điều chỉnh dựa trên workload, lý tưởng cho traffic tăng ổn định + spike, hỗ trợ concurrency cao mà không downtime.

  • ❌ Use direct scaling to implement the Autoscaler-based architecture
    Phân tích (sai): Direct scaling không tồn tại trong Cloud Spanner; đây là thuật ngữ không chuẩn. Autoscaler chỉ hỗ trợ linear scaling (theo nodes), không có "direct scaling". Sử dụng sai sẽ không kích hoạt autoscaling tự động.

  • ❌ Upgrade the Cloud Spanner instance on a periodic basis during the scheduled maintenance window
    Phân tích (sai): Việc upgrade thủ công định kỳ trong maintenance window (cửa sổ bảo trì) là phương pháp manual, không automated. Cloud Spanner khuyến nghị autoscaling thay vì can thiệp định kỳ, vì traffic có spike bất ngờ – manual upgrade gây gián đoạn và không linh hoạt.

  • ❌ Set up alerts that are triggered when Cloud Spanner utilization metrics breach the threshold, and then schedule an upgrade during the scheduled maintenance window
    Phân tích (sai): Thiết lập alerts (cảnh báo) dựa trên metrics (như CPU > threshold) chỉ là giám sát, vẫn yêu cầu schedule upgrade thủ công trong maintenance window. Không automated hoàn toàn – bạn phải hành động sau alert, không phù hợp với nhu cầu tự động scale hardware realtime cho concurrency cao.

🛠️ Kết luận & Lời khuyên thực tế:
Sử dụng Autoscaler với linear scaling là giải pháp tối ưu cho Cloud Spanner trong môi trường tài chính (high availability, global distribution). Để triển khai:

  1. Tạo regional instance config với autoscaling enabled (min: 1 node, max: theo nhu cầu).
  2. Giám sát qua Cloud Monitoring.
    ✅ Hoàn hảo cho fully managed, scale tự động đến 2026! Nếu cần code gcloud CLI: gcloud spanner instances create ... --config=... --autoscaling-min-nodes=1 --autoscaling-max-nodes=10.