LoginSignup
4
6

More than 1 year has passed since last update.

CodePipelineとは??

Last updated at Posted at 2022-03-13

まず始めに

この記事はCodepipelineについての自分なりの理解をまとめたものです。
間違いなどあればご指摘お願い致します。

Codepipelineとは?

公式には以下の説明がされていました。

AWS CodePipeline は、ソフトウェアをリリースするために必要なステップのモデル化、視覚化、および自動化に使用できる継続的な配信サービスです。ソフトウェアリリースプロセスのさまざまなステージをすばやくモデル化して設定できます。CodePipeline はソフトウェアの変更を継続的にリリースするために必要なステップを自動化します。

簡単にまとめると書いたソースコードを自動でビルド、またはデプロイ、テストしてくれるサービスの一つです。
一連の流れをパイプラインといい、ソースコードに対する処理をアクションといいます。
各アクションを行う部分をステージといい、そのステージは大きく分けてソースビルドデプロイの3つ構成されています。
・ソース  …S3バケットやGithub、CodeCommit内のソースコードを取得する処理。
・ビルド  …ソースで取得してソースコードをサーバなしに構築やコンパイル、テストを実行できます。
・デプロイ …ソースコードの配置、アプリケーションやサービスの更新などを行います。
ステージを2つ以上使用して、パイプラインを構成します。
また、各ステージで行ったアクション後のソースをテンプレートなどのデータの集合体アーティファクトとして、別のステージへ共有します。

主な機能としては、ソースで用いるCodeCommit、ビルドを行うCodeBuild、デプロイを行うCodeDeployの3つです。
それぞれの仕様をまとめていこうと思います。

CodeCommit

ソースステージでS3やGithubとともに並ぶCodeCommitとは、前述したもと同様のGitリポジトリの一つで、ドキュメントやソースコードなどのアセットを保存、管理するAWSサービスです。
S3のファイルのバージョニングとの違いとしては、
バッチ管理における複数での変更が可能であることです。(S3では過去バージョンの管理、復元のみ)

CodeBuild

CodeBuildでは任意のコンテナを起動し、ソースコード内や設定した任意のコマンドを実行します。
実行した結果はアーティファクトとして出力します。
実際の例としてはアプリケーションのテストやコンテナイメージのビルドとECRへのプッシュなどを実行できます。
各アクションのコマンドはbuildspecというソースを使用して実行します。
使用するコンテナ環境はカスタム可能で、あらかじめECRなどにプッシュして置けば、そのイメージが利用可能です。

CodeDeploy

CodeDeployはECSやEC2、Lambdaなど様々なサービス、またはオンプレミスインスタンスへのデプロイを実行できるサービスです。
ビルドステージがなくとも、S3やGitリポジトリに保存されているアプリケーションなどをデプロイすることも可能です。
使う利点としては、自動化はもちろんのことエラー時のロールバック、各環境や複数アプリケーションへの同時デプロイが可能な点があげられます。

最後に

今回はCodePipelineの主な機能についてまとめてみましたが、この機能は実際に使用してみると奥が深く、様々なカスタマイズやアクションを組み合わせることが可能で、できることに上限はないと思います。
少しでも参考にしていただければと思います。
次は実際の使い方についてまとめてみようと思います。
 
最後まで読んでいただきありがとうございました。

4
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
6