🔥
2分で理解するサーバレス
はじめに
今回の記事では、最近のWeb開発で頻繁に耳にする「サーバレス」を2分で解説する。
サーバレス(Serverless)とは?
Red Hatの記事には、サーバレスに関して以下のように記述されている。
サーバーレスは、開発者がサーバーを管理する必要なくアプリケーションを構築および実行できるようにするクラウドネイティブ開発モデルです。
サーバーレスにもサーバーはありますが抽象化されており、アプリケーション開発から切り離されています。サーバー・インフラストラクチャのプロビジョニング、保守、スケーリングといった定型作業はクラウドプロバイダーが行います。開発者は、コードをコンテナにパッケージ化するだけでデプロイできます。
上述の内容をまとめると、サーバレスはサーバを管理しないでアプリを実行したり構築したりできるようにする開発モデルを意味する。
サーバレスはサーバを意味する単語「Server」と、打消の接尾辞「less」の2つを組み合わせた造語であることから「サーバが存在しない」というイメージを想像しがちだ。ところが、この「less」はサーバそのものではなくサーバの管理に対しての意味である。サーバレスのサービスには当然サーバがある。この点は誤解しやすいので注意が必要だ。
Webアプリを実行するにはサーバ、OSやランタイム等のアプリの実行環境が必要になる。本来であればサーバに加えて、OS等のWebアプリの環境を手動で構築して管理しなければならない。
Webアプリを実行する際に必要な環境構築や管理をなくして、単にソースコードだけをデプロイして実行できるサービスがサーバレスサービスになる。
サーバレスの実例
- AWS Lambda:ユーザが画像をS3パケットにアップすると、その画像を圧縮するLambda関数がトリガーされ、自動的に圧縮処理が行われる。
- Google Cloud Functions:ユーザのフォーム送信を受け取るHTTPエンドポイントとしてCloud Functionを使って送信されたデータを処理しデータベースに保存。
- Azure Functions:定期的に実行されるバッチ処理タスクをAzure Functionで実装し、夜間にデータ集計やレポート生成を行う。
参考記事一覧
Discussion