Wszystkie wymienione rzeczy, takie jak równoważenie obciążenia, monitorowanie i automatyczne skalowanie to zdecydowanie atuty.
Musisz jednak myśleć w ten sposób: w prawdziwym Platform as a Service (PAAS) celem jest oddzielenie aplikacji od platformy. Jako programista martwisz się tylko o swoją aplikację. Platforma jest "wynajęta" dla ciebie. Platformy "instancje" są automatycznie aktualizowane, administrowane, skalowane, zrównoważone itp. Po prostu wgrasz plik WAR i działa on (przynajmniej teoretycznie).
EC2 samo w sobie nie jest PAAS. Jest bardziej podobny do IAAS (Infrastructure as a Service). Nadal musisz zadbać o instancje serwera, instalować na nich oprogramowanie, aktualizować je itp.
Elastic Beanstalk to system PAAS. Tak więc są App Engine i Azure wśród wielu innych.
W prawdziwym systemie PAAS, DBMS jest oddzielnym komponentem z serwera (serwerów) aplikacji WWW. Powód jest oczywisty: DBMS nie może być zainstalowany na instancjach, które są używane dla serwera aplikacji, ponieważ, gdy instancje są tworzone i niszczone w oparciu o ruch, DBMS byłby stracony! Posiadanie DBMS i serwera aplikacji na tym samym komputerze/instancji i tak nie jest dobrym pomysłem.
W systemie PAAS DBMS jest osobną usługą. W przypadku Amazon byłoby to Amazon RDS. Podobnie jak w przypadku Elastic Beanstalk, gdzie nie musisz martwić się o serwer aplikacji, a po prostu przesłać plik WAR, z RDS, nie musisz martwić się o DBMS i po prostu wdrożyć swoje bazy danych.
Elastic Beanstalk i RDS działają bardzo dobrze razem, szczególnie gdy są rozmieszczone w tej samej strefie dostępności, gdzie opóźnienie byłoby bardzo niskie.
Wreszcie, użycie Elastic Beanstalk nie kosztuje nic więcej niż wdrożone zasoby (instancje EC2 i system równoważenia obciążenia). Jednak RDS nie jest tani i na pewno będzie droższy niż użycie pojedynczej instancji EC2 zarówno dla serwera aplikacji, jak i DBMS.
Ładnie ułożyć. Po prostu: możesz określić niestandardowy AMI, który będzie służyć jako baza dla każdego tworzenia instancji. Możesz na przykład dostosować obraz Apache do wszystkich wymaganych konfiguracji i aplikacji i użyć go jako podstawowego AMI (istnieje niestandardowe pole ID AMI w konfiguracji środowiska Beanstalk). Mimo to dane generowane przez środowisko wykonawcze zostaną faktycznie usunięte przy każdym zakończeniu instancji (a load balancer to zrobi!). –
Jedną z rzeczy, która mnie zaskoczyła, był fakt, że Elastic Beanstalk tworzy system równoważenia obciążenia dla każdego wdrażanego środowiska. Równoważniki obciążenia nie są naprawdę drogie, ale kosztują mniej więcej tyle samo, co mikroinstalacja. –
@KenLiu, Load Balancer jest silniejszy niż mikro instancja. – BigSack