APIはクラウド環境の細かい操作や、外部連携など、かゆいところに手が届くインターフェースです。
APIとは、「アプリケーション・プログラム・インターフェース」の略です。プログラミングでの開発に使用できる命令の集合体です。
ソフトウェアなどを開発する際に、はじめから全てをプログラミングすることなく、APIで提供された命令を利用することで、クラウドが持つ機能を使いやすくするためのものになります。
もう少し具体的に書きますと、クラウドの管理や操作は、おおむねコントロールパネル(管理パネル)という、WEBブラウザ上で操作できるパネルからの指示になります。
ここから仮想サーバーの作成やリソースの変更・削除、仮想サーバーの起動や停止と言った一通りの操作ができるのですが、あくまでコントロールパネル上から、管理者が操作をすることで、初めて機能するものです。
APIを利用すると、例えば以下のような使い方ができます。
監視システムで、仮想サーバーを監視しているケースで、例えば「CPUのリソース負荷が高い」というアラートが上がったケースで、対策としてCPUのコア数を増やすことにしたとします。
コントロールパネルで操作する場合、ブラウザを立ち上げて、目的の仮想サーバーの管理画面を開き、そこからCPUのリソースを変更する設定を行う。。。という一連の作業が必要になります。
この間、管理者の方はずっとコントロールパネルに張り付いていなければいけません。
では、APIを使うとどうなるでしょうか?監視システムのソフトウェアでは、アラートが上がった場合の処理として外部コマンドを実行できるものがあります。ここに、APIで提供されているコマンドを書いてあげるのです。
そうすることによって、CPUの負荷が上がったことを監視システムが検知したら、APIで対象の仮想サーバーのCPUリソースを増やす処理をコマンドで記述します。
これによって、仮想サーバーのCPUリソースの負荷が上がってから、CPUリソースを追加するまでの一連の流れが自動化でき、管理者の方は、その流れだけを確認するのみになります。
管理工数がかなり楽になりますよね?
そのほかにも、バックアップスケジュールを、管理者の方が望むタイミングで自動的に取得したり、別のシステムやアプリケーションと連動させる。。。と言ったことも可能になります。
このようにAPIを使うことで、さまざまなシステムとの連携や自動化をすることが可能になり、管理者の皆さんの管理工数が削減できるだけでなく、用途に合わせて、かゆいところに手が届く仕組みをつくることができるのです。まさにプログラミングが得意な方にはうってつけの環境です。
このように、クラウドの自動化や連携に便利なAPIですが、ひとつだけ注意する点があります。それはクラウドを提供している基盤(ベンダーが採用しているクラウドウェア)によって、APIに違いがあると言うことです。
APIの仕組みが違えば、クラウド環境を変えたとたんに、今まで利用していたコマンドが使えなくなると言うことにもなります。
複数のクラウド環境の使い分けなどされている場合は、APIを採用する前に、ぜひ確認してみてください。