Я хотел бы знать, каковы преимущества и недостатки использования AWS OpsWorks по сравнению с AWS Beanstalk и AWS CloudFormation?
Меня интересует система, которая может быть автоматически масштабирована для обработки любого большого количества одновременных веб-запросов (от 1000 запросов в минуту до 10 миллионов об / мин.), Включая уровень базы данных, который также может быть автоматически масштабируемым.
Вместо того, чтобы иметь отдельный экземпляр для каждого приложения, в идеале я хотел бы эффективно использовать некоторые аппаратные ресурсы. Раньше я использовал в основном экземпляр EC2 + RDS + Cloudfront + S3
В стековой системе будут размещаться некоторые приложения с высоким трафиком ruby on rails, которые мы переносим с Heroku, а также некоторые приложения python / django и некоторые приложения PHP.
Заранее спасибо.
Ответы:
Ответ: это зависит от обстоятельств.
AWS OpsWorks и AWS Beanstalk - это (как мне сказали) просто разные способы управления вашей инфраструктурой, в зависимости от того, как вы к этому относитесь. CloudFormation - это просто способ шаблонизировать вашу инфраструктуру.
Лично я больше знаком с Elastic Beanstalk, но каждому свое. Я предпочитаю его, потому что он может развертывать через Git. Общеизвестно, что Elastic Beanstalk использует CloudFormation для запуска своих сред.
В своих проектах я использую оба в тандеме. Я использую CloudFormation для создания настраиваемой среды VPC, сегментов S3 и таблиц DynamoDB, которые я использую для своего приложения. Затем я запускаю среду Elastic Beanstalk внутри настраиваемого VPC, которая знает, как общаться с ресурсами S3 / DynamoDB.
Под капотом OpsWorks и Elastic Beanstalk используют EC2 + CloudWatch + Auto Scaling, что позволяет справляться с нагрузками, о которых вы говорите. RDS обеспечивает поддержку масштабируемых баз данных на основе SQL.
В зависимости от того, что вы подразумеваете под « некоторыми аппаратными ресурсами», вы всегда можете запускать автономные экземпляры EC2 вместе со средами OpsWorks или Elastic Beanstalk. В настоящее время Elastic Beanstalk поддерживает одно веб-приложение для каждой среды. Я не помню, что поддерживает OpsWorks.
Все это полностью поддерживается AWS. OpsWorks и Elastic Beanstalk оптимизированы для множества сред разработки (в списке есть Ruby, Python и PHP), а EC2 предоставляет необработанные серверы, на которых вы можете установить все, что захотите.
источник
OpsWorks - это инструмент оркестровки, подобный Chef - фактически, он происходит от Chef - Puppet, Ansible или Saltstalk. Вы используете Opsworks, чтобы указать состояние, в котором вы хотите, чтобы ваша сеть находилась, указав состояние, в котором вы хотите, чтобы каждый ресурс - экземпляры сервера, приложения, хранилище - находился. И вы указываете состояние, в котором вы хотите, чтобы каждый ресурс находился в указав значение, которое вы хотите для каждого атрибута этого состояния. Например, вы можете захотеть, чтобы служба Apache всегда работала и запускалась при загрузке с Apache в качестве пользователя и Apache в качестве группы Linux.
CloudFormation - это шаблон json (**), который определяет состояние ресурсов, которые вы хотите развернуть, т.е. вы хотите развернуть экземпляр AWS EC2 micro t2 в us-east-1 как часть VPC 192.168.1.0/24. . В случае экземпляра EC2 вы можете указать, что должно работать на этом ресурсе, с помощью вашего настраиваемого сценария bash в разделе пользовательских данных ресурса EC2. CloudFormation - это просто шаблон. Шаблон становится работающим ресурсом только в том случае, если вы запустите его либо через Консоль управления AWS для CloudFormation, либо если вы запустите команду aws cli для Cloudformation, то есть aws cloudformation ...
ElasticBeanstalk - это PAAS - вы можете загружать определенные приложения Ruby / Rails, node.js или Python / django или Python / Flask. Если вы используете что-то еще, например Scala, Haskell или что-то еще, создайте для него образ Docker и загрузите этот образ Docker в Elastic Beanstalk (*).
Вы можете загрузить свое приложение в Elastic Beanstalk, запустив aws cli для CloudFormation или создав рецепт для Opsworks для загрузки вашего приложения в Elastic Beanstalk. Вы также можете запустить aws cli для Cloudformation через Opsworks.
(*) На самом деле документация AWS по примеру приложения Ruby была настолько скудной, что я потерял терпение и встроил пример приложения в образ Docker и загрузил образ Docker в Elastic Beanstalk.
(**) По состоянию на сентябрь 2016 г. Cloudformation также поддерживает шаблоны YAML.
источник
В Opsworks вы можете совместно использовать «роли» слоев в стеке, чтобы использовать меньше ресурсов, комбинируя определенные задания, которые может выполнять базовый экземпляр.
Список совместимости слоев (при условии, что группы безопасности установлены правильно):
HA Proxy : custom, db-master, and memcached. MySQL : custom, lb, memcached, monitoring-master, nodejs-app, php-app, rails-app, and web. Java : custom, db-master, and memcached. Node.js : custom, db-master, memcached, and monitoring-master PHP : custom, db-master, memcached, monitoring-master, and rails-app. Rails : custom, db-master, memcached, monitoring-master, php-app. Static : custom, db-master, memcached. Custom : custom, db-master, lb, memcached, monitoring-master, nodejs-app, php-app, rails-app, and web Ganglia : custom, db-master, memcached, php-app, rails-app. Memcached : custom, db-master, lb, monitoring-master, nodejs-app, php-app, rails-app, and web.
ссылка: http://docs.aws.amazon.com/opsworks/latest/userguide/layers.html
источник
AWS Beanstalk: это развертывание и управление приложениями в облаке AWS, не беспокоясь об инфраструктуре, в которой работают ваши веб-приложения с помощью Elastic Beanstalk. Не нужно беспокоиться о EC2 или инсталляциях.
AWS OpsWorks AWS OpsWorks - это не что иное, как служба управления приложениями, которая позволяет новым пользователям DevOps моделировать и управлять всем своим приложением.
источник
AWS CloudFormation - создавайте и обновляйте свои среды.
AWS Opsworks - управляйте своими системами внутри этих сред, как мы с Chef или Puppet
AWS Beanstalk - создание, управление и развертывание.
Но лично мне нравятся CloudFormation и OpsWorks, поскольку они используют все свои возможности для того, для чего они предназначены.
Используйте CloudFormation для создания своей среды, после чего вы можете вызвать Opsworks из сценариев формирования облака, чтобы запустить свой компьютер. Тогда у вас будет стек Opsworks для управления им. Например, добавьте пользователя в окно Linux с помощью Opsworks или выполните исправление ваших ящиков с помощью рецептов шеф-повара. Вы также можете записать рецепты повара для развертывания. В противном случае вы можете использовать CodeDeploy специально для развертывания.
источник
AWS OpsWorks - это часть службы управления AWS. Помогает настроить приложение с помощью скриптов. Он использует Chef в качестве платформы DevOps для управления этим приложением и работы с ним. Есть шаблоны, которые можно использовать для настройки сервера, базы данных, хранилища. Шаблоны также можно настроить для выполнения любой другой задачи. DevOps Engineers контролируют зависимости и инфраструктуру приложений.
AWS Beanstalk - предоставляет среду для таких языков, как Java, Node Js, Python, Ruby Go. Elastic Bean stalk предоставляет ресурс для запуска приложения. Разработчикам не нужно беспокоиться об инфраструктуре, и у них нет контроля над инфраструктурой.
AWS CloudFormation - CloudFormation содержит образцы шаблонов для упорядоченного управления ресурсами AWS.
источник
Как отмечали многие другие, AWS Beanstalk, AWS OpsWorks и AWS Cloud Formation предлагают разные решения для разных проблем.
Для того, чтобы выполнить
I am interested in a system that can be auto scaled to handle any high number of simultaneous web requests (From 1000 requests per minute to 10 million rpm.), including a database layer that can be auto scalable as well.
Учитывая, что вы находитесь в процессе миграции, я настоятельно рекомендую вам взглянуть на решение AWS Lambda и AWS DynamoDB (или гибридное).
Оба они предназначены для простого автоматического масштабирования и могут быть очень дешевым решением.
источник
Просто используйте terraform и ECS или EKS.
opsworks, эластичный бобовый стебель и облачная формация - старые технологии. -)
источник