CLOUD NAVIクラウドとは?からクラウドを支える技術や関連用語まで解説

FJcloud実践

FJcloud-Vの「SDK for Java」サンプルを用いたサーバー操作検証

2016年3月15日
FJcloud-Vの「SDK for Java」サンプルを用いたサーバー操作検証

この記事は、ニフクラブログで2016-03-15に公開された記事を移転したものです。

こんにちは、FJcloud-V(旧ニフクラ)のテクニカルアカウントエンジニアチームです。

FJcloud-V(旧ニフクラ)では、REST APIの提供以外にもサーバーの操作やステータス参照などを可能にする Java API を提供しています。

本記事では、そのためのツール「FJCloud-V(旧ニフクラ) SDK for Java」を利用し、簡単な動作確認をしながらFJcloud-V(旧ニフクラ)を操作していきたいと思います。

はじめに

今回は、「APIの概要はある程度掴んではいるものの、プログラミングについてはハードル高く苦手意識が…」とか、「そもそもプログラム組んだことないし…」という方に、「FJCloud-V(旧ニフクラ) SDK for Javaで用意されているサンプルソースを利用すればハードルはそれほど高くありません!」という観点で、検証を進めていきたいと思います。

なお、Javaソース内で指定するパラメーターは以下を参照しています。

▼利用可能なAPI一覧
https://docs.nifcloud.com/cp/api/reference.htm

検証概要

今回の検証では、総合開発環境(IDE)である「Eclipse」に対し、FJCloud-V(旧ニフクラ) SDK for Javaのサンプルソースを組み込み、以下の動作確認を行います。

  • OSイメージ一覧の取得
    FJCloud-V(旧ニフクラ)が提供しているOSイメージ一覧を取得し、検証用に使用するサーバーの"イメージID"を確認します。
  • サーバー作成
    APIを実行し、GUIにて正常にサーバーが作成されていることを確認します。
  • サーバー停止
    APIを実行し、GUIにて正常にサーバーが停止されていることを確認します。
  • サーバー起動
    APIを実行し、GUIにて正常にサーバーが起動されていることを確認します。

検証環境作成

1.事前準備

  1. 1. 利用OSに合ったEclipseを以下URL先よりダウンロードし任意の場所に解凍します。
    ▼Pleiades - 統合開発環境 Eclipse 日本語化プラグイン
    Pleiades All in One ダウンロード
  2. 2. FJCloud-V(旧ニフクラ) SDK for Java、以下URL先よりダウンロードし任意の場所に解凍します。
    ▼クラウド API(FJCloud-V(旧ニフクラ) SDK)
    https://docs.nifcloud.com/sdk/#niftycloud
    ファイル名は「NIFCLOUD_SDK_for_Java_8.0.4.zip」です。 api_01
  3. 3. 以下URL先にてエンドポイントを確認します。
    ▼クラウド API(エンドポイント)
    https://docs.nifcloud.com/api/endpoint.htm
    今回は「east-1」で検証しますので、エンドポイントは
    >https://east-1.cp.cloud.nifty.com/api/」を使用します。
    api_02
  4. 4. AccessKey/SecretAccessKey を取得します。
    1. 1. コントロールパネル右上のNiftyIDを選択すると、アカウントメニューが表示されます。次にメニューから「アカウント管理」をクリックします。
      api_03
    2. 2. アクセスキーをコピーして保存しておきます。次に「シークレットアクセスキー」の右隣にある「表示」をクリックします。
      api_04
    3. 3. シークレットアクセスキーも同じくコピーして保存しておきます。
      api_05

【ご注意】

SecretAccessKey が外部に漏れると、第三者から API が実行される可能性があります。外部に漏れないよう、SecretAccessKey の取り扱いには十分ご注意ください。

