CI/CD システムとパイプラインを使用した AWS SAM によるデプロイ - AWS Serverless Application Model

CI/CD システムとパイプラインを使用した AWS SAM によるデプロイ

AWS SAM は、組織が希望する CI/CD システム用のパイプラインを作成するために役立つことから、デプロイ頻度の短縮、変更のリードタイムの短縮、およびデプロイエラーの低減などの CI/CD のメリットを最小限の労力で実現できます。

AWS SAM は、ビルドコンテナイメージを活用して、サーバーレスアプリケーションの CI/CD タスクを簡素化します。AWS SAM が提供するイメージには、AWS SAM CLI、およびサポートされている多数の AWS Lambda ランタイム用のビルドツールが含まれています。これは、AWS SAM CLI を使用したサーバーレスアプリケーションの構築とパッケージ化を容易にします。これらのイメージは、チームが CI/CD システム用に独自のイメージを作成して管理する必要性も軽減します。AWS SAM ビルドコンテナイメージの詳細については、「AWS SAM 用のイメージリポジトリ」を参照してください。

AWS SAM ビルドコンテナイメージは、複数の CI/CD システムでサポートされています。どの CI/CD システムを使用するかの判断は、いくつかの要因に左右されます。これには、アプリケーションが単一のランタイムを使用するのか、それとも複数のランタイムを使用するのか、またはアプリケーションがコンテナイメージ内で構築されるのか、それともホストマシン (仮想マシン (VM) またはベアメタルホスト) で直接構築されるのか、などがあります。

AWS SAM は、デプロイに関する AWS のベストプラクティスをカプセル化する、複数の CI/CD システム用のデフォルトパイプラインテンプレートの一式も提供します。これらのデフォルトパイプラインテンプレートは標準の JSON/YAML パイプライン設定形式を使用し、組み込まれたベストプラクティスは、マルチアカウントおよびマルチリージョンのデプロイを実行し、パイプラインがインフラストラクチャに意図しない変更を行えないことを実証するために役立ちます。

サーバーレスアプリケーションをデプロイするための AWS SAM の使用には、1) AWS SAM CLI コマンドを使用するように既存のパイプラインを変更する、または 2) 独自のアプリケーションの開始点として使用できる CI/CD パイプラインの設定例を生成するという 2 つの主なオプションがあります。

パイプラインとは

パイプラインは、アプリケーションの新しいバージョンをリリースするために実行されるステップの自動シーケンスです。AWS SAM では、アプリケーションのデプロイに AWS CodePipelineJenkinsGitLab CI/CD、および GitHub Actions などの一般的な CI/CD システムを多数使用できます。

パイプラインテンプレートには、マルチアカウントおよびマルチリージョンのデプロイに役立つ AWS デプロイのベストプラクティスが含まれています。開発や本番稼働などの AWS 環境は通常、異なる AWS アカウントに存在します。これにより開発チームは、インフラストラクチャに意図しない変更を加えることなく、安全なデプロイパイプラインを設定できます。

また、独自のカスタムパイプラインテンプレートを提供して、開発チーム全体のパイプラインを標準化することもできます。