在启动/重启EC2实例时更新IP地址

时间:2013-11-13 12:24:26

标签: amazon-web-services amazon-ec2 amazon-cloudformation

我已经从现有的EC2实例创建了一个AMI图像,我在其中配置了我的.net应用程序。在我使用我的私有/公共IP的应用程序web.config文件中。当我从AMI启动新的ec2实例时,会分配新的私有/公共IP。如何在我的ec2实例启动或重启时更新web.config文件中的新私有/公共IP。

1 个答案:

答案 0 :(得分:1)

您应该创建一个启动脚本,它将更改每个实例/ AMI启动时的IP。

<强> change-ip-on-startup.sh

#!/bin/bash
# Fetch instance IPs from metadata
INSTANCE_PUBLIC_IP=`curl http://169.254.169.254/latest/meta-data/public-ipv4`
INSTANCE_PRIVATE_IP=`curl http://169.254.169.254/latest/meta-data/local-ipv4`

# Use the variables to replace the IP(s)
# sed "s/.../${INSTANCE_PUBLIC_IP}/g" /path/to/web.config

然后使用以下推理使脚本在每个实例/ AMI上运行:

# Copy the script in the init.d directory and make it executable
cp /home/ec2-user/change-ip-on-startup.sh /etc/init.d/change-ip-on-startup
chmod +x /etc/init.d/change-ip-on-startup

# Load the script on start
ln -s /etc/init.d/change-ip-on-startup /etc/rc3.d/S99change-ip-on-startup

# Emulate a service behaviour
touch /var/lock/subsys/change-ip-on-startup