#amazon-web-services #amazon-redshift #amazon-rds #aws-secrets-manager
#amazon-web-services #amazon-redshift #amazon-rds #aws-secrets-manager
Вопрос:
Я создал реплику чтения для своего производственного экземпляра RDS PostgreSQL. Я планирую использовать эту реплику для чтения для подключения федеративных запросов redshift. В документации предлагается создать секрет, но когда я захожу в AWS Secret Manager и пытаюсь создать новый секрет, экземпляр replica отсутствует.
Я не нашел ничего, что указывало бы на то, что вышеуказанное невозможно. На самом деле, наличие read-replica для федеративных запросов является рекомендуемой хорошей практикой. Есть идеи?
Ответ №1:
Связь между secret manager и RDS основана только на формате секретного значения. Доступные форматы здесь.
В консоли вы можете выполнить это сопоставление только для основного экземпляра базы данных. Но с помощью CLI вы также можете сделать это для реплик для чтения. Это полезно, поскольку прочитанные реплики имеют другую конечную точку, чем основной экземпляр.
Например, для MySQL:
aws secretsmanager create-secret
--name read-replica-secret
--secret-string file:///tmp/secret.json
где /tmp/secret.json
было бы:
{
"engine": "mysql",
"host": "<required: read replica instance host name/resolvable DNS name>",
"username": "admin",
"password": "2PLvZK5Gcuht8qefK5O7",
"dbname": "testdb",
"port": "3306"
}
Таким образом, ваши клиенты, доступные только для чтения, могут получить полный набор учетных данных от SM, который включает правильную конечную точку для чтения.
Но проблема в том, что теперь у вас будет два секрета. Один для primary, а другой для reader. Что является проблемой управления. Это усложняет еще больше, если вы хотите иметь автоматическую ротацию.