В этом разделе приведены рекомендации по использованию OPDK с облаком AWS.
Cassandra используется в качестве серверной части и хранилища данных почти для всех правил и является важной частью среды выполнения Apigee Edge. В этой статье рассказывается, как оптимизировать Cassandra для среды AWS.
Требования к хранилищу и вводу-выводу
Большинство операций ввода-вывода Cassandra являются последовательными, но в некоторых случаях требуется случайный ввод-вывод. Например, при чтении таблиц отсортированных строк во время операций чтения. Для Cassandra рекомендуется использовать SSD, поскольку они обеспечивают очень низкую задержку при случайных операциях чтения и достаточную производительность последовательных операций записи для сжатия. При этом также учитывается репликация.
Многие экземпляры AWS EC2 поставляются с локальным хранилищем, в котором жесткий диск физически подключен к оборудованию, на котором размещен экземпляр EC2. При использовании Cassandra в рабочей среде Apigee рекомендует применять как SSD, так и хранилища экземпляров. Если вы используете тип экземпляра с более чем одним SSD-диском, то можете использовать RAID0, чтобы увеличить пропускную способность и емкость хранилища.
Требования к сети
Cassandra использует протокол Gossip для обмена информацией с другими узлами о топологии сети. Использование Gossip и распределенная природа Cassandra, которая предполагает взаимодействие с несколькими узлами для операций чтения и записи, приводит к большому объему передачи данных по сети. Apigee рекомендует использовать тип экземпляра с пропускной способностью сети не менее 1 Гбит/с, а для производственных систем – более 1 Гбит/с.
Используйте VPC с нотацией бесклассовой адресации /16. Поскольку подсети в AWS не могут охватывать более одной зоны доступности, Apigee рекомендует следующее:
- Создайте по одной подсети на зону доступности.
- Используйте три частные подсети для установки Apigee, разместив по одному узлу Cassandra в каждой зоне доступности. У трех подсетей должно быть достаточно блоков CIDR для горизонтального масштабирования кластера Cassandra.
- Настройте три общедоступные подсети со специальным NAT для Cassandra, чтобы она могла подключаться к интернету для скачивания ПО и обновлений безопасности.
В отличие от устаревших архитектур с главным и подчиненными узлами, в Cassandra используется архитектура без главного узла, в которой все узлы выполняют одинаковую роль, поэтому нет единой точки отказа. Чтобы обеспечить высокую доступность, рассмотрите возможность распределения узлов Cassandra по нескольким зонам доступности. Распределив узлы по зонам доступности, вы сможете поддерживать доступность и время безотказной работы в случае аварии.
Как выбрать семейство экземпляров
При изучении требований Cassandra к процессору полезно помнить, что рабочие нагрузки с большим количеством операций вставки в Cassandra сначала зависят от процессора, а затем от ввода-вывода. Другими словами, все операции записи данных выполняются в журнале фиксации, но Cassandra настолько эффективно выполняет запись, что ограничивающим фактором становится ЦП. Cassandra поддерживает высокую степень параллелизма и использует столько ядер процессора, сколько доступно.
Apigee рекомендует использовать семейство экземпляров, в котором сбалансированы ресурсы ЦП и памяти. В частности, мы рекомендуем использовать семейства экземпляров C5, если они доступны в вашем регионе AWS, а C3 – в качестве резервного варианта. В некоторых случаях оптимальным вариантом в обоих семействах является экземпляр 4xlarge, который обеспечивает наилучшее соотношение цены и производительности.
Apigee также рекомендует использовать для экземпляров Cassandra аренду по умолчанию. Если вы увеличите количество экземпляров до более чем одного на зону доступности, то, скорее всего, все экземпляры Cassandra будут размещены на одном и том же базовом оборудовании, если вы зададите выделенное размещение. Поэтому при сбое оборудования вы, скорее всего, потеряете все свои экземпляры в этой зоне доступности.
Сводка рекомендаций
В таблице ниже приведены рекомендации Apigee по использованию AWS с Apigee Edge для частного облака.
| Семейство экземпляров | C5d (рекомендуется) или C3 |
| Тип экземпляра | C(x).4xlarge |
| Хранилище экземпляров | SSD (локальное хранилище) с RAID0 |
| Тип подписки | по умолчанию |
| Размещение узла | 1 узел Cassandra на зону доступности |
| VPC и подсеть | 1 подсеть на зону доступности и 1 VPC на регион |
Подробнее о типах экземпляров Amazon…