😎
code buildとstepFunctionのちがいめも
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