บริการ AWS แบบเนทีฟ 5 รายการที่สามารถสร้างแพลตฟอร์มไร้เซิร์ฟเวอร์แบบ end-to-end

การสร้างระบบซอฟต์แวร์อัตโนมัติหมายถึงการตั้งค่าเซิร์ฟเวอร์หลายเครื่องด้วยการกำหนดค่า CPU หน่วยความจำ พื้นที่เก็บข้อมูล และทรัพยากรอื่นๆ เป็นเวลาหลายปีโดยเฉพาะ จากนั้นจึงจัดตั้งทีมผู้ดูแลระบบเพื่อจัดการระบบเหล่านี้ จากนั้นทีมพัฒนาก็เข้าควบคุมโครงสร้างพื้นฐานและเริ่มสร้างกระบวนการที่เชื่อมต่อกับเซิร์ฟเวอร์

กระบวนการนี้อาจซับซ้อนเนื่องจากเกี่ยวข้องกับกลุ่มต่างๆ มากมายที่ทำงานร่วมกันเพื่อบรรลุเป้าหมายร่วมกัน ความขัดแย้งทางผลประโยชน์เหล่านี้อาจเป็นปัญหาได้

นอกจากนี้ยังอาจมีค่าใช้จ่ายค่อนข้างสูง คุณต้องมีผู้ดูแลระบบในบัญชีเงินเดือนของคุณ เซิร์ฟเวอร์ที่ทำงานอย่างต่อเนื่องกินทรัพยากรแม้ว่าจะไม่ได้ใช้งานก็ตาม

เพื่อรักษาประสิทธิภาพที่ดีที่สุดเมื่อเวลาผ่านไป คุณต้องมีโซลูชันปรับขนาดอัตโนมัติที่ปรับขนาดทรัพยากรเซิร์ฟเวอร์โดยอัตโนมัติ

แพลตฟอร์มคลาวด์มีข้อดีอย่างหนึ่ง: ช่วยให้คุณสร้างสถาปัตยกรรมแบบ end-to-end โดยไม่จำเป็นต้องตั้งค่าคลัสเตอร์เซิร์ฟเวอร์ จากมุมมองการบริหาร ไม่มีอะไรต้องรักษา

นี่เป็นตัวเลือกที่คุ้มค่าสำหรับสตาร์ทอัพและขั้นตอนของผลิตภัณฑ์ขั้นต่ำ (MVP) ของโครงการ เป็นจุดเริ่มต้นที่ดี หากเป็นการยากที่จะคาดการณ์ปริมาณการผลิตในอนาคตและกิจกรรมของผู้ใช้ นี่คือจุดที่การกำหนดคอนฟิกของเซิร์ฟเวอร์คลัสเตอร์อาจเป็นเรื่องยาก

ระบบอัตโนมัติของกระบวนการผ่านบริการคลาวด์แบบไร้เซิร์ฟเวอร์คือสิ่งที่ทำให้สถาปัตยกรรมแบบไร้เซิร์ฟเวอร์โดดเด่น เชื่อมต่อบริการและสร้างผลลัพธ์ที่คล้ายกับเซิร์ฟเวอร์คลัสเตอร์แบบดั้งเดิม

นี่คือตัวอย่างของการสร้างสถาปัตยกรรมดังกล่าวโดยใช้บริการของ AWS แบบเนทีฟเท่านั้น

การเลือกใช้บริการ Serverless Flow

ลองนึกภาพว่าคุณต้องการสร้างแพลตฟอร์มเพื่อรวบรวมข้อมูลและรูปภาพต่างๆ (หรือภาพถ่าย) ของโครงสร้างพื้นฐานของสินทรัพย์ที่เป็นรูปธรรม (ซึ่งอาจเป็นสินทรัพย์การผลิตหรือยูทิลิตี้ก็ได้)

  • เพื่อให้สามารถวิเคราะห์ในอนาคตได้ จำเป็นต้องมีการนำเข้าข้อมูลก่อน
  • หลังจากใช้กฎทางธุรกิจแล้ว โพรซีเดอร์ส่วนหลังจะบันทึกผลลัพธ์ที่คำนวณได้เป็นข้อมูลที่ทำให้เป็นมาตรฐานในฐานข้อมูลเชิงสัมพันธ์
  • ส่วนหน้าของแอปพลิเคชันที่แสดงข้อมูลที่สะอาดเป็นมาตรฐานช่วยให้ผู้ใช้สามารถดูผลลัพธ์ได้

