Score:1

ประโยชน์ของเซิร์ฟเวอร์ RDBMS แยกต่างหาก

ธง de

ฉันต้องการเปรียบเทียบประโยชน์ของสถาปัตยกรรมโฮสติ้งสองแบบสำหรับเซิร์ฟเวอร์ขนาดเล็ก (หมายถึง CPU 2 คอร์และ SSD 250GB โดย 100GB สำหรับข้อมูลนั้นมากเกินพอ) ซึ่งประกอบด้วยแอปพลิเคชันแบบกำหนดเองที่ให้บริการเว็บเป็นส่วนใหญ่ สถาปัตยกรรม REST และข้อมูลทั้งหมดในฐานข้อมูลเชิงสัมพันธ์

  1. โฮสต์บนเครื่องเดียวในระบบคลาวด์ (เช่น อินสแตนซ์ EC2) กับฐานข้อมูลเชิงสัมพันธ์ (เช่นmySQL, PostGreSQL) ทำงานภายในเครื่อง โดยมีการสำรองฐานข้อมูลภายนอกที่เข้ารหัสบ่อยครั้ง (เช่น ไปยัง S3/Glacier)
  2. โฮสต์บนเครื่องในระบบคลาวด์ (เช่น อินสแตนซ์ EC2 ที่คล้ายกันซึ่งมี SSD น้อยกว่า) ด้วย RDBMS ซึ่งเป็นบริการที่มีการจัดการ เช่น Amazon Relational Database Service อาจมีการสำรองข้อมูลภายนอกของฐานข้อมูลที่เข้ารหัสบ่อยน้อยกว่า

ข้าพเจ้าเห็นเป็นประโยชน๑

  • ฉันเชื่อว่าถูกกว่า (ประหยัดในบริการและเครือข่ายที่มีการจัดการ RDBMS) ประมาณ 3 เท่า
  • อาจมีเวลาแฝงที่ดีกว่าของการเข้าถึงฐานข้อมูล ?

และสำหรับ 2

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

ฉันคิดถึงอะไร ตัวชี้ใด ๆ ถึงตำแหน่งที่มีอำนาจในเรื่องนี้?

pmdba avatar
cn flag
จากมุมมองด้านความปลอดภัย ข้อมูลควร _never_ ถูกโฮสต์บนเซิร์ฟเวอร์เดียวกันกับส่วนหน้าของแอปพลิเคชัน - โดยเฉพาะอย่างยิ่ง หากส่วนหน้าเปิดเผยต่ออินเทอร์เน็ต แต่ยังเป็นจริงบนเครือข่ายส่วนตัวด้วย ฐานข้อมูลควรได้รับการปกป้องหลังไฟร์วอลล์ แยกจากเซิร์ฟเวอร์แอปพลิเคชัน
fgrieu avatar
de flag
@pmdba: ฉันเห็นประเด็นของคุณและมันน่าสนใจ ถึงกระนั้น หากเซิร์ฟเวอร์ที่มีส่วนหน้าของแอปพลิเคชันถูกบุกรุก และเนื่องจากมีข้อมูลรับรองในการเข้าถึง RDBMS ข้อมูลทั้งหมดใน RDBMS โดยหลักการแล้วอาจถูกกรองออกหรือ/และเสียหายในสถานการณ์จำลอง 1/2 เหมือนกัน (โดยมีความแตกต่างที่ ได้ผ่านระบบไฟล์ใน 1 เท่านั้น)ข้อแตกต่างเพียงอย่างเดียวที่ฉันเห็นคือในสถานการณ์ที่ 2 การกรองข้อมูล/การเสียหายจะปรากฏให้เห็นในบันทึก RDBMS ซึ่งสิ่งเหล่านี้สามารถแก้ไขหรือทำให้ส่วนที่เหลืออยู่ในสถานการณ์ที่ 1 ได้
pmdba avatar
cn flag
การออกแบบแอปที่ปลอดภัยจะทำให้แอปใช้บัญชี DB ที่ไม่ได้รับสิทธิพิเศษ เข้าถึงข้อมูลผ่าน API ส่วนหลัง (สร้างขึ้นโดยใช้ขั้นตอนที่จัดเก็บไว้ใน DB) แอปไม่ควรเข้าสู่ระบบโดยตรงในบัญชี DB ที่มีสิทธิพิเศษ และโดยเฉพาะอย่างยิ่งไม่ใช่บัญชีที่เป็นเจ้าของข้อมูลหรือวัตถุ
Score:1
ธง de

