คำถามสัมภาษณ์ AWS
โดย Aaron Cao · อัปเดตเมื่อ

การสัมภาษณ์ AWS ทดสอบว่าคุณเคยดูแลบริการจริงในระบบ production หรือไม่ ไม่ใช่ว่าคุณท่องรายการบริการได้หรือเปล่า คาดหวังคำถามหลักเกี่ยวกับเครือข่าย VPC, IAM, ประเภทของสตอเรจ และความพร้อมใช้งานสูง จากนั้นจะเป็นคำถามเชิงสถานการณ์เกี่ยวกับต้นทุน ความล้มเหลว และการย้ายระบบ ซึ่งเหตุผลที่ให้สำคัญกว่าชื่อบริการ
ผู้สัมภาษณ์ AWS ทดสอบอะไรกันแน่
คุณอ่านรายการบริการมาหมดแล้วแต่ก็ยังบอกไม่ได้ว่าการสัมภาษณ์จะเป็นแบบไหน ช่องว่างนี้เป็นเรื่องปกติ และเนื้อหาส่วนนี้จะช่วยปิดช่องว่างนั้น รอบสัมภาษณ์ AWS ถูกออกแบบมาเพื่อดูว่าคุณเคยใช้งานสิ่งใดสิ่งหนึ่งจริงหรือไม่ ไม่ใช่แค่ดูว่าคุณเรียกชื่อมันถูกหรือเปล่า
รูปแบบนี้ปรากฏชัดในคำถามต่อเนื่อง ผู้สัมภาษณ์ถามว่าคุณจะใช้บริการใด คุณตอบถูก และคำถามต่อไปคือทำไมไม่เลือกอีกตัวหนึ่ง คนที่เคยดูแลภาระงานจริงจะตอบจากบิลค่าใช้จ่าย เหตุการณ์ระบบล่ม หรือการย้ายระบบ ส่วนคนที่อ่านเอกสารมาอย่างเดียวจะตอบไม่ออก คำถามที่สองนี่เอง ไม่ใช่คำถามแรก ที่เป็นตัวตัดสินผลการสัมภาษณ์ AWS
มีรอบสัมภาษณ์สามแบบที่พบซ้ำ ๆ คือ รอบพื้นฐานเรื่องเครือข่าย ระบบยืนยันตัวตน สตอเรจ และการประมวลผล รอบสถานการณ์หรือการออกแบบที่คุณต้องออกแบบสถาปัตยกรรมภายใต้เงื่อนไขจำกัด และรอบแก้ปัญหาที่คุณจะได้รับอาการผิดปกติมาแล้วถูกถามว่าจะตรวจสอบอะไรก่อน ความลึกของคำถามจะเพิ่มขึ้นตามระดับอาวุโส แต่โครงสร้างโดยรวมยังคงเดิม คลังคำถามตามตำแหน่งงานและหัวข้ออื่น ๆ อยู่ที่ ศูนย์รวมคำถามสัมภาษณ์
คำถามหลักเรื่อง AWS แบบไหนที่พบบ่อยที่สุด
นี่คือคำถามพื้นฐานที่พบซ้ำ ๆ ในการสัมภาษณ์ AWS จัดกลุ่มตามลักษณะที่รอบสัมภาษณ์มักถูกจัดวาง
เครือข่ายและ VPC
- VPC คืออะไร และ public subnet กับ private subnet ต่างกันอย่างไร
- เมื่อไรที่ต้องใช้ NAT gateway และมันมีค่าใช้จ่ายเท่าไร
- security group ต่างจาก network ACL อย่างไร
- คุณจะเชื่อมต่อ VPC สองตัวอย่างไร และเมื่อไรที่ peering เป็นทางเลือกที่ผิด
ระบบยืนยันตัวตนและความปลอดภัย
- อธิบาย IAM role, policy และ user และเมื่อไรที่ควรใช้แต่ละแบบ
- EC2 instance ได้รับข้อมูลยืนยันตัวตนอย่างไรโดยไม่ต้องเก็บ key ไว้
- หลักการสิทธิ์ขั้นต่ำที่จำเป็น (least privilege) มีหน้าตาอย่างไรใน policy จริง
- คุณหมุนเวียนและตรวจสอบ secret ใน AWS อย่างไร
สตอเรจและฐานข้อมูล
- เปรียบเทียบ storage class ของ S3 และอธิบายว่าควรใช้แบบไหนเมื่อไร
- EBS ต่างจาก instance store อย่างไร
- เมื่อไรที่คุณจะเลือก DynamoDB แทน RDS และต้องแลกกับอะไร
- read replica ต่างจากการติดตั้งแบบ multi-AZ อย่างไร
การประมวลผลและความพร้อมใช้งาน
- อธิบาย auto scaling group และตัวชี้วัดที่คุณจะใช้ในการปรับขนาด
- เมื่อไรที่ Lambda เป็นคำตอบที่ผิด
- availability zone ต่างจาก region อย่างไร
- คุณจะออกแบบอย่างไรให้ระบบรับมือกับการสูญเสีย availability zone ทั้งโซนได้
คุณจะตอบคำถามเชิงสถานการณ์อย่างไร
คำถามเชิงสถานการณ์คือสิ่งที่แยกผู้สมัครออกจากกัน เพราะไม่มีคำตอบสำเร็จรูปให้ท่องจำ ตัวอย่างโจทย์ทั่วไปมีดังนี้
- บิลค่าใช้จ่ายรายเดือนของเราเพิ่มขึ้นเป็นสองเท่าแต่ทราฟฟิกไม่ได้เพิ่ม คุณจะหาสาเหตุอย่างไร
- ออกแบบไปป์ไลน์อัปโหลดไฟล์ที่รองรับไฟล์ที่ใหญ่เกินกว่าจะส่งได้ในคำขอเดียว
- บริการหนึ่งทำงานช้าเฉพาะใน availability zone เดียว คุณจะตรวจสอบอะไรก่อน
- ย้ายฐานข้อมูลแบบ on-premise ไปยัง AWS โดยให้ downtime น้อยที่สุด อธิบายขั้นตอนให้ฟังหน่อย
- คุณจะทำให้สถาปัตยกรรมนี้รอดจากเหตุการณ์ระบบล่มทั้งภูมิภาคได้อย่างไร และต้องเสียค่าใช้จ่ายเท่าไร
ตอบตามลำดับเดิมทุกครั้ง คือ ทวนเงื่อนไขที่คุณคิดว่าสำคัญ พูดสมมติฐานของคุณออกมาดัง ๆ เลือกบริการ แล้วระบุข้อแลกเปลี่ยนที่คุณยอมรับ ประโยคเรื่องข้อแลกเปลี่ยนนี่เองที่ผู้สัมภาษณ์เงี่ยหูฟัง เพราะมันพิสูจน์ว่าคุณรู้ว่าทางเลือกนั้นต้องแลกกับอะไร
วิศวกร backend คนหนึ่งที่กำลังสัมภาษณ์ตำแหน่ง platform ที่บริษัทขนาดกลางถูกขอให้ออกแบบไปป์ไลน์อัปโหลดไฟล์ แทนที่จะพูดชื่อ S3 ทันที เธอถามก่อนว่าการอัปโหลดนั้นเป็นแบบที่ผู้ใช้เห็นโดยตรงหรือไม่ และไฟล์มีขนาดใหญ่แค่ไหน จากนั้นจึงเลือกใช้ presigned URL ร่วมกับ multipart upload และอธิบายว่าเธอปฏิเสธการส่งข้อมูลผ่าน application server เพราะจะทำให้ throughput กลายเป็นปัญหาด้านการขยายขนาด การเลือกบริการนั้นเป็นเรื่องธรรมดา แต่เหตุผลที่ให้ต่างหากคือสิ่งที่ถูกจดจำ
คุณควรฝึกซ้อมเรื่องเหล่านี้อย่างไร
การอ่านรายการคำถามไม่ใช่การฝึกซ้อม รูปแบบความล้มเหลวในการสัมภาษณ์ AWS คือการรู้คำตอบแต่พูดออกมาเป็นการพูดคนเดียวที่ไม่มีโครงสร้าง และปัญหานี้จะปรากฏก็ต่อเมื่อคุณพูดออกมาจริง ๆ เท่านั้น
ลองพูดคำถามจากรายการข้างต้นออกมาดัง ๆ ทีละข้อ และยึดลำดับสี่ส่วนไว้เสมอ คือ เงื่อนไข สมมติฐาน ทางเลือก ข้อแลกเปลี่ยน อัดเสียงไว้สักสองสามครั้งแล้วฟังย้อนกลับเพื่อจับจุดที่คำตอบของคุณเริ่มไม่มีโครงสร้าง การนำชุดคำถามเดียวกันไปฝึกแบบ การสัมภาษณ์จำลอง จะเพิ่มคำถามต่อเนื่องเข้ามา ซึ่งเป็นส่วนที่คุณฝึกคนเดียวไม่ได้ และเป็นส่วนที่ผู้สัมภาษณ์ AWS ใช้มากที่สุด
มีข้อจำกัดหนึ่งที่ควรพูดให้ชัดเจน คือ การคัดกรองบาง AWS เป็นแบบทดสอบอัตโนมัติ มีการบันทึกภาพ หรือมีการคุมสอบ แทนที่จะเป็นบทสนทนาสด ๆ กรณีเหล่านั้นอยู่นอกขอบเขตของผู้ช่วยแบบสด ๆ ทุกตัว รวมถึง SubcueAI ด้วย การเตรียมตัวเท่านั้นที่ช่วยได้ในสถานการณ์นั้น และ ศูนย์รวมประเภทการสัมภาษณ์ อธิบายไว้ว่ารูปแบบใดมีลักษณะการทำงานอย่างไร