2012年01月20日

android開発 AWS SDK for Android 利用可能な地域を取得する

今回は利用可能な地域(リージョン)を取得する方法について書きます。
AmazonEC2ClientのdescribeRegionsにてアカウント毎に取得可能です。

//利用可能な地域をListで取得
DescribeRegionsResult describeRegionsResult = amazonEC2Client.describeRegions();
List<Region> regionList = describeRegionsResult.getRegions();

//コンソールに出力
for(Region region :regionList)
{
//地域名称とエンドポイントを出力
Log.i("Name:",region.getRegionName());
Log.i("Endpoint:",region.getEndpoint());
}

Regionクラスはこれまたs3等と名前が混在しますが、こちらが該当します。

hiroki0907 at 01:40トラックバック(0)AWSGoogle Android この記事をクリップ!

2012年01月09日

android開発 AWS SDK for Android ELB配下の各インスタンスの状態を確認する

今回はELBに紐づいたインスタンスの状態を確認する方法です。
describeInstanceHealthで取得しますが、他の関数と同じくリクエスト用に値を定義するクラス、DescribeInstanceHealthRequestがあります。

//DescribeInstanceHealthRequestのインスタンス
DescribeInstanceHealthRequest describeInstanceHealthRequest = new DescribeInstanceHealthRequest();
//取得対象となるELBの名前を定義
describeInstanceHealthRequest.setLoadBalancerName("hogehoge-Default-Environment");

//ELBに紐づいたインスタンスの状態を取得
DescribeInstanceHealthResult describeInstanceHealthResult = amazonElasticLoadBalancingClient.describeInstanceHealth(describeInstanceHealthRequest);

//DescribeInstanceHealthResultからInstanceStateのListを取得
List<com.amazonaws.services.elasticloadbalancing.model.InstanceState> instanceStates = 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 at 15:01トラックバック(0)AWSGoogle Android この記事をクリップ!

2012年01月06日

android開発 AWS SDK for Android ELBにインスタンスを追加する

今回はELBにインスタンスを追加します。
registerInstancesWithLoadBalancerの引数となる、RegisterInstancesWithLoadBalancerRequestに必要な情報を定義する形になります。


//ELBにインスタンスを追加
RegisterInstancesWithLoadBalancerRequest registerInstancesWithLoadBalancerRequest = new RegisterInstancesWithLoadBalancerRequest();

//対象のELBと追加するインスタンスを定義
registerInstancesWithLoadBalancerRequest.setLoadBalancerName("awseb-Default-hogehoge");
com.amazonaws.services.elasticloadbalancing.model.Instance instance = new com.amazonaws.services.elasticloadbalancing.model.Instance("i-hogehoge");
registerInstancesWithLoadBalancerRequest.withInstances(instance);

//登録処理
RegisterInstancesWithLoadBalancerResult registerInstancesWithLoadBalancerResult = amazonElasticLoadBalancingClient.registerInstancesWithLoadBalancer(registerInstancesWithLoadBalancerRequest);

対象となるインスタンスを定義するInstanceクラスはec2のものではなく、こちらのelasticloadbalancingのクラスになります。クラス名がぶつかるので、サンプルはパッケージも書いています。

Referenceはこちら

hiroki0907 at 01:54トラックバック(0)AWSGoogle Android この記事をクリップ!

2011年12月24日

Graph APIからのウォール投稿で画像が反映されない

ELBを使ってFacebookアプリを作った場合に発生する特殊なケースです。

ウォール投稿の際にpictureに有効なURLを指定しているのに、なぜか反映されない場合があります。
現象は以下の通りです。

ELBに対しroute 53を使いAレコードでドメインを割り当てる

割り当てたドメインで画像の参照を確認

Grapth APIから投稿しても反映されない

原因はELBに割り当てたドメインからFacebook側が引けていないようです。(おそらく)
CNameだったら反映するのかなど細かい検証はしていませんが、解決方法としては
Grapth APIからの投稿時にELBのデフォルトドメインにすることで、Facebook側が取得、保存してくれます。

