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

Tìm thấy 449 câu.

Câu 311
You need to manage a third-party application that will run on a Compute Engine instance. Other Compute Engine instances are already running with default configuration. Application installation files are hosted on Cloud Storage. You need to access these files from the new instance without allowing other virtual machines (VMs) to access these files. What should you do?
  1. A Create the instance with the default Compute Engine service account. Grant the service account permissions on Cloud Storage.
  2. B Create the instance with the default Compute Engine service account. Add metadata to the objects on Cloud Storage that matches the metadata on the new instance.
  3. C Create a new service account and assign this service account to the new instance. Grant the service account permissions on Cloud Storage.
  4. D Create a new service account and assign this service account to the new instance. Add metadata to the objects on Cloud Storage that matches the metadata on the new instance.
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 quản lý quyền truy cập an toàn cho một ứng dụng third-party chạy trên một Compute Engine instance mới trong Google Cloud Platform (GCP). Các instance Compute Engine khác đang sử dụng cấu hình mặc định (bao gồm service account mặc định). Các file cài đặt ứng dụng được lưu trữ trên Cloud Storage. Yêu cầu chính là instance mới có thể truy cập file mà không cho phép các VM (virtual machines) khác truy cập, đảm bảo nguyên tắc least privilege (quyền tối thiểu) và isolation (cách ly).

Mục tiêu: Sử dụng Service Account và IAM permissions để kiểm soát quyền truy cập bucket/object trên Cloud Storage một cách chính xác, tránh ảnh hưởng đến các instance khác. Kiến thức dựa trên tài liệu GCP cập nhật đến 2024-2026 (không thay đổi lớn ở Compute Engine IAM từ GCP v1.0+).

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

✅ Đáp án đúng

Create a new service account and assign this service account to the new instance. Grant the service account permissions on Cloud Storage.

Lý do lựa chọn:

  • Tạo service account mới (không dùng default) giúp cách ly quyền chỉ dành riêng cho instance mới.
  • Assign service account này vào instance mới qua IAM policy hoặc lúc tạo VM.
  • Grant quyền cụ thể (ví dụ: storage.objectViewer hoặc roles/storage.objectAdmin) trên bucket/object Cloud Storage → Instance mới truy cập được file, các instance khác (dùng default SA) không bị ảnh hưởng.
  • Đây là best practice GCP để tuân thủ zero trust và least privilege (🛠️ Sử dụng gcloud compute instances create ... --service-account=NEW_SA@project.iam.gserviceaccount.com).

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

  • ❌ [SAI] Create the instance with the default Compute Engine service account. Grant the service account permissions on Cloud Storage.
    Phương án này sử dụng default service account (compute-engine-default-service-account), vốn được assign mặc định cho tất cả instance khác. Khi grant quyền Cloud Storage cho default SA → Các VM khác cũng có quyền truy cập, vi phạm yêu cầu "không cho phép other VMs access". Không đảm bảo isolation (🧩 Default SA có quyền rộng, dễ bị lạm dụng).

  • ❌ [SAI] Create the instance with the default Compute Engine service account. Add metadata to the objects on Cloud Storage that matches the metadata on the new instance.
    Metadata matching (qua IAM conditions) có thể dùng để kiểm soát access dựa trên instance metadata (như compute.googleapis.com/instance-id), nhưng với default SA → Vẫn ảnh hưởng đến tất cả instance dùng default SA. Phức tạp, không hiệu quả, và không giải quyết isolation cơ bản (🛠️ IAM conditions chỉ là advanced feature, không thay thế service account riêng).

  • ✅ [ĐÚNG] Create a new service account và assign this service account to the new instance. Grant the service account permissions on Cloud Storage.
    Như đã giải thích ở trên: Tạo SA mới → Assign riêng → Grant quyền cụ thể → Hoàn hảo cho isolation, chỉ instance mới truy cập được (best practice GCP 2026).

  • ❌ [SAI] Create a new service account and assign this service account to the new instance. Add metadata to the objects on Cloud Storage that matches the metadata on the new instance.
    Dù tạo SA mới là đúng hướng, nhưng thêm metadata matching là không cần thiết và thừa thãi. Quyền IAM trực tiếp trên SA đã đủ để truy cập; metadata conditions chỉ dùng cho fine-grained control (như multi-tenant), làm phức tạp hóa mà không giải quyết vấn đề cốt lõi (🚫 Over-engineering, không phải giải pháp tối ưu).

Câu 312
You need to configure optimal data storage for files stored in Cloud Storage for minimal cost. The files are used in a mission-critical analytics pipeline that is used continually. The users are in Boston, MA (United States). What should you do?
  1. A Configure regional storage for the region closest to the users. Configure a Nearline storage class.
  2. B Configure regional storage for the region closest to the users. Configure a Standard storage class.
  3. C Configure dual-regional storage for the dual region closest to the users. Configure a Nearline storage class.
  4. D Configure dual-regional storage for the dual region closest to the users. Configure a Standard storage class.
Xem giải thích

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

Câu hỏi yêu cầu cấu hình lưu trữ dữ liệu tối ưu nhất cho các file trong Google Cloud Storage (GCS) nhằm giảm thiểu chi phí tối đa, trong khi đảm bảo hiệu suất cho một mission-critical analytics pipeline được sử dụng liên tục (continually). Người dùng nằm ở Boston, MA (Hoa Kỳ).

  • Yếu tố chính cần cân nhắc 📘:
    • Tần suất truy cập: Dữ liệu được sử dụng liên tục → cần lớp lưu trữ có độ trễ thấp (low latency), không có phí truy xuất (retrieval fees) hoặc thời gian lưu trữ tối thiểu (minimum storage duration).
    • Vị trí địa lý: Chọn region gần nhất với người dùng (closest to users) để giảm độ trễ mạng và chi phí truyền dữ liệu.
    • Chi phí: Ưu tiên regional storage (rẻ hơn dual-regional/multi-regional), kết hợp với lớp lưu trữ phù hợp như Standard (cho truy cập thường xuyên).
    • Mission-critical: Đảm bảo tính sẵn sàng cao (high availability), nhưng không cần dual-region trừ khi yêu cầu đa vị trí.

