У нас есть кластеризованная установка Redis (версия двигателя 5.04) с тремя группами узлов, каждая в своем собственном AZ, каждая группа содержит три узла, шифрование включено при передаче и в состоянии покоя. Stunnel настроен на хосте бастиона, что позволяет мне запускать сценарий bash для очистки каждой из основных реплик при необходимости (во время обновления нашего приложения).
После применения последних обновлений программного обеспечения Redis через консоль,основная конечная точка в каждой группе узлов изменилась из-за автоматического перехода на другой ресурс, и я ищу лучший способ определить новые основные конечные точки, чтобы мой скрипт bash мог быть соответствующим образом обновлен.
Документация утверждает, что выполнение aws elasticache describe-replication-groups --replication-group-id my-replication-group
должно указывать CurrentRole
членов группы узлов, например
"NodeGroupMembers": [
{
"CurrentRole": "primary",
"PreferredAvailabilityZone": "us-west-2a",
"CacheNodeId": "0001",
"ReadEndpoint": {
"Port": 6379,
"Address": "myreplgroup-001.1abc4d.0001.usw2.cache.amazonaws.com"
},
"CacheClusterId": "myreplgroup-001"
},
{
"CurrentRole": "replica",
"PreferredAvailabilityZone": "us-west-2b",
"CacheNodeId": "0001",
"ReadEndpoint": {
"Port": 6379,
"Address": "myreplgroup-002.1abc4d.0001.usw2.cache.amazonaws.com"
},
"CacheClusterId": "myreplgroup-002"
},
{
...
}
]
Мой ответ от этой команды вообще не содержит CurrentRole:
"NodeGroupMembers": [
{
"PreferredAvailabilityZone": "ap-southeast-2c",
"CacheNodeId": "0001",
"CacheClusterId": "my-replication-group-0001-001"
},
{
"PreferredAvailabilityZone": "ap-southeast-2b",
"CacheNodeId": "0001",
"CacheClusterId": "my-replication-group-0001-002"
},
{
"PreferredAvailabilityZone": "ap-southeast-2a",
"CacheNodeId": "0001",
"CacheClusterId": "my-replication-group-0001-003"
}
]
Есть ли альтернативная команда aws cli, которую можно использовать для определения первичной конечной точки? Достаточно просто переключить основной узел через консоль, но поскольку я не могу определить, какой узел является текущим основным через консоль / cli, это означает, что в моем скрипте очистки необходимо угадать, какие узлы должны быть целевыми.