Bài học xương máu khiến tôi ngừng click-ops vô tội vạ và quay về triết lý first principles khi học AWS.
Chủ đề: Tại sao tôi chọn học lý thuyết AWS khô khan trước khi thực hành?
Tác giả: Một gã dev từng “tay nhanh hơn não”
Tôi chưa bao giờ nghĩ mình sẽ viết về AWS bắt đầu từ… Google Cloud (GCP). Nhưng chính ở đó tôi nhận được bài học xương máu nhất về Cloud Computing.
Ngày ấy, tôi deploy một Cloud Function tưởng chừng đơn giản. Với sự tự tin của người quen code logic, tôi chạy nó rồi… đi ngủ. Tôi không ngờ mình đã tạo ra một vòng lặp trigger vô tận. Function đó chạy miết suốt 12 tiếng trong đêm. Sáng dậy, email billing gào thét: tài khoản bay mất 1.000.000 VNĐ.
Một triệu có thể không lớn với người khác, nhưng với tôi lúc ấy đó là cái giá quá đắt cho sự cẩu thả. Trên máy local, code lỗi thì treo máy, reset là xong. Trên Cloud, lỗi kiến trúc nghĩa là đốt tiền thật, tài nguyên thật.
Từ cú vấp đó, khi bắt đầu học AWS, tôi tự hứa: không còn chuyện “vừa làm vừa mò”. Tôi sẽ học AWS theo tư duy first principles — hiểu tường tận nguyên lý trước khi gõ bất kỳ dòng lệnh nào.
Tư duy first principles (nguyên lý đầu tiên) là bóc tách vấn đề xuống những sự thật cơ bản nhất rồi xây dựng lại từ nền móng đó.
Trước kia tôi hay học kiểu top-down: muốn dựng web → tìm tutorial → copy lệnh → chạy được → xong. Nhanh đấy, nhưng rỗng. Giống xây nhà chỉ lo sơn màu mà chẳng biết móng sâu bao nhiêu.
Khi chuyển sang AWS, tôi coi thực hành (click-ops trên console) chỉ là phần nổi của tảng băng. 90% còn lại — thứ giữ hệ thống khỏi sập, khỏi bị hack và khỏi đốt tiền — nằm ở lý thuyết hạ tầng mà ta thường bỏ qua.
Thay vì lao vào tạo máy ảo, tôi dành thời gian đọc và vẽ sơ đồ cho các khái niệm nền:
Đang làm việc chính với GCP nên tôi học AWS bằng cách mô phỏng thực tế:
Khi đã nắm nền tảng, tôi mới chuyển sang thực hành:
AWS không bao giờ đứng một mình; mỗi bài toán luôn là combo của vài dịch vụ. Tôi tận dụng bộ câu hỏi Udemy/Sample exam nhưng chọn đúng mức Associate, chỉ tập trung vào những tình huống “đủ dùng”:
Với mỗi đề, tôi vẽ lại kiến trúc, trả lời các câu hỏi “dịch vụ nào chịu trách nhiệm chính?”, “lỗi xảy ra thì fallback ra sao?”, “chi phí ước lượng thế nào?”. Cách học này giúp tôi nhớ sâu các combo ở tầm Associate mà không bị chìm trong rừng dịch vụ enterprise.
Thú vị là nhờ những đề thi thử ấy, tôi còn học bù lại cả kiến thức nền tảng mà trước đây (một người trái ngành như tôi) chưa từng được đào tạo bài bản: TCP vs UDP, cơ chế backoff, mô hình networking căn bản. Mỗi lần gặp khái niệm lạ, tôi lại đi đọc docs, blog, RFC, rồi hỏi thêm AI để lấp nhanh chỗ trống trước khi quay lại đọc sâu.
Tôi mô phỏng hạ tầng sản phẩm cũ:
Nhờ đã đọc trước về networking, IAM, cost optimization, tôi tránh được việc mở toang security group hay để Lambda trigger vô tận đốt ngân sách. Chênh lệch chi phí dự kiến so với bản “tay nhanh hơn não” trước kia là cả một trời.
Cách học này có vẻ “lý thuyết suông”, trong khi nhiều người tin làm trước sửa sau mới nhanh lên tay. Nhưng tôi — người từng trả học phí bằng tiền mặt cho sự thiếu hiểu biết — chọn đi chậm.
Học AWS hay bất kỳ cloud nào, công cụ và giao diện có thể đổi, nhưng nguyên lý hệ thống thì bất biến. Hiểu nguyên lý biến bạn thành kỹ sư đúng nghĩa, biết rõ mình đang làm gì và hệ quả ra sao.
Đừng đợi tới lúc hóa đơn bay màu mới tìm hiểu cách hệ thống vận hành. Tin tôi đi, cảm giác đó không dễ chịu chút nào.
Chia sẻ từ một người đang bắt đầu hành trình AWS với sự cẩn trọng tối đa.