開閉ボタン
ユーザーメニュー
ユーザーメニューコンテンツ
ログイン

  • 会員限定
  • 2016/12/07

一休 CTOの伊藤直也氏が、サーバーレスアーキテクチャの本質を解き明かす

【前編】

クラウド上でアプリケーションを構築する新しい手法として「サーバーレスアーキテクチャ」が急速に注目を集めています。しかし一方で、サーバーレスアーキテクチャを採用することで得られる本質的なメリットはなにか、そもそもサーバーレスアーキテクチャとはなにを指すのか、などについてはまだ識者の間でも議論されていることです。

Publickey 新野淳一

Publickey 新野淳一

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

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

Serverless Architecture

 一休 CTO 伊藤直也氏。

photo

 先に結論を言ってしまうと、サーバーレスアーキテクチャとはサーバーのないアーキテクチャと言われていて、単純にはAWS LambdaとかAzure FunctionsとかGoogle Cloud FunctionsなどのクラウドのFunction-as-a-Service(FaaS)を使うことを指すのですが、それだけだとサーバーレスアーキテクチャという大げさな名前を付けるのは適当ではないと思っていて。

 ステートレスなFaaSがリアクティブ、Microservices、コレグラフィへと導く、というのがサーバーレスアーキテクチャの僕の考えです。

 ただ現場の感覚では、運用が楽でスケールして安い。従来の、インスタンスをずっと立ち上げておく運用やオンプレミスサーバの運用よりずっとよいですと。

 ただ、どんなものでもそうですが、これは銀の弾丸ではなくて向いていないシステムもありますが、アーキテクチャの性質を見てみると、いま一般に考えられているよりも広がっていくのではないか、というのがいまの自分の考えです。

photo

 で、今日の説明はこの図の通りに説明していくつもりです。

photo

 どういうことかというと、サーバーレスな実行環境を使うとShared Nothingになってステートレスになるので、必要になったときだけ計算するという体(てい)になると、これがメリットとして運用負荷が少ないとか安いにつながっていきます。

 これをさらに深掘りしていくと、必要なときになったときだけ計算するということは、イベントを受け取って実行するようにモデリングをするとうまいくいきそうだというのは皆さんお分かりになると思います。なので系の全体をイベント駆動で結んで、これがリアクティブやMicroservicesやコレオグラフィといった性質を見せて、これが総体としてスケールアウトというメリットを導くと。

 こうなります。これを具体的に見ていきたいと思います。

Function-as-a-Service(FaaS)とはなにか?

 サーバーレスといったときに、多くの人が思い浮かべることが2つあって、ひとつはサーバーの箱やLinuxといったOSがない、ということ。もうひとつは、ソフトウェア的なサーバ常駐プロセス、例えばApacheのようなものがない、ということ。

 前者の意味のサーバーレスは、PaaSのようにサーバーの運用をクラウドに任せて自分たちでサーバーを運用しなくていいということで、これは新しい概念ではないので置いといて、今回は後者の、常駐プロセスの意味でのサーバーがないというところ、つまりFaaSに焦点を当ててみます。

 FaaSとは何かというと、これらのマネージドサービスのことです。

photo

 AWS Lambdaがいちばんメジャーなので、このAWS Lambdaで説明すると、AWS上で任意の小さな関数を実行するためのサービスです。

 自分で関数のコード(Lambdaファンクション)を書いたら、それを実行する環境がいままでのアプリケーションサーバのようなものではなく、AWS Lambdaという謎の環境にデプロイすると。PythonやNode.js、Javaなどをサポートしています。

 AWS Lambdaはいろんなイベントを受け取って、それを契機に関数を実行するんですね。

photo

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

データセンター・ホスティングサービス... ジャンルのセミナー

データセンター・ホスティングサービス... ジャンルのトピックス

データセンター・ホスティングサービス... ジャンルのIT導入支援情報

PR

ビジネス+IT 会員登録で、会員限定コンテンツやメルマガを購読可能、スペシャルセミナーにもご招待!