Nano Hash - криптовалюты, майнинг, программирование

Я хочу развернуть многоуровневое веб-приложение в AWS, но не понимаю, как его настроить

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

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

Я установил небольшое доказательство концепции, делая это. Веб-сервер обслуживает контент, затем у меня есть еще одно экспресс-приложение для прослушивания порта 3000, клиент отправляет запрос на порт 3000, а затем просто отправляет то же самое обратно на сервер приложений.

Это моя текущая настройка с веб-серверами, на которых размещены два сервера. Один для обслуживания интерфейса на порту 80 и один для приема запросов на порту 3000. Сервер, прослушивающий порт 3000, перенаправляет все запросы на сервер приложений ALB (по сути, это копия всех тех же маршрутов на сервере приложений, но он просто перенаправляет запросы вместо выполнения действия). Но есть ли способ избежать этого дополнительного прыжка посередине? Избавиться от дополнительного сервера, который прослушивает 3000, не раскрывая внутренний ALB?

введите здесь описание изображения


  • Я думаю, что ваш вопрос конкретно касается разделения уровня веб-обслуживания в общедоступных подсетях и уровня приложений в частных подсетях. Интересно, будет ли приемлемо развертывать ALB/ELB в общедоступных подсетях, а их целевые группы — это серверы приложений экземпляров EC2 в частных подсетях. 11.03.2021
  • Это правильно. У меня есть веб-приложение, которое обслуживается с помощью узла и использует экспресс. Но я не уверен, как взять внешний интерфейс и удалить его из этого приложения узла. Единственное решение, которое я нашел, - это скопировать экспресс-маршруты на веб-сервер и заставить каждый экспресс-маршрут идти по одному и тому же маршруту на сервере приложений. 11.03.2021
  • Верно, но я говорю, что вы можете рассмотреть возможность размещения ALB/ELB перед уровнем частных приложений, а не просто обратное проксирование всего с помощью nginx/haproxy/etc. в общедоступной подсети. Даст ли это вам необходимое разделение? 11.03.2021

Ответы:


1

Чтобы разделить веб-серверы и серверы приложений, вы можете использовать VPC с общедоступными и частные подсети. На самом деле это настолько распространенный сценарий, что Amazon уже предоставил нам документацию.

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

  1. Вы можете (и должны) запускать на своих хостах брандмауэры на основе хоста, такие как IP-таблицы.
  2. AWS also provides a variety of options.
    1. You can use Security Groups, which are statefull firewalls for your hosts
    2. Вы также можете использовать списки контроля доступа к сети (ACL), которые представляют собой брандмауэры без сохранения состояния, используемые для контроля входящего и исходящего трафика подсетей.

AWS также утверждает, что многие магазины могут улучшить свою безопасность с помощью управляемых сервисов, чтобы все исправления и обслуживание выполнялись AWS. Например, статический контент может быть размещен на Amazon S3 с динамическим контентом, предоставляемым микросервисами, использующими API Gateway. Наконец, с точки зрения безопасности AWS предоставляет такие услуги, как Trusted Advisor, который может помочь вам найти и исправить распространенные неверные настройки безопасности.

11.03.2021
  • У меня уже есть такая установка. У меня есть общедоступная подсеть и две частные сети. Один ALB для общедоступной сети веб-сервера, один для частной сети сервера приложений. Каждый со своими SG и NACL. Но я не понимаю, как я могу связаться с сетью приложений после того, как веб-приложение будет доставлено клиенту. Единственное, что я сделал, это настроить пересылку на веб-сервере для отправки запроса на сервер приложений. Я обновлю свой вопрос диаграммой, чтобы помочь. 11.03.2021
  • Новые материалы

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

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

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

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

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..