Các lớp lưu trữ GCS chính (cập nhật đến 2026, theo tài liệu GCS mới nhất):

  • Standard: Truy cập thường xuyên, độ trễ thấp, không phí truy xuất.
  • Nearline: Truy cập không thường xuyên (≥30 ngày), có phí truy xuất và minimum duration → không phù hợp cho sử dụng liên tục.

Region gần Boston: us-east4 (Northern Virginia) hoặc us-east1 (South Carolina) là lựa chọn gần nhất ở US East.

Nguồn tham khảo 📚:

✅ Đáp án đúng

Configure regional storage for the region closest to the users. Configure a Standard storage class.

Lý do chọn 🛠️:

  • Regional storage closest (ví dụ: us-east4): Giảm độ trễ cho người dùng Boston, chi phí thấp hơn dual-regional (không cần HA đa vùng cho trường hợp này).
  • Standard class: Hoàn hảo cho pipeline analytics mission-critical sử dụng liên tục – độ trễ milliseconds, không phí ẩn, tối ưu chi phí so với Nearline (tránh phí truy xuất hàng ngày).
  • Kết hợp này đảm bảo minimal cost mà vẫn high performance & reliability.

❌ Phân tích tất cả các phương án

  • [SAI] Configure regional storage for the region closest to the users. Configure a Nearline storage class.
    ❌ Sai vì: Regional đúng (gần users, rẻ), nhưng Nearline không phù hợp cho truy cập liên tục – có phí truy xuất ($0.01/GB) và minimum 30 ngày, dẫn đến chi phí cao hơn Standard cho mission-critical pipeline.

  • [ĐÚNG] Configure regional storage for the region closest to the users. Configure a Standard storage class.
    ✅ Đúng hoàn toàn: Như giải thích trên – tối ưu chi phí + hiệu suất cho dữ liệu thường xuyên truy cập, region gần giảm latency.

  • [SAI] Configure dual-regional storage for the dual region closest to the users. Configure a Nearline storage class.
    ❌ Sai kép: Dual-regional (ví dụ: us-east1/us-east4) đắt hơn regional (~1.2-1.5x giá storage), không cần thiết cho single-location users. Nearline càng làm tăng phí truy xuất → không minimal cost.

  • [SAI] Configure dual-regional storage for the dual region closest to the users. Configure a Standard storage class.
    ❌ Sai vì: Dual-regional với Standard cung cấp HA cao, nhưng chi phí storage cao hơn regional không cần thiết (không có yêu cầu disaster recovery đa vùng). Regional + Standard rẻ hơn mà vẫn đủ cho Boston users.

Câu 313
You are developing a new web application that will be deployed on Google Cloud Platform. As part of your release cycle, you want to test updates to your application on a small portion of real user traffic. The majority of the users should still be directed towards a stable version of your application. What should you do?
  1. A Deploy the application on App Engine. For each update, create a new version of the same service. Configure traffic splitting to send a small percentage of traffic to the new version.
  2. B Deploy the application on App Engine. For each update, create a new service. Configure traffic splitting to send a small percentage of traffic to the new service.
  3. C Deploy the application on Kubernetes Engine. For a new release, update the deployment to use the new version.
  4. D Deploy the application on Kubernetes Engine. For a new release, create a new deployment for the new version. Update the service to use the new 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 quy trình phát triển và triển khai ứng dụng web mới trên Google Cloud Platform (GCP). Yêu cầu cụ thể là kiểm tra các bản cập nhật (updates) trên một phần nhỏ lưu lượng người dùng thực tế (real user traffic), trong khi phần lớn người dùng vẫn tiếp tục sử dụng phiên bản ổn định (stable version).
📌 Mục tiêu chính: Thực hiện canary deployment hoặc A/B testing để giảm rủi ro, chỉ route một tỷ lệ nhỏ traffic (ví dụ: 5-10%) đến phiên bản mới, giúp phát hiện lỗi sớm mà không ảnh hưởng toàn bộ hệ thống.
🛠️ Đây là tính năng phổ biến trong Continuous Delivery/Deployment (CD) trên GCP, đặc biệt với các dịch vụ managed như App Engine hoặc Kubernetes Engine (GKE). Kiến thức dựa trên tài liệu GCP cập nhật đến năm 2026 (App Engine standard/flexible environment phiên bản mới nhất hỗ trợ traffic splitting nâng cao).

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

Đáp án đúng: Deploy the application on App Engine. For each update, create a new version of the same service. Configure traffic splitting to send a small percentage of traffic to the new version.

Lý do:

  • App Engine hỗ trợ versioning tự động: Mỗi update tạo một version mới trong cùng một service, không làm gián đoạn phiên bản cũ.
  • Tính năng Traffic Splitting built-in cho phép phân bổ traffic theo tỷ lệ % (ví dụ: 90% đến version ổn định, 10% đến version mới) dựa trên IP, cookie hoặc header.
  • Đây là cách tối ưu và đơn giản nhất cho canary release trên GCP, phù hợp với ứng dụng web không cần tùy chỉnh phức tạp.
    📘 Nguồn tham khảo: App Engine Traffic Splitting Documentation (cập nhật 2025-2026, hỗ trợ multi-version splitting với gradual rollout).

