本文へスキップ

サーバーレスとは?AWS Lambdaなどの仕組みを未経験向けに解説

#サーバーレス#AWS Lambda#クラウド#未経験#インフラ学習

求人票や技術記事で「サーバーレス」という言葉を見かけても、未経験のうちは「サーバーを使わないサーバー?」と矛盾しているように感じて、結局なんのことか分からないまま流してしまう人が多いものです。実際にはサーバーがこの世から消えるわけではなく、サーバーレスとは、サーバーの用意・設定・台数調整を利用者側が意識しなくてよいように、クラウド事業者側が引き受けてくれる仕組みのことだと捉えると理解しやすくなります。この記事では、サーバーレスがどんな考え方なのか、代表例であるAWS Lambdaがどう動くのか、どんな処理に向いているのかを未経験向けに整理します。

サーバーレスとは何か

サーバーレスとは、アプリケーションを動かすために必要なサーバーの手配・OSやミドルウェアの保守・台数の調整といった作業を、利用者側ではなくクラウド事業者側が引き受けてくれる仕組みのことです。利用者は「このコードをこのタイミングで実行してほしい」という処理の内容だけを用意し、その処理を動かす土台の管理からは解放されます。

サーバーを自分で管理する構成と、サーバーレスでコードだけを預ける構成を並べたイメージ

クラウド(AWS)とは?で触れたように、クラウド自体がすでに「物理機器を自分で持たない」という発想ですが、サーバーレスはさらに一歩進んで「仮想サーバーの存在すら意識しなくていい」というところまで管理の範囲を手放す考え方だと整理すると分かりやすくなります。

なぜサーバーレスという考え方が出てきたのか

従来のサーバー運用では、アクセスが少ない時間帯でもサーバーを起動したままにしておく必要があり、使われていない時間のコストや、台数を増減させる作業の手間がかかっていました。サーバーレスは、処理が実行されたときだけ裏側でリソースが動き、処理が終われば止まるという仕組みにすることで、こうした無駄を減らす発想から広まってきました。

課金の単位も、サーバーを1台借りる時間単位ではなく、実行された回数や処理時間の単位に近くなります。アクセスが少ない日でも一定の費用がかかる構成と比べて、利用量に応じた費用になりやすい点が、サーバーレスが注目される理由のひとつです。

AWS Lambdaの仕組み

AWS LambdaはAWSが提供する代表的なサーバーレスの実行環境で、あらかじめ用意しておいたコード(関数)を、何かが起きたタイミングで実行してくれるサービスです。Lambdaの処理は、おおむね次のような流れで動きます。

トリガー発生から結果返却までのLambdaの処理の流れ
  1. トリガーの発生: ファイルのアップロードやAPIへのリクエストなど、処理を始めるきっかけが発生する
  2. 実行環境の準備: Lambda側がコードを動かすための実行環境を裏側で用意する(利用者はこの部分を意識しない)
  3. コードの実行: 用意しておいた関数が呼び出され、与えられた処理を行う
  4. 結果の返却と終了: 処理結果を返し、実行環境は役目を終える

AWSのIAMとは?で解説した権限の仕組みは、Lambdaにもそのまま関わってきます。Lambdaの関数には「実行ロール」という形でIAMの権限が割り当てられ、その関数が他のAWSサービスに対してどこまで操作できるかを決めています。現役でインフラの現場にいる立場から言うと、Lambdaの設定ミスで困る原因は、コードそのものより実行ロールの権限が広すぎたり狭すぎたりすることの方が多いという印象があります。

サーバーレスが向いている処理・向いていない処理

サーバーレスはどんな処理にも万能というわけではなく、向き不向きがあります。

観点向いている処理の例向いていない処理の例
実行時間数秒〜数分で終わる短い処理長時間動き続ける処理
発生頻度不定期に発生するイベント処理常に一定の負荷がかかり続ける処理
状態の持ち方毎回の処理が独立している処理サーバー側に状態を保持し続ける必要がある処理

たとえば、画像がアップロードされたタイミングでサムネイルを作る処理や、APIからのリクエストを受けて短い処理を返すような場面はLambdaと相性がよい一方、Dockerとは?で解説したコンテナのように、常時稼働させて状態を持たせたい処理には、サーバーレス以外の構成の方が向いていることもあります。どちらが優れているというより、処理の性質に合わせて選ぶものだと理解しておくと、構成図を見たときに混乱しにくくなります。

現場でサーバーレスに関わる場面

未経験から現場に入ってすぐにLambdaの関数を設計することは少ないですが、関わる場面自体は早い段階からあります。

  • ログ処理の確認: Lambdaの実行ログを見て、処理が正常に終わったか、エラーが起きていないかを確認する
  • 構成図の理解: どのサービスがトリガーになり、どのLambda関数が呼ばれ、結果がどこに保存されるかという流れを読み解く
  • VPCとは?との関係整理: Lambdaを社内システムと同じネットワークに置きたい場合にVPCへ接続する設定があり、その構成を理解しておく必要がある場面がある

このように、サーバーレス自体を設計する前段階として、まず動いている構成を正しく読める力が求められる場面が多くあります。

InfraDojoで学ぶ

InfraDojoなら、ブラウザ上の演習環境でAWSの基本的なサービスを手を動かしながら学べるため、サーバーレスの前提になる「クラウド上でサービスがどうつながっているか」という視点を順番に固めていけます。インフラの学習をどこから始めればいいか迷う場合は、ロードマップで全体の流れを確認しておくと、サーバーレスを学ぶタイミングも判断しやすくなります。

よくある質問

Q. サーバーレスを学ぶ前に、まず何を理解しておくべきですか?

サーバーの役割やネットワークの基本的な仕組みを先に理解しておくと、サーバーレスが何を省略してくれているのかが実感しやすくなります。土台になる仕組みを知らないまま用語だけを覚えると、構成図を見たときに意味が結びつきにくいことがあります。

Q. サーバーレスとコンテナはどちらを学ぶべきですか?

どちらか一方だけでよいというものではなく、現場では両方が使われる場面があります。まずはサーバーの基本的な役割を押さえたうえで、処理が短時間で独立しているものはサーバーレス、常時稼働させたいものはコンテナ、という大まかな分け方から理解を始めると整理しやすくなります。

Q. 自宅の学習環境でもLambdaは試せますか?

無料利用枠の範囲内であれば、個人のAWSアカウントで簡単なLambda関数を作成し、実行結果やログを確認する練習ができます。あえて実行ロールの権限を変えてみて、エラーの出方がどう変わるかを確認しておくと、現場で権限周りのトラブルに触れたときの理解が早くなります。

Reo|インフラエンジニアのアイコン

この記事を書いた人: InfraDojo運営者(Reo|インフラエンジニア)

現役インフラエンジニア。SESの現場経験に基づき、未経験からのインフラ転職と学習を支援しています。InfraDojoは、ブラウザ上のターミナルで実際に手を動かして学べるインフラ学習サイトです。

@Reo_engineer_

読むだけで終わらせず、今日から手を動かす

InfraDojoは、ブラウザを開くだけでLinux・ネットワーク・AWSの演習ができる学習サイトです。登録は30秒、最初のコースは無料です。