Ich möchte wissen, welche Vor- und Nachteile die Verwendung von AWS OpsWorks gegenüber AWS Beanstalk und AWS CLoudFormation hat.
Die Antwort lautet: es kommt darauf an.
AWS OpsWorks und AWS Beanstalk sind (wie mir gesagt wurde) einfach verschiedene Arten der Verwaltung Ihrer Infrastruktur, je nachdem, wie Sie darüber denken. CloudFormation ist einfach eine Möglichkeit, Ihre Infrastruktur mit Vorlagen zu versehen.
Persönlich kenne ich Elastic Beanstalk besser, aber jeder für sich. Ich bevorzuge es, weil es Bereitstellungen über Git durchführen kann. Es ist eine öffentliche Information, dass Elastic Beanstalk CloudFormation unter der Haube verwendet, um seine Umgebungen zu starten.
Für meine Projekte verwende ich beide zusammen. Ich verwende CloudFormation, um eine benutzerdefinierte VPC-Umgebung, S3-Buckets und DynamoDB-Tabellen zu erstellen, die ich für meine App verwende. Dann starte ich eine Elastic Beanstalk-Umgebung innerhalb der benutzerdefinierten VPC, die weiß, wie man mit den S3 / DynamoDB-Ressourcen spricht.
Ich interessiere mich für ein System, das automatisch skaliert werden kann, um eine hohe Anzahl gleichzeitiger Webanforderungen (von 1000 Anforderungen pro Minute bis 10 Millionen U / min) zu verarbeiten, einschließlich einer Datenbankebene, die ebenfalls automatisch skalierbar sein kann.
Unter der Haube verwenden OpsWorks und Elastic Beanstalk EC2 + CloudWatch + Auto Scaling, das in der Lage ist, die Lasten zu bewältigen, über die Sie sprechen. RDS bietet Unterstützung für skalierbare SQL-basierte Datenbanken.
Anstatt für jede App eine eigene Instanz zu haben, möchte ich im Idealfall einige Hardwareressourcen effizient gemeinsam nutzen. In der Vergangenheit habe ich hauptsächlich eine EC2-Instanz + RDS + Cloudfront + S3 verwendet
Je nachdem, was Sie unter " einigen Hardwareressourcen" verstehen , können Sie neben OpsWorks- oder Elastic Beanstalk-Umgebungen jederzeit eigenständige EC2-Instanzen starten. Derzeit unterstützt Elastic Beanstalk eine Webanwendung pro Umgebung. Ich kann mich nicht erinnern, was OpsWorks unterstützt.
Das Stack-System wird einige stark frequentierte Ruby-on-Rails-Apps hosten, die wir von Heroku migrieren, sowie einige Python / Django-Apps und einige PHP-Apps.
All dies wird von AWS vollständig unterstützt. OpsWorks und Elastic Beanstalk haben sich für eine Reihe von Entwicklungsumgebungen optimiert (Ruby, Python und PHP sind alle auf der Liste), während EC2 Raw-Server bereitstellt, auf denen Sie alles installieren können, was Sie möchten.