AWS CloudFormation и высокая доступность с помощью ArcGIS Server
Вы можете использовать некоторые объекты Amazon Web Services (AWS) CloudFormation для достижения некоторых преимуществ высокой доступности при работе с ArcGIS Server на AWS.
Для понимания необходимости данного подхода нужны некоторые предварительные знания. Как правило, пользователи начинают знакомство с ArcGIS Server на AWS с работы в ArcGIS Server Cloud Builder. Он является простым мастером, помогающим вам настроить сайт ArcGIS Server на Amazon Elastic Compute Cloud (EC2). Результатом работы мастера является сайт, возможно с несколькими машинами, который может распределять между ними задания и получать все преимущества одноранговой архитектуры из ArcGIS Server 10.1 и 10.2. Cloud Builder также предлагает среду для создания резервных копий сайта, в дополнение к шаблонам, которые могут быть использованы для запуска дополнительных сайтов, использующих ту же схему.
Архитектура, создаваемая Cloud Builder, отображена на следующем графике.

Несмотря на все преимущества, сайты, созданные с помощью Cloud Builder, также имеют некоторые недостатки в вопросе высокой доступности. Если будет утрачен экземпляр ГИС-сервера, на котором запущено хранилище конфигурации, сайт не сможет использоваться. Также, необходимо 30 минут или более для восстановления из резервной копии, что может быть недопустимо долго для некоторых организаций.
Альтернативным подходом, позволяющим избежать некоторых из этих проблем, является накопительная архитектура, показанная ниже, когда множество идентичных, но независимых сайтов ArcGIS Server связаны под балансировщиком elastic load balancer (ELB). Эта архитектура используется только с ArcGIS Server на AWS до версии 10.1, и может быть использована с 10.1 и 10.2, если вы готовы пожертвовать удобством администрирования и возможностью распределения больших задач (таких, как построение листов кэша) между серверами.
Одним из главных преимуществ накопительной архитектуры является то, что она позволяет ArcGIS Server продолжать работать, даже если вы потеряете любой из экземпляров ГИС-сервера.

