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