Atma
Atma

Reputation: 29767

How to set availability zone for accessed EC2 object on AWS Java

I'm attempting to describe running ec2 instances that I'm using with the following code:

DescribeInstancesResult describeInstancesRequest = ec2.describeInstances();
            List<Reservation> reservations = describeInstancesRequest.getReservations();
            Set<Instance> instances = new HashSet<Instance>();

            for (Reservation reservation : reservations) {
                instances.addAll(reservation.getInstances());
            }

            System.out.println("You have " + instances.size() + " Amazon EC2 instance(s) running.");

I'm getting a return result of 0. I'm guessing this is because the default AZ is set to US-East.

My instances are running in US-West.

How do I change the AZ?

Upvotes: 1

Views: 1041

Answers (2)

GregG
GregG

Reputation: 791

For those coming across this post, the current way to do this is:

    AmazonEC2 ec2 = new AmazonEC2Client(new StaticCredentialsProvider(new BasicAWSCredentials("your-aws-access-key-here", "your-aws-secret-here")));
    DescribeInstancesRequest request = new DescribeInstancesRequest();

    Filter filter = new Filter()
            .withName("availability-zone")
            .withValues("us-east-1a");

    request.withFilters(filter);

    DescribeInstancesResult result = ec2.describeInstances(request);
    List<Reservation> reservations = result.getReservations();

Upvotes: 1

Atma
Atma

Reputation: 29767

You can set the endpoint like this:

ec2.setEndpoint("ec2.us-west-1.amazonaws.com");

Upvotes: 1

Related Questions