在Amazon EC2上重新启动实例时,使mysql.user主机保持最新状态

无论何时重新启动Amazon EC2实例,它都会生成新的IP地址和新的专用DNS。 这是有问题的,因为我必须进入数据库并更新mysql.users以添加新的专用DNS作为主机。

我可以使用弹性IP或类似的东西,以防止自己更新MySQL数据库每次重新启动实例或将它总是分配一个新的私人DNS?

你应该使用VPC。 亚马逊的VPC(虚拟私有云)在孤立的networking中运行你的实例,对于像静态内部IP实例这样的东西非常有用。 它不需要任何额外的费用,并且易于configuration。

你可以允许10%的范围,并使用亚马逊防火墙来限制安全组,这是最简单的select。

如果你想明确地维护一个内部IP列表并为它们发放授权,你可以引导你的实例来调用脚本或者转储可用实例列表。 你可以使用Python和博托库这样的东西,

 #!/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 

您也可以发布其他筛选器,例如仅针对特定的组或检查特定的标记。