Pull to refresh

Comments 11

Один вопрос. Как масштабироваться будете?
Вот у вас взлетел ваш проект и завтра к вам пришли 100000 уников. И ваш сайт приказал долго жить.
Я не работал с DO, поэтому предложил бы использовать AWS ECS. ECS (Elastic container service) это некий аналог кубернетеса от AWS. Запаковываете ваш ларавел в докер контейнер, создаете ECS кластер, таск дефинишн для сервиса, сервис с лоад балансером, пихаете всё это хозяйство туда. Тип раннеров fargate.
Монтируете AWS EFS (Elastic file storage) в места контейнера где нужен persistent storage (типа /var/www/data — но лучше бы все хранить в базах. Например в аналоге монги — Dynamodb).
Создаете RDS под базу данных, добавляете в переменные окружения креды для подключения.
Закрываете все снаружи AWS Cloudfront.
Все, вы восхитительны. По деньгам с учетом AWS Free tier будет стоить также, но ВСЮ инфру можно описать через тот же terraform или CloudFormation, а также например настроить пайплайны для автоматизации деплоя изменений laravel. Я уж не говорю о том что если проект выстрелит, то масштабировать его сможете за 15 минут с перекурами под любую нагрузку.
А если уж говорить про ваш метод — то и тут лучше бы воспользоваться terraform+ansible например.
Ручные изменения на любом сервере — зло.


Все вышесказанное является моим личным мнением и никоим образом не принижает нужности вашей статьи. К сожалению, многие все еще делают так)

Автор все-таки решал конкретную задачу — хостинг своего портфолио. А не хостинг проекта, который может выстрелить и потребовать масштабирования.

Тоже верно. Для портфолио даже то, что я сделал — оверкилл. Моё старое было на Gatsby и хостилось на бесплатных мощностях Zeit Now/Vercel.

Я не говорю, что мой подход, — production-ready best practice. Я сам новичок во всем этом. Спасибо за предложение, я обязательно разберусь. Вполне возможно, ваш вариант лучше.

<paranoiac_mode> Я бы еще посоветовал поменять стандартный порт ssh и обрубить все ненужные соединения, оставить только nginx allow </paranoiac_mode>

Предоставляем root доступ к laravel: GRANT ALL ON laravel.* TO 'root'@'localhost' IDENTIFIED BY '<Ваш пароль от MySQL>';


Это излишне, у рута и так все права на эту базу есть. Лучше создать отдельного пользователя и ему давать права

1. все компоненты php можно б поставить и одной командой.
2. насколько я помню, cerbot сам вносит изменения в конфиг nginx

Для новичка норм пойдет, пару лет назад пришлось попопеть над таким.

Один вопрос — почему не докер? Чтобы не проделывать все те же действия при смене поставщика услуг? Тот же docker-compose up проще будет чем повторение всех этих действий.
Взять тот же scaleway с более дешевым тарифом и приватным регистри

Можно автоматически повторять все эти действия тем же Ansible-плейбуком например
Не понятно за что человеку минус поставили, сам разбираюсь с докером, хотелось бы узнать чем докер в продакшене будет хуже?
Если попрактиковаться с настройкой Linux-сервера и установкой фреймворка — нормально.

Но с точки разумной достаточности можно было взять shared hosting, например на Beget-е. Там прекрасно устанавливается Laravel (в справочном разделе хостера есть отдельная статья на эту тему). Получите, условно говоря, вдвое больше возможностей за вдвое меньшие деньги.
Sign up to leave a comment.

Articles