グローバルIPアドレスの取得と仮想サーバへの割り当て
仮想リソースにインターネットからアクセスするためのグローバルIPアドレスを取得し仮想サーバに割り当て、そして確認するまでの手順を解説します。
グローバルIPアドレスは取得と仮想リソース割り当ての2ステップに分かれますが、本項目では1つのAPIで実現します。
-
以下で必要な設定を行います。
$ NETWORK_ID=<グローバルIPアドレスを割り当てたい仮想サーバが存在するアベイラビリティゾーンの外部ネットワークID>
$ VM_PORT_ID=<仮想サーバID>
-
次のAPIを実行します。
$ curl -Ss $NETWORK/v2.0/floatingips -X POST -H "X-Auth-Token:$OS_AUTH_TOKEN" \ -H "Content-Type:application/json" -d '{"floatingip": {"floating_network_id":"'$NETWORK_ID'", "port_id":"'$VM_PORT_ID'", "availability_zone": "'$AZ'"}}' | jq .
以下のレスポンスが返ってきます。
{ "floatingip": { "router_id": "<デフォルトゲートウェイの仮想ルータID>", "status": "DOWN", "tenant_id": "<プロジェクトID>", "floating_network_id": "<外部ネットワークアドレス>", "fixed_ip_address": "<プライベートIPアドレス>", "floating_ip_address": "<グローバルIPアドレス>", "port_id": "<設定したポートのID>", "id": "<グローバルIPアドレスのID>", "availability_zone": "<アベイラビリティゾーン>" } }
アベイラビリティゾーンは、AZ1がjp-east-1a、AZ2がjp-east-1bで表現されます。
-
作成したグローバルIPアドレスを確認するため、以下のAPIを実行します。
$ curl -Ss $NETWORK/v2.0/floatingips -X GET -H "X-Auth-Token:$OS_AUTH_TOKEN" \ -H "Content-Type:application/json" | jq .
以下のように、新規割り当てしたグローバルIPアドレスを含んだリストが出力された場合、作成は完了です。
{ "floatingips": [ ... { "router_id": "<デフォルトゲートウェイの仮想ルータID>", "status": "<ステータス>", "tenant_id": "<プロジェクトID>", "floating_network_id": "<外部ネットワークアドレス>", "fixed_ip_address": "<プライベートIPアドレス>", "floating_ip_address": "<グローバルIPアドレス>", "port_id": "<ポートのID>", "id": "<グローバルIPアドレスのID>", "availability_zone": "<アベイラビリティゾーン>" } ... ] }