今回は、ELBに紐づいたインスタンスの状態を確認する方法を紹介します。
describeInstanceHealthで取得しますが、他の関数と同じくリクエスト用に値を定義するクラス、DescribeInstanceHealthRequestが用意されています。
//DescribeInstanceHealthRequestのインスタンス DescribeInstanceHealthRequest describeInstanceHealthRequest = new DescribeInstanceHealthRequest(); //取得対象となるELBの名前を定義 describeInstanceHealthRequest.setLoadBalancerName("hogehoge-Default-Environment"); //ELBに紐づいたインスタンスの状態を取得 DescribeInstanceHealthResult describeInstanceHealthResult = amazonElasticLoadBalancingClient.describeInstanceHealth(describeInstanceHealthRequest); //DescribeInstanceHealthResultからInstanceStateのListを取得 ListinstanceStates = describeInstanceHealthResult.getInstanceStates(); //状態を出力して確認 for(com.amazonaws.services.elasticloadbalancing.model.InstanceState instanceState :instanceStates) { //各インスタンスのIDと状態を確認 Log.i("InstanceId:State", instanceState.getInstanceId() + ":" + instanceState.getState()); }
下記が、実際の出力結果になります。
InstanceStateクラスはEC2のものではなく、elasticloadbalancingのものが該当するので注意する必要があります。
また、ReferenceによるとELBの名前指定による配下のインスタンス全件取得も可能のようですが、インスタンスをListで個別指定して取得することも可能のようです。
こちらの記事はなかの人(hiroki0907)監修のもと掲載しています。
元記事は、こちら