CodePipeline
ユーザーガイド (API バージョン 2015-07-09)

AWS CodePipeline とは

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

AWS CodePipeline の紹介ビデオ

この短いビデオ (3:06) では、定義したリリースプロセスモデルに基づいて、コード変更が発生するたびに CodePipeline がコードをビルド、テスト、およびデプロイする方法について説明します。

CodePipeline の機能

CodePipeline を使用すると、アプリケーションをクラウドで自動的に構築、テスト、およびデプロイすることができます。具体的な内容は以下のとおりです。

  • リリースプロセスを自動化する: CodePipeline は、ソースリポジトリからビルド、テスト、デプロイまで、リリースプロセスを完全に自動化します。ソースステージ以外の任意のステージで手動承認アクションを含めることで、パイプラインを通して変更が移動しないようにすることができます。選択したシステムで、1 つのインスタンスまたは複数のインスタンス間で、任意の方法を使用して、必要に応じてリリースできます。

  • 一貫性のあるリリースプロセスを確立する: コードを変更するたびに実行される一貫性のあるステップを定義します。CodePipeline はお客様の基準に従ってリリースの各ステージを実行します。

  • 品質を向上しながら配信を高速化: リリースプロセスを自動化して、開発者がコードを段階的にテストおよびリリースし、新しい機能のリリースを顧客に迅速に提供できるようにすることができます。

  • お好みのツールを使用: 既存のソース、ビルド、およびデプロイツールをパイプラインに組み込むことができます。現在 CodePipeline でサポートされている AWS のサービスとサードパーティーのツールの完全なリストについては、「CodePipeline による製品とサービスの統合」を参照してください。

  • 進捗状況を一目で確認する: パイプラインのリアルタイムステータスの確認、アラート詳細の確認、失敗したアクションの再試行、各ステージで最新のパイプライン実行で使用されたソースリビジョンの詳細の表示、手動でのパイプラインの再実行が可能です。

  • パイプライン履歴の詳細を表示: 開始時刻と終了時刻、継続時間、実行 ID など、パイプラインの実行の詳細を表示できます。

CodePipeline のクイックルック

次の図は、CodePipeline を使用したリリースプロセスの例を示しています。


                CodePipeline を使用したリリースプロセスの例

この例では、開発者がソースリポジトリに変更をコミットすると、CodePipeline は自動的に変更を検出します。これらの変更が作成され、テストが設定されている場合は、それらのテストが実行されます。テストが完了すると、ビルドされたコードがテスト用のステージングサーバーにデプロイされます。ステージングサーバーから、CodePipeline は統合テストや読み込みテストなどの追加テストを実行します。これらのテストが正常に完了し、パイプラインに追加された手動承認アクションが承認された後、CodePipeline はテスト済みと承認済みコードを本番稼働インスタンスにデプロイします。

CodePipeline は、CodeDeploy、AWS Elastic Beanstalk、または AWS OpsWorks Stacks を使用してアプリケーションを Amazon EC2 インスタンスにデプロイできます。CodePipeline は、Amazon ECS を使用してコンテナベースのアプリケーションをサービスにデプロイすることもできます。開発者は、CodePipeline で提供される統合ポイントを使用して、ビルドサービス、テストプロバイダ、その他のデプロイターゲットやシステムなど、他のツールやサービスをプラグインすることもできます。

パイプラインは、リリースプロセスが必要とするのと同じくらいシンプルでも複雑でもかまいません。

入出力アーティファクトの概要

CodePipeline は、開発ツールと統合され、コードの変更をチェックし、継続的デリバリープロセスのすべてのステージを経てビルドおよびデプロイします。

これらのステージでは、パイプライン用のアーティファクトストアに保存されている入力アーティファクトと出力アーティファクトを使用します。アーティファクトストアは Amazon S3 バケットです。アーティファクトストアは、パイプラインと同じ AWS リージョンにあり、アカウントに関連付けられている当該リージョン内のすべてのパイプラインのアイテムを保存します。コンソールを使用してそのリージョンに別のパイプラインを作成するたびに、CodePipeline はバケット内にそのパイプライン用のフォルダを作成します。このフォルダを使用して、自動リリースプロセスの実行時にパイプラインのアイテムを格納します。パイプラインを作成または編集する場合は、パイプラインリージョンにアーティファクトバケットが必要であり、アクションを実行するリージョンごとに 1 つのアーティファクトバケットが必要です。

CodePipeline は、ステージのアクションタイプに応じて、入力または出力アーティファクトのファイルを圧縮して転送します。たとえば、ビルドアクションの開始時に、CodePipeline は入力アーティファクト (ビルドするファイル) を取得し、ビルドアクションにアーティファクトを提供します。アクションが完了すると、CodePipeline は出力アーティファクト (ビルド済みアプリケーション) を取り出し、次のステージで使用するために出力アーティファクトバケットに保存します。

[Create Pipeline] ウィザードを使用してステージを設定または選択する場合。

  1. CodePipeline は、ソースリポジトリへのコミットがあると、パイプラインの実行をトリガーし、ソースステージから出力アーティファクトを提供します。

  2. 前のステップの出力アーティファクトは、ビルドステージに入力アーティファクトとして取り込まれます。ビルドステージからの出力アーティファクトは、更新されたアプリケーションまたは更新された Docker イメージ (コンテナへのビルド済み) である場合があります。

  3. 前のステップの出力アーティファクトは、デプロイステージ (AWS クラウドのステージング環境や本稼働環境など) に入力アーティファクトとして取り込まれます。アプリケーションをデプロイフリートにデプロイしたり、コンテナベースのアプリケーションを Amazon ECS クラスターで実行されているタスクにデプロイしたりできます。

次の図は、CodePipeline のステージ間の高レベルのアーティファクトワークフローを示しています。


                    CodePipeline の高レベルなアーティファクトワークフロー

CodePipeline の使用を開始するには

CodePipeline の使用を開始するには

  1. CodePipeline の概念」セクションを読んで、CodePipeline の仕組みついて理解​します。

  2. CodePipeline の使用開始」のステップに従って、CodePipeline の使用について準備します。

  3. CodePipeline のチュートリアル」チュートリアルのステップに従って、CodePipeline を試します。

  4. CodePipeline でパイプラインを作成する」のステップに従って、新規プロジェクトまたは既存プロジェクトに CodePipeline を使用します。

ご意見をお待ちしております

ご意見をお待ちしております。お問い合わせの場合には、CodePipeline フォーラムをご覧ください。