- 会員限定
- 2016/12/07 掲載
一休 CTOの伊藤直也氏が、サーバーレスアーキテクチャの本質を解き明かす
【前編】
Serverless Architecture
一休 CTO 伊藤直也氏。先に結論を言ってしまうと、サーバーレスアーキテクチャとはサーバーのないアーキテクチャと言われていて、単純にはAWS LambdaとかAzure FunctionsとかGoogle Cloud FunctionsなどのクラウドのFunction-as-a-Service(FaaS)を使うことを指すのですが、それだけだとサーバーレスアーキテクチャという大げさな名前を付けるのは適当ではないと思っていて。
ステートレスなFaaSがリアクティブ、Microservices、コレグラフィへと導く、というのがサーバーレスアーキテクチャの僕の考えです。
ただ現場の感覚では、運用が楽でスケールして安い。従来の、インスタンスをずっと立ち上げておく運用やオンプレミスサーバの運用よりずっとよいですと。
ただ、どんなものでもそうですが、これは銀の弾丸ではなくて向いていないシステムもありますが、アーキテクチャの性質を見てみると、いま一般に考えられているよりも広がっていくのではないか、というのがいまの自分の考えです。
で、今日の説明はこの図の通りに説明していくつもりです。
どういうことかというと、サーバーレスな実行環境を使うとShared Nothingになってステートレスになるので、必要になったときだけ計算するという体(てい)になると、これがメリットとして運用負荷が少ないとか安いにつながっていきます。
これをさらに深掘りしていくと、必要なときになったときだけ計算するということは、イベントを受け取って実行するようにモデリングをするとうまいくいきそうだというのは皆さんお分かりになると思います。なので系の全体をイベント駆動で結んで、これがリアクティブやMicroservicesやコレオグラフィといった性質を見せて、これが総体としてスケールアウトというメリットを導くと。
こうなります。これを具体的に見ていきたいと思います。
Function-as-a-Service(FaaS)とはなにか?
サーバーレスといったときに、多くの人が思い浮かべることが2つあって、ひとつはサーバーの箱やLinuxといったOSがない、ということ。もうひとつは、ソフトウェア的なサーバ常駐プロセス、例えばApacheのようなものがない、ということ。前者の意味のサーバーレスは、PaaSのようにサーバーの運用をクラウドに任せて自分たちでサーバーを運用しなくていいということで、これは新しい概念ではないので置いといて、今回は後者の、常駐プロセスの意味でのサーバーがないというところ、つまりFaaSに焦点を当ててみます。
FaaSとは何かというと、これらのマネージドサービスのことです。
AWS Lambdaがいちばんメジャーなので、このAWS Lambdaで説明すると、AWS上で任意の小さな関数を実行するためのサービスです。
自分で関数のコード(Lambdaファンクション)を書いたら、それを実行する環境がいままでのアプリケーションサーバのようなものではなく、AWS Lambdaという謎の環境にデプロイすると。PythonやNode.js、Javaなどをサポートしています。
AWS Lambdaはいろんなイベントを受け取って、それを契機に関数を実行するんですね。
【次ページ】 実行時にコンテナが生成され、終了時に破棄される
関連コンテンツ
PR
PR
PR