Lộ trình
Google CloudAssociateTuần 2: Đào sâu dịch vụ cốt lõiBài 9 / 30

Ngày 9: Compute Engine bằng CLI

Thời lượng: 45 phút
Mục tiêu: 2 nhiệm vụ chính
Tiến độ lộ trình
gcp-acengày 9
hoàn thành9 / 30 bài
Bối cảnh bài học

Xây runbook gcloud cho Compute Engine: preflight, create có explicit target, SSH an toàn, kiểm tra expected state và cleanup không để sót tài nguyên.

đọc hiểuthực hànhcheckpoint
Bài giảng hôm nay

Học hiểu, rồi mới thực hành

Xây runbook gcloud cho Compute Engine: preflight, create có explicit target, SSH an toàn, kiểm tra expected state và cleanup không để sót tài nguyên.

Bắt đầu đọc bài giảng

Nhiệm vụ bài học hôm nay

  • Thực hành tạo/xoá VM bằng lệnh gcloud compute instances
  • Học cách SSH vào VM từ Cloud Shell
Instructor walkthrough

Bài giảng chi tiết: từ bài toán đến bằng chứng

Scenario xuyên suốt

Một người học chạy `gcloud compute instances create` theo lệnh copy trên mạng, VM được tạo ở zone sai, startup script lỗi và sau đó không biết VM còn disk/IP gì. Bài học biến thao tác CLI thành quy trình có thể review, lặp lại và hoàn tác.

01Đọc bài toán

Xác định actor, workload, constraint và trạng thái cuối cần đạt.

02Vẽ luồng / boundary

Chỉ ra request, dependency, identity và failure domain trước khi chọn công cụ.

03Chọn và thực hành

Thay đổi nhỏ nhất trong lab cô lập; command nào cũng phải nói rõ nó kiểm tra điều gì.

04Kiểm chứng / recovery

Đối chiếu trạng thái thực tế, tạo một failure variant và ghi cách hoàn tác.

Cách nối lý thuyết với thực tế
  • Create command cần explicit project/zone/machine/image/network/service account; default configuration chỉ là hint, không phải evidence.
  • Startup script nên idempotent, observable và không chứa secret; lỗi boot cần xem serial output/log thay vì SSH retry vô hạn.
  • SSH từ Cloud Shell là access path; OS Login/IAP/private path phù hợp hơn external IP mở rộng, tùy network design.
  • Expected state gồm RUNNING, zone, image, network interface, identity và service health; command exit 0 chưa đủ.

CLI runbook có kiểm soát

Một workflow an toàn là preflight → plan → create → verify → operate → cleanup → verify cleanup. Trước create, xác nhận identity, project, zone, billing và quota. Lệnh phải thể hiện target; không dựa vào default context hoặc copy nguyên command không hiểu.

Debug sau create

RUNNING chỉ nói VM process đang chạy. Hãy kiểm tra image, disk, network interface, service account, serial output và health endpoint. Startup script phải có log, không chứa secret và xử lý chạy lại an toàn. Nếu SSH fail, phân loại vấn đề: route/firewall/IAP, OS Login/IAM, instance boot hay application port.

Cleanup proof

Ghi resource IDs trước khi xóa. Xác định policy giữ hay xóa boot disk, attached disk, static IP, firewall rule và snapshot. Sau cleanup chạy list/describe lại, lưu evidence đã redacted và không xóa project production để “dọn nhanh”.

Bài tập

Viết command runbook tạo VM lab nhỏ, verify expected state, lấy serial output khi startup lỗi, SSH theo path an toàn và dọn toàn bộ dependency. Nếu không có billing-safe project, hoàn thành bằng design + read-only inspection.

Terminal reference

Command list và cách dùng

Chạy từng lệnh theo đúng thứ tự. Trước các lệnh có thể tạo hoặc thay đổi tài nguyên, hãy kiểm tra profile, account và region.

Commands · read-only checkpoints
gcloud auth list && gcloud config list --format="yaml(core.account,core.project,compute.zone)"
gcloud compute machine-types describe MACHINE_TYPE --zone=ZONE --project=LAB_PROJECT_ID
gcloud compute instances describe VM_NAME --zone=ZONE --project=LAB_PROJECT_ID --format="yaml(name,status,disks,networkInterfaces,serviceAccounts)"
gcloud compute instances get-serial-port-output VM_NAME --zone=ZONE --project=LAB_PROJECT_ID
Hands-on lab

Thực hành theo scenario

  1. Viết runbook với variables `LAB_PROJECT`, `ZONE`, `VM_NAME`, `MACHINE_TYPE` và label/TTL; bắt đầu bằng auth/config/list read-only.
  2. Dùng design-only command plan hoặc tạo VM nhỏ trong project lab đã xác nhận billing; truyền explicit `--project`, `--zone`, `--machine-type`, `--image-family`, `--image-project` và service account tối thiểu.
  3. Verify bằng `describe`, status, serial output và health endpoint; ghi expected result và cách xử lý failed startup.
  4. Thực hành SSH không đưa key/token vào repo. Cleanup theo dependency, sau đó list VM/disk/address/firewall để chứng minh không còn orphan.
Evidence checkpoint

Kiểm chứng kết quả

Không coi lệnh chạy thành công là đủ. Hãy đối chiếu output với trạng thái mong đợi:

  • Runbook có preflight và explicit target.
  • VM state/zone/image/network/identity được kiểm chứng bằng describe.
  • Startup failure có đường debug bằng serial/log.
  • SSH path không mở quyền hoặc secret không cần thiết.
  • Cleanup kiểm tra VM, disk, IP, firewall và snapshot.
Transfer to exam / production

Bẫy thường gặp và trade-off

ACE kiểm tra khả năng đọc đúng zone/project và chọn lệnh phù hợp; nhớ rằng `create` thành công không chứng minh ứng dụng healthy, còn `delete` VM không luôn xóa disk/IP.

Checkpoint · 3 phút

Kiểm tra nhanh

Câu hỏi: Sau khi chạy lệnh tạo VM, trạng thái là RUNNING nhưng ứng dụng không trả HTTP. Bước tiếp theo tốt nhất là gì?

Kết thúc bài

Checklist trước khi sang Ngày 2