веб-сервисы amazon — Самый простой способ развернуть простое PHP-приложение AWS Beanstalk без каких-либо PHP-фреймворков, используя RDS + ElastiCache для данных

Надеюсь, кто-то может указать мне. Google не дает ничего, что просто понять (есть такие вещи, как Pheanstalk и т. Д.), И Собственная документация Amazon по Beanstalk как всегда печально загадочно предполагать, что мы используем Laravel или Symfony2.

У нас есть простой набор из 10 PHP-скриптов, составляющих весь наш «сайт», с быстрым функциональным программированием. В нашем тестировании это было намного быстрее, чем делать то же самое с ненужным ООП. В любом случае, с PHP 7 мы очень довольны простым функциональным кодом, который у нас есть.

Мы могли бы пойти по маршруту EC2. Нагрузка на два сервера EC2 сбалансирована с помощью ELB. На обоих серверах EC2 просто Nginx работает с PHP-FPM и вызывает данные RDS для данных (ElastiCache для некоторой скорости кэширования запросов только для чтения).

Однако идея состоит в том, чтобы снизить затраты на управление для EC2, полагаясь на Beanstalk для простой обработки, которая необходима в этих 10 PHP-скриптах.

Думаем ли мы правильный путь? Легко ли «загружать» скрипты в Beanstalk так, как мы делаем в EC2 через SSH или SFTP? Или это только программно доступно через git и т. Д.?

1

Решение

Вы можете легко скопировать свою среду EC2 в Elastic Beanstalk, используя контейнеры Docker.

Создайте Docker-контейнер, содержащий необходимые пакеты (nginx и т. Д.), Любые файлы конфигурации и ваши PHP-скрипты. Затем вы развернете контейнер в Beanstalk.

С Beanstalk вы можете определить переменные среды которые передаются в базовые экземпляры EC2, где запущено ваше приложение. Как правило, можно использовать переменные среды для передачи, например, имени хоста RDS, имени пользователя и пароля в приложение Beanstalk.

Кроме того, вы можете хранить Dockerfile, файлы конфигурации и скрипты в вашем git-репозитории для контроля версий и извлекать их при каждом создании контейнера.

См. Документацию AWS о развертывание приложения beanstalk из контейнеров Docker.

1

Другие решения

Других решений пока нет …