海外コメンタリー

AWSとMicrosoft Azureのサーバレスアプリケーションはどう違う?

Keith Townsend (Special to TechRepublic) 翻訳校正: 石橋啓一郎

2016-04-11 06:00

 シアトルで開かれた小さな展示会に招かれて講演をした際、思いもかけずサーバレスアプリケーションについて深く知る機会に恵まれた。サーバレスアプリケーションについては、数週間前にあるポッドキャストを聞いて、気になっていたところだった。

 IBMの「Bluemix」グループで働いている友人が、マイクロサービスについて情報交換する集まりがあることをツイートした後、筆者を呼んでくれたのだ。開催場所は宿泊先のホテルからわずか数ブロック先だった。そこで筆者は、「AWS Lambda」に関して、より深い、実践的な意見を聞くことができた。

サーバレスアプリケーションにもサーバはある

 サーバレスアプリケーションという言葉は、技術的な概念というよりは、マーケティング用語だ。Lambdaは別に、コンピュータなしでアプリケーションを動かすコンピューティングの革命ではない。筆者の考えでは、Lambdaはサーバを中心としないアプリケーションを構築するためのプラットフォームだと説明する方が、より正確だろう。この概念は、OSと密接に結びついたアプリケーション構築からの発想の転換だ。

 Lambdaは、開発者が「Amazon Simple Storage Service(Amazon S3)」などAmazonのほかのサービスを利用した、イベントベースのアプリケーションを作ることを可能にする。その集まりでは、メディア共有アプリが例として挙げられた。この例では、アプリケーションのユーザーは、S3のストレージバケットに動画を置くことができる。従来のOS中心のアプローチであれば、通常は、AWSのインスタンス上で動作しているサーバが、S3のオブジェクトストレージを監視して、新しいファイルがないかをチェックする仕組みになる。

 新しいファイルが見つかると、動画のエンコーディングプロセスが開始される。従来のOS中心の環境では、エンコーディングプロセスは仮想マシン上で実行されることになる。このため、エンコーダの仮想マシンに問題が起きると、それ以降のすべてのエンコーディングプロセスも停止してしまう。

 Lambdaでは、独立した関数を作ることによってマイクロサービスを作成する。これらのマイクロサービスは、OS中心のフレームワークではなく、Lambdaのフレームワークを使って開発される。開発者は、各Lambda関数の実行に必要なRAMの量を選択し、AWSは、選択されたメモリの量に基づいて、その関数を実行するのに必要な計算リソースとストレージリソースのサイズを決定する。

 今回のメディアエンコーディング関数の例では、S3がLambdaサービスにイベントを送信する。このイベントは、Lamda上に作られたエンコーダ関数の実行をトリガする。AWSは、S3から送られたイベントの処理に必要なだけの数のLambda関数を並行してインスタンス化する。開発者は、同時に並行して実行される関数の最大数を選択することができる。この制限は、MySQLによるバックエンドなどの、基盤システムに対する負荷をコントロールするための手段として利用できる。

 Lambdaのフレームワークを使ったこのシンプルなエンコーダプロセスは、OSによる規模や弾力性の制約を受けずに済む。AWSのLambdaとS3が選択されたリージョン内にある限り、このアプリケーションはOSの状態とは関わりなく機能し続けることができるわけだ。

MicrosoftのAzure Service Fabric

 Microsoftは最近、サンフランシスコで開催されたイベントBuild 2016で、「Azure Service Fabric」を一般公開したと発表した。Azure Service Fabricはサーバレスプラットフォームというよりは、「Windows Server」またはLinux上で動作するクラスタサービスとして売り出されている。Lambdaがどちらかと言えばコンピューティングの革命であるように見えるのに対し、Azure Service Fabricは、クラウドを利用したアプローチのための、マイクロサービスベースのアーキテクチャの進化であると捉えることができる。

 Azure Service Fabricでは、既存のコードやスケーラブルなマイクロサービスを実行する。Service Fabric用にネイティブに書かれたアプリケーションは、VMをリソースプールとして扱う。サービスは個々の仮想マシンとは切り離されている。一般に言って、Service Fabricのクラスタは、WindowsやLinuxをベースにしたVMに対応している。実際、AWSのインスタンスのコンピューティング能力をService Fabricで使用することも可能だ。Lambdaと比べると、Service Fabricはかなりコンテナのオーケストレーションやクラスタリングに近い。

 Azureで動作するService Fabricの売りは、多くのサービスが利用できることだ。AmazonがLambdaにS3を統合したのと同じように、AzureにもさまざまなAzureのパブリッククラウドサービスが統合されている。

この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ホワイトペーパー

新着

ランキング

  1. セキュリティ

    KADOKAWAらの事例に学ぶ、2024年サイバー攻撃の傾向と対策

  2. セキュリティ

    MDMのよくある“12の悩み”を解決!Apple製品のMDMに「Jamf」を選ぶべき理由を教えます

  3. ビジネスアプリケーション

    生成AIをビジネスにどう活かす?基礎理解から活用事例までを網羅した実践ガイド

  4. セキュリティ

    セキュリティ担当者に贈る、従業員のリテラシーが測れる「情報セキュリティ理解度チェックテスト」

  5. セキュリティ

    「100人100通りの働き方」を目指すサイボウズが、従業員選択制のもとでMacを導入する真の価値

ZDNET Japan クイックポール

所属する組織のデータ活用状況はどの段階にありますか?

NEWSLETTERS

エンタープライズコンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]