本文へジャンプします。

TOP
クラウド トップ>クラウドナビ>基礎知識>クラウドとAPI・SDKの関係とは

基礎知識

クラウドとAPI・SDKの関係とは

2021年3月24日


クラウドとAPI・SDKの関係とは

オンプレミスと比較すると、クラウドには非常に多くのメリットが存在します。「クラウドナビ」では、クラウドを利用するさまざまなメリットを紹介してきました。しかし、自前でハードウエアを用意しなくても、サーバーを利用できるという点だけを見れば、クラウドは従来のホスティングサービスと同じとも言えます。それでは、ホスティングサービスに対するクラウドのアドバンテージには何があるのでしょうか。

その1つが、API/SDKをパブリックに公開することによるエコシステムの構築しやすさです。本記事では、クラウドとAPI、そしてAPIを利用しやすくするSDKについて、解説いたします。

APIとは

アプリケーションの機能を外部から利用できるように公開されたインターフェースのことをAPI(Application Program Interface)と呼びます。APIのメリットは、利用したいアプリの内部構造について知らなくとも、APIの呼び出し方(インターフェース)さえ把握していれば、そのアプリの機能を利用できるという点です。これはAPIを公開する側から見ると、アプリの内部設計やソースコードなどは秘匿しつつ、機能だけを提供できるということでもあります。

APIは、まったく関連性を持たないアプリケーション同士でも機能を連携させることができるため、Webサービスと非常に相性のよい技術です。今時のWebアプリケーションの多くは、その機能を外部から利用できるようにRESTベースのAPIを公開しています。ユーザーは、公開されたAPIのURIに対して、HTTPでリクエストを送り、応答を受け取ることでそのWebアプリの機能を利用できます。このようなAPIを「Web API」と呼びます。Web APIを利用すれば、異なる企業が提供しているまったく別のサービス同士を組み合わせること(マッシュアップ)も容易です。

マイクロサービス」を構成するサービスは、互いに依存せずに独立して動作するのが基本です。このような「疎結合」なサービス同士が連携するためにも、APIは必要不可欠な技術となっています。

SDKとは

APIはあくまで情報をやりとりするインターフェースの取り決めでしかないため、実際にプログラムの中で扱うには、さまざまな「準備」や「お作法」が必要になります。例えば、WebアプリケーションのWeb APIを呼び出そうと思ったら、プログラムの中でHTTPリクエストを作成し、APIのエンドポイントとなるURIに送信し、応答を受け取ってパースする必要があります。このロジックをすべて自分で実装するのは大変ですし、お世辞にも使いやすいとは言えないでしょう。

APIを利用するアプリケーションは、さまざまなプログラミング言語で開発される可能性があります。そこで、利用するプログラミング言語の仕様にあわせて、簡単にAPIを呼び出せるライブラリがあると便利です。例えば、APIを呼び出すクライアントとなるオブジェクトを作成し、読み込みや書き込みといったメソッドを呼び出すだけでAPIを利用できるといった具合です。

多くのサービスでは、プログラミング言語からAPIを簡単に利用するためのライブラリ・APIの機能一覧・サンプルプログラムなどを含む開発ツールが、プログラミング言語の種類ごとに提供されています。このような開発ツール一式を、「SDK(Software Development Kit)」と呼びます。

クラウドとAPI

クラウド(IaaS/PaaS/SaaSなど)が「as a service」たる所以は、その機能をAPIとして実装・公開している点です。例えば、IaaSでは「サーバーを作成する」「サーバーを起動する」「サーバーを停止する」といった操作を別のアプリケーションやサービスから(APIを介して)呼び出して利用することができます。クラウドは、WebブラウザーからWebコンソールを開いて操作するのが一般的ですが、実はこのようなWebコンソールも内部的にはクラウドのAPIを呼び出しています。つまり、WebコンソールもAPIを利用しているアプリケーションの1つなのです。

そのままでは扱いにくいAPIですが、ベンダーから提供されるSDKを利用すれば、プログラミング言語からの利用も容易となります。インフラの構築手順をプログラムのコードとして管理したり、自作プログラムを利用した自動化が可能な点がホスティングサービスに対するクラウドのアドバンテージの1つと言えるでしょう。

ニフクラでも、サーバー・ディスク・イメージ・ロードバランサーなどの操作が可能な「ニフクラAPI」を公開しています。また、プログラミング言語からAPIを利用しやすいように「ニフクラSDK」もあわせて提供しています。このSDKを利用することで、ニフクラを管理するアプリケーションの開発やリソースコントロールの自動化が行いやすくなります。

また、APIを利用したツールとして、リソースの作成・起動・停止やステータス参照などの操作を可能にする「ニフクラ コマンドラインツール」も提供していますので、ぜひあわせてご利用ください。

  • このエントリーをはてなブックマークに追加