Я хотів би знати, які переваги та недоліки використання AWS OpsWorks проти AWS Beanstalk та AWS CLoudFormation?
Відповідь така: це залежить.
AWS OpsWorks та AWS Beanstalk - це (мені сказали) просто різні способи управління своєю інфраструктурою, залежно від того, як ви про це думаєте. CloudFormation - це просто спосіб шаблонізації вашої інфраструктури.
Особисто я більш знайомий з Elastic Beanstalk, але кожному свій. Мені більше подобається, оскільки він може здійснювати розгортання через Git. Загальнодоступною інформацією є те, що Elastic Beanstalk використовує CloudFormation під капотом для запуску своїх середовищ.
Для своїх проектів я використовую обидва в тандемі. Я використовую CloudFormation для створення спеціально налаштованого середовища VPC, сегментів S3 та таблиць DynamoDB, які я використовую для свого додатка. Потім я запускаю середовище Elastic Beanstalk всередині користувацького VPC, яке вміє розмовляти з ресурсами S3 / DynamoDB.
Мене цікавить система, яка може бути автоматично масштабована для обробки будь-якої великої кількості одночасних веб-запитів (від 1000 запитів на хвилину до 10 мільйонів об / хв.), Включаючи рівень бази даних, який також може бути автоматично масштабованим.
Під капотом OpsWorks та Elastic Beanstalk використовують EC2 + CloudWatch + Auto Scaling, який здатний обробляти навантаження, про які ви говорите. RDS забезпечує підтримку масштабованих баз даних на базі SQL.
Замість того, щоб мати окремий екземпляр для кожної програми, в ідеалі я хотів би ефективно розподіляти деякі апаратні ресурси. Раніше я використовував здебільшого екземпляр EC2 + RDS + Cloudfront + S3
Залежно від того, що ви маєте на увазі під " деякими апаратними ресурсами", ви завжди можете запускати окремі екземпляри EC2 поряд із середовищами OpsWorks або Elastic Beanstalk. В даний час Elastic Beanstalk підтримує один веб-додаток на кожне середовище. Я не пам’ятаю, що підтримує OpsWorks.
Система стеків буде розміщувати деякі рубіни з високим трафіком на програми для рейок, які ми переносимо з Heroku, а також деякі програми python / django та деякі програми PHP.
Все це повністю підтримується AWS. OpsWorks та Elastic Beanstalk оптимізували себе для цілого ряду середовищ розробки (Ruby, Python та PHP є у списку), тоді як EC2 надає необроблені сервери, де можна встановити все, що завгодно.