Глава 1 этой серии пояснила преимущества и недостатки архитектуры микросервисов, в дополнение к созданиям проектирования, необходимые для реализации инфраструктуры, которая достаточно прочная и достаточно адекватная для размещения таких типов архитектур.
В этой главе представлена обзор предлагаемой инфраструктуры и объясняет различные используемые компоненты, а также преимущества, которые он обеспечивает.
Виртуальный частный кластер (VPC) : это частная сеть в общедоступном облаке, которая логически изолирована (скрыта) из других виртуальных сетей. Каждый VPC может содержать одну или несколько подсетей (логические подразделения VPC). Существуют два типа подсетей: общественные подсети, в которых ресурсы подвергаются воздействию Интернета и частных подсетей, которые полностью изолированы от Интернета.
Amazon Application Bate Balancer (Alb) : Балансировщик нагрузки приложений служит точкой контакта для клиентов. Балансировщик нагрузки оценивается на основе набора предопределенных правил, каждый запрос, который он получает, и перенаправляет его в соответствующую целевую группу. Более того, балансировщик нагрузки баланс нагрузки среди целей, зарегистрированных в целевой группе. Балансировщик нагрузки может быть связан с интернетом (может быть доступен из Интернета) или внутренний (не может быть доступен из Интернета). AWS предоставляет три типа балансировщиков нагрузки: 1) Балансировщик нагрузки на приложение, балансировщик нагрузки сетевого нагрузки и классический балансировщик нагрузки.
Amazon CloudWatch : Инструмент мониторинга AWS для всех ресурсов и приложений на AWS. Собирает и отображает различные метрики ресурсов, развернутых на AWS (например, использование процессоров, потребление памяти, дисплея чтения/записи, пропускной способности, 5xx, 4xx, 3xx, 2xx и т. Д.). Усилители CloudWatch могут быть установлены на метриках, чтобы создать уведомления (например, отправить электронную почту тревоги) или запустить действия автоматически (например, autoScaling). Рассмотрим следующую тревогу: когда использование CPU экземпляра в среднем выше, чем на 65% в течение трех минут (метрический порог) отправляет электронное письмо на набор получателей (уведомления) и создать новую копию экземпляра A (масштабирование действий).
Amazon S3 : Служба хранения AWS для хранения и извлечения объектов.
Amazon Cloudfront. : Служба доставки контента (CDN), которая повышает производительность доставки контента (например, данные, видео, изображения и т. Д.), к конечному пользователю через сеть местных местоположений. AWS Cloudfront может быть прикреплен к ведрю Amazon S3 или любым сервером, который принимает данные, кэширует объекты, хранящиеся на этих серверах, и обслуживает их для пользователей по запросам.
Лямбда функции : Тип неверных вычислительных функций, который позволяет пользователям загружать свой код без необходимости управления серверами. AWS обрабатывает все обоснование базовых машин. Функции лямбда срабатывают события, настроенные, а именно, объект, наделенный на S3, объект, отправляемый в SQS, периодически и т. Д.
Диаграмма выше изображает инфраструктуру, в которой развертываются несколько ресурсов. Помимо S3, Cloudfront и cloudwatch, все ресурсы создаются и развернуты внутри VPC. Что еще более важно, все эти ресурсы находятся внутри частных подсетей, как видно позже в этой статье. Ресурсы, порожденные частные подсети, владеют частными IPS, поэтому не могут быть доступны непосредственно из-за пределов VPC. Такая установка максимизирует безопасность. Фактически, база данных, запущенная в общественной подсети, и защищена паролем, независимо от того, насколько она сильна, является высоким риском нарушения напрямую (простой приступ грубой силы). Тем не менее, база данных, запускаемой в частной подсети, практически не существует для всех, кто за пределами VPC. Даже если не защищено паролем, база данных доступна только пользователям внутри частной сети. Связь между компонентами приложений, таких как микросервисы и базы данных проходят через балансировщик нагрузки. Более подробно, каждое микросервис, базу данных или любой другой компонент присоединен как целевая группа для балансировщика нагрузки. Компоненты, которые дают доступ к Интернету, прикреплены к балансировке нагрузки на Интернет, в то время как компоненты Backeng System прикреплены к внутренней балансировке нагрузки. Этот подход максимизирует доступность, балансирование нагрузки и безопасности системы. Чтобы лучше объяснить вышеупомянутую, рассмотрим следующий пример:
Предположим, что приложение, состоящее из интерфейса Microservice, Microvice Gateway API, микросервис в Backend-End и базы данных. Как правило, услуги Frontend и API Gateway должны быть доступны из Интернета. Следовательно, они должны быть прикреплены как две целевые группы для общедоступного балансировщика нагрузки. С другой стороны, Backend Service и база данных никогда не должны доступны из внешнего мира, привязанного таким образом к внутренней балансировке нагрузки. Рассмотрим пользователь, доступа к приложению, и запрашивая список всех доступных продуктов, ниже — это поток запросов, которые пройдут сеть:
- Запрос от пользователя на балансировщик нагрузки на Интернет.
- Балансировщик нагрузки направляет запрос на приложение Frontend, чтобы загрузить страницу в браузере пользователя.
- Фортовое приложение возвращает ответ на балансировщик нагрузки со страницей, которая будет загружена.
- Балансировщик нагрузки возвращает ответ на пользователя.
Теперь, когда страница загружается на устройство пользователя, на другой запрос должен быть сделан страницей, спрашивающей доступные продукты.
- Запрос от пользователя на балансировщик нагрузки на Интернет.
- Балансировщик нагрузки направляет запрос на шлюз API.
- Gateway API направляет запрос через внутренний балансировщик нагрузки на бэкэндскую службу, которая должна привлекать продукты из базы данных.
- Запросы на службу поддержки через внутренний балансировщик нагрузки продукты из базы данных.
- Ответ возвращает пользователю, следующий за тем же маршрутом, принятым по запросу.
Если загруженная страница содержит файлы, доступные в ведре S3, что синхронизируется с AWS Cloudfront, выполняются следующие шаги:
- Запрос от пользователя на службу Cloudfront, запрашивая файл.
- Cloudfront проверяет, обладает ли он файлом в одном из местных местоположений. Если найдено, файл непосредственно обслуживается пользователю.
- Если отсутствует, CloudFront выбирает файл от S3, возвращает его обратно пользователю и кэширует его.
Присоединение услуг в качестве целевых групп к балансировщикам нагрузки обеспечивают несколько преимуществ (которые будут рассмотрены в следующей главе), а именно в безопасности, благодаря только разрешающим запросам, которые соответствует определенным критериям, а также балансировка нагрузки, уравновешивая запросы через все Реплики, зарегистрированные в том же услуге.
Таким образом, эта статья описана краткий обзор предложенной инфраструктуры, как она работает, и преимущества предоставляют. Следующая глава будет описывать в деталях, как микросервисы должны быть развернуты в безопасной, доступной и масштабируемой моде, в дополнение к настройке аутокалирования политик и сигналов тревоги.
Список статей
Введение и проектные соображения
Обзор инфраструктуры и компонентов
Стратегия развертывания для микросервисов
Стратегии развертывания для микроэвиксов
Оригинал: «https://dev.to/aws-builders/proposed-infrastructure-setup-on-aws-for-a-microservices-architecture-2-35g3»