はじめに
約5年ほど Serverless Framework を運用していました。
運用していた際によく使っていたプラグインについて紹介します。
serverless-offline
ローカル環境で AWS Lambda および API Gateway をエミュレートしてくれるプラグインです。
開発中に serverless offline コマンドを実行するだけでローカルサーバーが立ち上がり、実際に AWS へデプロイすることなく動作確認ができます。
Lambda 関数のコードを修正するたびにデプロイして動作確認する手間が大幅に減ります。
ローカルサーバーが立ち上がった後は、curl コマンドを実行して動作確認していました。
serverless-offline-s3
ローカル環境で S3 バケットイベントをエミュレートしてくれるプラグインです。
serverless-offline と組み合わせて使うことで、S3 へのファイルアップロードや S3 イベントトリガーをローカルで再現できます。
AWS の実環境に触れることなく S3 を絡む処理の動作確認が完結するため、開発しやすくなります。
内部的には MinIO を使用しています。MinIO は Amazon S3 互換の API を持つオブジェクトストレージで、Docker で手軽に起動できるものです。
しかし、minio/minio リポジトリは、2026年4月25日にオーナーによってアーカイブされ、読み取り専用となっています。また、2025年10月以降は新しいコンテナイメージの公開も停止されており、今後のメンテナンスや互換性については注意が必要です。
serverless-prune-plugin
デプロイのたびに AWS Lambda へ蓄積される古いバージョンを自動で削除してくれるプラグインです。
Lambda はデプロイのたびに新しいバージョンが作成されますが、デフォルトでは古いバージョンが残り続けます。
これが積み重なると、AWS アカウントのデプロイパッケージのストレージ容量上限(75 GB)に達してしまう場合があります。
私が運用していたプロジェクトでは、気がついたらストレージ容量の 88% を占めていたことがあり、serverless-prune-plugin を導入して解消しました。それ以降は新しくプロジェクトを作成する際に必ず導入するようにしていました。
serverless.yml に残しておくバージョン数を設定するだけで、デプロイ時に古いバージョンを自動で削除してくれます。
custom:
prune:
automatic: true
number: 3
上記の設定例では、直近3バージョンを残してそれ以前を自動削除する設定となります。
おわりに
Serverless Framework は v4 より、前年度の収益が $2M を超える組織には有料サブスクリプションが必要になりました。一方、個人や小規模な組織であれば引き続き無料で利用できます。
便利なフレームワークであることに変わりはないので、新しく運用を始めたり今後も継続的に運用する場合は、ぜひ紹介したプラグインを試してみてください。