2.Javaプロジェクト作成

  1. 1. Eclipse起動
    Eclipseを起動します。
    ※起動途中に下図ワークスペースの選択画面が表示されますが、デフォルトのままで構いません。
    api_06
  2. 2. Eclipse起動後、Javaのプロジェクトを作成します。
    1. 1. メニュー\[ファイル]\-\[新規]\-\[Javaプロジェクト]をクリックします。
    2. 2. 「新規Javaプロジェクト」作成画面の「プロジェクト名」箇所に任意のプロジェクト名を入力し、「完了」をクリックします。
      今回は「NiftyAPI」と入力しました。
      api_07
    3. 3. Javaプロジェクトが作成されたことを確認します。
      api_08
  3. 3. JavaプロジェクトNiftyAPI配下にソース・フォルダーを作成します。
    1. 1. 先ほど作成したJavaプロジェクト「NiftyAPI」を選択し、右クリックメニュー[新規]-[ソースフォルダー]をクリックします。
      api_09
    2. 2. フォルダ名に「src」と入力し、「完了」をクリックします。
      api_10
    3. 3. JavaプロジェクトNiftyAPI配下にソース・フォルダー「src」が作成されたことを確認します。
      api_11

3.プロジェクトの設定

jarファイルを組み込んでいきます。

  1. 1. 事前準備にてダウンロードした「NIFTY_Cloud_SDK_for_Java.zip」を解凍すると、以下のようなフォルダ構成となっています。
    api_12
  2. 2. 「dist\lib\nifty-cloud-api-lib.jar」をEclipseへドラック&ドロップします。
    ※以降、jarファイルを組み込む時は、同様の手順を実施します。
    api_13
    「ファイル操作」ボップアップが表示されるので、「ファイルをコピー」にチェックを入れ「OK」をクリックします。
    api_14
  3. 3. 組み込んだjarファイルをビルド・パスに追加します。
    nifty-cloud-api-lib.jarを選択し、右クリックメニュー内[ビルド・パス]-[ビルド・パスに追加]をクリックします。
    api_15
  4. 4. 参照ライブラリーへ追加されたことを確認します。
    api_16
  5. 5. 「NIFTY_Cloud_SDK_for_Java\third-party」フォルダをEclipseへドラック&ドロップします。※2と同様の手順で実施します。
  6. 6. 組み込んだjarファイルをビルド・パスに追加します。
    パッケージ・エクスプローラーにて、[NiftyAPI]-[third-party]-[xxxxx.jar](※4ファイル)を選択し、右クリックメニュー内[ビルド・パス]-[ビルド・パスに追加]をクリックします。
    api_17
    api_18
  7. 7. 4ファイルがすべて参照ライブラリーへ追加されたことを確認します。
    api_19
  8. 8. 「NIFTY_Cloud_SDK_for_Java\src\com\nifty\cloud\sdk\sample」フォルダ内の以下ファイルをNiftyAPI配下のsrcソース・フォルダーへドラック&ドロップします。
    使用するサンプルソース
    • DescribeImagesSample.java
    • RunInstancesSample.java
    • StopInstancesSample.java
    • StartInstancesSample.java

    api_20
  9. 9. 対象ソースをダブルクリック選択し、右ペインに表示されるソース内「package com.nifty.cloud.sdk.sample;」にカーソルを合わせると下図のようなポップアップ画面が表示されます。
    次にポップアップ内の「'xxxxxxxSample.java'をパッケージ'com.nifty.cloud.sdk.sample'に移動」をクリックします。
    ※8で追加した対象ソースすべてに対し、当手順を行います。
    api_21
  10. 10. 対象ソースが[NiftyAPI]-[src]-[com.nifty.cloud.sdk.sample]へ移動したことを確認します。
    api_22

動作確認

ここから実際に動かしていきます。

組み込んだサンプルソースを正常に動作させるために必要な各種パラメーターの修正も行います。 本記事初めの方で紹介しました「利用可能なAPI一覧」を参照しつつ進めていきます。

1.OSイメージ情報の取得