Накопительная архитектура не может быть создана в Cloud Builder: вы должны создать ее вручную с использованием AWS Management Console или API. Однако некоторые объекты Amazon CloudFormation могут помочь вам запустить и управлять накопительной архитектурой намного легче, чем в прошлом. CloudFormation гарантирует, что вы всегда управляете минимальным количеством машин на своем сайте, позволяя бесшовное восстановление, если одна из ваших машин недоступна.
Далее в этом разделе объясняется, как установить накопительную архитектуру, используя CloudFormation.
Использование CloudFormation для построения накопительной архитектуры
Amazon CloudFormation – это сервис, который помогает вам определять архитектуры для используемых Amazon Web Services. Это пример инфраструктуры в виде кода; что означает, что вы пишете код, который развертывает определенную аппаратную инфраструктуру в среде облака. В случае CloudFormation вы используете шаблон JavaScript object notation (JSON) для определения стэка ресурсов, которые работают вместе предопределенным образом. В данном случае, шаблон определяет ваши накопительные сайты ArcGIS Server и балансировщик Elastic Load Balancer, который держит их вместе.
Копирование и изучение шаблонов
- Для начала, изучите один из этих примеров шаблонов:
- Скопируйте код шаблона в текстовый файл и сохраните его.
- Изучите заданные свойства JSON и измените их нужным образом.
Существует некоторые свойства объекта Parameters, которые вы можете задать при запуске стэка, такие как число и типы экземпляров, участвующих в сайте, и используемое Amazon Machine Image (AMI). Другие ресурсы, такие как настройки elastic load balancer (ELB), встроены изначально в шаблон и могут быть изменены только автором шаблона.
Обратите внимание, что автомасштабирование и настройки предупреждения CloudWatch, определяющие триггеры для добавления и удаления машин с вашего сайта, основаны на таких факторах, как использование процессора. Вы также можете задать, сколько машин будет обновлено одновременно, если вы выполняете изменение AMI, что позволит вам всегда управлять доступным экземпляром.
- В дополнение к элементам, находящимся в данном шаблоне, вы можете использовать LBCookieStickinessPolicy в ELB, который определяет, разрешены ли сеансы с сохранением состояния (sticky sessions). Это гарантирует, что запросы пользователя перенаправляются на одну и ту же машину ГИС-сервера в течении его или ее сеанса. Это может быть полезно при работе с долго обрабатывающимися объектами, такими как задачи асинхронной геообработки.
- Также есть возможность определить сертификат SSL, который будет применен к стэку. Чтобы сделать это, загрузите ваш сертификат в AWS Identity и Access Management (IAM) и вставьте код в шаблон, чтобы указать настройку SSLCertificateId в ELB.
Создание стэка
После того, как вы выбрали шаблон, выполните следующие шаги для запуска сайта ArcGIS Server из нескольких машин, использующего накопительную архитектуру.
- Используйте AWS Management Console для запуска экземпляра с использованием одного из ArcGIS Server AMI, предоставленных Esri.
- Лицензируйте ArcGIS Server и создайте сайт на основе экземпляра.
- Настройте экземпляр с помощью ваших сервисов, данных и любых сторонних приложений, которое вы хотите установить.
Внимание:
Если у вас есть любые картографические сервисы, не использующие кэш, установите свойство supportedImageReturnType для картографического сервиса равным MIME вместо значения URL (таким образом пользователь не будет отправлен обратно в стэк и на потенциально неправильный экземпляр при попытке получения изображений карт). Вам будет необходимо отредактировать свойства сервиса в ArcGIS Server Administrator Directory для того, чтобы изменить эту настройку; она недоступна в Manager.
- Сохраните AMI из вашего экземпляра. Все экземпляры, созданные из этого AMI, будут одинаковыми. Каждый будет являться собственным сайтом ArcGIS Server, со своими собственными историей настройки, каталогами сервера и данными.
- После того, как AMI создан, обратите внимание на его идентификатор AMI ID. Он необходим для создания стэка.
- В AWS Management Console щелкните Сервисы (Services) > CloudFormation, чтобы открыть страницы CloudFormation Stacks.
- Нажмите Создать стэк (Create Stack).
- Укажите Имя стэка (Stack Name).
- Выберите Загрузить файл шаблона (Upload a Template File), перейдите к одному из файлов шаблонов, которые вы сохранили и отредактировали ранее, и нажмите Продолжить (Continue).
- Задайте следующие свойства для вашего стэка:
- Измените свойство AMI на ID вашего AMI, который вы создали в шаге 3.
- Измените MaxSize на то максимальное количество экземпляров, которое вы хотите иметь в стэке единовременно.
- Если вы используете шаблон VPC template, установите опции для VPCId, Subnets и AZs (Availability Zones), чтобы они совпадали с вашими желаемыми настройками среды VPC.
- Измените InstanceType на желаемый размер экземпляра.
- Измените KeyName на имя одной из ваших ключевых пар Amazon. Не добавляйте расширение .pem.
- Измените MinSize на то минимальное количество экземпляров, которое вы хотите иметь в стэке единовременно. Если вы зададите это значение равным 2 или больше, вы защитите себя от потери сайта, если машина выйдет из строя. CloudFormation немедленно создаст второй экземпляр, если останется только один.
- Нажмите кнопку Продолжить (Continue).
- Добавьте теги для удобства идентификации вашего экземпляра, такие как Key = Name и Value = MyCloudFormation, и щелкните Продолжить (Continue).
- Просмотрите все ваши параметры и нажмите Продолжить (Continue), когда будете готовы создать свой стэк.
Ваш стэк будет запущен. После некоторого промежутка времени, ArcGIS Server будет доступен через следующий формат адреса URL: http://<Elastic Load Balancer address>/arcgis/rest.