Compute and hardware
ตัวเลือกด้านการประมวลผล (Compute) ที่เหมาะสมที่สุดสำหรับแต่ละเวิร์กโหลดนั้นอาจแตกต่างกันไปตามการออกแบบแอปพลิเคชัน รูปแบบการใช้งาน และการตั้งค่า สถาปัตยกรรมหนึ่งๆ อาจเลือกใช้ทรัพยากรประมวลผลที่ต่างกันในแต่ละส่วนประกอบ และเปิดใช้งานฟีเจอร์ที่หลากหลายเพื่อเพิ่มประสิทธิภาพ การเลือกทรัพยากรประมวลผลที่ไม่เหมาะสมกับสถาปัตยกรรมอาจนำไปสู่ประสิทธิภาพในการทำงานที่ลดลงได้
ใน AWS การประมวลผลมีให้เลือกใน 3 รูปแบบ ได้แก่: Instances, Containers และ Functions
-
Instances: คือเซิร์ฟเวอร์เสมือน (Virtual servers) ที่อนุญาตให้คุณปรับเปลี่ยนความสามารถได้ง่ายๆ เพียงแค่กดปุ่มหรือเรียกใช้งาน API เนื่องจากตัวเลือกด้านทรัพยากรบนคลาวด์ไม่ได้ถูกกำหนดตายตัว คุณจึงสามารถทดลองกับเซิร์ฟเวอร์ประเภทต่างๆ ได้ โดยใน AWS อินสแตนซ์เหล่านี้มีหลายตระกูลและหลายขนาด พร้อมความสามารถที่หลากหลาย เช่น Solid-state drives (SSDs) และ Graphics processing units (GPUs)
-
Containers: เป็นวิธีการจำลองเสมือนในระดับระบบปฏิบัติการ (Operating system virtualization) ที่ช่วยให้คุณรันแอปพลิเคชันและส่วนประกอบที่เกี่ยวเนื่อง (Dependencies) แยกขาดจากกันในระดับโพรเซส AWS Fargate คือบริการประมวลผลแบบ Serverless สำหรับคอนเทนเนอร์ หรือคุณสามารถเลือกใช้ Amazon EC2 หากต้องการควบคุมการติดตั้ง การตั้งค่า และการจัดการสภาพแวดล้อมการประมวลผลด้วยตนเอง นอกจากนี้คุณยังเลือกใช้แพลตฟอร์มจัดการคอนเทนเนอร์ (Orchestration) ได้ทั้ง Amazon Elastic Container Service (ECS) หรือ Amazon Elastic Kubernetes Service (EKS)
-
Functions: เป็นการแยกสภาพแวดล้อมการทำงาน (Run environment) ออกจากโค้ดที่คุณต้องการใช้งาน ตัวอย่างเช่น AWS Lambda ที่อนุญาตให้คุณรันโค้ดได้โดยไม่ต้องรันอินสแตนซ์เซิร์ฟเวอร์
คำถามต่อไปนี้จะเน้นที่การพิจารณาด้านประสิทธิภาพในการทำงาน:
PERF 2: คุณเลือกและใช้งานทรัพยากรประมวลผลในเวิร์กโหลดของคุณอย่างไร? โซลูชันการประมวลผลที่มีประสิทธิภาพสำหรับแต่ละเวิร์กโหลดนั้นแตกต่างกันไปตามการออกแบบแอปพลิเคชัน รูปแบบการใช้งาน และการตั้งค่า สถาปัตยกรรมสามารถใช้โซลูชันการประมวลผลที่แตกต่างกันในแต่ละส่วนประกอบ และเปิดใช้งานฟีเจอร์ต่างๆ เพื่อเพิ่มประสิทธิภาพ การเลือกโซลูชันการประมวลผลที่ผิดพลาดสำหรับสถาปัตยกรรมอาจส่งผลให้ประสิทธิภาพในการทำงานลดลง