จำเป็นต้องใช้การกำหนดค่า AWS ประเภทใดสำหรับการเรียกใช้แอพพลิเคชั่นแผนที่เว็บแบนด์วิดท์ต่ำถึงปานกลาง


17

ใครบ้างมีประสบการณ์กับการใช้งาน Web maps (tile server + client JS scripting) บน Amazon Web Services (S3, EC2 ฯลฯ ... ) การกำหนดค่า AWS ประเภทใดที่จำเป็นสำหรับการเรียกใช้แอพพลิเคชั่นแผนที่เว็บแบนด์วิดท์ต่ำถึงกลางครอบคลุมพื้นที่ขนาดเล็ก (-ish) (เมืองถึงขนาดเล็ก)

ไทล์ทั้งหมดจะแสดงผลล่วงหน้าและอัปโหลดไปยัง S3 โดยหลักการแล้วฉันต้องการแอปที่ให้บริการไทล์บนเว็บเซิร์ฟเวอร์ที่สามารถให้บริการ MBTiles (แทนที่จะอัปโหลดไทล์บิตแมปหลายแสนรายการ) ดังนั้นจำเป็นต้องใช้อินสแตนซ์ EC2 บางประเภท แต่ชนิดใด

ขอบคุณสำหรับคำแนะนำใด ๆ

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


3
โครงการหนึ่ง "สร้างเซิร์ฟเวอร์ไทล์เซิร์ฟเวอร์แห่งชาติ" Mapserver + MapProxy + AWS (EC2) ประกาศบน ubuntu speakerdeck.com/u/walkermatt/p/building-a-national-tile-server
Mapperz

1
@Mapperz ขอบคุณสำหรับลิงค์ การตั้งค่าของพวกเขาค่อนข้างทะเยอทะยานเล็กน้อยโดยมีการเรนเดอร์ไปป์ทำงานบน AWS ทั้งหมดดังนั้น (ฉันคิด) อาจมีราคาแพง แต่หนึ่งการเปิดเผยคือ MapProxy เนื่องจากรองรับ MBTiles
Igor Brejc

1
ใช้เซิร์ฟเวอร์ขนาดเล็กและให้บริการข้อมูล gis ประมาณ 500 MB ฉันได้รับแจ้งจาก amazon ว่าฉันมีสิทธิ์ได้รับระดับฟรี เพียงแค่พูด
แบรด Nesom

คำตอบ:


6

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

คุณจะมีทางเลือกน้อยลงในการสร้าง (เช่นใช้ S3 หรือไม่, โหลดบาลานเซอร์หรือไม่, แบ็กอัพ ฯลฯ หรือไม่และราคาเท่าไหร่?) ซึ่งผลลัพธ์ยากต่อการคาดเดาและที่สำคัญคุณจะสามารถ ใช้เครื่องมือที่คุณคุ้นเคยอยู่แล้ว

เมื่อเวลาผ่านไปด้วยตัวฉันเองฉันสามารถบอกคุณได้ว่าปัจจัยสำคัญในการตัดสินใจเลือกใช้บริการแผนที่เว็บบน Rackspace แทนที่จะเป็น AWS คือ:

  1. Cloud Server นั้นยืดหยุ่นได้มากกว่าอินสแตนซ์ EC2 อินสแตนซ์ของ EC2 นั้นคาดว่าจะล้มเหลวและจะล้มเหลว
  2. ปริมาณ EBS ล้มเหลวเช่นกัน (มีเรื่องเศร้ามากมายในข่าว) และโดยทั่วไปมี I / O ที่ไม่ดี
  3. เว้นแต่ว่าคุณจะเลือกอินสแตนซ์ของการแย่งชิง I / O ที่ใหญ่ขึ้นอาจเป็นปัญหา (โดยเฉพาะถ้าคุณวางแผนที่จะวางไทล์บน EC2 แทนที่จะคัดลอกทับ) มันอาจเป็นปัญหากับฐานข้อมูล MTBtiles
  4. เมื่อใดก็ตามที่คุณรีบูทเซิร์ฟเวอร์ไอพีสาธารณะจะเปลี่ยน: สิ่งนี้จะไม่เกิดขึ้นบน Linode หรือ Rackspace
  5. คุณจะต้องมีการสำรองและกู้คืนกลยุทธ์ด้วยตัวเองในขณะที่ทั้ง Linode และ Rackspace มีจุดและคลิกสแนปชอตและคืนค่าอัตโนมัติรายวันและรายสัปดาห์
  6. หากโฮสต์ที่ใช้งาน VPS ของคุณล้มเหลว Rackspace จะดูแลการย้ายอินสแตนซ์ของคุณและรีสตาร์ทบนเซิร์ฟเวอร์อื่นและพวกเขาจะทำสิ่งนี้ใน 4 ชม. (อยู่ใน SLA) มันเกิดขึ้นกับฉันในขณะที่ฉันอยู่ในช่วงวันหยุดมันรู้สึกเป็นมืออาชีพมาก Linode ควรทำเช่นเดียวกัน
  7. Linode มี SLA ความพร้อมใช้งานที่ยอดเยี่ยม: 99.9% และพวกเขาอ้างว่ามีประสิทธิภาพที่ยอดเยี่ยมเพราะพวกเขาไม่ได้คาดการณ์มากเกินไป
  8. Rackspace เพิ่งมาพร้อมกับกลยุทธ์ด้านปริมาณเช่น EBS พื้นที่ดิสก์ไม่ควรเป็นปัญหาอีกต่อไป ก่อนหน้านี้หากคุณต้องการพื้นที่ดิสก์จำนวนมากที่คุณได้รับอินสแตนซ์ขนาดใหญ่ในขณะที่อยู่บน EC2 คุณสามารถจัดเก็บหน่วยความจำ cpu และหน่วยความจำด้วยการควบคุมที่ดีกว่า

