Я работаю над проектом, где мне нужно выбрать ближайшую область S3 из браузера. В регионе Франкфурта есть только один API, который может раздавать токены для всех регионов S3. Я больше не могу использовать маршруты с задержкой (Route53), потому что он всегда будет в одном экземпляре EC2.Найти ближайший регион AWS со сценария на стороне клиента
Я думал о следующих вариантах:
Ping всех соответствующие регионы (Pinging конечной точки DynamoDB довольно быстро) и выбрать самый быстрый ответ. Чтобы избежать взлома, я мог бы пинговать конечную точку 3 раза. Проблема заключается в том, что временный щелчок выбирает точку S3, которая может быть далеко.
Установите сервер t1.micro, который отвечает своей областью во всех применимых регионах. Маршрут с задержкой используется для доступа к самому быстрому экземпляру EC2. Хотя это должно работать (оно работало в прошлом), мне нужен экземпляр ECC 24/7, который обеспечивает только самый быстрый регион. Это слишком дорого для этой цели.
То же, что и в варианте 2, но вместо специального экземпляра EC2 я использую издевательский API-интерфейс, который возвращает свою собственную область. Проблема в том, что шлюзы API пока недоступны во всех регионах (например, в Сан-Паулу).
Используйте один экземпляр t1.micro и добавьте эластичный IP для каждой области. NGINX можно настроить для прослушивания по IP-адресам и возврата другого региона для каждого адреса. Route53 должен быть настроен таким образом, чтобы он имел маршрут на основе задержки, который разрешает каждый IP-адрес. Таким образом, я могу использовать только один экземпляр, но с некоторыми эластичными IP-адресами, чтобы получить тот результат, который мне нужен.
К сожалению, я не могу разрешить DNS для IP-адреса из браузера. В противном случае я мог бы создать несколько маршрутов на основе задержки, которые будут маршрутизироваться к вымышленному IP-адресу. Простое решение имени хоста даст мне IP-адрес и скажет, в какой области он представляет.
Было бы здорово, если бы AWS предоставила конечную точку, которую клиенты могли бы использовать для определения самой быстрой области. У кого-нибудь есть еще одно умное решение, которое работает в масштабе и не стоит слишком дорого?
Вы можете просто заплатить мне за использование моей настройки, которая делает это с EC2, я думаю. :) Серьезно, однако, это интересные идеи, но еще одна проблема с использованием API Gateway (и еще одна из моих первоначальных попыток, связанных с CloudFront) заключается в том, что вы не сможете настроить несколько регионов для ответа на одно и то же имя хоста - API Gateway находится за CloudFront, который является глобальным. Предстоящий [Lambda @ Edge] (https://aws.amazon.com/blogs/aws/coming-soon-lambda-at-the-edge/) сервис * может * предоставить решение. Интуиция приводит меня к предположению, что компонент Lambda может запускать * внутри * региональных AWS AWS. –