📋 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, 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ính năng GCP mới nhất:

  • Deploy the application on App Engine. For each update, create a new version of the same service. Configure traffic splitting to send a small percentage of traffic to the new version.
    ✅ Đúng vì: Như đã giải thích ở trên, đây là phương pháp chuẩn của App Engine cho canary deployment. Version mới chia sẻ cùng service, traffic splitting linh hoạt (cookie-based, IP-based), dễ rollback bằng cách điều chỉnh % traffic về 0%. Hoàn hảo cho "small portion of real user traffic".

  • Deploy the application on App Engine. For each update, create a new service. Configure traffic splitting to send a small percentage of traffic to the new service.
    ❌ Sai vì: App Engine hỗ trợ traffic splitting giữa các services khác nhau, nhưng điều này không khuyến khích cho updates nhỏ. Tạo service mới làm phức tạp quản lý (mỗi service có scaling riêng, domain mapping riêng), tăng chi phí và không tận dụng versioning tự nhiên. Best practice là dùng version trong cùng service để đơn giản hóa.

  • Deploy the application on Kubernetes Engine. For a new release, update the deployment to use the new version.
    ❌ Sai vì: Trong GKE, cập nhật Deployment sẽ thay thế toàn bộ pods cũ bằng image mới (rolling update mặc định), dẫn đến 100% traffic chuyển sang version mới ngay lập tức. Không hỗ trợ split traffic nhỏ mà không cần tool ngoài (như Istio). Không đáp ứng yêu cầu "small portion".

  • Deploy the application on Kubernetes Engine. For a new release, create a new deployment for the new version. Update the service to use the new deployment.
    ❌ Sai vì: GKE Service chỉ route traffic đến một Deployment cụ thể (qua label selector). Cập nhật Service sẽ chuyển toàn bộ traffic sang Deployment mới, không split %. Để split cần Istio Service Mesh hoặc Knative (phức tạp hơn App Engine), không phải cách cơ bản cho yêu cầu đơn giản này.

🏆 Kết luận và lưu ý

Phương pháp App Engine với versioning là lựa chọn tốt nhất cho kịch bản này nhờ tính managed, zero-downtime và traffic control built-in. Nếu scale lớn hơn, có thể kết hợp với Cloud Run hoặc GKE với Istio (cập nhật 2026 hỗ trợ AI-based traffic management).
📚 Tài liệu bổ sung:

Câu 314
You need to add a group of new users to Cloud Identity. Some of the users already have existing Google accounts. You want to follow one of Google's recommended practices and avoid conflicting accounts. What should you do?
  1. A Invite the user to transfer their existing account.
  2. B Invite the user to use an email alias to resolve the conflict.
  3. C Tell the user that they must delete their existing account.
  4. D Tell the user to remove all personal email from the existing account.
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 quy trình thêm nhóm người dùng mới vào Cloud Identity (một dịch vụ quản lý danh tính của Google Cloud, trước đây liên quan đến Google Workspace). Tình huống cụ thể: Một số người dùng đã tồn tại tài khoản Google cá nhân (như Gmail cá nhân), và bạn cần tránh xung đột tài khoản (conflicting accounts) khi thêm họ vào tổ chức Cloud Identity.
📌 Mục tiêu chính: Tuân thủ thực hành được khuyến nghị (recommended practices) từ Google để xử lý xung đột một cách an toàn, giữ nguyên dữ liệu và quyền truy cập của người dùng mà không gây mất mát.
🛠️ Bối cảnh kỹ thuật: Cloud Identity sử dụng email làm định danh chính. Nếu email trùng khớp với tài khoản Google hiện có ngoài domain tổ chức, hệ thống sẽ phát hiện xung đột và yêu cầu giải quyết theo hướng dẫn chính thức của Google (dựa trên tài liệu cập nhật đến năm 2026, không có thay đổi lớn từ phiên bản hiện tại).

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

Đáp án đúng: Invite the user to transfer their existing account.
🧠 Lý do chi tiết:

  • Đây là thực hành được Google khuyến nghị chính thức khi thêm user có email trùng với tài khoản Google cá nhân vào Cloud Identity.
  • Quy trình chuyển giao tài khoản (transfer account) cho phép người dùng chuyển toàn bộ tài khoản Google hiện có (bao gồm email, Drive, YouTube, v.v.) sang domain tổ chức của bạn, tránh xung đột mà vẫn giữ nguyên dữ liệu, lịch sử và quyền truy cập.
  • Lợi ích: An toàn, không mất dữ liệu, tuân thủ chính sách bảo mật của Google. Admin gửi lời mời qua Google Admin Console, user xác nhận để hoàn tất.
    📘 Tài liệu tham khảo:
  • Google Cloud Identity Help: Resolve conflicting accounts (cập nhật 2025).
  • Admin Console Guide: Transfer consumer accounts.

📋 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 bằng tiếng Anh, chỉ giải thích bằng tiếng Việt với lý do đúng/sai dựa trên best practices của Google Cloud Identity (phiên bản mới nhất 2026):

  • ✅ Invite the user to transfer their existing account.
    Đúng vì: Như đã giải thích ở trên, đây là phương pháp chuẩn để giải quyết xung đột, giúp chuyển tài khoản cá nhân sang tổ chức mà không mất dữ liệu. Google ưu tiên cách này để đảm bảo trải nghiệm mượt mà cho user. 🏆

  • ❌ Invite the user to use an email alias to resolve the conflict.
    Sai vì: Email alias (bí danh email) chỉ dùng để chuyển tiếp mail trong cùng domain, không giải quyết được xung đột tài khoản Google Identity. Nếu dùng alias, hệ thống vẫn phát hiện trùng lặp định danh chính, dẫn đến lỗi thêm user. Không phải recommended practice. 🚫

  • ❌ Tell the user that they must delete their existing account.
    Sai vì: Yêu cầu xóa tài khoản cá nhân là rủi ro cao và không được khuyến nghị, vì sẽ mất toàn bộ dữ liệu (email, file Drive, ảnh, v.v.). Google cấm admin buộc xóa và ưu tiên transfer thay thế. Có thể vi phạm quyền riêng tư. ⚠️

  • ❌ Tell the user to remove all personal email from the existing account.
    Sai vì: Việc xóa email cá nhân khỏi tài khoản không loại bỏ xung đột định danh (Google account vẫn tồn tại với email đó). Hơn nữa, không khả thi vì email chính không thể xóa mà không xóa toàn bộ account. Đây là cách làm thủ công, dễ lỗi và không an toàn. 🔒

