このページの本文へ

ポイントを速習!「Azureの基礎(AZ900)」をみんなで学ぶ 第7回

コンテナーやサーバーレスも簡単に扱えるクラウドサービスのメリット

「Azure VM」などAzureの幅広いコンピューティングサービスを知る

2020年09月15日 08時00分更新

文● 石川順平/FIXER 編集● 大塚/TECH.ASCII.jp

  • この記事をはてなブックマークに追加
  • 本文印刷

コンテナー:Azure Container Instances

 Azure Container InstancesはAzureで提供されているPaaSサービスの1つで、コンテナーをホストすることができます。コンテナーとは、アプリケーションとその実行環境(ミドルウェア、ライブラリなど)のファイル群をひとまとめにパッケージしたもので、「Docker」などのコンテナーエンジンの上で動作します。

 仮想マシンとの大きな違いは、そこに“OS(ゲストOS)が含まれているかどうか”です。下の図のように、仮想マシン(イメージ)にはゲストOSが含まれますが、コンテナーはホストOSを共有して動作する仕組みなのでゲストOSは存在しません。そのため起動や処理が高速で、メモリなどのリソース消費が少なく、イメージファイルも小さいため移動が容易という特徴を持ちます。

仮想マシンとコンテナーの違い。コンテナーはホストOSを共有しつつ、互いに隔離されたアプリ実行環境を提供する

 さらにゲストOSが存在しないので、仮想マシンのようにゲストOSに更新プログラムを適用するメンテナンス作業も不要です。これに加えて、Azure Container Instancesの場合はホストOSのメンテナンスもAzure側で行ってくれます。そのため、こうしたメンテナンスの手間を省いてアプリ開発やサービス運用に注力することができます。

Webアプリ実行環境:Azure App Service

 Azureで提供されているPaaSサービスの1つで、Webアプリケーションをホストすることができます。.NET、.NET Core、Node.js、Java、Python、PHPといった主要な開発言語のランタイム(実行環境)をサポートしており、WebアプリをAzure上で構築する際によく用いられます。本連載でも第2回でご紹介しました。

 仮想マシンやコンテナーと違い、Azure App ServiceではミドルウェアやWebサーバーまで、Azureが運用とメンテナンスを行ってくれます。そのため、Webアプリケーションを開発し提供するうえで、インフラ管理にかかる作業負荷を最小限に抑えることができます。

サーバーレス:Azure Functions

 Azureで提供されているPaaSサービスの1つで、イベントドリブンなアプリ(Function:関数)をホストすることができます。イベントドリブンとは、たとえば「HTTPリクエストが来た」「所定のストレージにファイルが追加された」「指定時刻になった」といったイベントが起きたときに、あらかじめデプロイしておいたアプリが自動的に動作を開始する仕組みです。

 従来ならば、こうした仕組みを作るためには常時サーバーを起動させて、イベントの発生を監視する仕組みから用意しなければなりませんでした。サーバーレスコンピューティングではその必要をなくし、アプリ開発者はトリガーとなるイベント(アプリを自動実行する条件)を指定するだけで済みます。これが「サーバーレス」という名前の由来です。

 もちろん、「サーバーレス」と言っても実際にアプリが実行されるのはサーバー上です。ただし、そのサーバーやOS、実行環境などは完全にAzure側で管理されており、大量の処理を行う場合のスケールアウトなども自動的に行わるため、ユーザーはサーバーを意識する必要がありません。また、「アプリの実行時間(秒単位)×メモリ使用量」で利用料金を計算するプランも用意されており、短時間で処理が終了する簡単なアプリをホストする場合にはコストが節約できます。

カテゴリートップへ

この連載の記事