REST APIの活用例の紹介

ビジネス推進本部 応用技術部
エンタープライズSDNチーム
鈴木俊吾

近年ではREST APIがネットワーク分野においても注目され、活用が広がってきています。WEBアプリケーションでは何年も前から活用されている技術でありますが、ネットワーク機器にもサポートされる製品が増えてきています。
そこで本稿ではREST APIの概要とネットワーク運用での活用例を紹介します。

■REST APIとは?

まずREST APIとはどういった技術なのか簡単に紹介します。
文字通りREST(Representational State Transfer)の原則に沿った設計されてAPIのことでWeb APIの一つです。
RESTの原則とは、大きく以下の3点になります。

・リソース(情報資源)を一意なURIで表現
・HTTP技術をベースとし、HTTPメソッドで操作方法を表現
・処理結果をコードで表現

上記を実際の処理の流れの図にすると図1のようになります。

図1
図1.REST APIの動作

ユーザが必要としているリソースを分かり易くURIで表現します。URIには操作を示す動詞は含めず、リソースの場所を名詞で設計する方が汎用性が高まります。
リソースに対してどのような操作が必要なのかはGETやPOSTといったHTTPメソッドで示します。

また、HTTPでリクエストした返信としては下記のようなコード(処理の成功か失敗かなどを表現)と一緒にJSONやXMLなどのレスポンスフォーマットで応答されます。

コードの例
・200系-処理成功
・300系-リソースの状態変更
・400系-リクエストのエラー
・500系-サーバ内部エラー

レスポンスは、リクエストに対する返答になります。
たとえば、リクエストでネットワーク機器のshowコマンド結果を要求した場合、レスポンスには機器の状態情報が含まれています。

このときのレスポンスフォーマットには種類があり、それぞれデータ構造が異なりますので、REST APIを使って連携させたいシステム(あるいはシステム開発者)が扱いやすいフォーマットを選択できるように、機器がサポートするフォーマットを確認しておくことも重要です。

URIとHTTPリクエストで処理に必要なデータすべてを表現しているためAPI開発とそのAPIを利用するサービス開発も簡単になります。HTTPにてシンプルでかつ汎用性が高いAPIを提供ができることが大きなメリットと言えるでしょう。

■REST APIのネットワークへの活用例

ネットワーク機器がこのREST APIに対応してきたことで実際にどういった活用例があるでしょうか?一つの例としてシステム間の連携に適用することで運用自動化などを実現することが可能です。

たとえば、ユーザが新たなアプリケーションを展開するといった際などにVLANの追加削除が必要になります。従来であれば、管理者が手動で都度サーバーとネットワーク機器の双方に設定変更を実施する必要がありました。

REST APIを活用することでシステムからサーバとネットワーク双方に対して設定変更を一括で実行できるようになります。
つまり、今まで複数個所に必要だったネットワーク側の設定が自動化され、クラウド基盤とネットワークが連動して設定変更できるのです。

これにより素早いサービス提供が実現できるようになります。

図2
図2.REST APIのネットワークへの活用例

また、ネットワーク機器の状態監視、自動制御も実現できます。
これまではSNMPやsyslogで状態監視し、何か問題が発生したら、管理者が手動で対処していました。REST APIによってシステムからネットワーク機器を直接制御しやすくなったためネットワークの設定変更を伴う運用の自動化に活用できます。

たとえば、ネットワーク機器のインターフェースに流れるパケット量やCPU負荷状況を監視しておき一定以上になったら自動で他の経路に切り替えたり、障害時に即座に必要なログを収集したりなどネットワークの運用負荷低減が期待できます。

■データセンタースイッチの動作例

各社から提供されているデータセンタースイッチで動作確認してみましたので、下記に参考として紹介いたします。
REST APIを使うにあたりスイッチに事前に設定が必要な場合があるので、あらかじめその設定は投入しておきましょう。

REST APIを使ってBrocade VDXのVLAN情報取得のした時の実行例は図3のとおりです。
URIでVLAN情報の場所を示しており、メソッドはGETでリクエストしています。それに対するレスポンスは「コード=200」で成功となっています。それに続いてXML形式でVLAN情報が記載されています。

図3
図3.Brocade製品のREST APIの実行例

メーカによってはREST API用ツールが用意されてる場合もあります。
Juniper QFXではREST API ExplorerというGUI機能が提供されおり、REST APIの動作確認をすることが出来ます。

図4
図4.Juniper製品のREST API Exploreの例

Arista DCSもCommand APIというGUIがサポートされております。
こちらではJSON形式でレスポンスさせています。

図5
図5.Arista製品のCommand APIの例

上記のように各メーカの実装によりHTTPリクエスト、レスポンスの表記は異なるので、複数のメーカ製品を導入しているネットワークとシステムをREST APIで連携させる場合は各機種に合わせて記述を変更する必要があります。

REST APIの設計時にこの点を考慮してあれば、複数メーカで構成されるネットワークでも自動化を実現できます。

■まとめ

各社から提供されているネットワーク製品にREST APIのサポートが進んできています。
REST APIを活用することでクラウド基盤との連動、自動制御を実現することで運用負荷の低減などが期待できます。

また各機器の実装も設計しやすくなるツールや確認コマンドが用意されており、これまでこういった技術に触れたことのないエンジニアでも比較的容易に扱うことが出来るようになってきています。今後ネットワークの制御方法の一つとしてREST APIの活用の拡大が進むと思われます。

執筆者プロフィール

鈴木 俊吾

ネットワンシステムズ株式会社 ビジネス推進本部
応用技術部 エンタープライズSDNチーム 所属

スイッチ分野を核とした新旧技術の調査・検証と共に、エンタープライズネットワーク提案および導入を支援する業務など、製品の評価検証・拡販業務に従事

イベント/レポート

pagetop