Câu 315
You need to manage a Cloud Spanner instance for best query performance. Your instance in production runs in a single Google Cloud region. You need to improve performance in the shortest amount of time. You want to follow Google best practices for service configuration. What should you do?
  1. A Create an alert in Cloud Monitoring to alert when the percentage of high priority CPU utilization reaches 45%. If you exceed this threshold, add nodes to your instance.
  2. B Create an alert in Cloud Monitoring to alert when the percentage of high priority CPU utilization reaches 45%. Use database query statistics to identify queries that result in high CPU usage, and then rewrite those queries to optimize their resource usage.
  3. C Create an alert in Cloud Monitoring to alert when the percentage of high priority CPU utilization reaches 65%. If you exceed this threshold, add nodes to your instance.
  4. D Create an alert in Cloud Monitoring to alert when the percentage of high priority CPU utilization reaches 65%. Use database query statistics to identify queries that result in high CPU usage, and then rewrite those queries to optimize their resource usage.
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 quản lý hiệu suất truy vấn (query performance) cho một instance Cloud Spanner đang chạy ở chế độ single region trên Google Cloud. Mục tiêu là cải thiện hiệu suất nhanh nhất có thể (shortest amount of time), đồng thời tuân thủ best practices của Google cho cấu hình dịch vụ.

  • Cloud Spanner là dịch vụ database phân tán, globally consistent, hỗ trợ scale tự động nhưng cần monitor và scale thủ công dựa trên metrics.
  • Vấn đề chính: Instance đang gặp bottleneck về CPU (high priority CPU utilization), ảnh hưởng đến query performance.
  • Yêu cầu hành động: Sử dụng Cloud Monitoring để tạo alert dựa trên ngưỡng CPU, sau đó thực hiện scaling hoặc tối ưu hóa.
  • Ngữ cảnh best practices (cập nhật đến 2026): Theo tài liệu Google Cloud Spanner mới nhất, ưu tiên scale out bằng cách thêm nodes khi high-priority CPU vượt 65% sustained (không phải 45%), vì đây là ngưỡng khuyến nghị để tránh latency cao. Tối ưu query (rewrite) là bước sau, vì tốn thời gian hơn. Single region giúp scale nhanh mà không cần regional config phức tạp.

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

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

Đáp án đúng: Create an alert in Cloud Monitoring to alert when the percentage of high priority CPU utilization reaches 65%. If you exceed this threshold, add nodes to your instance.

Lý do 🛠️:

  • Đây là best practice chính thức của Google cho Cloud Spanner: Monitor high-priority CPU (phần CPU dành cho queries ưu tiên cao, không phải background tasks). Ngưỡng 65% là khuyến nghị chuẩn để scale out nhanh chóng bằng thêm nodes (add nodes), giúp cải thiện performance ngay lập tức (shortest time, chỉ vài phút).
  • Thêm nodes ở single region rất nhanh, tăng throughput mà không downtime. Không cần rewrite queries trước, vì optimize code tốn thời gian phát triển/testing.

📋 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. Tôi giữ nguyên văn bản gốc tiếng Anh của phương án, chỉ giải thích bằng tiếng Việt:

  • ❌ Phương án SAI: Create an alert in Cloud Monitoring to alert when the percentage of high priority CPU utilization reaches 45%. If you exceed this threshold, add nodes to your instance.
    Giải thích: Ngưỡng 45% quá thấp so với best practices (Google khuyến nghị 65% để tránh scale thừa, tốn chi phí không cần thiết). Dù hành động add nodes đúng hướng, nhưng threshold sai dẫn đến alert sớm và scale không tối ưu.

  • ❌ Phương án SAI: Create an alert in Cloud Monitoring to alert when the percentage of high priority CPU utilization reaches 45%. Use database query statistics to identify queries that result in high CPU usage, and then rewrite those queries to optimize their resource usage.
    Giải thích: Kết hợp ngưỡng 45% sai và hành động rewrite queries (sử dụng query statistics) không phù hợp với "shortest time". Rewrite queries đòi hỏi phân tích, code mới, test – mất hàng giờ/ngày, không phải cách nhanh nhất. Best practices ưu tiên scale hardware trước.

  • ✅ Phương án ĐÚNG: Create an alert in Cloud Monitoring to alert when the percentage of high priority CPU utilization reaches 65%. If you exceed this threshold, add nodes to your instance.
    Giải thích: Hoàn hảo khớp best practices: 65% là ngưỡng chính xác cho high-priority CPU (sustained >3h), và add nodes là hành động scale nhanh nhất (tăng processing power ngay). Đảm bảo query performance tốt mà không phức tạp.

  • ❌ Phương án SAI: Create an alert in Cloud Monitoring to alert when the percentage of high priority CPU utilization reaches 65%. Use database query statistics to identify queries that result in high CPU usage, and then rewrite those queries to optimize their resource usage.
    Giải thích: Ngưỡng 65% đúng, nhưng hành động rewrite queries sai mục tiêu "shortest time". Theo Google, optimize queries là bước bổ sung sau scaling (dài hạn), không thay thế add nodes. Scale nodes giải quyết ngay bottleneck CPU.

Tóm tắt khuyến nghị thực tế 🚀: Luôn ưu tiên monitor CPU qua Cloud Monitoring, scale nodes trước, rồi optimize queries. Điều này giúp instance single region đạt SLA 99.999% availability!

Câu 316
Your company has an internal application for managing transactional orders. The application is used exclusively by employees in a single physical location. The application requires strong consistency, fast queries, and ACID guarantees for multi-table transactional updates. The first version of the application is implemented in PostgreSQL, and you want to deploy it to the cloud with minimal code changes. Which database is most appropriate for this application?
  1. A BigQuery
  2. B Cloud SQL
  3. C Cloud Spanner
  4. D Cloud Datastore
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 ứng dụng nội bộ của công ty dùng để quản lý đơn hàng giao dịch (transactional orders), chỉ được nhân viên sử dụng tại một vị trí vật lý duy nhất (single physical location). Ứng dụng yêu cầu:

  • Strong consistency (tính nhất quán mạnh mẽ).
  • Fast queries (truy vấn nhanh).
  • ACID guarantees (đảm bảo ACID cho các cập nhật giao dịch đa bảng - multi-table transactional updates). Phiên bản đầu tiên dùng PostgreSQL, và cần triển khai lên cloud với minimal code changes (thay đổi code tối thiểu).

