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

このガイドの手順では、新しいコンソールデザインがサポートされています。古いバージョンのコンソールを選択すると、古い概念が反映され、本ガイドの基本的な手順がそのまま適用されます。新しいコンソールのヘルプにアクセスするには、情報アイコンを選択します。

AWS CodePipeline とは

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 バケットです。アーティファクトストアはパイプラインと同じリージョンにあり、お客様のアカウントに関連付けられているそのリージョン内のすべてのパイプラインのアイテムが保存されます。コンソールを使用してそのリージョンに別のパイプラインを作成するたびに、CodePipeline はバケット内にそのパイプライン用のフォルダを作成します。このフォルダを使用して、自動リリースプロセスの実行時にパイプラインのアイテムを格納します。パイプラインにクロスリージョンアクションを追加する場合は、アクションを配置するリージョンごとにアーティファクトバケットを指定する必要があります。

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

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

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

  2. 前のステップの出力アーティファクトは、入力アーティファクトとして [Build] ステージに取り込まれます。[Build] ステージからの出力アーティファクトは、更新されたアプリケーションまたはコンテナに構築された更新された Docker イメージにすることができます。

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

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


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

CodePipeline の使用を開始するには

CodePipeline の使用を開始するには

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

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

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

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

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

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