내가 해결하려고하는 문제는 얼마나 많은 다른 EC2 인스턴스가 동일한 클러스터 /로드 밸런서를 사용하고 있는지를 인식하는로드 밸런싱 AWS 클러스터의 일부인 EC2 인스턴스 내에서 코드를 실행하는 것입니다.내 EC2 인스턴스가 연결된 AWS로드 밸런서를 말할 수 있습니까?
LoadBalancer의 이름이 주어지면 그 Loadbalancer와 연관된 EC2 인스턴스의 수를 알 수있는 다음 코드가 있습니다.
DescribeLoadBalancersResult dlbr = loadBalancingClient.describeLoadBalancers();
List<LoadBalancerDescription> lbds = dlbr.getLoadBalancerDescriptions();
for(LoadBalancerDescription lbd : lbds)
{
if(lbd.getDNSName().equalsIgnoreCase("MyLoadBalancer"))
{
System.out.println(lbd.getDNSName() + " has " + lbd.getInstances().size() + " instances") ;
}
}
잘 작동하고로드 밸런서 이름과 인스턴스 수가 인쇄됩니다
그러나 Loadbalancer 이름을 제공하지 않아도이 정보를 얻을 수 있는지 알고 싶습니다. 우리의 설치에서 EC2 인스턴스는 오직 하나의 Loadbalancer와 연결될 것이므로 EC2 인스턴스에서 Loadbalancer로가는 길은 다시 돌아갈 방법이 있습니까?
나는 모든 지역에서 모든로드 밸런서를 가져 오는 경로를 따라갈 수 있으며, EC2 인스턴스가 포함 된 경로를 찾을 때까지 반복하지만 더 쉬운 방법이있을 것이라고 생각했다.
이 실제로 내가 촬영 한 경로입니다, 내 EC2 인스턴스 :
또는 InstanceIds 스스로 나열을 해당 지역을 인식하고 그 지역에서 모든 ELB를 얻은 다음 ELB가 내 인스턴스의 일부가 될 때까지 모든 EC2 인스턴스를 필터링합니다. 나는이 일을 덜 복잡하게하는 방법이있을 것이라고 생각했습니다. 어쨌든 Thanksfor 회신 :) – MayoMan