🛠️ Mục tiêu chính: Chọn database phù hợp nhất trên Google Cloud, hỗ trợ relational DB như PostgreSQL, đảm bảo tính năng giao dịch ACID, hiệu suất cao cho workload nội bộ đơn vùng, và dễ migrate mà không cần chỉnh sửa code nhiều.

📘 Kiến thức cập nhật (đến 2026): Dựa trên Google Cloud docs mới nhất (Google Cloud Next 2025 updates), Cloud SQL vẫn là lựa chọn hàng đầu cho managed relational DB với PostgreSQL 16+, hỗ trợ ACID đầy đủ, horizontal scaling qua read replicas.

✅ Đáp án đúng: Cloud SQL

Lý do lựa chọn:

  • Cloud SQL là dịch vụ fully managed relational database hỗ trợ PostgreSQL trực tiếp, cho phép migrate từ on-prem PostgreSQL với minimal code changes (chỉ cần export/import dump files qua pg_dump).
  • Đảm bảo strong consistency, ACID transactions đa bảng, fast queries nhờ optimized relational engine và read replicas cho single-region workload.
  • Phù hợp hoàn hảo cho ứng dụng nội bộ single location (không cần global distribution), chi phí thấp hơn so với các lựa chọn phức tạp khác.
  • Nguồn tham khảo: Cloud SQL for PostgreSQL docs & Database migration guide.

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

  • ❌ [SAI] BigQuery
    BigQuery là data warehouse serverless dành cho analytics và big data queries (OLAP), không hỗ trợ ACID transactions hay multi-table updates. Nó dùng eventual consistency, phù hợp batch processing chứ không phải transactional app thời gian thực. Không thể migrate PostgreSQL trực tiếp mà không thay đổi code lớn (cần ETL tools như Dataflow).

  • ✅ [ĐÚNG] Cloud SQL
    Như đã giải thích ở trên: Hoàn hảo cho managed PostgreSQL với strong consistency, ACID, fast OLTP queries, và minimal code changes. Hỗ trợ single-region deployment với high availability qua regional replicas (cập nhật 2025: AlloyDB integration cho advanced features nếu cần scale sau).

  • ❌ [SAI] Cloud Spanner
    Cloud Spanner cung cấp global strong consistency và ACID cho relational data, nhưng thiết kế cho multi-region, high-scale workloads (hàng triệu QPS). Quá phức tạp và đắt đỏ cho app single location, yêu cầu schema changes lớn khi migrate từ PostgreSQL (dùng Spanner SQL dialect, không fully compatible). Không phải lựa chọn "minimal code changes".

  • ❌ [SAI] Cloud Datastore
    Cloud Datastore (nay là Firestore in Native mode) là NoSQL document DB với eventual consistency mặc định, không hỗ trợ ACID multi-table transactions đầy đủ hay strong consistency cho relational workloads. Không tương thích với PostgreSQL schema, cần rewrite code hoàn toàn sang key-value model.

🧩 Kết luận: Cloud SQL là lựa chọn tối ưu nhất cho workload này trên Google Cloud! Nếu cần tư vấn migrate cụ thể, hãy cung cấp thêm chi tiết về schema. 🚀

Câu 317
You are assigned to maintain a Google Kubernetes Engine (GKE) cluster named 'dev' that was deployed on Google Cloud. You want to manage the GKE configuration using the command line interface (CLI). You have just downloaded and installed the Cloud SDK. You want to ensure that future CLI commands by default address this specific cluster What should you do?
  1. A Use the command gcloud config set container/cluster dev.
  2. B Use the command gcloud container clusters update dev.
  3. C Create a file called gke.default in the ~/.gcloud folder that contains the cluster name.
  4. D Create a file called defaults.json in the ~/.gcloud folder that contains the cluster name.
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 quản lý cấu hình GKE (Google Kubernetes Engine) cluster tên 'dev' trên Google Cloud bằng công cụ CLI gcloud (phần của Cloud SDK). Bạn đã cài đặt Cloud SDK mới và muốn thiết lập cluster 'dev' làm mặc định cho các lệnh CLI tương lai, để không cần chỉ định cluster name mỗi lần.
✅ Mục tiêu chính: Đặt cluster mặc định trong context gcloud config, giúp các lệnh như gcloud container clusters get-credentials hoặc kubectl tự động trỏ đến cluster 'dev' mà không cần thêm tham số --cluster=dev.
🛠️ Bối cảnh: Đây là bước cơ bản sau khi tạo GKE cluster, liên quan đến gcloud config (quản lý properties và context) theo tài liệu Google Cloud SDK phiên bản mới nhất (2024-2026).

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

Đáp án đúng: Use the command gcloud config set container/cluster dev.

Lý do:
Lệnh này thiết lập trực tiếp cluster 'dev' làm mặc định trong cấu hình gcloud (lưu tại ~/.config/gcloud/configurations/config_default). Sau khi chạy, tất cả lệnh gcloud container hoặc kubectl sẽ tự động sử dụng cluster 'dev' mà không cần chỉ định thêm. Đây là cách chuẩn và được khuyến nghị theo docs Google Cloud, hỗ trợ multi-cluster/multi-project workflow.
🧩 Kết quả mong đợi: Chạy lệnh sẽ cập nhật context ngay lập tức, kiểm tra bằng gcloud config list.

