😎

code buildとstepFunctionのちがいめも

2024/11/25に公開

CodeBuild

概要: AWS CodeBuildは、ソースコードのビルド、テスト、およびアーティファクトの作成を行うためのフルマネージド型のビルドサービス。

用途:

アプリケーションビルド: ソースコードをコンパイルし、パッケージ化する。
テスト実行: ユニットテストや統合テストを自動で実行。
CI/CDパイプラインの一部: AWS CodePipelineなどと連携して継続的インテグレーションを実現。

特徴:

フルマネージドでスケーラブル。
Dockerをサポートし、カスタムビルド環境を構築可能。
Pay-as-you-goの料金体系(使用した分だけ支払う)。

具体例:

ソースコードをGitHubから取得し、アプリケーションをビルドして成果物をS3に保存する。
JavaアプリケーションをMavenでビルドし、テストを自動実行。

Step Functions

概要: AWS Step Functionsは、サーバーレスでワークフローを作成し、各種AWSサービスやカスタムコードの実行をオーケストレーションするためのサービスです。

用途:

ワークフロー管理: 複数のAWSサービス(Lambda、DynamoDB、S3など)やカスタムプロセスを連携させる。

エラーハンドリング: タスクのリトライやエラー時の分岐処理を簡単に設定可能。

状態管理: 状態遷移を可視化し、デバッグや保守を容易にする。

特徴:

ステートマシン(状態機械)をJSONで定義。

標準ワークフロー(長期間の処理を許容)とExpressワークフロー(短期間の高速処理向け)の2種類を選択可能。
AWSサービス間のオーケストレーションに適している。

具体例:

データ処理パイプラインを構築:S3にファイルがアップロードされたら、Step Functionsでワークフローを開始し、Lambdaでデータを処理、DynamoDBに結果を保存。
バッチ処理:複数のETLプロセスを順序通りに実行。

CodeBuildとStep Functionsの違い

項目 CodeBuild Step Functions
主な目的 アプリケーションのビルドとテスト ワークフローのオーケストレーション
適用範囲 ビルド / テスト / 成果物作成 AWSサービス全般やカスタムプロセスを連携
構成方法 buildspec.ymlで構成を記述 JSONでステートマシンを定義
使用例 アプリのビルドと単体テスト タスクの連携、エラー処理、ワークフローの構築
関連するAWSサービス CodePipelineなどと密接な関係 Lambda、DynamoDB、S3など多くのサービスを連携
エラーハンドリング 手動でスクリプトに追加可能 内蔵のリトライとエラーハンドリングが可能

Discussion