海外コメンタリー

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. セキュリティ

    「デジタル・フォレンジック」から始まるセキュリティ災禍論--活用したいIT業界の防災マニュアル

  2. 運用管理

    「無線LANがつながらない」という問い合わせにAIで対応、トラブル解決の切り札とは

  3. 運用管理

    Oracle DatabaseのAzure移行時におけるポイント、移行前に確認しておきたい障害対策

  4. 運用管理

    Google Chrome ブラウザ がセキュリティを強化、ゼロトラスト移行で高まるブラウザの重要性

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

    技術進化でさらに発展するデータサイエンス/アナリティクス、最新の6大トレンドを解説

ZDNET Japan クイックポール

注目している大規模言語モデル(LLM)を教えてください

NEWSLETTERS

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

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

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