📋 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 bằng tiếng Anh. Mỗi phương án được đánh giá ✅ (đúng) hoặc ❌ (sai), kèm lý do cụ thể dựa trên tài liệu AWS-free (Google Cloud SDK v470+ đến 2026).

  • ✅ Use the command gcloud config set container/cluster dev.
    Giải thích đúng: Lệnh này chính xác set property container/cluster thành 'dev' trong config hiện tại. Nó lưu trữ context mặc định, ảnh hưởng đến tất cả lệnh liên quan đến GKE/Kubernetes. Hoàn hảo cho yêu cầu "future CLI commands by default address this specific cluster".

  • ❌ Use the command gcloud container clusters update dev.
    Giải thích sai: Lệnh này chỉ dùng để cập nhật cấu hình của cluster 'dev' (như node pool, labels, hoặc autoscaling), không set default context. Nó yêu cầu xác định cluster (--cluster=dev) và không ảnh hưởng đến config gcloud toàn cục. Chạy lệnh này sẽ báo lỗi nếu không chỉ định cluster hiện tại.

  • ❌ Create a file called gke.default in the ~/.gcloud folder that contains the cluster name.
    Giải thích sai: Không có file 'gke.default' nào tồn tại trong gcloud config. Thư mục chuẩn là ~/.config/gcloud/ (không phải ~/.gcloud - đã deprecated). Tạo file thủ công như vậy sẽ bị bỏ qua, không set default cluster, dẫn đến lỗi khi chạy lệnh (gcloud không đọc file này).

  • ❌ Create a file called defaults.json in the ~/.gcloud folder that contains the cluster name.
    Giải thích sai: File defaults.json không phải cách set cluster default trong gcloud. Config gcloud dùng file configurations/config_default (YAML/JSON nội bộ), không hỗ trợ chỉnh sửa thủ công cluster name qua JSON đơn giản. Thư mục ~/.gcloud không chuẩn (dùng ~/.config/gcloud/), và cách này sẽ gây lỗi parsing hoặc không hiệu quả.

📘 Tài liệu tham khảo

  • Google Cloud SDK Docs: gcloud config set (xác nhận lệnh set container/cluster).
  • GKE CLI Guide: Managing GKE clusters with gcloud (cập nhật 2024, áp dụng đến 2026).
  • Config Management: gcloud configurations (chi tiết về context và properties).
    🛠️ Lưu ý cập nhật: Không thay đổi cơ bản đến 2026; hỗ trợ Anthos/GKE Enterprise với multi-context. Kiểm tra config bằng gcloud config list sau khi set!
Câu 318
The sales team has a project named Sales Data Digest that has the ID acme-data-digest. You need to set up similar Google Cloud resources for the marketing team but their resources must be organized independently of the sales team. What should you do?
  1. A Grant the Project Editor role to the Marketing team for acme-data-digest.
  2. B Create a Project Lien on acme-data-digest and then grant the Project Editor role to the Marketing team.
  3. C Create another project with the ID acme-marketing-data-digest for the Marketing team and deploy the resources there.
  4. D Create a new project named Marketing Data Digest and use the ID acme-data-digest. Grant the Project Editor role to the Marketing team.
Xem giải thích

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

Câu hỏi này thuộc chủ đề quản lý tài nguyên Google Cloud Platform (GCP), cụ thể là về Projects – đơn vị cơ bản để tổ chức và cô lập các tài nguyên đám mây.

  • Bối cảnh: Nhóm Sales đã có một project tên Sales Data Digest với ID acme-data-digest. Bạn cần thiết lập các tài nguyên Google Cloud tương tự cho nhóm Marketing, nhưng phải tổ chức độc lập (independent) so với nhóm Sales. Nghĩa là, tài nguyên của Marketing không được chia sẻ hoặc phụ thuộc vào project của Sales, tránh xung đột quyền truy cập, billing, và quản lý.

  • Mục tiêu chính: Tìm cách tạo môi trường riêng biệt, an toàn, tuân thủ nguyên tắc least privilege và separation of concerns trong GCP. Theo tài liệu chính thức GCP (cập nhật đến 2024-2026), Projects là ranh giới cô lập lý tưởng cho các team khác nhau, giúp quản lý IAM, billing, và quota độc lập.

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

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

Đáp án đúng: Create another project with the ID acme-marketing-data-digest for the Marketing team and deploy the resources there.

Lý do 🛠️:

  • Tạo project mới với ID acme-marketing-data-digest (unique và mô tả rõ ràng) đảm bảo tổ chức độc lập hoàn toàn. Nhóm Marketing có thể deploy tài nguyên riêng (như Compute Engine, Cloud Storage, BigQuery...), quản lý IAM/billing riêng mà không ảnh hưởng đến project Sales.
  • Tuân thủ best practice GCP: Mỗi team nên có project riêng để tránh rủi ro bảo mật, dễ scale và audit. Project ID phải unique toàn tổ chức/folder/organization.

📋 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. Tôi giữ nguyên văn bản gốc bằng tiếng Anh, chỉ giải thích lý do đúng/sai bằng tiếng Việt. Sử dụng ✅ cho đúng, ❌ cho sai.

  • ❌ [SAI] Grant the Project Editor role to the Marketing team for acme-data-digest.
    Giải thích: Phương án này cấp quyền Project Editor (quyền chỉnh sửa rộng) cho Marketing trên project hiện tại của Sales. Điều này vi phạm yêu cầu độc lập, vì cả hai team sẽ chia sẻ cùng project → rủi ro bảo mật cao (Marketing có thể xóa/sửa tài nguyên Sales), billing lẫn lộn, và khó quản lý quota/IAM. Không khuyến khích theo IAM best practices GCP.

  • ❌ [SAI] Create a Project Lien on acme-data-digest and then grant the Project Editor role to the Marketing team.
    Giải thích: Project Lien chỉ dùng để ngăn chặn xóa project (prevent accidental deletion), không liên quan đến tổ chức độc lập. Sau đó cấp Editor vẫn khiến Marketing phụ thuộc project Sales → không giải quyết vấn đề, còn tăng phức tạp vô ích. Lien không ảnh hưởng đến quyền truy cập hàng ngày.

  • ✅ [ĐÚNG] Create another project with the ID acme-marketing-data-digest for the Marketing team and deploy the resources there.
    Giải thích: Như đã nêu ở phần đáp án đúng. Đây là cách chuẩn và an toàn nhất, tạo project mới độc lập, deploy tài nguyên riêng. ID mới unique (GCP yêu cầu project ID toàn cầu unique), dễ quản lý qua Organization/Folders.

  • ❌ [SAI] Create a new project named Marketing Data Digest and use the ID acme-data-digest. Grant the Project Editor role to the Marketing team.
    Giải thích: Không thể dùng ID acme-data-digest cho project mới vì project ID phải unique toàn GCP (không thể trùng lặp). GCP sẽ báo lỗi khi tạo. Ngoài ra, cấp Editor vẫn không tạo độc lập thực sự nếu có ý định chia sẻ, nhưng vấn đề chính là ID invalid → không khả thi.

