AWS CodePipelineとは?使い方や知っておきたい用語6つを紹介


AWS Codepipelineとは?
AWS CodePipelineとは、Codeシリーズの1つでコードソフトウェアの構築、テスト、デプロイまでの過程を自動化し、短時間でアップデートできるようci/cdをサポートするマネージメント型の継続的デリバリーサービスのことです。
デプロイする前にエラーやバグを見つけることで開発を素早く正確に行うことができ、そして新しい変更全てを一貫した品質チェックを通して実行できるため、品質を向上させることができます。2019年には過去のパイプライン実行の詳細を閲覧できるようになりました。
またAWS CodePipelineは、宣言型のJSONドキュメントを使用して、パイプライン構造を作るので、既存のパイプラインを更新することや、新規パイプライン作成用のテンプレートを提供することが可能です。
更にAWS CodePipelineは、iamを使用して、リリースワークフローを変更または制御できる複数アカウントのユーザーを管理できます。アクセス権は、iamユーザー、iamロール、およびsamlと統合されたディレクトリを使用してユーザーに権限を付与することができます。
入門編としてマニュアルにあるサンプルの中には、チュートリアルもあるので、そのスクリプトに沿ってスムーズに作成することができます。例えば、GitHub Androidアプリを構築してテストするパイプラインを作成することができます。
CodePipelineを使用して、CodeCommitリポジトリに保持されているコードをAmazon EC2 インスタンスにデプロイすることもできます。
AWS CodePipelineの仕組み
AWS CodePipelineの仕組みについて説明します。 CodePipelineは、ソースコードが変更されるとそれを確認します。そして、別の操作により変更がされたかについても確認しそれぞれの流れをCodePipelineが確認します。パイプラインを手動で行なう際も同様です。 また、Amazon CloudWatch Eventsルールを使用して事前にスケジュールした通りに実行ができます。AWS CodePipelineの特徴5つ

CodePipelineの特徴1:カスタムシステムと統合できる
特徴1としてCodePipelineはカスタムシステムと統合することができます。 AWS CodePipelineは特定のニーズに合わせて簡単に拡張することができ、またリリースプロセスの任意のステップでAWSの構築済みのプラグイン、独自のカスタムプラグインを使用できます。 例えば、GitHubからソースコードを取得する、オンプレミスのJenkinsビルドサーバーを使用する、サードパーティーのサービスを使用して負荷テストを実施する、カスタムオペレーションダッシュボードにデプロイ情報を送信することなどが可能です。CodePipelineの特徴2:AWSへの統合が可能
AWS CodePipelineでは、ソースコードをCodeCommit、Amazon ECR、Amazon S3から取得が可能で、ユニットビルドとのテストはAWS CodeBuildでやることができます。 変更のデプロイには、CodeDeploy、Elastic Beanstalke、Amazon ECS、もしくはFargateを使用できます。新しいデプロイを作成するとき、デプロイグループに指定された自動ロールバック設定をオーバーライドすることもできます。 これ以外にもCloudFormationのアクションをモデル化すると、リリースプロセスの一環として AWSリソースを供給、更新、削除することができます。 これにより、AWS サーバーレスアプリケーションモデル(AWS SAM)でAWS Lambda、Amazon API gateway、およびAmazon DynamoDBを使用して構築したサーバーレスアプリケーション(serverless application)の継続的デリバリーも可能になります。 CodePipelineによって、これらのサービスをサードパーティー製の開発者用ツール(register-webhook-with-third-party)やカスタムシステムと結び付けるパイプラインを設定できます。 また、パイプラインに影響を与えるイベントに関する通知を作成することができ、通知はAmazon SNS通知という形で送信されます。CodePipelineの特徴3:ワークフローの視覚化
パイプラインでは、新しいコード変更がどのように進められていくのかが分かります。 パイプラインとそのさまざまなステージやアクションを作成、設定、管理するグラフィカルユーザーインターフェイスが用意されているため、リリースプロセスのワークフローの視覚化とモデル化を簡単に行うことができるのです。CodePipelineの特徴4:配信がはやい
定義したリリースモデルに基づき、コードチェンジがあった場合小規模で修正しやすいうちにフェーズの構築、テスト、デプロイを自動化できます。 そのため、機能とアップデートを素早く行うことができるのです。CodePipelineの特徴5:プラグインを統合できる
サードパーティーの開発者用ツールをワンクリックするだけで、リリースプロセスの任意のステージに統合が可能です。利用できるものとしてソース管理、ビルド、テストなどがあります。 また、ユーザー独自に構築したカスタムアクション(create-custom-action-type)を登録することでCodePiplineと統合することができます。AWS CodePipelineで定義されている用語6つ

