Рейтинг:0

AWS: APIGateway для нескольких регионов с одной конечной точкой

флаг us

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

Я хотел бы настроить APIGateway, развернутый в нескольких регионах с одной конечной точкой. Мои требования — быстрая отработка отказа и доступность.

Я могу придумать два способа сделать это: использовать Route53 для сопоставления одной конечной точки с региональными DNS-именами APIGateway с аварийным переключением.

Другой вариант — использовать Глобальный акселератор AWS служба anycast с ALB, указывающими на шлюз API. Учитывая, что целые DNS могут кэшироваться браузерами, клиентами и т. Д., Является ли Global Accelerator / Anycast лучшим вариантом?

Tim avatar
флаг gp
Tim
Не могли бы вы подтвердить, что вы пытаетесь развернуть API в нескольких регионах, но имеете для него один URL-адрес? Если это так, я предлагаю вам немного отредактировать язык вашего вопроса, чтобы сделать его действительно ясным.
флаг us
@tim Обновил язык
Tim avatar
флаг gp
Tim
Необычное требование, мне любопытно, почему вы хотите это сделать. Предоставление более подробной информации означает, что люди могут помочь решить проблему, а не просто ответить на ваш вопрос. Я никогда не думал, как это сделать, нужно немного подумать.
флаг us
Причина этого в том, что клиентам конечной точки не нужно знать о нескольких конечных точках API. Для них это прозрачно. Я могу спроектировать службу так, чтобы она была более доступной, разместив ее в нескольких регионах и используя режим аварийного переключения в стиле «активный-активный».
Tim avatar
флаг gp
Tim
Какова ваша рабочая нагрузка за шлюзом API? Лямбда, экземпляры EC2 и т. д.? Это низкая или высокая громкость?
Рейтинг:0
флаг gp
Tim

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

Мой первоначальный проект не включал несколько регионов, если вы уже не сталкивались с несколькими сбоями в одном регионе или вам не нужна чрезвычайно высокая надежность — четыре или пять девяток.Человеческая ошибка с большей вероятностью сломает ваши системы, чем простои AWS.

Шлюзы API избыточны и надежны, и хотя AWS действительно выходит из строя, это не так уж часто, и когда это происходит так много веб-сайтов, вы в хорошей компании. Однако это не идеально, если у вас жесткий SLA.

Если бы мне действительно требовалась высокая доступность/несколько регионов, я бы развернул шлюз и рабочую нагрузку в нескольких регионах, а затем сначала попытался бы использовать Route53 для предоставления единого URL-адреса для этих API. С R53 вы можете использовать любую маршрутизацию, которая вам нравится, геолокацию, задержку или отказоустойчивость. Если серверная часть дорогая, вы можете рассмотреть холодную или пилотную модель развертывания с маршрутизацией при отказе, если производительность или доступность более важны, вы можете выполнить развертывание в каждом регионе и использовать маршрутизацию на основе географического положения/задержки.

флаг us
У нас жесткое соглашение об уровне обслуживания и мандат на развертывание в 100 % регионов из-за характера продукта. Я специально хотел понять, какое преимущество обеспечивает отказоустойчивость R53, которое не покрывается многорегиональной маршрутизацией Global Accelerator.

Ответить или комментировать

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