🏆 Kết luận và lưu ý

  • Best practice: Luôn tạo project riêng cho team độc lập, kết hợp Folders/Organization để hierarchy. Sử dụng Terraform hoặc gcloud CLI để automate.
  • Kiến thức cập nhật: GCP không thay đổi cơ bản về Projects đến 2026 (theo roadmap chính thức). Nếu cần thực hành, dùng GCP Free Tier hoặc Qwiklabs.

Nếu có câu hỏi thêm, hãy hỏi nhé! 🚀

Câu 319
You have deployed multiple Linux instances on Compute Engine. You plan on adding more instances in the coming weeks. You want to be able to access all of these instances through your SSH client over the internet without having to configure specific access on the existing and new instances. You do not want the
Compute Engine instances to have a public IP. What should you do?
  1. A Configure Cloud Identity-Aware Proxy for HTTPS resources.
  2. B Configure Cloud Identity-Aware Proxy for SSH and TCP resources
  3. C Create an SSH keypair and store the public key as a project-wide SSH Key.
  4. D Create an SSH keypair and store the private key as a project-wide SSH Key.
Xem giải thích

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

Câu hỏi này thuộc chủ đề Google Cloud Platform (GCP) - Compute Engine, tập trung vào việc quản lý truy cập SSH an toàn cho các instance Linux mà không cần gán public IP cho chúng.

  • Tình huống: Bạn đã triển khai nhiều instance Linux trên Compute Engine và dự định thêm nhiều instance nữa trong vài tuần tới.
  • Yêu cầu chính:
    • Truy cập tất cả các instance (cũ và mới) qua SSH client từ internet.
    • Không cần cấu hình truy cập riêng lẻ trên từng instance (tức là giải pháp phải áp dụng tự động cho toàn bộ).
    • Không sử dụng public IP cho các instance (để tăng tính bảo mật, tránh expose trực tiếp ra internet).
  • Mục tiêu: Tìm giải pháp tập trung, tự động, an toàn sử dụng IAM (Identity and Access Management) để kiểm soát truy cập SSH mà không phụ thuộc vào firewall rules mở port 22 hoặc public IP.

Giải pháp lý tưởng phải hỗ trợ SSH tunneling qua proxy bảo mật, áp dụng project-wide mà không chỉnh sửa instance.

(Lưu ý: Mặc dù người dùng đề cập "AWS", nhưng câu hỏi rõ ràng là GCP Compute Engine. Tôi sử dụng kiến thức GCP cập nhật đến 2024-2026 từ tài liệu chính thức, IAP vẫn là giải pháp chuẩn cho SSH không public IP - không thay đổi lớn từ phiên bản gần đây).

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

Đáp án đúng: Configure Cloud Identity-Aware Proxy for SSH and TCP resources.

Lý do chi tiết 🛠️:

  • Cloud IAP (Identity-Aware Proxy) là dịch vụ của GCP cho phép truy cập SSH/TCP forwarding đến VM instances mà không cần public IP, sử dụng tunnel qua IAP (dựa trên HTTPS port 443).
  • Tự động áp dụng cho tất cả instances: Cấu hình IAP ở mức project/folder/organization, chỉ cần grant IAM roles (như roles/iap.tunnelResourceAccessor) cho user/group. Không cần chỉnh sửa từng instance cũ/mới.
  • Hỗ trợ SSH cụ thể: IAP for SSH & TCP sử dụng gcloud compute ssh hoặc SSH client với IAP tunnel (ví dụ: gcloud compute ssh --tunnel-through-iap), kiểm soát qua Google identity (2FA, audit logs).
  • Bảo mật cao: Instances chỉ accessible nội bộ VPC, IAP proxy hóa kết nối từ internet → Không expose port 22 public.
  • Cập nhật 2026: IAP vẫn là recommended practice (theo GCP docs 2024+), tích hợp Context-Aware Access cho điều kiện truy cập động.

📋 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 bằng tiếng Anh. Mỗi phương án được đánh giá với lý do rõ ràng dựa trên best practices GCP:

  • Configure Cloud Identity-Aware Proxy for HTTPS resources ❌ SAI
    Lý do: IAP for HTTPS chỉ dành cho web applications/HTTPS traffic (như proxy reverse cho App Engine, GKE services). Không hỗ trợ SSH/TCP forwarding trực tiếp đến Compute Engine instances. Nếu dùng, bạn vẫn cần public IP hoặc firewall mở port 22, vi phạm yêu cầu. (Không tự động cho SSH instances).

  • Configure Cloud Identity-Aware Proxy for SSH and TCP resources ✅ ĐÚNG
    Lý do: Như đã giải thích ở phần đáp án đúng. Đây là giải pháp chuẩn chính thức của GCP cho truy cập SSH không public IP, project-wide, không cần config từng instance. Hỗ trợ Linux instances qua gcloud hoặc SSH client với IAP tunnel.

  • Create an SSH keypair and store the public key as a project-wide SSH Key ❌ SAI
    Lý do: Project-wide SSH keys (qua Metadata ssh-keys) chỉ lưu public key để allow auth từ client có private key, nhưng vẫn yêu cầu public IP + firewall rules port 22. Không giải quyết vấn đề "no public IP" và không an toàn (expose SSH trực tiếp internet). Ngoài ra, không tự động cho instances mới trừ khi dùng OS Login (nhưng OS Login vẫn cần public IP cho SSH gốc).

  • Create an SSH keypair and store the private key as a project-wide SSH Key ❌ SAI
    Lý do: Hoàn toàn sai về bảo mật! Private key KHÔNG BAO GIỜ lưu ở project metadata (rủi ro lộ key toàn project). GCP chỉ hỗ trợ lưu public key ở metadata. Private key phải giữ ở client-side. Giải pháp này vô hiệu, không hoạt động và vi phạm nguyên tắc zero-trust.

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