เกี่ยวกับประเด็นแรก:

  • เมื่อบริการเว็บของคุณถูกบุกรุก ฐานข้อมูลก็จะถูกบุกรุกเช่นกัน แนวทางปฏิบัติที่ดีที่สุดคือการแยกชั้นการนำเสนอออกจากชั้นข้อมูล

  • เวลาแฝงที่มี AZ เดียวกันหรือระหว่างสอง AZ นั้นเล็กน้อยและสามารถละเว้นจากการพิจารณาได้

  • ฉันจะไม่บอกว่าโซลูชันนี้จะถูกกว่า RDS มากนัก เนื่องจากปัจจัยที่เกี่ยวข้องที่ส่งผลต่อราคาคือที่เก็บข้อมูล SSD ราคาจะอยู่ที่ประมาณ 30% ระหว่าง RDS และ EC2

  • เกี่ยวกับประเภท SSD คุณต้องตัดสินใจหรือบางทีคุณอาจรู้แล้วว่า IOPS และ MB/s ระดับใดที่จุดสูงสุดที่ฐานข้อมูลของคุณต้องการในอนาคต นั่นจะเป็นตัวเลือกที่ดีในการปรับปรุงราคาสุดท้ายของโซลูชัน

เกี่ยวกับประเด็นที่สอง:

  • คุณสามารถป้องกันสถานการณ์นั้นได้ ตามค่าเริ่มต้น เมื่อคุณแนบไดรฟ์ข้อมูล EBS ที่ไม่ใช่รูทกับอินสแตนซ์ ลบเมื่อสิ้นสุด แอตทริบิวต์ถูกตั้งค่าเป็น เท็จ. ฉันคิดว่าฐานข้อมูลจะอยู่ในไดรฟ์ข้อมูล EBS ที่ไม่ใช่รูท อาจมีการตั้งค่าสถานะเป็น เท็จ ในปริมาณรูทด้วย

  • คุณไม่จำเป็นต้องคัดลอกฐานข้อมูลจาก EC2 ไปยัง EC2 คุณสามารถแนบหรือถอดไดรฟ์ข้อมูล EBS กับฐานข้อมูลได้

  • ตามที่คุณระบุในโซลูชัน RDS ความรับผิดชอบของผู้ดูแลระบบอยู่ที่ AWS อย่างไรก็ตาม โครงสร้างฐานข้อมูลที่ซับซ้อนมากขึ้น ฉันก็ยิ่งเลือกใช้บริการฐานข้อมูลที่ไม่มีการจัดการมากขึ้นเท่านั้น

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

fgrieu avatar
de flag
ฉันไม่เข้าใจว่าเหตุใดสถานการณ์จึงดีขึ้นมากจากมุมมองด้านความปลอดภัยด้วย RBS ที่แยกจากกันฉันให้เหตุผลว่าหากบริการเว็บถูกโจมตี เนื่องจากบริการดังกล่าวมีการเข้าถึง R/W ไปยังฐานข้อมูล ฝ่ายตรงข้ามสามารถแยกหรือแก้ไขได้ ฉันยอมรับข้อแตกต่างอย่างหนึ่ง: ฐานข้อมูลทั้งหมดสามารถคัดลอกผ่านระบบไฟล์ได้เฉพาะเมื่อ RBS ทำงานอยู่ในเครื่องเท่านั้น DB ที่เข้ารหัสช่วยลดสิ่งนี้ได้ในระดับหนึ่ง
de flag
สมมติว่าฉันเป็นแฮ็กเกอร์ ฉันเจาะเข้าไปในอินสแตนซ์ EC2 ของคุณที่บริการเว็บพร้อมกับฐานข้อมูลทำงานอยู่ สมมติว่าคุณไม่ได้สังเกตว่ามีเหตุการณ์ด้านความปลอดภัยเกิดขึ้น ฉันจะติดตั้งโปรแกรมดมกลิ่นและคีย์ล็อกเกอร์ และจะรอการแจ้งเตือน เมื่อผู้ดูแลระบบฐานข้อมูลเข้าสู่ระบบหรือมีคนดำเนินการคำสั่ง SQL ในเครื่องโดยไม่ได้ตั้งใจ ฉันจะสกัดกั้นข้อมูลประจำตัว ฉันจะเข้าสู่ระบบอีกครั้งและทิ้งฐานข้อมูลของคุณ สิ่งนี้ทำได้ยากเมื่อเลเยอร์การนำเสนอของคุณพูดคุยกับเลเยอร์ฐานข้อมูลผ่านพร็อกซี HTTPS และคีย์สาธารณะ/ส่วนตัวไม่ได้อยู่ในที่เดียวกัน

โพสต์คำตอบ

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