使用ソース「DescribeImagesSample.java」

  1. 1. 対象ソース内の下記パラメーター設定箇所を修正します。
    api_23
    ▼アクセスキー入力
    String accessKey = "<Input Your AccessKey>"; ←事前に取得しておいたアクセスキーを入力します。
    String secretKey = "<Input Your SecretAccessKey>"; ←事前に取得しておいたシークレットアクセスキーを入力します。

    ▼クライアント設定情報
    ※インターネットへ接続する為の設定箇所です。利用環境に応じて修正してください。
    ClientConfiguration config = new ClientConfiguration();
    // config.setUserAgent("NIFTY Cloud API Java SDK");
    // config.setProtocol(Protocol.HTTPS);
    // config.setProxyHost("proxy_host");
    // config.setProxyPort(0);
    // config.setProxyUsername("proxy_username");
    // config.setProxyPassword("proxy_password");
    // config.setMaxErrorRetry(3);
    // config.setMaxConnections(50);
    // config.setSocketTimeout(30);
    // config.setConnectionTimeout(30);
    // config.setSocketSendBufferSizeHint(0, 0);
    // config.setSignatureVersion(SignatureVersion.Version_2);
    // config.setSignatureMethod(SignatureMethod.HmacSHA256);
    // config.setRequestMethod("GET");

    ▼エンドポイントを指定
    client.setEndpoint("endpoint_url"); ←事前に確認しておいたエンドポイントを入力します。

    ▼リクエストパラメーター設定
    今回は特に設定はしません。
  2. 2. メニューバー[実行]-[実行]をクリックし、修正したソースを動かしてみます。
    api_24
    [実行]クリック後、以下ポップアップ画面が表示されますので、「OK」をクリックします。
    api_25
  3. 3. コンソールを開き、以下のように結果が返ってくればOSイメージ情報取得要求は成功です。
    ※コンソールは、メニューバー[ウィンドウ]-[ビューの表示]-[コンソール]から開きます。
    api_26
  4. 4. 処理結果内容の下記箇所で作成するサーバーの"OSイメージID"を確認できます。
    作成するサーバーはWindows Server 2012 R2を予定していますので…IDは「39」です。
    Image
    ImageId           : 39 ← OSイメージID
    ImageLocation     : 
    State             : available
    OwnerId           : niftycloud
    :
    :

2.サーバー作成

使用ソース「RunInstancesSample.java」

  1. 1. コントロールパネルを確認すると、現時点ではサーバーがない状態です。
    api_27
  2. 2. 「RunInstancesSample.java」のパラメータ設定を修正します。
    アクセスキー入力/クライアント設定情報/エンドポイント情報はOSイメージ情報取得と同じです。
    ▼リクエストパラメーター設定
    RunInstancesRequest request = new RunInstancesRequest();
    request.setImageId("39"); ←OSイメージID
    // request.setMinCount(0);
     :
     省略
     :
    request.setInstanceType("small4"); ←サーバータイプ。今回はsmall4を指定。
    // Placement placement = new Placement();
     :
     省略
     :
    request.setAccountingType("2"); ←利用料金タイプ 1:月額課金/2:従量課金
    request.setInstanceId("APITEST"); ←サーバー名
    request.setAdmin("admin"); ←管理者アカウント
    request.setPassword("password"); ←管理者アカウントパスワード
    request.setIpType("none"); ←グローバルIP none(グローバルIPなし)
    // request.setAgreement(true);
    // request.setPublicIp("publicIp");
  3. 3. メニューバー[実行]-[実行]をクリックし、修正したソースを動かしてみます。
    ※手順はOSイメージ取得と同様です。
  4. 4. コンソールを開き、以下のように結果が返ってくれば作成要求は成功です。
    api_28
  5. 5. コントロールパネルの状況を確認します。
    サーバーの作成が始まってます。
    api_29
    しばらく待ち、ステータスが「オンライン」になれば作成完了です。
    api_30

