ฉันสามารถเปลี่ยนชื่ออินสแตนซ์ RDS ได้หรือไม่


11

ฉันได้รับการถ่ายทอดคอลเลกชันของอินสแตนซ์ RDS MySQL ด้วยการสุ่ม (ไม่มีประโยชน์) DB อินสแตนซ์ชื่อ

ฉันมักจะต้องขุดลงในส่วนแท็กเพื่อหาว่าพวกเขาอยู่ในโครงการใด

หนึ่งในการตั้งค่าที่ผมสามารถปรับเปลี่ยนใน 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 ได้ แต่ไม่แนะนำให้ทำในสภาพแวดล้อมการผลิตสด มันจะเปลี่ยน EndPoint ซึ่งอาจส่งผลกระทบต่อทรัพยากรอื่น ๆ อย่างแข็งขันในการเข้าถึงเซิร์ฟเวอร์ RDS (เช่นแอปพลิเคชันเซิร์ฟเวอร์)

สิ่งนี้อาจต้องการการเปลี่ยนแปลงคุณสมบัติ / ตัวแปร env ในรหัสหรือการกำหนดค่าของคุณ

เพื่อหลีกเลี่ยงการหยุดชะงัก (ในอนาคต) และการเปลี่ยนแปลงการเปิดตัวด้วย RTO ที่น้อยกว่าคุณสามารถสร้างรายการ DNS กลาง (CNAME) ในเส้นทาง 53 สำหรับเซิร์ฟเวอร์ RDS ของคุณและใช้ URL ขั้นกลางในแอปพลิเคชันของคุณ เมื่อเปลี่ยนชื่อเซิร์ฟเวอร์ RDS คุณสามารถเปลี่ยน DNS CNAME ของปลายทาง RDS ใหม่ได้ หมายเหตุ:ในระหว่างการเปลี่ยนชื่อเซิร์ฟเวอร์ RDS ของคุณจะไม่สามารถใช้งานได้ (ด้วยชื่อเก่า) ไม่กี่นาทีและอาจทำให้เกิดการหยุดชะงัก

อย่างที่ได้กล่าวไปแล้วว่าคุณมีอคติในการแก้ปัญหา (เปลี่ยนชื่อ RDS) สำหรับปัญหาของคุณ แต่

มีวิธีแก้ไขปัญหามากมายสำหรับปัญหาจริงของคุณ (การจัดการเซิร์ฟเวอร์ RDS สำหรับแต่ละโครงการ)

A. พยายามหลีกเลี่ยงการใช้ AWS Console ให้มากที่สุด ทำไมคุณไม่เริ่มค้นหา AWS CLI (ซึ่งสามารถดึงแท็ก) และเขียนสคริปต์ Python / Bash wrapper เพื่อแสดงรายการเซิร์ฟเวอร์ RDS ทั้งหมด - ด้วยชื่อโครงการจากผลลัพธ์นี้คุณสามารถจัดการเซิร์ฟเวอร์เหล่านี้ได้เช่นถ่ายภาพสแนปช็อตสำรองข้อมูล ฯลฯ . คุณยังสามารถใช้ MySQL --login เส้นทาง (ถ้าคุณอยู่ใน MySQL สำหรับการบริหาร DB) 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 โดยเฉพาะ การสร้างอินสแตนซ์ RD จากคอนโซลให้ชื่อที่มีความหมาย
Danny Schoemann

นอกจากนี้ยังเป็นเรื่องยากมากที่จะทำการวิเคราะห์การเรียกเก็บเงินจาก CLI เช่นเดียวกับการดูกราฟการใช้งาน
Danny Schoemann

1
# 1 Ohh, สำหรับการสร้างที่คุณสามารถดูที่ Cloudformation (ที่ซึ่งคุณสามารถกำหนดชื่อ RDS) เมื่อฉันบอก CLI ฉันหมายถึงการอ่านรายชื่อ RDS (สำหรับการแยกง่ายในการใช้งาน grep --output=text. # 2และใช่สำหรับการวิเคราะห์การเรียกเก็บเงิน คุณต้องพิจารณาการสร้างผู้ใช้ IAM ด้วยบทบาทการเรียกเก็บเงินและมอบให้กับเจ้าหน้าที่การเงินของคุณ
Ameen Ibrahim Raffic - 'AIR'
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.