• 会員限定
  • 2016/12/08 掲載

サーバーレスアーキテクチャの性質とは? 伊藤直也氏が解説

【中編】

記事をお気に入りリストに登録することができます。
10月24日に都内で開催されたイベント「QCon Tokyo 2016」の伊藤直也氏のセッション「Serverless Architecture」は、サーバーレスアーキテクチャの本質について大きな示唆をもたらす内容でした。この記事では、その内容をダイジェストで紹介します。

Publickey 新野淳一

Publickey 新野淳一

ITジャーナリスト/Publickeyブロガー。大学でUNIXを学び、株式会社アスキーに入社。データベースのテクニカルサポート、月刊アスキーNT編集部 副編集長などを経て1998年退社、フリーランスライターに。2000年、株式会社アットマーク・アイティ設立に参画、オンラインメディア部門の役員として2007年にIPOを実現、2008年に退社。再びフリーランスとして独立し、2009年にブログメディアPublickeyを開始。現在に至る。

(本記事は前編中編、後編に分かれています。いまお読みの記事は中編です。)

サーバーレスアーキテクチャの性質

photo

 いよいよサーバーレスアーキテクチャの性質を解剖していきたいと思います。これは冒頭で説明した図です。

photo

 さっきモダンCGIの話をしましたが、CGIは実行が終了するとプロセスが破棄されるというシンプルなモデルでした。しかもShared Nothingなのであるプロセスに障害が起きてもほかのプロセスに影響しない。

 しかし問題だったのは、起動するたびにアプリ全体がフォークされていたので、実行の効率がとても悪くて、以前はホスティングサービスでみんながCGIを動かしているとすごくサーバが遅くなったと。

photo

 さすがにこれじゃあかんということで、常駐プロセスのサーバを作ってプリフォークで、あるいはスレッドで実行するモデルが発明されて、だいたいのプログラムはこれで動くようになりました。

photo

 Preforkはオーバーヘッドが少なくて、プロセス同士もメモリを共有しないので安全なのですが、並行性能に難があります。具体的にはメモリフットプリントが大きくて、プロセス数が同時接続数を決めてしまいます。これがかの有名なC10K問題です。

 で、これを解決するためにNode.jsのようなイベント駆動モデルによる並列処理系は、高速にコンテキストスイッチすることで並行処理性能をあげるようにしました。select()とかepoll()を使えばブロックせずに高速に処理できるじゃん、というのがNode.jsの実装です。

photo

 このイベント駆動モデルは並行性能は高いのですが可用性に難があります。Node.jsが顕著ですが、障害で落ちてしまうとリクエストが来ても全部エラーになります。

 これは非常に脆弱なモデルで、ひとつの処理のメモリリークが全体に影響すると。

 こうしてモデルごとに利点と欠点があったわけですが、そもそもCGIの起動に伴うオーバーヘッドが小さくなれば使いやすいのではないかと思うわけです。

 これがAWS Lambdaの実行モデルで、起動に伴うオーバーヘッドがコンテナによって解決し、Shared Nothingで安全、簡単というメリットだけが得られたと。

photo

 というわけで、常駐プロセスをなくして毎回起動するというサーバーレスの実行モデルがShared Nothingをもたらし、必要になったときだけ計算すればいいという処理になります。これらを実現する上で、コンテナという起動に伴うオーバーヘッドの小さい実行環境が必要だったと。

photo

 ということが、サーバーレスアーキテクチャの最初の性質です。

【次ページ】 実行時にコンテナが生成され、終了時に破棄される

関連タグ

あなたの投稿

関連コンテンツ

    PR

    PR

    PR

処理に失敗しました

人気のタグ

投稿したコメントを
削除しますか?

あなたの投稿コメント編集

機能制限のお知らせ

現在、コメントの違反報告があったため一部機能が利用できなくなっています。

そのため、この機能はご利用いただけません。
詳しくはこちらにお問い合わせください。

通報

このコメントについて、
問題の詳細をお知らせください。

ビジネス+ITルール違反についてはこちらをご覧ください。

通報

報告が完了しました

コメントを投稿することにより自身の基本情報
本メディアサイトに公開されます

必要な会員情報が不足しています。

必要な会員情報をすべてご登録いただくまでは、以下のサービスがご利用いただけません。

  • 記事閲覧数の制限なし

  • [お気に入り]ボタンでの記事取り置き

  • タグフォロー

  • おすすめコンテンツの表示

詳細情報を入力して
会員限定機能を使いこなしましょう!

詳細はこちら 詳細情報の入力へ進む
報告が完了しました

」さんのブロックを解除しますか?

ブロックを解除するとお互いにフォローすることができるようになります。

ブロック

さんはあなたをフォローしたりあなたのコメントにいいねできなくなります。また、さんからの通知は表示されなくなります。

さんをブロックしますか?

ブロック

ブロックが完了しました

ブロック解除

ブロック解除が完了しました

機能制限のお知らせ

現在、コメントの違反報告があったため一部機能が利用できなくなっています。

そのため、この機能はご利用いただけません。
詳しくはこちらにお問い合わせください。

ユーザーをフォローすることにより自身の基本情報
お相手に公開されます