มาดูกันว่าสถาปัตยกรรมคอมโพเนนต์ใดที่อาจรวมถึง

บัคเก็ต AWS S3

ที่มา: aws.amazon.com

บัคเก็ต Amazon S3 เป็นวิธีที่ยอดเยี่ยมในการจัดเก็บไฟล์หรือรูปภาพในระบบคลาวด์ AWS ราคาของที่เก็บข้อมูลบนบัคเก็ต S3 นั้นต่ำมาก ยิ่งไปกว่านั้น การแนะนำนโยบายวงจรชีวิตของบัคเก็ต S3 ยังช่วยลดราคานี้ลงไปอีก

นโยบายดังกล่าวจะย้ายไฟล์ที่เก่ากว่าไปยังคลาสต่างๆ ของบัคเก็ต S3 โดยอัตโนมัติ เช่น การเข้าถึงไฟล์เก็บถาวรหรือไฟล์เก็บถาวรแบบลึก คลาสจะแตกต่างกันตามความเร็วของเวลาในการเข้าถึงเช่นกัน แต่สำหรับข้อมูลเก่า สิ่งนี้จะไม่มีปัญหาน้อยกว่า ส่วนใหญ่ทำหน้าที่ในการเข้าถึงข้อมูลที่เก็บถาวรในกรณีของเหตุการณ์เร่งด่วนมากกว่าความต้องการในการดำเนินงานมาตรฐาน

  • คุณสามารถจัดระเบียบข้อมูลของคุณในโฟลเดอร์ย่อย
  • คุณควรกำหนดข้อจำกัดสิทธิ์ที่เหมาะสม
  • เพิ่มแท็กลงในบัคเก็ตเพื่อให้ง่ายต่อการระบุและสำหรับการใช้งานที่เป็นไปได้ภายในนโยบายบัคเก็ต S3 แบบไดนามิก
  • ที่ฝากข้อมูลเป็นแบบไร้เซิร์ฟเวอร์โดยการออกแบบ เป็นเพียงพื้นที่เก็บข้อมูลของคุณ
  วิธีใช้รหัสการประชุม Zoom เพื่อเข้าร่วมการประชุม

บัคเก็ต S3 เป็นแบบไร้เซิร์ฟเวอร์โดยการออกแบบ เป็นเพียงพื้นที่เก็บข้อมูลของคุณ

ฐานข้อมูล AWS Athena

ที่มา: aws.amazon.com

Athena ทำให้การสร้างที่เก็บข้อมูลพื้นฐาน AWS เป็นเรื่องง่าย เป็นฐานข้อมูลที่ไม่มีเซิร์ฟเวอร์ที่ใช้บัคเก็ต S3 เพื่อจัดเก็บข้อมูล การจัดระเบียบข้อมูลจะได้รับการดูแลโดยรูปแบบไฟล์ที่มีโครงสร้าง เช่น ไฟล์ parquet หรือไฟล์ค่าที่คั่นด้วยเครื่องหมายจุลภาค (CSV) บัคเก็ต S3 เก็บไฟล์ และ Athena อ้างถึงไฟล์เหล่านี้เมื่อใดก็ตามที่กระบวนการเลือกข้อมูลจากฐานข้อมูล

โปรดทราบว่า Athena ไม่รองรับฟังก์ชันการทำงานต่างๆ ที่ถือว่าเป็นมาตรฐาน เช่น คำสั่งอัปเดต นี่คือเหตุผลที่คุณต้องมองว่า Athena เป็นตัวเลือกที่ง่ายมาก

