Как лучше всего разместить мобильное приложение React Native с бэкендом Django на AWS?

Я хочу создать мобильное приложение, используя React Native (фронтенд) и Django (бэкенд). Я никогда этого не делал, но в идеале мое приложение должно иметь простой фронтенд UI, который отображает данные, полученные от Django (бэкенд), который получает их из базы данных MySQL.

Я пытаюсь понять, как я могу разместить это на хостинге с помощью AWS, но у меня проблемы, поскольку я не могу найти такой же вопрос в Интернете. У меня много опыта программирования, но я новичок, когда дело доходит до реального развертывания кода.

Я могу думать об этом совершенно неправильно, я совсем запутался, поэтому любая помощь была бы очень полезна. Заранее спасибо!

Если вы хотите создать свой проект, используя правильный способ, вы должны изучить AWS, конечно. Это зависит от ваших требований, я думаю, у вас есть 2 варианта:

  1. Ознакомьтесь с AWS для настройки проекта, следуя лучшим практикам. Многое.
  2. Если вы хотите развернуть свое приложение самым быстрым способом. Вам просто нужно использовать экземпляр AWS.
  3. .

От простого к автомасштабированию:

Метод 1.

  • Создайте экземпляр EC2,
  • ssh к нему и настройте nginx + uwsgi (или аналогичный) как обычно.
  • .
  • Убедитесь, что вы создали экземпляр с публичным IP и направьте DNS на него.

Метод 2.

  • Создайте экземпляр EC2, как и раньше
  • .
  • Упакуйте ваш код django с nginx + uwsgi как контейнер docker и запустите его на экземпляре EC2.
  • .
  • Укажите DNS на экземпляр.

Метод 3.

  • Создайте кластер ECS
  • Упакуйте ваш код django с nginx + uwsgi как контейнер docker
  • .
  • Создайте службу и задачу-определение для запуска образа docker на кластере ECS.
  • Укажите DNS на IP-адрес экземпляра кластера.

Метод 4.

  • Создайте кластер ECS
  • .
  • Упакуйте ваш код django с nginx + uwsgi как контейнер docker.
  • .
  • Создайте службу и задачу-определение для запуска образа docker на кластере ECS.
  • Создайте балансировщик нагрузки ELB и прикрепите ваш сервис django в качестве слушателя к ELB,
  • .
  • Укажите ваш DNS на ELB.
  • Настройте автоматическое масштабирование, чтобы запустить новый экземпляр сервиса django, например, на CPU > 80% и памяти > 80%, установите сигналы для уменьшения масштаба на CPU/памяти < 40%
  • .

Метод 5.

  • Создайте кластер ECS
  • Упакуйте ваш код django с nginx + uwsgi как контейнер docker
  • .
  • Создайте задачу-определение для запуска образа docker на кластере ECS.
  • Создайте балансировщик нагрузки ELB
  • .
  • Создайте и запустите два (для избыточности) экземпляра Traefik для использования в качестве Ingress, подключите свои сервисы Traefik в качестве слушателей к ELB
  • .
  • Укажите DNS на ELB.
  • Добавьте метки docker для маршрутизации трафика к различным сервисам через Traefik.
  • Настройте сигналы автоматического масштабирования для запуска нового экземпляра сервиса django, например, на CPU > 80% и памяти > 80%, установите сигналы для уменьшения масштаба на CPU/памяти < 40%
  • .

Для базы данных Создайте управляемый экземпляр RDS, как вы уже поняли, это обычная база данных postgres/mysql, только управляемая AWS, так что вам не нужно делать это самостоятельно.

Вернуться на верх