CodePipeline用語1:アクション
アクションとは、アプリケーションコードに対する一連の操作のことです。CodePipeline上で有効なものは、source、build、test、deploy、approval、invokeになります。 アクションは、パイプライン内で指定された箇所において実行でき、また、パイプラインのアクションは、ステージ設定の定義に従い、連続または並行して実行できます。CodePipeline用語2:パイプライン
パイプラインとは、ソフトウェアの変更がどのように行われまたその流れを明らかにするためのワークフロー構造のことです。 各パイプラインは一連のステージで出来ており、ワークフローをステージとアクションの一続きで定義できます。CodePipeline用語3:ソースリビジョン
ソースリビジョンとは、パイプライン実行処理するためのソース変更のことです。ソースコードを変更すると、新しいバージョンが作成されそれを実行します。 リビジョンとは、ソースロケーションに加えられた変更で、ビルドアウトプット、ソースコード、設定などが対象です。パイプラインには複数ソースのリビジョンを同時に通過させることができます。CodePipeline用語4:トランジション
トランジションとは、パイプライン実行がパイプラインの次のステージに移動する際のポイントのことです。 ステージのインバウンドトランジションを無効にして、実行がそのステージに入らないようにしたり、そのトランジションを有効にして実行を継続したりすることができます。 無効なトランジションで複数の実行が到着した場合、トランジションが有効になると、最新の実行だけが次のステージに進むことができます。 つまり、トランジションが無効になっている間は、より新しい実行が待機中の実行よりも優先され、トランジションが有効になった後は継続する実行が優先されるのです。CodePipeline用語5:アーティファクト
アーティファクトとは、パイプラインで処理されるアプリケーションのソースコードや作られたアプリケーション、テンプレートなどのデータの集合体を意味します。 アーティファクトは、いくつかのアクションによって作られ、また消費されます。CodePipeline用語6:ステージ
ステージとは、その環境で同時変更する数を制限するために使用できる1つまたは複数の論理ユニットのことです。アーティファクトの一例がソースコードです。 ステージは、デプロイステージの場合もあれば、ビルドステージの場合もあります。各ステージは、連続もしくは並列のアクションで構成され、パイプラインには2つ以上のステージを設定できます。AWS CodePipelineの使い方3手順

CodePipelineの使い方1:ソースコードを指定する
CodePipelineでは、source actionにおいてどこからソースコードを取得するかを決めます。GitHubかS3の指定ができますが、S3を指定する場合には、予めバージョン管理において設定しておく必要があるので、注意しましょう。 S3がパイプラインのソースプロバイダーである場合、ソースファイルを1つの.zipに圧縮し、その.zipをソースバケットにアップロードできます。また解凍されたファイルを1つアップロードすることもできますが、.zipファイルを想定するダウンストリームアクションは失敗します。CodePipelineの使い方2:テスト実行
ソースコードを取得した後にテストが実行されます。 例えばS3を利用する場合ですが、S3オブジェクトが変更された時には、自動的にパイプラインが実行されます。ですからS3 Event Notificationなどの通知を設定する必要はありません。 承認アクションのあるステージは、承認アクションが承認または却下されるか、もしくはタイムアウトするまでロックされます。タイムアウトした承認アクションは、失敗したアクションと同じ方法で処理されます。失敗した場合
もしもテストが失敗した場合には、次の動作は実行されず停止します。 その際は、ソースコードを修正して再びsource targetにアップロードするか、自分でパイプラインプロセスを再開しない限り中止された状態となります。CodePipelineの使い方3:環境へデプロイ
ソースコードを取得した後にテストが実行され、それが成功すればその次の手順である環境へのデプロイが実行されます。 成果物を配置したり新しいバージョンシステムを供給したりするステージです。ECS以外にも、CodeDeployやS3へのファイル配置から、CloudFormationやElastic Beanstalkを設定することが可能です。AWS CodePipelineの利用料金は?

AWS CodePipelineを利用してみよう

この記事の監修者・著者

- AWSパートナー/Salesforce認定コンサルティングパートナー 認定企業
-
ITエンジニア派遣サービス事業を行っています。AWSやSalesforceなど専門領域に特化したITエンジニアが4,715名在籍し、常時100名以上のITエンジニアの即日派遣が可能です。
・2021年:AWS Japan Certification Award 2020 ライジングスター of the Year 受賞
・2022年3月:人材サービス型 AWSパートナー認定
・AWS認定資格保有者数1,154名(2024年6月現在)
・Salesforce認定コンサルティングパートナー
・Salesforce認定資格者276名在籍(2024年5月現在)
・LPIC+CCNA 認定資格者:472 名(2024年6月時点)
最新の投稿
- 2024-12-27営業インタビュー情報共有の活性化の中心に。SP企画部の新たな取り組み
- 2024-07-01営業インタビュー最短で当日にご提案可能。 OPE営業の対応が早い3つの理由
- 2024-07-01営業インタビュー研修見学ツアーが高評価!「お客様のOPEに対する期待を高め、継続に貢献できればと思います。」
- 2024-07-01営業インタビュー信頼関係を構築し、エンジニアの長期就業へ

- 求人・転職サイトや自社採用サイトを使っているが、自社に合ったITエンジニアが応募してこない…
- すぐに採用したいが、応募がぜんぜん集まらない
オープンアップITエンジニアをご検討ください!
当社のITエンジニア派遣サービスは
- 派遣スピードが速い!(最短即日)
- 4,500名のエンジニアから貴社にマッチした人材を派遣
- 正社員雇用も可能
こんな特長があり、貴社の事業やプロジェクトに合った最適なITエンジニアを派遣可能です。
まずは下記ボタンから無料でご相談ください。