У меня есть относительно простое веб-приложение, состоящее из двух контейнеров Docker, работающих вместе. В одном контейнере размещается веб-сервер, а в другом - программное обеспечение для рендеринга изображений.
На моей машине разработки он работает безупречно, используя docker-compose
.
Для производства это приложение будет использовать Amazon SES и некоторая база данных, например Amazon DynamoDB. В этой комбинации сами контейнеры не нуждаются в постоянном хранилище. Из-за этих сервисов моя первая мысль, очевидно, состоит в том, чтобы использовать Amazon EC2 для размещения приложения.
Мои основные цели сейчас:
В начале запуска веб-сайта я ожидаю, что один экземпляр EC2 легко справится с нагрузкой, возможно, с пиками двух или трех экземпляров EC2 в праздничные дни.
Собственное решение Amazon для хостинга Docker (с балансировщиком нагрузки и автоматическим масштабированием) выглядело очень многообещающим, но, будучи новичком в Amazon, я не смог заставить эту вещь работать, в том числе из-за того, что конфигурация выглядит очень сложной, и вам нужно собрать части самостоятельно .
Я хорошо знаком с другими типами кластеров (в основном на основе Proxmox), но все же Amazon Web Services выглядит сложным (по крайней мере, консоль конфигурации).
Есть ли какое-нибудь альтернативное решение, которое упростит это?
Я потратил много времени на изучение Docker Cloud / Tutum (кажется дорогим), Docker Swarm, Rancher и других (большинство из них - «бета»), но все еще не понимаю, какой путь выбрать.
Как бы вы развернули такое приложение?
Если у вас уже все работает локально, просто посмотрите на докер-машину. С помощью всего лишь набора ключей API от предпочитаемого вами поставщика ваш docker compose будет запускаться в производственном развертывании: https://docs.docker.com/machine/drivers/
Oreilly только что выпустил электронную книгу на эту тему: https://exoscale.ch/docker-in-the-cloud