STERFIELD

Serverlessアプリケーションに特化したIaCツールServerless Devsを紹介

Serverlessアプリケーションに特化したIaCツールServerless Devsを紹介
今回は、severlessアプリケーションに特化したIaCツールの1つである。
serverless devsを紹介します。

Infrastructure as Codeの外観

インフラをコードで管理するInfrastructure as Code (IaC)の構成管理ツールには、様々なものがあります。
代表的なIaCツールに以下のようなものがあります。
  • CloudFormation
  • AWS CDK
  • Terraform
  • Pulumi
  • Serverless framework
これらのうちCloudFormationとAWS CDKはAWSに特化したサービスで、それ以外は複数のプラットフォームに対応しています。
AWSだけでなく、Google Cloud PlatformやAlibaba Cloudなどへのデプロイを検討しているならTerraformやPulumiなどを検討する必要があります。

ServerlessアプリケーションのIaC

Serverless frameworkは、serverlessアプリケーションの構築に特化しているため、用途が限定されるものの、設定をファイルの内容を簡略化できるメリットがあります。2022年1月時点では、serverlessアプリケーションのデプロイではserverless frameworkの採用が第一候補に挙がるようです。

 

Serverless frameworkを各種プラットフォームに対応させるには、専用のプラグインが必要になります。Alibaba Cloudへのデプロイの場合、”serverless-aliyun-function-compute”というプラグインで対応します。

 

しかし、serverless-aliyun-function-computeは公式のgithubリポジトリの更新が2年以上前に更新が止まっており、ドキュメントでもNode.js v8.xに対応していると明記されています。

 

2022年1月時点では、Node.js v8.xはサポート終了しており、v12.xのサポート終了が間近となっています。そのため、serverlessアプリケーションをAlibaba Cloudにデプロイするには、別の選択肢が必要になります。
今回紹介するserverless devsは、Alibaba Cloudが公式にリリースしているIaCツールで、serverlessアプリケーションに特化しています。
概ねserverless frameworkのAlibaba Cloud対応版のような位置づけです。

serverless-devsの使い方

serverless-devsをインストールしてからfunction computeへのデプロイをする一連の手順を簡単に紹介します。
  1. インストール:npm install @serverless-devs/s -g
  2. 認証情報の設定:s config add
  3. 初期ファイルの作成:s init
  4. 設定ファイル(s.yaml)編集
  5. コードを編集(index.jsなど)
  6. デプロイ: s deploy

インフラ構成の設定ファイル

httpリクエストをトリガーにして、function computeを動作させる場合の設定例は以下のようになります。
s.yamlの内容です。

function computeでの処理

function computeにデプロイする関数の内容です。index.jsに書きます。

これでs deployとするだけで、デプロイ完了です。

まとめ

serverless-devsはほぼserverless frameworkと同じような感覚で使用できました。
Alibaba Cloudがリリースしていることもあり、serverless-devs以外のライブラリなどを別途用意しなくても、Alibaba Cloudへのデプロイができます。
初期設定の手間を簡略化できるため、用途が限定されているなら、ぜひ導入してみたいツールだと感じました。

Author Profile

著者近影

スターフィールド編集部

SHARE

合わせて読みたい