ด้วยสิ่งนี้ฉันไม่ได้บอกว่า Amazon AWS ด้อยกว่าคนอื่นฉันแค่บอกว่าบางครั้งโซลูชันโฮสติ้งแบบดั้งเดิมสามารถปรับขนาดได้เช่นเดียวกับ Cloud Based ตัวอย่างที่น่าสังเกตคือเครือข่ายStackExchangeนั้นเอง


ดังนั้นในกรณีของคุณฉันจะเริ่มต้นอินสแตนซ์ขนาดใหญ่บน Rackspace แล้วโหลดข้อมูลทั้งหมดในอินสแตนซ์ Postgis ในเครื่อง จากนั้นหลังจากตั้งค่าเอ็นจิ้นการเรนเดอร์ฉันจะทำการแคช อินสแตนซ์ขนาดใหญ่จะทำให้กระบวนการการเพาะเสร็จเร็วพอที่จะไม่ทำให้แพงเกินไปในการทำงาน คุณสามารถจัดเก็บไทล์ใน fs, MTBtiles ได้แม้ใน S3 (btw คุณสามารถให้บริการข้อมูล S3 บน CDN ด้วยCloudFront )

หลังจากการ seed เสร็จสมบูรณ์ฉันจะรีบูตเซิร์ฟเวอร์และปรับขนาดเป็นอินสแตนซ์ขนาดเล็ก (อาจถึง 512MB) ณ จุดนั้นมันจะต้องให้บริการข้อมูลคงที่เท่านั้น


นี่คือคำตอบที่ค่อนข้างยาวดังนั้นฉันจะหยุดที่นี่ หากคุณต้องการให้ฉันอธิบายบางแง่มุมเพียงแค่ใส่ความคิดเห็น

ข้อจำกัดความรับผิดชอบ: ฉันไม่ได้มีส่วนเกี่ยวข้องกับ Rackspace, Linode หรือผู้ให้บริการอื่น ๆ ที่ฉันอ้างถึง


1
ขอบคุณสำหรับคำตอบเชิงลึกของคุณ คุณชี้ไปที่ปัญหาบางอย่างที่ฉันไม่ได้พิจารณา (เช่นการเปลี่ยนแปลง IP ของ EC2) ตัวเลือกมากมายให้เลือก ตอนนี้ฉันไม่ได้มองหาพลังคลาวด์ - ซีพียูจำนวนมากเนื่องจากฉันจะเป็นโฮสติ้งไทล์เรนเดอร์ที่แสดงผลล่วงหน้าเท่านั้น (ดังนั้นจึงไม่มี PostGIS เป็นต้น) แต่ความจุแบนด์วิธ (และความเร็ว) เป็นสิ่งสำคัญ
Igor Brejc

คำแนะนำที่ดี! สิ่งที่ฉันรู้มาตลอดหลายปีที่ผ่านมาก็คือคุณควรไปกับ AWS หากคุณจะใช้บริการอื่นของพวกเขาเช่นกัน หากคุณกำลังมองหา VM ในคลาวด์วิธีที่ดีที่สุดสำหรับผู้ให้บริการรายอื่นเช่น Digital Ocean, Linode เป็นต้นนี่จะเป็นวิธีที่ประหยัดกว่า
Devdatta Tengshe