hiroki0907 at 00:17トラックバック(0)AWS この記事をクリップ!

2011年12月20日

android開発 AWS SDK for Android ELBのリストを取得する

今回はアカウントが保持しているロードバランサのリストを取得します。

//AmazonElasticLoadBalancingClientのインスタンス
AmazonElasticLoadBalancingClient amazonElasticLoadBalancingClient = new AmazonElasticLoadBalancingClient(basiAwsCredentials);

//ELBのリスト取得
DescribeLoadBalancersResult describeLoadBalancersResult = amazonElasticLoadBalancingClient.describeLoadBalancers();
List<LoadBalancerDescription> elbList = describeLoadBalancersResult.getLoadBalancerDescriptions();

//コンソールに出力
for(LoadBalancerDescription description :elbList)
{
Log.i("LoadBalancerName:",description.getLoadBalancerName());
}

describeLoadBalancersの戻り値以降は、EC2と似たような形でgetLoadBalancerDescriptionsというメソッドでLoadBalancerDescriptionのListが取得可能です。

hiroki0907 at 16:12トラックバック(0)AWSGoogle Android この記事をクリップ!

2011年12月19日

android開発 AWS SDK for Android ELBを削除する

今回はELBを削除するパターンです。

サンプルは前回作成したELBを削除します。

//AmazonElasticLoadBalancingClientのインスタンス
AmazonElasticLoadBalancingClient amazonElasticLoadBalancingClient = new AmazonElasticLoadBalancingClient(basiAwsCredentials);

//DeleteLoadBalancerRequestのインスタンス
DeleteLoadBalancerRequest deleteLoadBalancerRequest = new DeleteLoadBalancerRequest();

//削除対象となるロードバランサの名前を指定
deleteLoadBalancerRequest.setLoadBalancerName("hogehogeELB");

//削除を実行
amazonElasticLoadBalancingClient.deleteLoadBalancer(deleteLoadBalancerRequest);

deleteLoadBalancerは戻り値のクラスが無いので、結果は再度リストを取得するかコンソールで確認する形になります。
DeleteLoadBalancerRequestクラスは実質削除対象のロードバランサの名前を指定するだけなので、コンストラクタの引数に入れることも可能です。Referenceはこちら


hiroki0907 at 16:58トラックバック(0)AWSGoogle Android この記事をクリップ!

2011年12月17日

android開発 AWS SDK for Android ELBを作成する

AWS SDKはずっとEC2周辺をやっていましたが、ELB(Elastic Load Balancing)についても試してみました。

今回はロードバランサを作成するサンプルです。

//AmazonElasticLoadBalancingClientのインスタンス
AmazonElasticLoadBalancingClient amazonElasticLoadBalancingClient = new AmazonElasticLoadBalancingClient(basiAwsCredentials);

//CreateLoadBalancerRequestのインスタンス
CreateLoadBalancerRequest createLoadBalancerRequest = new CreateLoadBalancerRequest();
//名前を指定
createLoadBalancerRequest.withLoadBalancerName("hogehogeELB");
//地域を指定
createLoadBalancerRequest.withAvailabilityZones("us-east-1a");
//ポートを指定
Listener listener = new Listener("HTTP", 80, 80);
createLoadBalancerRequest.withListeners(listener);
//ロードバランサを作成
CreateLoadBalancerResult createLoadBalancerResult = amazonElasticLoadBalancingClient.createLoadBalancer(createLoadBalancerRequest);

名前と地域(AvailabilityZone)だけでなく、ポートも設定しないと作成する際にエラーになります。
ポートはListで複数指定が可能です。

hiroki0907 at 23:58トラックバック(0)AWSGoogle Android この記事をクリップ!


現在の戦闘力
ドラゴンボール改 3 [DVD]

このブログの戦闘力

3919

「ナッパ」
クラスです。

by ブログ戦闘力チェッカー

  • ライブドアブログ