อย่างไรก็ตาม รองรับการสร้างดัชนีและการแบ่งพาร์ติชัน นอกจากนี้ยังสามารถปรับขนาดในแนวนอนได้อย่างง่ายดาย เนื่องจากมีความซับซ้อนพอๆ กับการเพิ่มบัคเก็ตใหม่ให้กับโครงสร้างพื้นฐาน สำหรับการสร้าง Data Lake ที่เรียบง่ายแต่ใช้งานได้ดี ในกรณีส่วนใหญ่ก็ยังเพียงพอ

เพื่อประสิทธิภาพที่ดี การเลือกการออกแบบข้อมูลที่ดีที่สุดโดยมุ่งเน้นที่การใช้งานในอนาคตเป็นสิ่งสำคัญ สิ่งสำคัญคือต้องมีความชัดเจนมากเกี่ยวกับวิธีที่คุณต้องการเลือกข้อมูล การสร้างตารางใหม่ในภายหลังเมื่อมีตารางอยู่แล้วและเต็มไปด้วยข้อมูลจำนวนมากนั้นเป็นเรื่องยาก

Athena DB เป็นตัวเลือกที่ยอดเยี่ยมและเหมาะสมกับเป้าหมายของคุณ หากคุณกำลังมองหาการสร้างกลุ่มข้อมูลที่เรียบง่ายและไม่เปลี่ยนรูปแบบ ซึ่งง่ายต่อการปรับขนาดตามแนวนอนเมื่อเวลาผ่านไป

ฐานข้อมูล AWS Aurora

ที่มา: aws.amazon.com

Athena DB เก่งในการจัดเก็บข้อมูลที่ไม่ได้คัดสรร นี่คือวิธีที่คุณต้องการจัดเก็บเนื้อหาต้นฉบับของคุณเพื่อเพิ่มการใช้ซ้ำในอนาคตให้ได้มากที่สุด อย่างไรก็ตาม การให้ผลลัพธ์ที่เลือกไปยังแอปส่วนหน้าทำได้ช้า

หนึ่งในตัวเลือกที่ดีที่สุด ส่วนใหญ่มาจากมุมมองของการตั้งค่าที่ง่ายต่อการดำเนินการ คือฐานข้อมูล Aurora ที่ทำงานในโหมดไร้เซิร์ฟเวอร์

Aurora อยู่ไกลจากฐานข้อมูลพื้นฐาน เป็นหนึ่งในโซลูชันฐานข้อมูลเชิงสัมพันธ์แบบเนทีฟที่ทันสมัยที่สุดใน AWS นอกจากนี้ยังเป็นโซลูชันฐานข้อมูลเชิงสัมพันธ์แบบเนทีฟที่มีความซับซ้อนสูงซึ่งได้รับการปรับปรุงในทุก ๆ รุ่น

Aurora มีเอกลักษณ์เฉพาะตัวเนื่องจากสามารถทำงานในโหมดไร้เซิร์ฟเวอร์ได้ ทำให้โดดเด่นกว่าบริการเชิงสัมพันธ์อื่นๆ นี่คือวิธีการทำงานของโหมด:

  • ในการกำหนดค่าคลัสเตอร์ Aurora ให้ใช้คอนโซล AWS คุณจะต้องระบุระดับ CPU และ RAM มาตรฐาน รวมถึงช่วงเวลาสูงสุดของฟังก์ชันปรับขนาดอัตโนมัติ ซึ่งจะส่งผลต่อประสิทธิภาพที่คลัสเตอร์ Aurora สามารถเพิ่มหรือลบแบบไดนามิกได้ AWS ตัดสินใจว่าจะขยายขนาดขึ้นหรือลงตามการใช้งานปัจจุบันของฐานข้อมูล
  • ออโรราคลัสเตอร์จะไม่เริ่มทำงานเว้นแต่ผู้ใช้หรือกระบวนการจะเริ่มต้นคำขอจริง ตัวอย่างเช่น เมื่อการประมวลผลชุดตามกำหนดเวลาเริ่มต้นขึ้น หรือหากแอปพลิเคชันดำเนินการเรียก API ส่วนหลังเพื่อดึงข้อมูลจากฐานข้อมูล ฐานข้อมูลจะเปิดโดยอัตโนมัติและจะยังคงใช้งานได้ตามเวลาที่กำหนดไว้หลังจากกระบวนการร้องขอเสร็จสิ้น
  • ออโรร่าคลัสเตอร์จะปิดโดยอัตโนมัติหากไม่มีงานในฐานข้อมูลอีกต่อไป
  4 Smarthome Hub ที่คุณไม่เคยได้ยินมาก่อน (และทำไมคุณไม่ควรใช้)

