基礎知識
「API」がクラウドの運用の自動化を実現する!?
API(Application Programming Interface/アプリケーションプログラミングインタフェース)とは、「プログラムからソフトウェアを操作するためのインターフェイス」を意味します。
現在では多くのクラウドサービスにおいて豊富なAPIが用意されており、開発のスピードアップや構築・運用の自動化・効率化になくてはならないものです。
サービスプロバイダーとユーザーの双方にメリットがあるAPIについて、その概要や活用事例などを見ていきます。
「サービス」の窓口となる「API」
APIで提供されている機能は多岐に渡ります。機能を1から開発せずとも、必要なAPIを組み合わせることでサービスを構築可能です。
例えば、ECサイトを構築する場合、商品説明のページ、商品の検索機能、ショッピングカート機能、決済機能などが必要となりますが、各機能はAPIで提供されているものも多く、APIを利用することで開発工数の削減が可能です。
また、APIのメンテナンスはAPI提供者が行うため、利用者が行う必要がないのも特長の一つです。
API提供者にとって、API利用者の増加は自社のビジネスの拡大につながります。新しいサービス構築の潮流として、APIを相互に利用することで自社では実現が難しいサービスを実現できる「APIエコノミー」というエコシステムが注目されています。
クラウド運用でAPIはどう使われているのか
クラウド運用におけるAPIは、プラットフォーム側の汎用性の高い機能を外部から手軽に利用するための仕組みで、サーバーの作成やリソースの変更・削除、サーバーの起動や停止、ストレージの割当といった操作をサービスとして提供しています。
通常、これらの操作を行うためには、クラウド事業者側が提供するWEBベースのユーザーインターフェース(管理画面・コントロールパネルと呼ぶ場合もあります)を利用します。では、APIを利用するメリットはどこにあるのでしょうか。
クラウド運用でAPIを利用する最大のメリットは「自動化」にあると言ってもいいでしょう。
例えば、サーバーリソースをAPIで制御する場合、仮想サーバーの作成からOSの設定までを自動実行することが可能です。ストレージ容量を増やす際は、コントロールパネルからストレージ制御に特有の設定を行う必要がありますが、APIなら面倒な設定を自動化できます。ネットワークの設定なども同様です。
また、クラウドを運用するためには、各種設定だけでなく、正常に稼働しているかどうかの監視業務も重要になりますが、ここでも用意されているAPIの利用により、監視・管理業務の自動化が可能になります。
このようにAPIを活用することでクラウドの運用・監視を自動化すれば、エンジニアの作業工数を削減できます。
クラウド選択のポイントはAPIにあり!?
クラウド活用の効率化に不可欠の存在とも言えるAPIは、「Amazon Web Services(AWS)」では「Amazon API Gateway」、「Microsoft Azure」では「Azure API Management」、「Google Cloud Platform(GCP)」では「Google Cloud Endpoints」といったように、クラウド事業者が各自で提供しています。
提供されているAPIを利用することで、それぞれのクラウドサービスの管理、テスト、認証、認可、モニタリングなどの自動化が可能になります。
ちなみに、FJcloud-V(旧ニフクラ)では「API」を提供していて、サーバー・ディスク・イメージ・ロードバランサーなどの操作が可能です。APIを利用すれば、コントロールパネルとは別に、サーバーやディスクの作成・起動・停止やステータス参照などの操作を、外部プログラムから実行することなどが可能です。
このように各クラウド事業者から提供されているAPIですが、目的によってはAPIがクラウド選択のポイントになる場合があります。利用したいアプリと連携が可能かどうかや、マルチクラウドでは接続元と接続先のクラウドがAPIで連携できるかなどを、事前に調べる必要があります。
また、上記以外でも、どれだけ使いやすいAPIが公開されているかは、クラウド選択の重要な要素の一つと言えます。APIは、クラウド運用効率化の「キモ」といってもいいかもしれません。