【サーバーレスフレームワーク】

Serverless Framework とは?

💡 クラウドの細かい設定はお任せ、関数のコードだけ書けばいいツール
📌 このページのポイント
Serverless Framework のデプロイフロー serverless.yml 関数定義 トリガー設定 Serverless CLI sls deploy IaCに変換 クラウドプロバイダー AWS Azure GCP Lambda / Functions 等 自動で作成されるリソース Lambda 関数 API Gateway IAM ロール CloudFormation
serverless.ymlを書いてコマンド1発でクラウドリソースを一括デプロイできる
ひよこ ひよこ

Serverless Frameworkって、サーバレスの仕組み自体のこと?

ペンギン先生 ペンギン先生

ちょっと違うよ。サーバレスの仕組みはクラウド側が提供するもので、Serverless FrameworkはそれをYAMLファイルで定義・デプロイするためのツールなんだ。

ひよこ ひよこ

YAMLで書くとどんなことができるの?

ペンギン先生 ペンギン先生

「この関数をどのイベントで起動するか」「どんなIAM権限が必要か」「APIGatewayのエンドポイントは何か」といった設定をserverless.ymlに書くと、内部でCloudFormationに変換してAWSへ一括デプロイしてくれるんだよ。

ひよこ ひよこ

AWS以外でも使えるんだね。GCPとかAzureも?

ペンギン先生 ペンギン先生

うん、プロバイダーを切り替えるだけで対応できるよ。ただ各クラウド固有のリソースを細かく設定したいときは、その分の設定も書く必要があるんだね。

ひよこ ひよこ

TerraformみたいなIaCと何が違うの?

ペンギン先生 ペンギン先生

Terraformはインフラ全体を管理するのが得意で、Serverless Frameworkは関数(Function as a Service)に特化しているんだ。デプロイコマンドやログ確認コマンドがFaaS向けに揃っていて、開発体験が良いのが特徴だよ。

ひよこ ひよこ

最近はAWS SAMとかCDKもあるよね。使い分けはどうするの?

ペンギン先生 ペンギン先生

AWSだけで完結するならSAMやCDKも良い選択肢だよ。マルチクラウド対応や、AWSに縛られたくないチームはServerless Frameworkを選ぶことが多いんだね。コミュニティプラグインも豊富なのも魅力なんだ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Serverless Framework」って出てきたら「サーバレス関数をコードで管理するデプロイツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「Serverless Framework」 = サーバレス開発フレームワーク
💬 Serverless(サーバレス)アプリの開発をまるごとサポートするFramework(枠組み)という意味だよ。もともと2015年に「JAWS Framework」として登場し、後に改名されたんだ
← 用語集にもどる