5

ฉันใช้WebFactionเพื่อโฮสต์ข้อมูล GIS ในฐานข้อมูล Postgresql / PostGIS ด้วย MapServer และฉันคิดว่าบริการนี้ไม่มีใครเทียบได้กับราคา<$10ต่อเดือน หากคุณต้องการใช้ PostGIS 2.0 คุณต้องติดตั้งด้วยตัวเองซึ่งค่อนข้างยุ่งยาก แต่จะให้ PostGIS 1.5 เป็นค่าเริ่มต้น (คุณต้องเปิดตั๋วสนับสนุน) นี่คือบริการโฮสติ้งที่ใช้ร่วมกันบน CentOS ที่คุณมีความยืดหยุ่นในการติดตั้งทุกอย่างในส่วนของเซิร์ฟเวอร์ของคุณเอง

ฉันไม่ได้ใช้ Webfaction ในการให้บริการไทล์ แต่พวกเขามีพื้นที่ 100GB ฉันไม่แน่ใจว่า RAM จะแพงเกินไปหรือไม่เนื่องจากค่าเริ่มต้นคือ 256 MB (และ 256 บล็อกแต่ละบล็อกมีค่าใช้จ่ายเพิ่มเติม $ 7 ต่อเดือน)


บังเอิญมีการเชื่อมโยงผู้อ้างอิงเมื่อตอบคำถามเช่นนี้หรือไม่ มันไม่ได้มีอิทธิพลต่อมุมมองของฉันอย่างมีสติ แต่มันอาจเป็นไปได้ในทางทฤษฎี!
djq

1
ขอบคุณสำหรับคำใบ้ ราคาของ WebFaction ดูน่าดึงดูด น่าเสียดายที่พวกเขาไม่ได้ให้ข้อมูลเพิ่มเติมเกี่ยวกับแอพที่พวกเขาเสนอ การติดตั้ง PostGIS และ MapServer นั้นยากแค่ไหน BTW?
Igor Brejc

หาก PostGIS 1.5 เป็นสิ่งที่จำเป็นทั้งหมดนั่นเป็นเพียงตั๋วสนับสนุน PostGIS 2.0 นั้นไม่ยุ่งยากเกินไป แต่มันต้องการเพียงแค่การดาวน์โหลดและติดตั้งแพ็กเกจบางอย่างเช่น GDAL และอื่น ๆ เจ้าหน้าที่ฝ่ายช่วยเหลือนั้นคอยช่วยเหลือและตอบกลับอย่างรวดเร็ว (ฉันรู้ว่าฉันลบคำตอบบางคำเมื่อเขียนจะอัปเดต)
djq

1
ฉันเพิ่งติดตั้ง MapServer และ TinyOWS บนบัญชีเว็บโฮสติ้ง WebFaction ของฉัน ข้อมูลเชิงพื้นที่ของฉันถูกเก็บไว้ในฐานข้อมูล PostGIS 1.5 ในบัญชีโฮสต์เว็บเดียวกัน ฉันอธิบายขั้นตอนที่ฉันทำเพื่อให้บริการ MapServer WMS ทำงานได้ที่นี่: ลิงก์
jirikadlec2

5

ความเป็นไปได้อื่นที่ใช้ AWS:

คุณอาจต้องการใช้วิธี AWS Lambda Tiler ที่ Seth Fitzsimmons คิดค้นขึ้น เขาใช้มันสำหรับโครงการOpen Aerial Mapและฉันใช้มันสำหรับโครงการไคลเอนต์ส่วนตัวขณะทำงานที่ Stamen Design

มีบล็อกโพสต์อย่างละเอียดซึ่งผมเขียนเอกสารที่วิธีการตั้งค่าเป็นAWS แลมบ์ดาปูนบน Medium.com โปรดทราบว่าการโพสต์บล็อกครอบคลุมเฉพาะข้อมูลแรสเตอร์แบบเรียงต่อกัน แต่เรายังใช้กระบวนการนี้ที่ Stamen เพื่อขับเคลื่อนแผ่นแผนที่ภูมิประเทศ Terrain Classicทั่วโลกซึ่งสร้างขึ้นจากการรวมกันของข้อมูล OSM และ Natural Earth ผ่าน PostgreSQL, PostGIS, Mapnik และ CartoCSS

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