3.サーバー停止

使用ソース「StopInstancesSample.java」

  1. 1. 「StopInstancesSample.java」のパラメータ設定を修正します。
    アクセスキー入力/クライアント設定情報/エンドポイント情報はOSイメージ情報取得と同じです。
    ▼リクエストパラメーター設定
    StopInstancesRequest request = new StopInstancesRequest();
    List instanceIds = new ArrayList(); ←コメントアウトを外す
    instanceIds.add("APITEST"); ←サーバー名
    request.setInstanceIds(instanceIds); ←コメントアウトを外す
    // request.setForce(false);
  2. 2. メニューバー[実行]-[実行]をクリックし、修正したソースを動かしてみます。
    ※手順はOSイメージ取得と同様です。
  3. 3. コンソールを開き、以下のように結果が返ってくれば停止要求は成功です。
    api_31
  4. 4. コントロールパネルの状況を確認します。今回はすでに停止していました。
    タイミングによっては「処理中」となっていますが、しばらく待つと停止されます。
    api_32

4.サーバー起動

使用ソース「StartInstancesSample.java」

手順はこれまでと同様です。今回はサーバー起動時にサーバータイプを変更するようパラメーターを指定してみます。

  1. 1. 「StartInstancesSample.java」のパラメーター設定を修正します。
    アクセスキー入力/クライアント設定情報/エンドポイント情報はOSイメージ情報取得と同じです。
    ▼リクエストパラメーター設定
    StartInstancesRequest request = new StartInstancesRequest();
    List instances = new ArrayList(); ←コメントアウトを外す。
    InstanceIdSet instanceIdSet = new InstanceIdSet(); ←コメントアウトを外す。
    instanceIdSet.setInstanceId("APTTEST"); ←サーバー名。
    instanceIdSet.setInstanceType("small2"); ←サーバータイプを「small2」へ変更。
    // instanceIdSet.setAccountingType("accountingType");
    instances.add(instanceIdSet); ←コメントアウトを外す。
    request.setInstances(instances); ←コメントアウトを外す。
    // request.setUserData(new String(Base64.encodeBase64Chunked("userData".getBytes())));
    // request.setUserDataEncoding("base64");
    invokeStartInstances(client, request);
  2. 2. メニューバー[実行]-[実行]をクリックし、修正したソースを動かしてみます。
    ※手順はOSイメージ取得と同様です。
  3. 3. コンソールを開き、以下のように結果が返ってくれば起動要求は成功です。
    api_33
  4. 4. コントロールパネルの状況を確認します。
    api_34
    しばらく待ちスタータスが「オンライン」になれば起動完了です。
    また、サーバータイプも「small4」から「small2」へ変更されていることも確認できます。
    api_35
  5. まとめ

    今回は、このようにFJCloud-V(旧ニフクラ) SDK for Javaのサンプルソースを使用し、単体処理ごとに動作確認を行いました。

    各処理ごとにサンプルソースが用意されていることもあり、思っていたほど難しいこともなく動作させることができました。

    今回検証したSDKのほかにも「FJCloud-V(旧ニフクラ) エンジニアリングパーツ SDK for Java」や「FJCloud-V(旧ニフクラ) ストレージ SDK for Java」を提供しております。

    どちらもサンプルソースを用意しておりますので、同様の使用感で利用いただくことができます。

    ▼FJCloud-V(旧ニフクラ) SDK
    https://docs.nifcloud.com/sdk/

    それでもやはり…という方に、CLI(Command line interface)も提供しています。

    普段からコマンドライン操作が多いインフラ・運用エンジニアの方には、CLIもお勧めです。

    コマンドラインからFJCloud-V(旧ニフクラ)を操作することができ、ジョブスケジューリングソフトなどと併用することで自動運用も可能となります。

    CLI動作検証は以下に掲載していますので、併せてご覧いただけると幸いです。

PageTop