เพื่อเป็นการย้ำอีกครั้ง Aurora DB แบบไร้เซิร์ฟเวอร์จะทำงานเมื่อต้องทำงานจริงเท่านั้น คลัสเตอร์ที่เริ่มต้นโดยอัตโนมัติจะปิดอีกครั้งหากไม่ได้ประมวลผลงานใดๆ งานจริงคือสิ่งที่คุณจ่ายไม่ใช่เวลาว่างของคุณ

Aurora แบบไร้เซิร์ฟเวอร์ได้รับการจัดการอย่างสมบูรณ์โดย AWS และไม่จำเป็นต้องมีผู้ดูแลระบบ

AWS ขยาย

Amplify นำเสนอแพลตฟอร์มแบบไร้เซิร์ฟเวอร์สำหรับการปรับใช้แอปพลิเคชันส่วนหน้าอย่างรวดเร็วที่สร้างด้วยไลบรารี JavaScript และ React ไม่จำเป็นต้องตั้งค่าเซิร์ฟเวอร์คลัสเตอร์ ใช้คอนโซล AWS เพื่อปรับใช้โค้ดโดยตรง หรือใช้ไปป์ไลน์ DevOps อัตโนมัติ

คุณสามารถเรียกใช้ API แบ็คเอนด์เพื่อเข้าถึงข้อมูลที่จัดเก็บไว้ในฐานข้อมูล การโทรเหล่านี้ช่วยให้คุณเข้าถึงข้อมูลจริงในแอปพลิเคชันส่วนหน้า การปรับปรุงประสิทธิภาพหลักในส่วนหลังควรดำเนินการโดยทีม คุณยังสามารถลดความเป็นไปได้ของการตอบสนองที่ช้าใน UI หากคุณออกแบบคำสั่ง Select ที่มีประสิทธิภาพภายในการเรียก API โดยตรง

ฟังก์ชันขั้นตอนของ AWS

ที่มา: aws.amazon.com

แม้ว่าส่วนประกอบหลักทั้งหมดของระบบจะไร้เซิร์ฟเวอร์ แต่สิ่งนี้ไม่ได้รับประกันว่าสถาปัตยกรรมไร้เซิร์ฟเวอร์อย่างสมบูรณ์ สิ่งนี้เป็นไปได้ก็ต่อเมื่อกระบวนการแบทช์ทั้งหมดระหว่างคอมโพเนนต์เป็นแบบไร้เซิร์ฟเวอร์

ฟังก์ชัน AWS Step เป็นโซลูชันที่ดีที่สุดบน AWS Cloud รายการที่เชื่อมต่อของฟังก์ชัน AWS Lambda ประกอบด้วยฟังก์ชัน step ฟังก์ชันเหล่านี้สร้างแผนผังลำดับงานที่มีสถานะเริ่มต้นและสิ้นสุดที่ชัดเจน ฟังก์ชันแลมบ์ดาซึ่งมักจะเขียนด้วยภาษา Python หรือ Node JS เป็นบิตของโค้ดปฏิบัติการที่ประมวลผลสิ่งที่จำเป็น

