Domain-Name-System

在 Amazon EC2 上重新啟動實例時使 mysql.user 主機保持最新

  • October 7, 2013

每當我重新啟動 Amazon EC2 實例時,它都會生成一個新的 IP 地址和一個新的私有 DNS。這是有問題的,因為我必須進入數據庫並更新 mysql.users 以將新的私有 DNS 添加為主機。

我可以使用彈性 IP 或類似的東西來防止自己在每次實例重新啟動時更新 MySQL 數據庫,還是它總是會分配一個新的私有 DNS?

您應該使用 VPC。Amazon 的 VPC(虛擬私有云)在隔離網路中執行您的實例,對於實例的靜態內部 IP 等內容非常有用。它不需要任何額外費用,並且易於配置。

您可以允許 10.% 範圍並使用亞馬遜防火牆來限制安全組,這將是最簡單的選擇。

如果您想明確維護內部 IP 列表並為它們頒發授權,您可以引導您的實例以呼叫腳本或轉儲可用實例列表。您可以為此使用 python 和 boto 庫,例如,

#!/usr/bin/python
from boto import ec2
AWS_ACCESS_KEY_ID = 'YOUR_KEY'
AWS_SECRET_ACCESS_KEY = 'YOUR_SECRET_KEY'

filters = {'instance-state-name' : 'running'}
ec2conn = ec2.connection.EC2Connection(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY)
reservations = ec2conn.get_all_instances(filters=filters)
instances = [i for r in reservations for i in r.instances]
for i in instances:
 print i.private_ip_address

您也可以發布其他過濾器,例如僅針對特定組或檢查特定標籤。

引用自:https://serverfault.com/questions/543896