新宿鮫:第13回AWSもくもく勉強会 EclipseでJavaからEC2作成

新宿鮫:第13回AWSもくもく勉強会に参加しました。

今日はAWS Toolkit for Eclipseを使用して、JavaからEC2を立ち上げたりしてみたいと思います。
AWS Toolkit for Eclipseは既にノートに入ってるので、インストール方法は上記のリンクを参考にしてください。

ちなみにJava用AWS SDKのAPIマニュアルはこちらにあります。

プロジェクトの作成

新規プロジェクトから [AWS]-[AWS Java Project] を選択します。

f:id:yuji0316:20130731204400p:plain

プロジェクト名は「MokuMokuSDK」で。
初めてなので、とりあえずEC2のサンプルにチェックつけてみました。

f:id:yuji0316:20130731204401p:plain

のこりはデフォルトのまま、プロジェクト作成完了。
これらのファイルが作成されました。

f:id:yuji0316:20130731204402p:plain

プログラム作成

作成されたサンプルはスポットインスタンスだったので却下w
通常インスタンスの作り方をネットでいろいろ拾ってきて、ひとまずシンプルに作りたかったので AMI・KeyPair・セキュリティグループ は既存のを使用しました。

public class MokuMokuEC2 {
    private AmazonEC2      ec2;

    public static void main(String[] args) throws Exception {
        MokuMokuEC2 moku = new MokuMokuEC2();
        moku.create();
    }

    public void create() throws Exception {
        // プロパティファイル読み込み
        AWSCredentials credentials = new PropertiesCredentials(
                InlineGettingStartedCodeSampleApp.class.getResourceAsStream("AwsCredentials.properties"));
        // EC2クライアント作成して日本リージョンを設定
        ec2 = new AmazonEC2Client(credentials);
        ec2.setRegion(Region.getRegion(Regions.AP_NORTHEAST_1));

        // 各種パラメータ設定
        RunInstancesRequest runInstancesRequest = new RunInstancesRequest();
        runInstancesRequest
          .withImageId("ami-19029718")
          .withInstanceType(InstanceType.T1Micro)
          .withKeyName("key-tokyo")
          .withSecurityGroups("test-sec-grp-novpc")
          .withMinCount(1)
          .withMaxCount(1);

        // 起動
        RunInstancesResult runInstancesResult = ec2.runInstances(runInstancesRequest);
        System.out.println(runInstancesResult);
    }
}

これを実行したら、ちゃんとEC2が起動して、デフォルトで立ち上がるようになっているApacheとTomcatの画面も見れました。
SSHでの接続も確認。

課題

サーバーの停止・廃止

時間がなくて、サーバーの起動までしかできませんでした。

サーバー名の指定

指定の仕方がよくわからなかったので、とりあえず無しでやったら empty になってしまいましたw

f:id:yuji0316:20130731205510p:plain

VPC内にEC2インスタンスを作成

最初はセキュリティグループ名にVPC用のグループ名を指定しましたが、

AWS Error Code: InvalidParameterCombination, AWS Error Message: VPC security groups may not be used for a non-VPC launch

と怒られてしまったので、ひとまずnon-VPCのグループを使いました。

Amazon Web Services クラウドデザインパターン実装ガイド

Amazon Web Services クラウドデザインパターン実装ガイド

Amazon Web Services クラウドデザインパターン 設計ガイド

Amazon Web Services クラウドデザインパターン 設計ガイド