NEWS ABOUT SERVICE WORKS TEAM BLOG お問い合わせ JP EN

サーバーレスとは本当にサーバーがないこと?

こんにちは、システムエンジニアの今井です。

先日、社内でサーバーレスについての勉強会を開催しました。
直観的に理解が難しいサーバーレスについて、まとめてみました。

※:クラウドサービスの一つ「Amazon Web Service」を利用する場合の解説です。利用するクラウドサービスによって名称や仕組みが異なりますが、この記事でサーバーレスの全体像が把握できると思います。

サーバーレスとは

みなさんが今みているこのページは、どのようにして表示されているのでしょうか。
このページはブラウザからのリクエストに対して”サーバーがプログラムを実行した結果”として表示されています。

 サーバーにリクエストを送り、プログラムが実行され、Webページが返される

キャッシュレス、ペーパーレス、プライスレス・・・サーバーレス・・・
文字通りに受け取ると「サーバーがないのにどうやってプログラムを実行するんだろう?」と思いますよね。
サーバレスの”レス”はサーバーがなくなったわけではなく、サーバーを意識しなくて良くなったという意味です。
サーバーレス構成ではクラウドが提供している「プログラムを実行するサービス」を利用して処理を行います。
Webページの表示には、プログラムの実行の他にもデータベースやHTTP機能なども必要になるため、複数の機能を組み合わせて動作を実現します。自社サーバー(オンプレミス)はサーバー一台にいろいろな機能が含まれている サーバーレスは機能ごとにサービスを利用する

これまでのWeb制作では、サーバーにHTTP(Apache、nginx)やFTP、データーベースなど様々なソフトウェアをインストールする必要がありました。
サーバーレスではサーバーを管理せずに、それぞれの機能に特化したサービスを利用します。
プログラムの実行環境はAWSが管理してくれるので、開発者はサーバーを意識する必要がなくなり、より本質的な開発作業に注力することができます。
※:AWSの設定・管理は必要になります

オンプレミスは考えることが多い サーバーレスは開発に集中できる

クラウドとサーバーレスの違い

クラウドとはユーザーがソフトウェアを持たなくても、インターネットを通じてサービスを利用できる仕組みのことです。
Web制作の現場では、もっと広義に「インターネットを通じてサービスを利用すること」全般についてクラウド(クラウドサービス)と呼ばれています。
サーバーレスの構成ではソフトウェアを動かすためのサーバーを持たないため、必然的にクラウドサービスを利用して動作を実現することになります。
ここで注意したいのは、クラウド=サーバーレスではないということです。
AWSにもサーバー機能を提供するEC2というサービスがありますが、サーバーレスの構成では基本的に使いません。

AWS サーバーレス構成 Lambdaの違い

サーバーを意識しなくて良いサービスは、すべてサーバーレスといえますが、特にプログラムの実行環境を提供するLambda(”らむだ”と読む)がサーバーレスの中心です。

AWS Lambda

クラウドサービスは10年以上前から存在していましたが、2014年にプログラムの実行環境(FaaS=Function as a Service)が提供され始めたことによって、サーバーレス構成を実現できるようになりました。

サーバーレス(FaaS)の例

  • AWS Lambda(Amazon)2014年11月~
  • Azure Functions(Microsoft)
  • Google Cloud Functions(Google)
  • IBM Cloud Functions(IBM)

サーバーレスのメリット・デメリット

メリット

  • サーバーを保守しなくてもよい(OSやミドルウェアのセキュリティアップデートなどが必要ない)
  • 本質的なアプリケーション開発のみに注力できる
  • アクセス増となってもオートスケーリングするため、落ちる心配がない
  • 料金は、基本的にはアクセスが少ないときは少なく、多くなれば増える(従量課金)

デメリット

  • サーバーレスサービスごとに提供している実行環境が決まっているため、プログラミング言語の選択肢が少ない(PHPなどが標準では使えない)
  • サーバレスアーキテクチャの開発手法を覚える必要があるため、学習コストがかかる
    特定のベンダーに依存してしまう(例:Amazon, Microsoft, Google)

まとめ

サーバーレスとは

  • “サーバーがなくなった” わけではなく、クラウドサービスの進化によって “サーバーの存在を意識しなくてよくなった” こと
  • クラウドサービスの中でも、特に “プログラムの実行環境を提供するサービス” のことをサーバーレスと呼ぶ

サーバーレスは万能ではありませんが、運用や保守、初期の開発コストをぐっと下げることができます。導入をご検討の際にはぜひ弊社にご相談ください。

次回ですが、実際に「サーバーレスでお問い合わせフォームを実装する方法」について解説します。

今井 健一朗
ひとつ前の投稿 ひとつ前の投稿
ひとつ前の投稿 ひとつ前の投稿 LaravelのValidateの使い方を調べてみた:その3