Bạn đang nhắm đến chứng chỉ AWS Certified Developer – Associate (DVA-C02)? Tất nhiên là bạn sẽ phải học và luyện thi một cách vất vả rồi. Trong bài viết này, mình xin chia sẻ lại trải nghiệm của mình khi làm bài thi AWS Certified Developer Associate, trên phương diện xử lí những câu hỏi thuộc dạng “khoai” nhất. Hy vọng là những chia sẻ này sẽ hữu ích với một số bạn.
Sơ lược về kỳ thi AWS Certified Developer Associate
Kỳ thi DVA-C02 gồm 65 câu trắc nghiệm trong 130 phút, yêu cầu đạt ít nhất 720/1000 điểm (72%) để đậu. Nội dung xoay quanh việc phát triển, triển khai, và vận hành ứng dụng trên AWS, với các trọng tâm chính:
- Phát triển ứng dụng: Sử dụng AWS SDKs, Lambda, API Gateway, DynamoDB.
- Triển khai & CI/CD: CodeCommit, CodeBuild, CodeDeploy, Elastic Beanstalk.
- Bảo mật: IAM, KMS, Secrets Manager – những “người gác cổng” của AWS.
- Giám sát & tối ưu: CloudWatch, X-Ray để debug và cải thiện hiệu suất.
- Serverless & hơn thế nữa: Tích hợp SQS, SNS, ECS, và các dịch vụ khác.
Điểm mấu chốt? Bạn cần 1 năm kinh nghiệm thực tế với AWS hoặc thực hành trên AWS Free Tier hoặc Qwiklabs. Nếu bạn chưa có kinh nghiệm gì với AWS thì chắc chắn bạn nên bắt đầu thực hành ngay.
Sau đây là những câu hỏi mà mình cho là “khoai” nhất trong kỳ thi mà mình vừa trải qua.
1. Câu hỏi tình huống dài, dẫn đến khó hiểu (hoặc khó hiểu đầy đủ)
Đặc điểm:
- Kịch bản dài lê thê (2-3 đoạn văn) mô tả một hệ thống phức tạp: ứng dụng web với Lambda, API Gateway, DynamoDB, thêm yêu cầu bảo mật hoặc tiết kiệm chi phí.
- Đáp án gần giống nhau, dễ khiến bạn “lạc trôi” giữa các lựa chọn.
Ví dụ:
Một công ty xây dựng ứng dụng serverless với API Gateway, Lambda, và DynamoDB. Họ cần lưu trữ thông tin đăng nhập an toàn và tối ưu chi phí. Bạn sẽ chọn gì?
A. Lưu thông tin đăng nhập trong mã Lambda.
B. Sử dụng AWS Secrets Manager.
C. Sử dụng Parameter Store với mã hóa KMS.
D. Lưu trong tệp cấu hình trên S3.
Bí kíp vượt qua:
- Lọc thông tin: Đọc lướt để tìm từ khóa như “bảo mật”, “chi phí”, hoặc “hiệu suất”. Bỏ qua chi tiết thừa.
- Loại trừ các câu sai: Đáp án A và D vi phạm nguyên tắc bảo mật (không bao giờ lưu thông tin nhạy cảm trong mã hoặc tệp cấu hình). Loại ngay!
- Ưu tiên best practices: Secrets Manager (B) là lựa chọn tối ưu cho quản lý thông tin nhạy cảm, mã hóa tự động, và quay vòng khóa. Parameter Store với KMS (C) cũng tốt nhưng ít tính năng hơn.
- Mẹo thi: Đánh dấu câu hỏi dài, làm các câu dễ trước, quay lại sau để không mất thời gian.
- Thực hành để nắm chắc: Tạo một Lambda function trên AWS Free Tier, tích hợp với Secrets Manager, và thử truy xuất thông tin đăng nhập.
2. Câu hỏi có nhiều đáp án
Đặc điểm:
- Yêu cầu chọn tất cả đáp án đúng (thường 2-3 đáp án trong 5-6 lựa chọn).
- Thường liên quan đến tích hợp nhiều dịch vụ, cấu hình bảo mật, hoặc tối ưu hóa.
- Dễ nhầm vì một đáp án sai có thể làm mất điểm toàn bộ câu.
Ví dụ:
Một ứng dụng cần tối ưu hiệu suất truy vấn DynamoDB và giảm chi phí. Chọn tất cả các giải pháp phù hợp:
A. Sử dụng DynamoDB Accelerator (DAX).
B. Tạo Global Secondary Index (GSI).
C. Sử dụng scan thay vì query.
D. Tăng Read Capacity Units (RCU).
E. Sử dụng ElastiCache cho caching.
Bí kíp vượt qua:
- Hiểu yêu cầu: Câu hỏi nhấn mạnh “hiệu suất” và “giảm chi phí”.
- Phân tích từng đáp án:
- A (DAX): Đúng, tăng tốc độ truy vấn lặp lại.
- B (GSI): Đúng, hỗ trợ truy vấn trên thuộc tính không phải khóa chính.
- C (Scan): Sai, scan chậm và tốn chi phí.
- D (RCU): Sai, tăng RCU làm tăng chi phí, không tối ưu.
- E (ElastiCache): Đúng, nhưng chỉ khi ứng dụng cần caching ngoài DynamoDB.
- Kiểm tra chéo: Đáp án đúng thường là A, B, và đôi khi E (tùy kịch bản). Đảm bảo chọn đủ nhưng không chọn thừa.
- Mẹo thi: Đọc kỹ câu hỏi để biết chọn “2 đáp án” hay “3 đáp án”. Nếu không chắc, chọn ít đáp án hơn để tránh sai.
- Thực hành để nắm chắc: Tạo bảng DynamoDB trên AWS Free Tier, thử query với GSI và DAX. So sánh chi phí trên AWS Billing Dashboard.
3. Câu hỏi về bảo mật và IAM
Đặc điểm:
- Tập trung vào IAM, KMS, hoặc Secrets Manager, yêu cầu hiểu rõ cách cấp quyền và mã hóa.
- Đáp án thường đánh lừa bằng cách đưa ra các chính sách IAM sai hoặc không cần thiết.
Ví dụ:
Một Lambda function cần truy cập S3 bucket. Làm sao để cấp quyền an toàn nhất?
A. Sử dụng Access Key/Secret Key trong mã.
B. Gán vai trò IAM cho Lambda.
C. Tạo user IAM và cấp quyền trực tiếp.
D. Sử dụng S3 bucket policy với quyền public.
Bí kíp vượt qua:
- Nguyên tắc least privilege: Luôn chọn giải pháp cấp quyền tối thiểu. Vai trò IAM (B) là cách an toàn và chuẩn để Lambda truy cập S3.
- Loại các câu hỏi sai: Access Key (A) và user IAM (C) không phù hợp cho Lambda. Quyền public (D) vi phạm bảo mật.
- Mẹo thi: Tìm từ khóa “securely” hoặc “best practice” – đáp án thường liên quan đến IAM Role hoặc KMS.
- Thực hành để nắm chắc: Tạo Lambda function, gán vai trò IAM với quyền S3 trên AWS Free Tier. Kiểm tra chính sách IAM để đảm bảo chỉ cấp quyền cho bucket cụ thể.
4. Câu hỏi về DynamoDB
Đặc điểm:
- Tập trung vào thiết kế bảng, khóa phân vùng, chỉ mục (GSI, LSI), hoặc tối ưu truy vấn.
- Dễ nhầm giữa query và scan, hoặc bỏ qua caching với DAX.
Ví dụ:
Một ứng dụng cần truy vấn DynamoDB với hiệu suất cao và chi phí thấp. Giải pháp nào là tốt nhất?
A. Sử dụng scan cho toàn bộ bảng.
B. Tạo Global Secondary Index (GSI).
C. Sử dụng DynamoDB Accelerator (DAX).
D. Tăng Write Capacity Units.
Bí kíp vượt qua:
- Query > Scan: Scan (A) duyệt toàn bảng, chậm và tốn chi phí. Query với khóa phân vùng hoặc GSI (B) nhanh và hiệu quả hơn.
- Caching với DAX: Nếu câu hỏi nhấn mạnh “hiệu suất cao”, DAX (C) là lựa chọn tuyệt vời để giảm độ trễ.
- Mẹo thi: Chú ý từ khóa “high performance” (DAX, GSI) hoặc “cost-effective” (query, tránh scan).
- Thực hành để nắm chắc: Tạo bảng DynamoDB trên AWS Free Tier, thử query vs. scan, và kiểm tra chi phí trên AWS Billing Dashboard.
5. Câu hỏi về CI/CD
Đặc điểm:
- Yêu cầu hiểu quy trình triển khai với CodeCommit, CodeBuild, CodeDeploy, hoặc Elastic Beanstalk.
- Đáp án thường trộn lẫn các dịch vụ hoặc cấu hình sai.
Ví dụ:
Một nhóm muốn tự động hóa triển khai từ CodeCommit sang Elastic Beanstalk. Giải pháp nào là tốt nhất?
A. Sử dụng CodePipeline với CodeBuild.
B. Triển khai thủ công qua CLI.
C. Sử dụng Lambda để triển khai.
D. Sử dụng S3 để lưu trữ mã nguồn.
Bí kíp vượt qua:
- Hiểu pipeline: CodePipeline (A) là cách chuẩn để tự động hóa, kết hợp CodeCommit, CodeBuild, và Elastic Beanstalk.
- Loại sai lầm: Triển khai thủ công (B) không hiệu quả, Lambda (C) không phù hợp, và S3 (D) không phải công cụ CI/CD.
- Mẹo thi: Tìm từ khóa “automation” hoặc “CI/CD” – đáp án thường liên quan đến CodePipeline.
- Thực hành: Tạo pipeline đơn giản trên AWS Free Tier, đẩy mã từ CodeCommit lên Elastic Beanstalk.
6. Câu hỏi về Serverless & Tích hợp
Đặc điểm:
- Tập trung vào Lambda, SQS, SNS, và cách xử lý lỗi (DLQ, retry).
- Dễ nhầm giữa SNS và SQS, hoặc bỏ qua các cơ chế như exponential backoff.
Ví dụ:
Lambda thất bại khi xử lý tin nhắn từ SQS. Làm sao để lưu tin nhắn lỗi?
A. Cấu hình DLQ trên Lambda.
B. Cấu hình DLQ trên SQS.
C. Sử dụng SNS để retry.
D. Tăng timeout của Lambda.
Bí kíp vượt qua:
- Hiểu cơ chế lỗi: DLQ được cấu hình trên SQS (B), không phải Lambda. SQS quản lý tin nhắn và retry.
- Loại sai lầm: SNS (C) là publish-subscribe, không phù hợp. Tăng timeout (D) không giải quyết lỗi.
- Mẹo thi: Tìm từ khóa “error handling” – DLQ hoặc retry policy thường là đáp án.
- Thực hành để nắm chắc: Tạo SQS queue, tích hợp với Lambda, và cấu hình DLQ trên AWS Free Tier.
7. Câu hỏi tối ưu chi phí
Đặc điểm:
- Yêu cầu chọn giải pháp tiết kiệm chi phí nhất, ví dụ: Spot Instances, Lambda, hoặc caching.
- Dễ nhầm vì không nắm rõ mô hình định giá.
Ví dụ:
Một ứng dụng xử lý dữ liệu định kỳ vài giờ mỗi ngày. Giải pháp nào tiết kiệm nhất?
A. EC2 On-Demand.
B. EC2 Spot Instances.
C. AWS Lambda.
D. AWS Batch với Reserved Instances.
Bí kíp vượt qua:
- Hiểu định giá: Spot Instances (B) rẻ nhất cho workload không liên tục, tiết kiệm đến 90% so với On-Demand (A). Lambda (C) phù hợp với tác vụ ngắn, còn Batch với Reserved Instances (D) yêu cầu cam kết dài hạn.
- Mẹo thi: Tìm từ khóa “cost-effective” – Spot Instances hoặc caching thường là đáp án.
- Thực hành để nắm chắc: Sử dụng AWS Pricing Calculator để so sánh chi phí giữa Spot Instances và Lambda.
8. Câu hỏi về monitoring và debugging
Đặc điểm:
- Tập trung vào CloudWatch, X-Ray, hoặc CloudTrail.
- Dễ nhầm giữa Metrics, Logs, và Tracing.
Ví dụ:
Lambda bị chậm, làm sao tìm nguyên nhân?
A. Kiểm tra CloudWatch Metrics.
B. Kích hoạt X-Ray tracing.
C. Kiểm tra CloudTrail.
D. Tăng bộ nhớ Lambda.
Bí kíp vượt qua:
- Hiểu công cụ: X-Ray (B) giúp tìm nguyên nhân gốc rễ qua tracing. CloudWatch Metrics (A) chỉ cung cấp số liệu tổng quan, CloudTrail (C) không liên quan đến hiệu suất.
- Mẹo thi: Tìm từ khóa “root cause” – X-Ray là lựa chọn hàng đầu.
- Thực hành để nắm chắc: Kích hoạt X-Ray cho Lambda trên AWS Free Tier, phân tích trace.
9. Câu hỏi về container & ECS/Fargate
Đặc điểm:
- Yêu cầu hiểu ECS, Fargate, hoặc EKS, đặc biệt là launch type và networking.
- Dễ nhầm giữa ECS với EC2 và Fargate.
Ví dụ:
Triển khai container không cần quản lý server, chọn gì?
A. ECS với EC2.
B. ECS với Fargate.
C. Lambda với container.
D. Elastic Beanstalk.
Bí kíp vượt qua:
- Hiểu serverless: Fargate (B) là lựa chọn không cần quản lý server, khác với ECS với EC2 (A). Lambda (C) giới hạn thời gian, Elastic Beanstalk (D) không tối ưu cho container.
- Mẹo thi: Tìm từ khóa “no server management” – Fargate là đáp án.
- Thực hành để nắm chắc: Triển khai container trên ECS Fargate trong AWS Free Tier.
Chứng chỉ mình vừa đạt được
Bí kíp ôn thi hiệu quả
- Xây nền tảng:
- Đọc AWS Exam Guide và FAQs để nắm phạm vi.
- Thực hành trên AWS Free Tier hoặc Qwiklabs với Lambda, DynamoDB, S3.
- Luyện bài thi thử:
- Làm bài thi thử từ Tutorials Dojo, Whizlabs, hoặc AWS Official Practice Test.
- Đặt mục tiêu 75%+ để đảm bảo đỗ.
- Tập trung chủ đề khó:
- Bảo mật (IAM, KMS).
- DynamoDB (query, GSI, DAX).
- CI/CD (CodePipeline, Elastic Beanstalk).
- Serverless (SQS, DLQ, X-Ray).
- Mẹo thi:
- Quản lý thời gian: 2 phút/câu, làm câu dễ trước, đánh dấu câu khó.
- Kiểm tra lại: Dành 10-15 phút cuối để soát lại, sửa 2-3 câu sai là chuyện thường!
- Yêu cầu thêm thời gian: Xin thêm 30 phút khi đăng ký, vì mình không phải là native English speaker
Những câu hỏi “khoai” có thể khiến bạn đau đầu, nhưng với sự chuẩn bị kỹ lưỡng, thực hành thực tế, và một chút bình tĩnh, bạn hoàn toàn có thể “xử đẹp” chúng. Hy vọng là phần chia sẻ của mình hữu ích với các bạn.
Phan Văn Luân – Dev fullstack & GV tại CodeGym
0 Lời bình