Infrastructure as Code (IaC) - AWS Serverless Application Model

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Infrastructure as Code (IaC)

Infrastructure as Code (IaC) を使用すると、サーバーレスアプリケーションを含む AWS リソースのデプロイと管理を自動化できます。IaC を使用すると、コードを使用してインフラストラクチャを定義できるため、デプロイのバージョニング、共有、レプリケートが容易になります。このアプローチは、以下に役立ちます。

  • 開発サイクルを高速化する

  • 設定管理の簡素化

  • デプロイの信頼性と一貫性の向上

AWS サーバーレスアプリケーション用の IaC ツール

AWS には、クラウドリソースの構築、デプロイ、管理に役立つ IaC ツールがいくつか用意されています。このセクションでは、 がこのエコシステムにどのように AWS SAM 適合し、他の AWS IaC ツールと連携するかについて説明します。

AWS CloudFormation

を使用するとAWS CloudFormation、YAML または JSON テンプレートを使用して AWS インフラストラクチャ全体をモデル化およびプロビジョニングできます。 は、リソースの作成、更新、削除を自動的に AWS CloudFormation 処理します。 AWS SAM アプリケーションをデプロイすると、 は変換されたテンプレート AWS CloudFormation を処理してリソースを作成および管理します。

AWS Serverless Application Model (AWS SAM)

AWS SAM は、サーバーレスリソースを定義するためのシンプルな構文でサーバーレスアプリケーションを構築するのに役立ちます。 AWS SAM テンプレートを使用して、簡潔な YAML 構文を使用して Lambda 関数、APIs、データベース、イベントソースをプロビジョニングできます。 は、デプロイ中にこれらのテンプレートを AWS CloudFormation テンプレート AWS SAM に変換します。

注記

はサーバーレスアプリケーションに AWS SAM 特化していますが、 AWS SAM テンプレートでは任意の AWS CloudFormation リソースタイプを使用できます。これにより、必要に応じて非サーバーレスリソースを柔軟に含めることができます。

AWS クラウド開発キット (AWS CDK)

を使用するとAWS CDK、TypeScript、Python、Java、C#/ などの使い慣れたプログラミング言語を使用してサーバーレスインフラストラクチャを定義できます。Net、または Go。ループや条件などのプログラミングコンストラクトを使用してインフラストラクチャを定義し、デプロイ用の AWS CloudFormation テンプレート AWS CDK を生成できます。を使用して AWS SAMCLI、 で作成されたアプリケーションをローカルでテストおよびデバッグできます AWS CDK。詳細については、「CDK アプリケーションをローカルでテストする」を参照してください。

サーバーレスアプリケーション用の IaC ツールの比較

サーバーレスアプリケーション用の IaC ツールを選択するときは、チームの好み、プロジェクト要件、既存のワークフローを考慮してください。次の表は、サーバーレス開発用の AWS IaC ツールの主な特性を比較したものです。

ツール

主な使用法

に最適

と連携 AWS SAM

いつ選択するか

AWS CloudFormation

複雑な AWS インフラストラクチャの管理

AWS リソースの詳細な制御を必要とするアプリケーション

AWS SAM テンプレートはデプロイ中に AWS CloudFormation テンプレートに変換されます

非サーバーレスリソースをきめ細かく制御するには

AWS SAM

サーバーレスアプリケーション開発

Lambda を使用してサーバーレスアプリケーションを構築するチーム

ネイティブ機能

Lambda 関数、API Gateway APIs、およびその他のサーバーレスリソースを使用するサーバーレスアーキテクチャに主に焦点を当てる場合

AWS CDK

プログラミング言語を使用したインフラストラクチャ定義

型付き言語とコードファーストアプローチを優先するチーム

AWS SAM テンプレートを生成し、テスト AWS SAMCLIに使用する

プログラムによるインフラストラクチャ定義または複雑なリソース設定ロジックが必要な場合

注記

このガイドでは AWSネイティブ IaC ツールに焦点を当てていますが、Terraform はサーバーレスアプリケーションの定義に使用できるもう 1 つの一般的な IaC ソリューションです。は、Terraform で定義された Lambda 関数のローカルテスト AWS SAMCLIをサポートしています。詳細については、「AWS SAM CLITerraform のサポート」を参照してください。

詳細はこちら