Giải pháp này đảm bảo scale tự động cho hàng trăm instances mới! 🚀 Nếu cần demo lệnh, hỏi thêm nhé!

Câu 320
You have created an application that is packaged into a Docker image. You want to deploy the Docker image as a workload on Google Kubernetes Engine. What should you do?
  1. A Upload the image to Cloud Storage and create a Kubernetes Service referencing the image.
  2. B Upload the image to Cloud Storage and create a Kubernetes Deployment referencing the image.
  3. C Upload the image to Container Registry and create a Kubernetes Service referencing the image.
  4. D Upload the image to Container Registry and create a Kubernetes Deployment referencing the image.
Xem giải thích

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

Câu hỏi gốc:
You have created an application that is packaged into a Docker image. You want to deploy the Docker image as a workload on Google Kubernetes Engine. What should you do?

Giải thích nội dung câu hỏi:
🛤️ Câu hỏi tập trung vào quy trình triển khai (deploy) một ứng dụng được đóng gói dưới dạng Docker image lên Google Kubernetes Engine (GKE) – một dịch vụ Kubernetes được quản lý bởi Google Cloud.
📌 Mục tiêu chính là chạy workload (tức là các Pod chạy ứng dụng) từ Docker image này trên GKE. Quy trình chuẩn bao gồm:

  • Lưu trữ image ở nơi mà Kubernetes có thể pull (tải về) được, như Container Registry hoặc Artifact Registry.
  • Tạo tài nguyên Kubernetes để quản lý và chạy image đó, chẳng hạn Deployment (để scale và quản lý Pod) kết hợp với Service (để expose).
    ✅ Không sử dụng Cloud Storage vì đây là object storage, không hỗ trợ pull image trực tiếp cho Kubernetes (Kubernetes yêu cầu OCI-compliant registry).
    🆕 Theo tài liệu GCP cập nhật đến năm 2026 (GKE version 1.29+), quy trình chuẩn vẫn hỗ trợ Container Registry (dù khuyến nghị migrate sang Artifact Registry từ 2022), và Deployment là tài nguyên chính để deploy workload stateless.

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

Đáp án đúng: Upload the image to Container Registry and create a Kubernetes Deployment referencing the image.

Lý do chi tiết:
🟢 Container Registry là kho lưu trữ container image chuẩn của GCP, tương thích hoàn hảo với GKE (Kubernetes pull image qua gcr.io hoặc us.gcr.io).
🟢 Kubernetes Deployment là object chính để deploy workload: nó tạo và quản lý các ReplicaSet/Pod từ image, hỗ trợ rolling update, scaling tự động.
📘 Đây là best practice theo GKE tutorials (Hello Node app), đảm bảo image được pull an toàn, private (nếu dùng IAM), và workload chạy ổn định trên cluster.

📋 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. Mỗi phương án được đánh giá với lý do cụ thể dựa trên kiến thức GCP mới nhất (2026):

  • ❌ [SAI] Upload the image to Cloud Storage and create a Kubernetes Service referencing the image.
    🚫 Cloud Storage (GCS) chỉ lưu object (file), không phải container registry – Kubernetes không pull Docker image từ GCS (lỗi "image pull failed").
    🚫 Kubernetes Service chỉ expose port/traffic đến Pod đã tồn tại, không deploy workload (không tạo Pod). Kết hợp này thất bại hoàn toàn.

  • ❌ [SAI] Upload the image to Cloud Storage and create a Kubernetes Deployment referencing the image.
    🚫 Tương tự trên, Cloud Storage không hỗ trợ pull image cho Deployment (Kubernetes yêu cầu registry protocol như Docker/OCI). Deployment sẽ crash với lỗi "ErrImagePull".
    🚫 Dù Deployment đúng cho workload, nhưng source image sai → toàn bộ quy trình vô hiệu.

  • ❌ [SAI] Upload the image to Container Registry and create a Kubernetes Service referencing the image.
    🚫 Container Registry đúng (GKE pull image dễ dàng qua kubectl apply -f deployment.yaml với image URI).
    🚫 Nhưng Kubernetes Service sai: Service chỉ định nghĩa selector để route traffic, không tạo Pod/workload. Không có Deployment → không có Pod để Service expose → ứng dụng không chạy.

  • ✅ [ĐÚNG] Upload the image to Container Registry and create a Kubernetes Deployment referencing the image.
    🟢 Container Registry + Deployment là combo chuẩn: docker push gcr.io/PROJECT-ID/image, rồi YAML Deployment với image: gcr.io/PROJECT-ID/image.
    🟢 GKE tự động integrate, hỗ trợ vulnerability scanning và IAM auth. Scale workload bằng replicas: 3.

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

  • GKE Quickstart: Deploy to GKE – Hướng dẫn chính thức dùng Container Registry + Deployment.
  • Container Registry Docs: Push images (migrate note đến Artifact Registry).
  • Kubernetes Concepts: Deployments & GKE Best Practices.
    🛠️ Lưu ý thực hành: Sử dụng gcloud container images add-tag để push, kubectl apply để deploy. Artifact Registry là lựa chọn mới hơn cho multi-format support (2025+).

Hy vọng phân tích này giúp bạn ôn thi Associate Cloud Engineer hiệu quả! 🚀