Балансировщик нагрузки Google Cloud + Группа экземпляров + SSL-сертификаты

Балансировщик нагрузки Google Cloud + Группа экземпляров + SSL-сертификаты

Мой проект состоит из основного сайта, где пользователи могут зарегистрировать учетную запись. После регистрации каждый из них получает сайт (поддомен моего собственного домена), где у них есть интернет-магазин, управляемый платформой, размещенной на моем основном сайте (тот, на котором они зарегистрировались) Вот так

example1.com -> основной сайт (вход, регистрация и т. д.)
example1.com/platform -> платформа управления
store1.example1.com -> Магазин пользователя 1
store2.example1.com -> Магазин пользователя 2

А с точки зрения оборудования сейчас у меня такая настройка: 1 экземпляр виртуальной машины в GCP с Apache, пара виртуальных хостов с некоторыми подстановочными знаками, которые могут сопоставлять запрошенный домен с соответствующей папкой.
Я также сгенерировал подстановочный сертификат на своем основном домене, защищая все магазины моих клиентов с помощью SSL.

Теперь я хотел предотвратить перегрузку сервера с течением времени, поэтому я подумал, что балансировщик нагрузки, подключенный к группе машин, реплицированных с описанного выше экземпляра, решит мою проблему. Теоретически это работает, но у меня возникла проблема:

Каждый пользователь имеет право купить собственное доменное имя и перенаправить его на мой IP-адрес (LB или VM), чтобы его магазин выглядел примерно так:

store1.com -> Магазин пользователя 1
store2.com -> Магазин пользователя 2

И если они захотят, они могут «купить» SSL-сертификат на моей платформе, чтобы защитить свое доменное имя. Я могу легко управлять созданием SSL-сертификатов на лету через API certbot и letsencrypt, но, поскольку мои виртуальные машины будут работать в группе экземпляров, любой файл сертификата, который я сохраню на текущей работающей виртуальной машине, не будет реплицирован на другие (если таковые имеются) и даже может быть потерян, когда группа экземпляров решит, что ей больше не нужна эта текущая виртуальная машина. Как я могу организовать все (LB, группу экземпляров, виртуальную машину и/или Apache) так, чтобы балансировщик нагрузки отправлял трафик на несколько виртуальных машин в моей группе экземпляров, но они могли бы «общим» образом папку сертификатов или даже весь диск..?

Кстати, постоянный диск на виртуальных машинах можно подключить к нескольким виртуальным машинам, только если они находятся в режиме только для чтения (это не сработает), и я также пробовал Filestore, но он стоит 200 долларов в месяц, а это слишком много для этого.

решение1

Как отметил @JohnHanley:

Управляйте сертификатами на LB-setup и удалите certbot с веб-сервера. Будут некоторые накладные расходы с проверкой домена Google, но это определенно стоит попробовать.

Относительно конфигурации LB и сертификатов:

  • вы не можете изменить настроенный сертификат на LB
  • но вы можете добавить новый сертификат (например, с дополнительным именем хоста) и добавить его в существующий LB, а затем удалить старую настройку сертификата

Существуют некоторые модули Terraform, которые могли бы вам помочь, но, конечно, это также потребует определенных усилий по обучению и управлению.

Связанный контент