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

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」として登場し、後に改名されたんだ
← 用語集にもどる