Контекст
Служба App Engine является региональной. Облачное хранилище данных, тем не менее, имеет местоположения в нескольких регионах, где данные реплицируются в нескольких регионах в пределах одного и того же местоположения, как описано здесь. Неясно, имеет ли служба App Engine также доступность в нескольких регионах при использовании одного из расположений в нескольких регионах. Мы понимаем, что App Engine использует несколько зон в пределах одного региона для обеспечения высокой доступности, но в документе с требованиями запрашивается настройка многоядерного (активно-активного) App Engine.
Вариант решения
Мы рассматриваем следующую настройку как способ получения комбинации Active-Active AppEngine + Datastore в 2 различных регионах.
- Используйте 2 разных проекта GCP для размещения одного и того же приложения AppEngine + Datastore в 2 разных регионах. Один из них будет основным, а другой будет активным резервом.
- Использование запланированных заданий для экспорта данных из хранилища данных из основного региона в дополнительный, в соответствии с инструкциями по импорту / экспорту, описанными здесь.
- Для автоматизации экспорта и импорта данных можно использовать сочетание заданий cron App Engine и / или облачных функций.
- Частота резервного копирования данных может быть определена требованиями RPO и RTO приложения.
Обоснование экспорта и импорта облачного хранилища данных
Тамна данный момент нет другого встроенного (управляемого GCP) механизма репликации для репликации данных хранилища данных по регионам.
Вопросы
Q1: Есть ли способ настроить приложениеПриложение Engine + Cloud Datastore с доступностью нескольких регионов? Требуется иметь активно-активную конфигурацию в 2 регионах. Возможно ли это и как правильно сделать это?
Q2: для использования варианта решения, указанного выше, необходимо найти способ сопоставления доменных имен первичных и вторичных приложений App Engine сто же имя DNS и использовать какое-либо взвешенное сопоставление DNS, чтобы включить автоматическую маршрутизацию трафика на вторичный экземпляр App Engine, когда требуется переключение при отказе,
В3. Есть ли рекомендуемый способ сделать это? Облачный DNS или HTTP (s) Loadbalancer - в сочетании со Stackdriver обеспечивают способ сделать это? (Примечание. Приложения App Engine не имеют публичного статического IP-адреса, вместо этого GCP предоставляет доменные имена.) Есть ли какие-либо рекомендации от Google относительно лучшего способа автоматизации экспорта и импорта Datastore? Самым простым решением является использование командной строки gcloud в виртуальной машине. Есть также способы автоматизировать это с помощью заданий App Engine Cron и / или облачных функций? Что рекомендует Google?