ต่อไปนี้เป็นตัวอย่างของวิธีที่คุณอาจเรียกใช้ฟังก์ชันขั้นตอน:

  • AWS ทริกเกอร์ฟังก์ชันแลมบ์ดาอัตโนมัติทุกครั้งที่มีไฟล์ใหม่เข้ามาในโฟลเดอร์ S3 หลังจากแยกวิเคราะห์ไฟล์แลมบ์ดาจะโหลดลงใน Athena แลมบ์ดาจัดเก็บผลลัพธ์ในรูปแบบ CSV บนบัคเก็ต S3 (หรือในตารางติดตามฐานข้อมูล) ก่อนปิด
  • จากนั้นแลมบ์ดาถัดไปจะใช้ผลลัพธ์นี้เพื่อดำเนินการขั้นตอนต่อไป ซึ่งอาจรวมถึงการเรียกโมเดลแมชชีนเลิร์นนิงและแปลงชุดย่อยจากข้อมูลใหม่เป็นตารางมาตรฐาน ขั้นตอนสุดท้ายคือการโหลดข้อมูลไปยังฐานข้อมูล Aurora
  • ฟังก์ชันขั้นตอนเชื่อมโยงแลมบ์ดาเหล่านี้เข้าด้วยกันเพื่อสร้างการไหลเป็นชุด เป็นไปได้ที่จะเรียกใช้ฟังก์ชันขั้นตอนอื่นแทนขั้นตอนของฟังก์ชันขั้นตอนรากอื่น ด้วยวิธีนี้ เป็นไปได้ที่จะครอบคลุมหลายสถานการณ์
  • การไหลแบบไร้เซิร์ฟเวอร์นี้มีข้อเสียเปรียบหลักประการหนึ่ง: แต่ละฟังก์ชันแลมบ์ดาสามารถทำงานได้สูงสุด 15 นาทีเท่านั้น ดังนั้น การแยกโฟลว์ออกเป็นฟังก์ชันแลมบ์ดาที่เล็กลงจะทำให้ปัญหานี้น้อยลง

    เป็นไปได้ที่จะเรียกฟังก์ชันแลมบ์ดาหลายตัวพร้อมกันในขั้นตอนเดียว ซึ่งโดยทั่วไปหมายถึงการขนานขั้นตอนที่มีแลมบ์ดาหลายตัวทำงานพร้อมกัน เพียงรอให้การประมวลผลแลมบ์ดาแบบขนานทั้งหมดเสร็จสิ้นก่อนดำเนินการต่อ จากนั้น ดำเนินการประมวลผลแลมบ์ดาถัดไป

      วิธีกำหนดเวลาการลบไฟล์ใน Dropbox

    คำสุดท้าย

    สถาปัตยกรรมแบบไร้เซิร์ฟเวอร์มอบโอกาสพิเศษในการสร้างแพลตฟอร์มคลาวด์ที่ครอบคลุมภูมิทัศน์ของระบบทั้งหมด แพลตฟอร์มนี้สามารถปรับขนาดได้ในแนวนอนและมีต้นทุนการดำเนินงานที่ต่ำในขณะดำเนินการดังกล่าว

    เป็นโซลูชั่นที่สมบูรณ์แบบสำหรับโครงการที่มีงบประมาณจำกัด เป็นตัวเลือกการสำรวจที่ยอดเยี่ยม โดยทั่วไปแล้วเมื่อไม่มีใครรู้ความเป็นจริงของปริมาณการผลิต นี่เป็นสิ่งสำคัญอย่างยิ่งหลังจากที่คุณเริ่มต้นใช้งานผู้ใช้ทั้งหมดเรียบร้อยแล้ว เป็นไปได้ที่ทีมโครงการจะยังคงได้รับมุมมองโดยรวมว่าระบบทำงานอย่างไร คุณสามารถรับสิทธิประโยชน์ทั้งหมดนี้ได้และยังไม่จำเป็นต้องยอมรับการประนีประนอม

    ความครอบคลุมนี้จะไม่เพียงพอสำหรับทุกกรณี โดยเฉพาะกรณีที่เกี่ยวข้องกับการใช้งาน CPU สูง อย่างไรก็ตาม AWS Cloud มีการพัฒนาอย่างต่อเนื่องในแง่ของกรณีการใช้งานแบบไร้เซิร์ฟเวอร์ โดยปกติแล้ว ควรทำการวิจัยอย่างถี่ถ้วนก่อนที่คุณจะตัดสินใจเลือกตัวเลือกแบบไร้เซิร์ฟเวอร์สำหรับโครงการ AWS Cloud ถัดไปของคุณ

    ต่อไป ตรวจสอบฐานข้อมูลไร้เซิร์ฟเวอร์ที่ดีที่สุดสำหรับแอปพลิเคชันสมัยใหม่

    เรื่องล่าสุด

    x