検討中のお客様はこちら

0120-50-6065

10:00〜19:00
土日祝、年末年始除く

お申し込み

任意のポートでバランシング設定をする(NATロードバランサー)

コントロールパネルに表示されていないポート番号のバランシング設定をcurlコマンドを用いたAPIにて実施する方法をご案内します。

本手順では、NATロードバランサー配下のサーバーにSSH接続をおこなうための設定例となります。
なお、セキュリティの観点から本来のSSH接続で使用されている22番ポートではなく、NATロードバランサーのバーチャルIPアドレスの10022番ポートにアクセスがあった場合、バランシング先サーバーの22番ポートに転送するように設定します。

 設定に必要な情報の確認

[ 1 ] 「cloud」内の左メニューより [ネットワーク] を選択します。
image
[ 2 ] 「ロードバランサー」内の「ヘルスモニタールール」をクリックし、対象ルールのUUIDをメモします。
ヘルスモニターのルールを作成していない場合は、こちら の手順を参考に作成後、本手順を進めてください。
image
[ 3 ] 「ロードバランサー」内の「ロードバランサー設定」から対象のバーチャルIPアドレスをクリックし、UUIDをメモします。
VIPを追加していない場合は、こちら の手順を参考に追加後、本手順を進めてください。
image

 API操作

・トークンの発行

[ 1 ] API認証を行い、トークンの取得ならびに発行されたトークンIDを確認します。実行コマンドの赤字の部分は、API情報に差し替えて実行ください。
コマンド実行結果にある「access」の「id」の値がAPI操作を行う際に必要となるトークンIDです。
※対象APIの詳細は、こちら をご確認ください。
APIユーザー名 コントロールパネル内のAPIメニューからAPIユーザーをご確認ください。
APIユーザーを作成していない場合は、こちら の手順を参考に作成ください。
パスワード APIユーザーのパスワードを指定します。
テナント名 コントロールパネル内のAPIメニューから「テナント名」をご確認ください。
API情報の確認方法は、こちら をご確認ください。
  • Request
curl -i -X POST \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"auth":{"passwordCredentials":{"username": "ユーザー名", "password": "パスワード"},"tenantName":"テナント名"}}' \
https://identity.gpu-sys.cloud/v2.0/tokens
  • Response
HTTP/1.1 200 OK
Date: Tue, 28 Jul 2020 08:01:44 GMT
Server: Apache
Content-Length: 1994
Content-Type: application/json

{
  "access": {
    "token": {
      "issued_at": "2020-07-28T08:04:06.953886",
      "expires": "2020-07-29T08:04:06Z",
      "id": "トークンID",
      "tenant": {

・POOLの作成

[ 2 ] 以下コマンドを実行し、POOLを作成します。実行コマンドの赤字の部分は、API情報やこれまでに実行したAPIでご確認いただいている内容に差し替えて実行ください。
コマンド実行結果の「プールID」の値は、後述する設定手順で必要となる値になりますのでメモしておきます。
※対象APIの詳細は、こちら をご確認ください。
  • Request
curl -i -X POST  \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "X-Auth-Token: トークンID" \
-d '{"pool":{"lb_method":"ROUND_ROBIN","protocol":"TCP","name":"10022_lb","subnet_id":"VIPのUUID情報"}}' \
https://networking.gpu-sys.cloud/v2.0/lb/pools
  • Response
HTTP/1.1 201 Created
Date: Wed, 26 Aug 2020 09:14:18 GMT
Server: Apache
Content-Length: 437
Content-Type: application/json

{
  "pool": {
    "status": "PENDING_CREATE",
    "lb_method": "ROUND_ROBIN",
    "protocol": "TCP",
    "description": "",
    "health_monitors": [],
    "members": [],
    "status_description": null,
    "id": "プールID",
    "vip_id": null,
    "name": "10022_lb",
    "admin_state_up": true,
    "subnet_id": "VIPのUUID情報",
    "tenant_id": "テナントID",
    "health_monitors_status": [],
    "provider": "lbnat3"
  }
}

・ヘルスモニタールールの関連付け

[ 3 ] 以下コマンドを実行し、作成したヘルスモニターのルールをPOOLに関連付けます。実行コマンドの赤字の部分は、API情報やこれまでに実行したAPIでご確認いただいている内容に差し替えて実行ください。
※対象APIの詳細は、こちら をご確認ください。
  • Request
curl -i -X POST \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "X-Auth-Token: トークンID" \
-d '{"health_monitor":{"id":"ヘルスモニタールールのUUID情報"}}' \
https://networking.gpu-sys.cloud/v2.0/lb/pools/プールID/health_monitors
  • Response
{
"health_monitor": {}
}

・VIPの設定

[ 4 ] 以下コマンドを実行し、VIPにポート番号情報を紐付けます。実行コマンドの赤字の部分は、API情報やこれまでに実行したAPIでご確認いただいている内容に差し替えて実行ください。
※対象APIの詳細は、こちら をご確認ください。
  • Request
curl -i -X POST \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "X-Auth-Token: トークンID" \
-d '{"vip":{"admin_state_up":true,"name":"vip_ssh_10022","address":"NATロードバランサーのVIP","protocol":"TCP","protocol_port":"10022","subnet_id":"VIPのUUID情報","pool_id":"プールID"}}' \
https://networking.gpu-sys.cloud/v2.0/lb/vips
  • Response
HTTP/1.1 201 Created
Date: Wed, 26 Aug 2020 11:52:41 GMT
Server: Apache
Content-Length: 510
Content-Type: application/json

・MEMBERの作成

[ 5 ] 以下コマンドを実行し、バランシング先となる仮想サーバーの22番に転送させる設定をします。実行コマンドの赤字の部分は、API情報やこれまでに実行したAPIでご確認いただいている内容に差し替えて実行ください。
※対象APIの詳細は、こちら をご確認ください。
  • Request
curl -i -X POST \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "X-Auth-Token: トークンID" \
-d '{"member": {"pool_id": "プールID","address": "対象サーバーのNATロードバランサー用プライベートIPアドレス","protocol_port": "22"}}' \
https://networking.gpu-sys.cloud/v2.0/lb/members
  • Response
HTTP/1.1 201 Created
Date: Thu, 27 Aug 2020 02:59:00 GMT
Server: Apache
Content-Length: 301
Content-Type: application/json

{
  "member": {
    "admin_state_up": true,
    "status": "PENDING_CREATE",
    "status_description": null,
    "weight": 1,
    "address": "対象サーバーのNATロードバランサー用プライベートIPアドレス",
    "tenant_id": "テナントID",
    "protocol_port": 22,
    "id": "メンバーID",
    "pool_id": "プールID"
  }
}

以上で設定は完了です。
バランシング先の仮想サーバーで22番が待ち受けになっている状態であれば、外部からVIPの10022番ポートに対してSSH接続した際に対象サーバーに接続できるようになります。
お手元のクライアントソフトにてお試しください。


本リファレンスはGPUクラウドにてサーバーをご利用いただく場合の一例であり、お客様の運用やポリシーによってその限りではございません。
お客様のご利用用途に応じて必要な設定や操作をおこなってください。