AWS CodePipeline のよくある質問

全般

AWS CodePipeline は、ソフトウェアのリリースに必要なステップをモデル化、可視化、自動化できる継続的デリバリーサービスです。AWS CodePipeline を使用して、コードを構築し、稼働前の環境にデプロイし、アプリケーションをテストし、実稼働環境にリリースするまでの完全なリリースプロセスをモデル化できます。これにより、AWS CodePipeline は、コードが変更されるたびに定義されるワークフローに従って、アプリケーションを構築、テスト、デプロイします。リリースプロセスの任意のステージにパートナーツールまたは独自のカスタムツールを統合して、エンドツーエンドの継続的デリバリーソリューションを構築することもできます。

AWS CodePipeline では、構築、テスト、およびリリースのプロセスを自動化することで、新しい変更すべてを一貫した品質チェックを通して実行できるため、ソフトウェア更新の速度と品質を向上させることができます。

継続的デリバリーとは、ソフトウェア開発手法の 1 つで、コード変更が発生すると、自動的に構築、テスト、および実稼働環境へのリリース準備が実行されるというものです。AWS CodePipeline は、継続的デリバリーの実装を可能にするサービスです。継続的デリバリーの詳細については、こちらを参照してください。

概念

パイプラインとは、ソフトウェアの変更がリリースプロセスをどのように通過するかを明確にするワークフロー構造です。ワークフローをステージとアクションのシーケンスで定義できます。

リビジョンとは、パイプラインのために定義されたソースロケーションに加えられた変更です。ソースコード、ビルドアウトプット、設定、データなどが対象となります。パイプラインには複数のリビジョンを同時に通過させることができます。

ステージとは、1 つまたは複数のアクションのグループです。パイプラインには 2 つ以上のステージを設定できます。

アクションとは、リビジョンに対して実行されるタスクです。パイプラインのアクションは、ステージ設定の定義に従い、指定された順番で直列的または並列的に実行されます。詳細については、「パイプラインの編集」および「AWS CodePipeline のアクション構造要件」を参照してください。

アクションが実行される場合、1 つまたは一連のファイルが対象となります。これらの対象となるファイルがアーティファクトと呼ばれています。アーティファクトはパイプラインのその後のアクションでも対象となる場合があります。例えば、ソースアクションが、ソースアーティファクトとしてコードの最新バージョンを出力し、ビルドアクションがそのアーティファクトを読み込みます。コンパイル後、ビルドアクションはビルドアウトプットを別のアーティファクトとしてアップロードし、その後のデプロイアクションでそのアーティファクトが読み込まれます。

パイプラインの各ステージはトランジションによって結ばれ、AWS CodePipeline コンソールでは矢印で表されます。1 つのステージでアクションが正常に実行されたリビジョンは、トランジションの矢印で示される次のステージに自動的に進みます。ステージ間でトランジションの無効と有効を切り替えることができます。

AWS CodePipeline を使用する

AWS マネジメントコンソールにサインインしてパイプラインを作成し、サービスの利用を開始します。AWS CodePipeline のイントロダクションが必要なお客様は、Getting Started with AWS CodePipeline をご覧ください。詳しいチュートリアルが記載されています。 

パイプラインの作成後、ソースコードの最新のリビジョンをリリースするための連続処理が自動的にトリガーされます。その後、ソースロケーションに変更を加えるたびに新しい連続処理がトリガーされます。さらに、パイプラインコンソールの [Release Change] (リリースの変更) ボタンを使用して、最新のリビジョンに再びパイプラインの処理を実行できます。

パイプラインを終了するには、1 つのステージから次のステージへのトランジションを無効化します。無効化すると、パイプラインは引き続きリビジョンに対してアクションを実行しますが、リビジョンは無効化したトランジションより後のステージに進むことはありません。詳細は、Disable or Enable Transitions in AWS CodePipeline を参照してください。

はい。AWS CodePipeline コンソールまたは AWS CLI を使用して、パイプラインのステージを追加または削除できます。また、ステージ内のアクションの追加、編集、削除も可能です。

はい。get-pipeline の AWS CLI コマンドを使用して、既存のパイプラインの JSON 構造を取得できます。その後、その JSON と create-pipeline の AWS CLI コマンドを使用して、既存のパイプラインと同じ構造の新規パイプラインを作成します。

