Как перенести шлюз API с пользовательским доменным именем в другую учетную запись AWS?

#amazon-web-services #aws-api-gateway

#amazon-web-services #aws-api-gateway

Вопрос:

У меня есть шлюз API с пользовательским доменным именем ( foo.mycompany.com ).

foo.mycompany.com относится к производственной среде, т. Е. Трафик поступает от клиентов сервиса почти каждую минуту.

Как я могу перейти foo.mycompany.com на другую учетную запись AWS, не вызывая простоев службы?

Когда я создаю foo.mycompany.com пользовательское доменное имя в консоли AWS новой учетной записи AWS, я получил The domain name you provided already exists. сообщение об ошибке.

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

Комментарии:

1. если возможно, используйте конечную точку шлюза API, которая обычно предоставляется AWS, например XXXXXX.execute-api.us-east-1.amazonaws.com/stage в вашем коде, и тогда у вас есть шанс. Время простоя будет. Таким образом вы сможете избежать простоев.

2. В качестве частичного обходного пути, чтобы сохранить доменное имя в старой учетной записи при перемещении других ресурсов в новую, вы можете переназначить пользовательский домен на новый «прокси» API в старой учетной записи, который использует HTTP-интеграцию для маршрутизации всех запросов к API в новой учетной записи (не используя прокси-сервер).пользовательский домен). Однако я все еще тестирую это прямо сейчас, и могут возникнуть увеличенные задержки и другие проблемы.

Ответ №1:

К сожалению, на данный момент это невозможно. Я запускаю пару API GW для высоконагруженных клиентов, и у всех была одна и та же проблема при переходе на новые учетные записи AWS. Мы даже обратились к специалистам AWS. Ответ был :

  1. Удалить пользовательское доменное имя в СТАРОЙ учетной записи
  2. Добавьте пользовательский домен в новую учетную запись

Это, конечно, означает время простоя. Если кто-то еще найдет для них возможность сине-зеленой миграции — я тоже хотел бы знать.

Ответ №2:

Вы можете использовать пошаговый регион для создания того же пользовательского доменного имени и переноса APIG сначала туда, а затем обратно в исходный регион в другой учетной записи. Например, region1-account1 -> region2-account1 -> region1-account2 Полное решение смотрите здесь: https://medium.com/@spei/migrating-an-amazon-api-gateway-with-a-custom-domain-with-no-downtime-f33942beef1e

Ответ №3:

Это отлично работает, если вы переезжаете в другой регион. Поток, который я использовал, был

  • переключить домен api на edge
  • создайте инфраструктуру в другом регионе
  • переключите DNS на другой регион — там уже создан пользовательский домен.

К сожалению, пользовательский домен API должен быть уникальным в регионе.

Я нахожусь в такой же ситуации, как и вы, и я пытаюсь найти решение.

обновление 2023:

AWS теперь поддерживает подстановочные домены api: https://aws.amazon.com/about-aws/whats-new/2019/10/api-gateway-supports-wildcard-custom-domain-names/

Вам нужно обратиться в службу поддержки AWS для исключения (и в моем случае это заняло 3 недели!) но в конечном итоге вы создадите *.mycompany.com новую учетную запись, и она будет обрабатывать трафик. При переносе вы можете отключить api gateway в старой учетной записи и просто создать foo.mycompany.com в новой.

Комментарии:

1. Может быть, это работает? medium.com/@spei /…