Что может быть лучшим способом для автоматического развертывания моего приложения c на AWS? - PullRequest
1 голос
/ 13 марта 2020

У меня есть приложение, созданное в Django и React, но есть несколько проблем, с которыми я сталкиваюсь в основном: -

  1. Поскольку у меня будет большая база данных (postgres ) исключительно для одного пользователя, я создаю различный экземпляр AWS (t2.micro) для каждого пользователя. (мы начинаем настолько экономно, что используем t2.micro)

  2. Когда появляется новый пользователь, мне нужно go и вручную установить postgres, настроить nginx и другие важные вещи, и это только для Django в EC2, я даже не говорю о React в S3.

Решения, которые я ищу: -

  1. Если есть способ автоматически создать экземпляр AWS EC2 и развернуть бэкенд, то же самое для AWS S3 и развернуть внешний интерфейс, когда есть новый пользователь.
  2. Есть много вещей что я буду работать, когда начнется бэкэнд, а именно: Huey, установка Postgres и создание для него пользователя, установка Redis, миграция и другие тривиальные вещи. Есть ли способ автоматизировать каждую вещь?

На что нужно обратить внимание: -

Мы - стартап и не можем сильно зависеть от платных услуг. Пожалуйста, не просите меня использовать один сервер для каждого пользователя, так как мы используем сторонние apis для получения данных и столкнемся с проблемами, если будет больше пользователей, запрашивающих один и тот же IP, это также сильно загружает ОЗУ.

Любое предложение будет с благодарностью.

Ответы [ 3 ]

1 голос
/ 13 марта 2020

Вы можете делать все, что вам нужно:

  1. Создание AMI . Я бы собрал AMI со всеми предустановленными пакетами. Вы даже можете сделать это, создав вручную экземпляр EC2, а затем создав из него AMI.
  2. Используя CloudFormation Вспомогательные скрипты EC2 . Я бы использовал сценарии инициализации EC2 для запуска всех сценариев для каждого экземпляра в экземпляре, настроенном с помощью AMI, созданного в (1).
  3. Вы даже можете использовать Пользовательские ресурсы CloudFormation для копирования объектов в S3.
0 голосов
/ 18 марта 2020

Кстати, это вспомогательный скрипт, который я написал, если кто-то хотел знать -

#!/bin/bash


ip_add=`curl wgetip.com`

echo $ip_add

echo 'server {
listen 80;
  server_name '$ip_add';

location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/ubuntu/ThanosThriveAWS/Thanos;
}

    location / {
    include proxy_params;
    proxy_pass http://unix:/home/ubuntu/ThanosThriveAWS/Thanos/Thanos.sock;
    }
}
' >> /home/ubuntu/scripts/new_gunicorn

sudo cp /home/ubuntu/scripts/new_gunicorn /etc/nginx/sites-available/gunicorn
sudo systemctl restart nginx
0 голосов
/ 13 марта 2020

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...