Score:1

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

ธง cn

ฉันยังใหม่กับสถาปัตยกรรมคลาวด์ แต่มีประสบการณ์การพัฒนาแอปพลิเคชันที่ดี ตอนนี้ ฉันกำลังอยู่ในขั้นตอนการสร้างไปป์ไลน์การประมวลผลขนาดใหญ่ที่เข้าถึงได้มากขึ้นสำหรับผู้ใช้ 5-10 คนผ่านเว็บแอปพลิเคชัน และกำลังตั้งค่าทั้งหมดนี้ใน AWS

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

ในช่วงกลางของไปป์ไลน์นี้ต้องอาศัยชิ้นส่วนซอฟต์แวร์ที่เป็นกรรมสิทธิ์ซึ่งต้องการเครื่องจักรที่แข็งแรงมากในการคำนวณขั้นตอนเหล่านี้ (แรม 64GB, 16 คอร์, 1TB HDD) และสามารถทำงานได้สูงสุด 1.5 วันสำหรับขั้นตอนเดียวนี้ นี่คือคอขวดที่ใหญ่ที่สุดของฉันในท่อทั้งหมด

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

ฉันวางแผนที่จะโฮสต์อินสแตนซ์ EC2 หนึ่งรายการสำหรับเว็บแอป, 2 API และเปิดเซิร์ฟเวอร์ MySQL เนื่องจากการทำงานพร้อมกัน/ความสามารถในการปรับขนาดในส่วนนี้มีน้อยมาก ฉันจะมีอินสแตนซ์อีก 1-3 รายการสำหรับบริการคอขวดเพื่อแชร์การรันพร้อมกันจากผู้ใช้ 5-10 คน ซึ่งอนุญาตให้รันสเต็ปหนักได้สูงสุด 3 สเต็ปในเวลาเดียวกัน

เนื่องจากบริการคอขวดต้องการไฟล์ที่คล้ายคลึงกันเพื่อเรียกใช้โปรแกรม และอินพุตของขั้นตอนเหล่านี้อาจมีขนาดไฟล์ 150GB ในบางครั้ง ฉันจึงคิดที่จะใช้ที่เก็บข้อมูล EFS หรือ S3 เพื่อเก็บอินพุต ดังนั้นฉันจึงต้องกังวลเกี่ยวกับการถ่ายโอนอินพุตเท่านั้น ไฟล์ไปยังที่เดียวที่สามารถแชร์ข้ามอินสแตนซ์ EC2 และฉันไม่จำเป็นต้องตรวจสอบให้แน่ใจว่าได้เริ่มทำขั้นตอนการโอนย้ายแล้ว นี่เป็นคู่มือชิ้นเดียวที่ฉันยังไม่ได้คิดวิธีที่ดีที่จะทำให้เป็นอัตโนมัติมากขึ้นเนื่องจากขนาดไฟล์มีขนาดใหญ่มาก

คำถามของฉันคือการตั้งค่าของฉันฟังดูสมเหตุสมผลหรือไม่ และคุณเห็นช่องโหว่ในแนวคิดการใช้งานของฉันหรือไม่ ขณะนี้ฉันใช้พื้นที่จัดเก็บ EBS สำหรับอินสแตนซ์บริการ แต่ฉันต้องการลดตำแหน่งอินพุตสำหรับการถ่ายโอน/การบำรุงรักษา 150GB ฉันยังไม่แน่ใจถึงความแตกต่างระหว่าง S3 และ EFS เนื่องจากทั้งคู่ดูเหมือนจะติดตั้งได้หลายอินสแตนซ์ แต่ฉันควรใช้ตัวใด และเหมาะสมหรือไม่ที่จะเก็บเว็บแอป, API และฐานข้อมูลไว้ใน EC2 Instance เดียว หากฉันต้องการบริการที่สามารถเขียนไปยังฐานข้อมูลได้หลังจากทำเสร็จแล้ว ตัวอย่างนั้นจะเปิดตลอดเวลา

ขอบคุณสำหรับความช่วยเหลือของคุณและยกโทษให้ฉันหากฉันพูดอะไรที่ไร้เดียงสา

Score:0
ธง la

