5

プログラムでEBSを使用してUbuntu 12.04 LTSサーバー64ビットを起動しようとしています。私は次のコードを書きました:

Placement placement = new Placement("eu-west-1b");
RunInstancesRequest runInstancesRequest = new RunInstancesRequest()
    .withPlacement(placement).withInstanceType("t1.micro")
    .withImageId("ami-c1aaabb5").withMinCount(1).withMaxCount(1)
    .withSecurityGroupIds("testGroup").withKeyName("testKey")
    .withUserData(Base64.encodeBase64String(startupScript.getBytes()));
RunInstancesResult runInstances = amazonEC2.runInstances(runInstancesRequest);
List<Instance> instances = runInstances.getReservation().getInstances();

ただし、次のエラーが表示されます。

AWS エラー コード: InvalidAMIID.NotFound、AWS エラー メッセージ: AMI ID 'ami-c1aaabb5' が存在しません

そのインスタンス ID は Amazon AWS コンソールと次の URL で見つかりました: http://cloud-images.ubuntu.com/releases/precise/release-20121001/

私は何を間違っていますか?

4

1 に答える 1

7

デフォルトでは、リクエストは米国バージニア州のデータセンターに送信され、正しいエンドポイントを設定すると問題が解決することがわかりました。

public AmazonEC2 createAmazonEC2() {
    AmazonEC2 ec2 = new AmazonEC2Client(createAwsCredentials());
    ec2.setEndpoint("https://eu-west-1.ec2.amazonaws.com");
    return ec2;
}

private AWSCredentials createAwsCredentials() {
    AWSCredentials credentials = new BasicAWSCredentials(awsAccessKey, awsSecretKey);
    return credentials;
}
于 2012-11-24T17:01:39.293 に答える