ทุกสิ่งที่คุณกล่าวถึงเช่นการทำโหลดบาลานซ์การตรวจสอบและการปรับขนาดอัตโนมัติเป็นข้อดีอย่างแน่นอน
อย่างไรก็ตามคุณต้องคิดอย่างนี้: ในPlatform as a Service (PAAS) ที่แท้จริงเป้าหมายคือการแยกแอปพลิเคชันออกจากแพลตฟอร์ม ในฐานะนักพัฒนาคุณเพียงกังวลเกี่ยวกับแอปพลิเคชันของคุณ คุณ "เช่าแพลตฟอร์ม" แล้ว "อินสแตนซ์" ของแพลตฟอร์มจะได้รับการอัปเดตดูแลจัดการปรับขนาดสมดุล ฯลฯ ให้คุณโดยอัตโนมัติ คุณเพียงแค่อัปโหลดไฟล์ WAR ของคุณและมันก็ใช้งานได้ (อย่างน้อยก็ในทางทฤษฎี)
EC2 โดยตัวมันเองไม่ใช่ PAAS เป็นเหมือน IAAS ( โครงสร้างพื้นฐานเป็นบริการ ) มากกว่า คุณยังคงต้องดูแลอินสแตนซ์เซิร์ฟเวอร์ติดตั้งซอฟต์แวร์อัปเดตอยู่เสมอ ฯลฯ
Elastic Beanstalk เป็นระบบ PAAS ดังนั้นApp EngineและAzureในหมู่อื่น ๆ อีกมากมาย
ในระบบ PAAS จริง DBMS เป็นคอมโพเนนต์ที่แยกจากเว็บแอ็พพลิเคชันเซิร์ฟเวอร์ เหตุผลที่ชัดเจน: ไม่สามารถติดตั้ง DBMS บนอินสแตนซ์ที่ใช้สำหรับแอ็พพลิเคชันเซิร์ฟเวอร์ได้เนื่องจากอินสแตนซ์ถูกสร้างและทำลายตามปริมาณการใช้งานของคุณ DBMS จะหายไป! การมี DBMS และแอ็พพลิเคชันเซิร์ฟเวอร์บนเครื่อง / อินสแตนซ์เดียวกันโดยทั่วไปไม่ใช่ความคิดที่ดี
ในระบบ PAAS DBMS เป็นบริการแยกต่างหาก สำหรับ Amazon ก็จะAmazon RDS เช่นเดียวกับ Elastic Beanstalk ที่คุณไม่ต้องกังวลเกี่ยวกับแอ็พพลิเคชันเซิร์ฟเวอร์และคุณเพียงแค่อัปโหลดไฟล์ WAR ของคุณด้วย RDS คุณไม่ต้องกังวลเกี่ยวกับ DBMS และคุณเพียงแค่ปรับใช้ฐานข้อมูลของคุณ
Elastic Beanstalk และ RDS ทำงานร่วมกันได้เป็นอย่างดีโดยเฉพาะเมื่อใช้งานในโซนความพร้อมใช้งานเดียวกันซึ่งเวลาแฝงจะต่ำมาก
สุดท้ายการใช้ Elastic Beanstalk ไม่เสียค่าใช้จ่ายมากไปกว่าทรัพยากรที่ปรับใช้ (อินสแตนซ์ EC2 และตัวโหลดบาลานเซอร์) อย่างไรก็ตาม RDS นั้นไม่ถูกและจะแพงกว่าการใช้อินสแตนซ์ EC2 เดียวสำหรับทั้งแอ็พพลิเคชันเซิร์ฟเวอร์และ DBMS