การตั้งค่าของคุณฟังดูสมเหตุสมผล ฉันอาจแนะนำให้คุณพิจารณาการมีเกตเวย์ API เพื่อ "โฮสต์" API ของคุณและลองคิดดูว่าเหมาะกับคุณหรือไม่ คุณยังสามารถพิจารณาให้มีอินสแตนซ์ EC2 ที่โหลดสูงในกลุ่มการปรับขนาดอัตโนมัติ และให้การควบคุมของคุณโต้ตอบกับแลมบ์ดาแทนอินสแตนซ์โดยตรง

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

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

Nonchalahnt avatar
cn flag
ขอบคุณมากสำหรับสิ่งนี้ ทั้งหมดนี้เป็นแนวคิดที่ดีสำหรับฉันในการสำรวจเพิ่มเติมและรับคำชี้แจง เกี่ยวกับความแตกต่างของ S3/EFS ฉันได้ค้นคว้าเกี่ยวกับสิ่งเหล่านี้เล็กน้อยและความเข้าใจในปัจจุบันของฉันก็คือพื้นที่จัดเก็บออบเจกต์นั้นยอดเยี่ยมสำหรับเว็บไซต์ขนาดใหญ่ในการเก็บทรัพยากรประเภทสินทรัพย์ เช่น รูปภาพ/วิดีโอ ไฟล์อินพุตของฉันเป็นเพียงไฟล์ข้อความที่มีรูปแบบขนาดใหญ่มาก (~60GB) และโปรแกรมที่โหลดจำนวนมากกำลังอ่านจากไฟล์เหล่านี้เพื่อทำงาน นั่นทำให้ฉันคิดว่า EFS เป็นที่ต้องการเนื่องจากการแบ่งปันพื้นที่นั้น อย่างไรก็ตาม บางบทความกล่าวว่าที่จัดเก็บออบเจกต์จะดีกว่าหากมีไฟล์ขนาดใหญ่กว่า ขอบคุณ!
Score:0
ธง gp
Tim

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

ฉันมีความคิดสองสามประการเกี่ยวกับภาระงานของคุณ:

  • คุณสามารถใช้ orchestrator เช่น ฟังก์ชัน AWS Step ที่เรียกใช้ฟังก์ชันแลมบ์ดา AWS จำนวนมากเพื่อทำการคำนวณได้หรือไม่ ฉันทราบว่าแลมบ์ดาน่าจะเป็นเวลาในการประมวลผลที่แพงที่สุดบน AWS ดังนั้นอาจไม่เหมาะ ด้วยขีดจำกัดที่กำหนดไว้อย่างถูกต้องและปริมาณงานที่เหมาะสม คุณอาจเริ่มแกะ 10,000 ตัวและทำงานพร้อมกันได้ภายใน 15 นาที
  • แทนที่จะเป็น EFS / S3 จะสร้างอิมเมจ EC2 / AMI สีทองสำหรับทุก ๆ งานที่หมุนอินสแตนซ์ EC2 แบบสปอต / ไดนามิกที่ใหญ่พอที่จะทำการประมวลผลสำหรับงานนั้นปิดเมื่อเสร็จสิ้นหรือไม่ แลมบ์ดาอาจจัดการงานตามเหตุการณ์บางประเภท? ซึ่งจะช่วยหลีกเลี่ยงค่าธรรมเนียมการถ่ายโอนข้อมูล - แม้ว่าจะไม่แน่ใจว่ามีการเรียกเก็บเงินจาก EBS / S3 หรือไม่ การประมวลผลเฉพาะจุดมีราคาค่อนข้างถูก และหากคุณเลือกภูมิภาค / AZ / ขนาดอินสแตนซ์อย่างถูกต้อง การขัดจังหวะน่าจะเกิดขึ้นได้ยาก อินสแตนซ์ที่ถูกอินเตอร์รัปต์จะปิดลงและไดรฟ์ข้อมูล EBS จะยังคงอยู่ ดังนั้นจึงทำงานได้ดีขึ้นหากงานของคุณเขียนลงดิสก์เป็นประจำและสามารถเริ่มต้นใหม่ได้

ฉันอาจจะใช้เวลาในการเพิ่มประสิทธิภาพงานใหญ่นั้น

โพสต์คำตอบ

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