คำตอบที่ดี มีวิธีอัตโนมัติในการพัฒนาไทล์เวกเตอร์ด้วยบริการ AWS หรือไม่?
ปีศาจฝัน

ไม่แน่ใจว่าคุณหมายถึงอะไรโดย "อัตโนมัติ" แต่การสอนของ Brain Bancroft ในการตั้งค่าเซิร์ฟเวอร์ MVT โดยใช้ Tegola บน AWS เป็นวิธีการหนึ่งดังกล่าว: bancroft.io/blog/mvt-server-2
clhenrick

3

หากต้องการรับการกำหนดราคาโดยละเอียดสำหรับบริการ AWS คุณสามารถใช้เครื่องคิดเลขออนไลน์ได้ที่นี่: http://calculator.s3.amazonaws.com/calc5.html

สำหรับอินสแตนซ์ EC2 ขนาดเล็กที่ใช้ Linux ถ้าคุณยินดีที่จะยอมรับในหนึ่งปีคุณสามารถซื้ออินสแตนซ์สำรองที่จะมีราคาประมาณ $ 25 / เดือน เทียบกับประมาณ 44 / เดือนสำหรับการกำหนดราคาตามความต้องการหรือการกำหนดราคาที่ไม่มีสัญญา

ฉันคิดว่าคำตอบสั้น ๆ สำหรับคำถามของคุณคือหากคุณกำลังมองหาผู้ให้บริการโครงสร้างพื้นฐานที่จะดูแลความต้องการแอปพลิเคชันการทำแผนที่เว็บส่วนบุคคลของคุณ AWS อาจเกินความจำเป็น หากคุณกำลังมองหาผู้ให้บริการไอทีสำหรับแอพการผลิตโดยเฉพาะอย่างยิ่งหากพวกเขาต้องการ HA และความสามารถในการปรับขนาด AWS คือคำตอบของคุณ สิ่งนี้จะยิ่งเป็นจริงมากขึ้นถ้าคุณสร้างแอพที่ใช้ประโยชน์จากบริการกาวมากมายที่ AWS ให้เช่น SQS, SNS, SWF เป็นต้น

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


3

ฉันไม่ได้เป็นผู้เชี่ยวชาญที่มีความรู้มากหรือจริงๆเกี่ยวกับเรื่องนี้นอกจากฉันใช้งานเว็บเซิร์ฟเวอร์ใน amazon EC2 มาระยะหนึ่งแล้วดังนั้นนี่ไม่ใช่คำตอบ

ฉันไม่แน่ใจว่าคุณใช้เครื่องมือเหล่านี้เพื่อการใช้งานที่ดีที่สุดโดยการแสดงผลล่วงหน้าและอัปโหลด

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

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


1
ขอบคุณสำหรับคำตอบ. ฉันยอมรับการเรนเดอร์ล่วงหน้าไม่เหมาะ แต่การเรนเดอร์ตามต้องการต้องใช้ทรัพยากรแอประบบคลาวด์มากขึ้นซึ่งค่อนข้างแพงเช่นกัน ในสถานการณ์จำลองก่อนการแสดงผลเซิร์ฟเวอร์จะต้องดึงข้อมูลไทล์จากหน่วยเก็บ MBTiles (sqlite) และให้บริการดังนั้นคุณต้องใช้ CPU, ที่เก็บข้อมูลดิสก์น้อยลงและไม่มี RDBMS จริง และหากคุณ จำกัด ระดับการซูมสูงสุดให้อยู่ในระดับที่สามารถจัดการได้จะไม่มีการเรียงไทล์จำนวนมาก BTW ฉันได้อัพเดทคำถามของฉันแล้ว
Igor Brejc

0

ความจริงนั้นคุณสามารถไปรับ AWS ได้หากคุณใช้บริการต่าง ๆ ของพวกเขาเนื่องจาก AWS มีค่าใช้จ่ายค่อนข้างสูง หากคุณต้องการไปในราคาที่ถูกกว่าพร้อมกับผลประโยชน์แบบเดียวกันฉันขอแนะนำสำหรับhttps://fxdata.cloudหรือhttps://digitalocean.comเนื่องจากทั้งคู่มีบริการที่ประทับใจและราคาถูกที่สุด โดยทั่วไปคุณจะได้รับตัวเลือก OS และ DBMS ทั้งหมดที่มีความน่าเชื่อถือสูง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.