はい。任意のステージで、1 つまたは複数のアクションを並列実行するように設定できます。

サーバーレスアプリケーションの更新は、ソースコードリポジトリに AWS Serverless Application Model テンプレートとそれに対応するファイルを含めることでリリースできます。パイプラインで AWS CodeBuild を使用することで、デプロイ用のコードをパッケージ化できます。その後、AWS CloudFormation アクションを使用して変更セットを作成し、サーバーレスアプリケーションをデプロイできます。手動承認や自動テストなどの追加ステップでワークフローを拡張することもできます。詳細はこちらをご覧ください。

AWS CodePipeline と AWS CloudFormation を使用すると、継続的デリバリーを使用して、AWS CloudFormation スタックへの変更を自動的に構築してテストしてから、本番用スタックに昇格することができます。このリリースプロセスにより、迅速かつ信頼性の高い方法で AWS インフラストラクチャに変更を加えることができます。手動承認やテストアクションなどの追加アクションでワークフローを拡張することも、AWS Lambda アクションを呼び出すこともできます。詳細については、AWS CloudFormation を使用した継続的デリバリーページを参照してください。

AWS CodePipeline は、AWS CodeCommit、Amazon S3、AWS CodeBuild、AWS CodeDeploy、AWS Elastic Beanstalk、AWS CloudFormation、AWS OpsWorks、Amazon ECS、AWS Lambda などの AWS のサービスと統合できます。さらに、AWS CodePipeline は多数のパートナーツールと統合できます。詳細については、製品の統合ページを参照してください。最後に、独自のカスタムアクションを記述して任意の既存ツールと CodePipeline を統合できます。カスタムアクションの詳細は、Create and Add a Custom Action in AWS CodePipeline ページを参照してください。

はい。セキュリティ解析または操作上のトラブルシューティングの目的で自分のアカウントで呼び出した AWS CodePipeline API の履歴を取得するには、AWS マネジメントコンソールで AWS CloudTrail を有効にします。詳細は、Logging AWS CodePipeline API calls by Using AWS CloudTrail を参照してください。

サービスの制限についての情報は、制限を参照してください。

パイプラインに影響を与えるイベントに関する通知を作成することができます。通知は Amazon SNS 通知という形で送信されます。各通知には、ステータスメッセージに加えて、その通知が生成される原因となったイベントが存在するリソースへのリンクも含まれます。通知に追加費用はかかりませんが、Amazon SNS など、通知に利用される他の AWS のサービスの料金が課金される場合があります。通知の使用開始については、通知ユーザーガイドを参照してください。さらに、AWS Chatbot をご利用のお客様は、お使いの Slack チャンネルまたは Amazon Chime チャットルームに通知が送信されるよう設定することも可能です。詳細については、こちらをご確認ください。

パートナー

AWS のパートナーとなって、自社の開発者用サービスと AWS CodePipeline を統合することに関心があるお客様は、codepipeline-request@amazon.com までお問い合わせください。

セキュリティ

はい。AWS CodePipeline はリソースレベルの許可をサポートしています。パイプラインに対してどのユーザーがどのアクションを実行できるかを指定できます。例えば、ユーザーにパイプラインのステータスを確認することを許可するものの、パイプラインの修正を禁止する場合はそのユーザーに読み取り専用のアクセス権を与えます。パイプラインの任意のステージまたはアクションに対して許可を設定することもできます。AWS CodePipeline で IAM を使用する方法の詳細は、Access Permissions Reference をご覧ください。

はい。パイプラインを所有する AWS アカウントで IAM ロールを作成し、パイプラインおよび関連するすべてのリソースへのアクセス権を他のアカウントの IAM ユーザーに委任できます。このような複数アカウントからのアクセスを有効にするためのウォークスルーは、「チュートリアル: 所有するアカウントのために IAM ロールを使用して AWS アカウント間でアクセスを委任する」および「パイプラインへのクロスアカウントアクセスを設定する 」を参照してください。

リージョン

CodePipeline のリージョン別の可用性の詳細については、リージョン別の製品およびサービスを参照してください。

請求

AWS CodePipeline の料金詳細は、料金ページをご覧ください。