Lambda と Infrastructure as code (IaC) の使用
Lambda 関数が単独で実行されることはまれです。代わりに、多くの場合、データベース、キュー、ストレージなどの他のリソースと共に、サーバーレスアプリケーションの一部を形成します。Infrastructure as Code (IaC)
Lambda 用 IaC ツール
- AWS CloudFormation
-
CloudFormation は、AWS の基本的な IaC サービスです。YAML または JSON テンプレートを使用して、Lambda 関数を含む AWS インフラストラクチャ全体をモデル化およびプロビジョニングできます。CloudFormation は、AWS リソースの作成、更新、削除の複雑さを処理します。
- AWS Serverless Application Model (AWS SAM)
-
AWS SAM は、CloudFormation 上に構築されたオープンソースフレームワークです。サーバーレスアプリケーションを定義するためのシンプルな構文を提供します。AWS SAM テンプレートを使用すると、数行の YAML で Lambda 関数、API、データベース、イベントソースをすばやくプロビジョニングできます。
- AWS Cloud Development Kit (AWS CDK)
-
CDK は IaC に対するコードファーストアプローチです。Lambda ベースのアーキテクチャは、TypeScript、JavaScript、Python、Java、C#/.Net、または Go を使用して定義できます。希望する言語を選択し、パラメータ、条件、ループ、構成、継承などのプログラミング要素を使用して、インフラストラクチャの望ましい結果を定義します。次に、CDK はデプロイ用の基盤となる CloudFormation テンプレートを生成します。CDK で Lambda を使用する方法の例については、「AWS CDK を使用した Lambda 関数のデプロイ」を参照してください。

また、AWS ではシンプルなグラフィカルインターフェイスを使用して IaC テンプレートを開発する、AWS Infrastructure Composer というサービスも提供しています。Infrastructure Composer では、ビジュアルキャンバスで AWS のサービス をドラッグ、グループ化、接続することでアプリケーションアーキテクチャを設計します。次に、Infrastructure Composer は、アプリケーションのデプロイに使用できるデザインで AWS SAM または AWS CloudFormation テンプレートを作成します。
以下の「AWS SAM と Infrastructure Composer での Lambda 関数の使用」セクションでは、Infrastructure Composer を使用して、既存の Lambda 関数に基づくサーバーレスアプリケーションのテンプレートを作成します。