Чи можу я перейменувати екземпляр RDS?


11

Я успадкував колекцію екземплярів MySQL RDS із випадковими (непотрібними) іменами екземплярів БД .

Мені часто доводиться копатися в розділі тегів, щоб дізнатися, до якого проекту вони належать.

Одне з параметрів, які я можу змінити в RDS, - це DB Instance Identifier.

Якщо я це зміню, що буде, крім зміни назви? Це вплине на чийсь код? Або це нешкідлива зміна?

Це живі системи, які я не можу дозволити собі збити.

Відповіді:


10

Так, ви можете перейменувати екземпляр RDS ... на свій страх.

Коли ви перейменовуєте екземпляр DB, кінцева точка [DNS] [ім'я хоста] для екземпляра DB змінюється, оскільки URL-адреса містить ім'я, яке ви призначили екземпляру DB.

http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_RenameInstance.html

З цієї причини ваш код програми вимагає узгодження змін конфігурації.

Дивіться посилання вище для інших наслідків. Це підтримується і, як правило, безпечна робота, але лише у вікні технічного обслуговування, оскільки обов'язково відбудеться коротке порушення, коли DNS буде змінено, а ваш додаток буде зафіксовано за допомогою нового імені хоста бази даних.


3

Так, ви можете змінити ім'я екземпляра RDS, але це дуже не рекомендується робити це в середовищі LIVE Production. Це змінило б EndPoint, що може вплинути на інші ресурси, які активно отримують доступ до RDS-сервера (наприклад, сервер додатків).

Це, ймовірно, вимагає зміни властивості / env-змінної у вашому коді чи конфігураціях (що в ідеалі закінчиться для випуску config через управління конфігурацією)

Щоб уникнути зривів (у майбутньому) та змін розгортання з меншим RTO, ви можете створити проміжний запис DNS (CNAME) у Route53 для свого RDS-сервера та використовувати проміжну URL-адресу у вашій програмі. Коли ім'я сервера RDS змінюється, ви можете просто змінити DNS CNAME нової кінцевої точки RDS. ПРИМІТКА. Під час зміни імені ваш сервер RDS буде недоступний (зі старим іменем) протягом декількох хвилин, і це може спричинити зрив

Попри це, ви вже упереджені рішенням (зміною назв RDS) для вашої проблеми. BuT

Існує кілька рішень для вашої реальної проблеми (керування серверами RDS для кожного проекту)

A. Намагайтеся уникати використання консолі AWS якомога більше. Чому ви не починаєте заглядати в AWS CLI (який може тягнути теги) і писати обгортковий скрипт Python / Bash, щоб перелічити всі сервери RDS - з іменами проектів, з цього виводу ви могли керувати цими серверами, як зробити знімок, резервне копіювання тощо Ви також можете використовувати mysql --login-path (Якщо ви використовуєте mysql для адміністрування БД) https://opensourcedbms.com/dbms/passwordless-authentication-using-mysql_config_editor-with-mysql-5-6/ .

B. (Агностичний підхід за витратами) Якщо ви все-таки вирішили змінити Імена RDS, то ви можете зробити що-небудь без будь-якого впливу.

B.1 When the next code/config release happens try to bring in the intermediate DNS change into action.

B.2 (Optional) Enable Multi AZ in RDS (HA and twice the price). This will help your application to access the secondary active slave when there is any disruption due to name change. There is an option called Reboot with failover which would reboot the master while failing over to the active secondary 

B.3 Enable replication (read-replica) (this will give you a new RDS end-point). Name the read replica properly with your project names

B.4. Once replication is complete (and during your SLA / maintenance window) promote your read replica (this will break replication) and make the intermediate DNS point to the new RDS (with your proper names)

ПРИМІТКА Всі вищезазначені підходи не гарантували б цілісність даних та неправильне оновлення даних через трансакційних польотів. Тому завжди краще припинити всі транзакції (зупинивши доступ усіх програм і розгорнувши сторінку обслуговування та виконайте операції)


Я вдячний за ваш внесок, хоча я помітив, що дивні (марні) імена походять саме від використання CLI. Створення екземпляра RDs з консолі дає їм значущі назви.
Danny Schoemann

також дуже важко (неможливо?) зробити аналіз рахунків із CLI, а також переглянути графіки використання.
Danny Schoemann

1
№1 О, для створення ви можете поглянути на Cloudformation (де ви можете визначити імена RDS), коли я сказав CLI, що я мав на увазі читання списку RDS (для легкого розбору при використанні grep --output=text. # 2 і так для аналізу рахунків, консоль є обов'язковим, ви повинні розглянути питання про створення користувача IAM з білінг-ролі і передати її вашому фінансовому особі.
Амін Ібрагім Raffic - «AIR»
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.