Каков наилучший способ маршрутизации путей в AWS? - PullRequest
1 голос
/ 19 марта 2019

Меня зовут Диего, и это мой первый вопрос на сайте. Я аргентинка, так что, извините за мой плохой английский.

Я был представлен в Amazon Web Services (AWS) четыре месяца назад и работал с такими сервисами, как EC2, S3, Route53, IAM и т. Д.

Теперь у меня есть следующий сценарий:

  • EC2 (1) с веб-сайтом, основанным на React (внешний интерфейс) и Node.js (внутренний интерфейс)
  • EC2 (2) с веб-приложением на основе React Native и Express.js

В Route53 я зарегистрировал domain.com , указывающий на первый EC2 (веб-сайт, на порт 80 ), а веб-приложение работает на втором EC2, на порт 3000 .

После нескольких дней поиска и прочтения (я дам ссылки в конце поста) я пришел сюда, чтобы решить сомнение.

Вопрос в следующем:

Когда я зайду на domain.com , я зайду на веб-сайт, поэтому некоторые пути, такие как / home, / services, / ourworks, / team и т. Д. будут быть частью этого. Но ... Если слово, которое следует за чертой, не относится к этому, мне нужно отправить пользователя на второй EC2 через порт 3000 , то есть веб-приложение . После этого веб-приложение узнает, что делать с маршрутом.

Итак ...

Каков наилучший способ маршрутизации этого сценария?

Я читал о:

-Используйте .htaccess для маршрутизации и портов. Это было хорошо в последнем сценарии, когда веб-сайт был сайтом Wordpress, но теперь он основан на React и Nodejs, поэтому мы больше не используем Apache, поэтому это решение для меня бесполезно.

-Используйте маршрутизацию Application Load Balancer (ALB). Это хорошо, но цена на эту услугу настолько высока, что я не могу использовать это сейчас.

-Используйте маршрутизацию службы API Gateway , но после прочтения я не могу найти официальную документацию о том, как напрямую маршрутизировать API-шлюз на сервер EC2. Вся документация говорит об API REST или API с WebSockets, с сервисом DynamoDB или Lambda. Ничто из этого не полезно для меня. Я не могу понять, как использовать API Gateway для моей покупки.

-Используйте NGINX на EC2, который domain.com указывает, и проложите маршруты из этой точки. Возможно, это хорошее решение, но я никогда не работал с этим программным обеспечением.

Итак, я сейчас в замешательстве. Кто-нибудь может сказать мне, какое решение для моей проблемы является лучшим и почему? Я буду очень признателен за это.


Ссылки, которые я прочитал в эти дни:

- Перенаправление с помощью htaccess в приложение nodejs (я не знаю, является ли использование Apache хорошим решением)

- https://www.reddit.com/r/aws/comments/71lz5v/applications_routing_based_on_url/ (Это хороший пост на Reddit)

- https://aws.amazon.com/es/blogs/aws/new-host-based-routing-support-for-aws-application-load-balancers/ (используйте ALB и тратьте много денег, хаха)

- AWS Route 53 - Маршрут доменного имени к различным портам балансировщика нагрузки приложения (больше ALB, но это так интересно)

- https://forums.aws.amazon.com/thread.jspa?threadID=152643 (Этот сценарий наиболее похож на мой, но бедняк так и не получил ответа)

Ну, спасибо всем за прочтение и, если я нарушил какое-либо правило на форуме, пожалуйста, прости меня. До свидания! :)

1 Ответ

0 голосов
/ 20 марта 2019

привет из Колумбии =)

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

https://nodesource.com/blog/running-your-node-js-app-with-systemd-part-1/ https://nodesource.com/blog/running-your-node-js-app-with-systemd-part-2/

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

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