AWS负载均衡里的实例是动态变化的,随着压力会出现销毁,扩容的情况,所以实例IP也是不固定的,每次要看都需要从后台看,比较麻烦,经浩哥指点,发现AWS提供了API相关功能,可以直接查询负载均衡的服务实例信息,总结如下:
1.升级pip
pip install --upgrade pip
2.安装awscli(其他都是其依赖的)
pip install argparse cheetah oauth PrettyTable pyserial awscli
如果提示pip找不到了,执行:
ln /usr/local/bin/pip /usr/bin/pip
后再重试安装指令
3.
aws configure
配置API相关信息,需要输入相关的密钥信息以及服务所在位置
4.获取负载均衡器相关信息:
aws elb describe-load-balancers --load-balancer-name elb名称
5.根据返回信息,得到Instances中的InstanceId就是实例Id,这个可以通过:
aws ec2 describe-instances --instance-ids "Id1 Id2 Id3..."
得到实例信息。
6.Reservations中的Instances的PublicIpAddress就是外网IP。
PHP来实现的话就是这样的:
<?php
$c = shell_exec("aws elb describe-load-balancers --load-balancer-name ebl名称 2>&1");
$c = json_decode($c,true);
$c = $c['LoadBalancerDescriptions'][0]["Instances"];
$ips = "";
foreach($c as $ip){
$ips.='"'.$ip["InstanceId"].'" ';
}
$c = shell_exec("aws ec2 describe-instances --instance-ids {$ips} 2>&1");
$c = json_decode($c,true);
$c = $c['Reservations'];
foreach($c as $ip){
echo $ip["Instances"][0]['PublicIpAddress']."n";
}
相关参考链接:
https://stackoverflow.com/questions/3726313/method-of-finding-instances-attached-to-elb utm_medium=organic#answer-4011060
https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html
如您从本文得到了有价值的信息或帮助,请考虑扫描文末二维码捐赠和鼓励。
如本文对您有用,捐赠和留言 将是对我最好的支持~(捐赠可转为站内积分)
如愿意,请向朋友推荐本站,谢谢。
尊重他人劳动成果。转载请务必附上原文链接,我将感激不尽。
留言