Chciałbym wiedzieć, jakie są zalety i wady korzystania z AWS OpsWorks w porównaniu z AWS Beanstalk i AWS CLoudFormation?
Odpowiedź brzmi: to zależy.
AWS OpsWorks i AWS Beanstalk to (jak mi powiedziano) po prostu różne sposoby zarządzania infrastrukturą, w zależności od tego, jak o tym myślisz. CloudFormation to po prostu sposób na tworzenie szablonów infrastruktury.
Osobiście bardziej jestem zaznajomiony z Elastic Beanstalk, ale dla każdego z nich. Wolę to, ponieważ może wykonywać wdrożenia przez Git. To publiczna informacja, że Elastic Beanstalk używa CloudFormation pod maską do uruchamiania swoich środowisk.
W swoich projektach używam obu w tandemie. Używam CloudFormation do konstruowania niestandardowego środowiska VPC, zasobników S3 i tabel DynamoDB, których używam w mojej aplikacji. Następnie uruchamiam środowisko Elastic Beanstalk wewnątrz niestandardowego VPC, które wie, jak rozmawiać z zasobami S3 / DynamoDB.
Interesuje mnie system, który można automatycznie skalować do obsługi dowolnej dużej liczby jednoczesnych żądań internetowych (od 1000 żądań na minutę do 10 milionów obrotów na minutę), w tym warstwę bazy danych, która może być również automatycznie skalowalna.
Pod maską OpsWorks i Elastic Beanstalk używają EC2 + CloudWatch + Auto Scaling, który jest w stanie obsłużyć ładunki, o których mówisz. RDS zapewnia obsługę skalowalnych baz danych opartych na języku SQL.
Zamiast mieć osobną instancję dla każdej aplikacji, najlepiej byłoby wydajnie udostępniać niektóre zasoby sprzętowe. W przeszłości korzystałem głównie z instancji EC2 + RDS + Cloudfront + S3
W zależności od tego, co rozumiesz przez „ niektóre zasoby sprzętowe”, zawsze możesz uruchamiać samodzielne instancje EC2 wraz ze środowiskami OpsWorks lub Elastic Beanstalk. Obecnie Elastic Beanstalk obsługuje jedną aplikację internetową na każde środowisko. Nie pamiętam, co obsługuje OpsWorks.
System stosu będzie hostował niektóre aplikacje Ruby o dużym ruchu na railsach, które migrujemy z Heroku, a także niektóre aplikacje Python / django i niektóre aplikacje PHP.
Wszystko to jest w pełni obsługiwane przez AWS. OpsWorks i Elastic Beanstalk zoptymalizowały się pod kątem szeregu środowisk programistycznych (Ruby, Python i PHP są na liście), podczas gdy EC2 zapewnia surowe serwery, na których można zainstalować wszystko, co chcesz.