• 検索結果がありません。

AWS CodePipeline​ 内に位置している - ユーザーガイド

N/A
N/A
Protected

Academic year: 2021

シェア "AWS CodePipeline​ 内に位置している - ユーザーガイド"

Copied!
271
0
0

読み込み中.... (全文を見る)

全文

(1)

AWS CodePipeline

内に位置している

ユーザーガイド

(2)

AWS CodePipeline 内に位置している: ユーザーガイド

Copyright © 2018 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's, in any manner that is likely to cause confusion among customers, or in any manner that disparages or discredits Amazon. All other trademarks not owned by Amazon are the property of their respective owners, who may or may not be affiliated with, connected to, or sponsored by Amazon.

(3)

Table of Contents

... vii AWS CodePipeline とは ... 1 AWS CodePipeline の紹介ビデオ ... 1 AWS CodePipeline の機能 ... 1 AWS CodePipeline のクイックルック ... 2 入出力アーティファクトの概要 ... 2 AWS CodePipeline の使用を開始するには ... 3 ご意見をお待ちしております ... 3 概念 ... 4 継続的な配信と統合 ... 4 AWS CodePipeline による ... 4 ご利用開始にあたって ... 9 ステップ 1: AWS アカウントの作成 ... 9 ステップ 2: IAM ユーザーを作成または使用する ... 9

ステップ 3: IAM 管理ポリシーを使用して IAM ユーザーへ AWS CodePipeline のアクセス許可を割り 当てる ... 9 手順 4: AWS CLI をインストールする ... 10 ステップ 5: AWS CodePipeline コンソールを開く ... 10 次のステップ ... 10 製品とサービスの統合 ... 11 AWS CodePipeline アクションの種類との統合 ... 11 ソース操作の統合 ... 11 アクション統合をビルドする ... 13 テストアクションの統合 ... 15 デプロイ アクションの統合 ... 16 承認アクションの統合 ... 19 アクション統合の呼び出し ... 19 AWS CodePipeline との一般的な統合 ... 19 コミュニティからの例 ... 23 ブログの投稿 ... 23 動画 ... 25 チュートリアル ... 27 チュートリアル: シンプルなパイプラインを作成する (Amazon S3 バケットの場合) ... 27 Amazon S3 バケットの作成 ... 28

Windows Server Amazon EC2 インスタンスの作成および AWS CodeDeploy エージェントのイ ンストール ... 30 AWS CodeDeploy でアプリケーションを作成する ... 32 最初のパイプラインを作成 ... 33 別のステージの追加 ... 36 ステージ間の移行を有効化または無効化する ... 42 リソースのクリーンアップ ... 43 チュートリアル: シンプルなパイプラインを作成する (AWS CodeCommit リポジトリの場合) ... 44 AWS CodeCommit リポジトリの作成 ... 45 コードのダウンロード、コミット、プッシュ ... 45

Amazon EC2 インスタンスの作成および AWS CodeDeploy エージェントのインストール ... 46

AWS CodeDeploy でアプリケーションを作成する ... 48 最初のパイプラインを作成 ... 49 AWS CodeCommit リポジトリのコードを更新する ... 53 オプションのステージ管理タスク ... 55 リソースのクリーンアップ ... 55 チュートリアル: 4 ステージのパイプラインを作成する ... 56 前提条件の設定 ... 56 パイプラインの作成 ... 59 ステージの追加 ... 61

(4)

リソースのクリーンアップ ... 63

チュートリアル: CloudWatch イベント ルールをセットアップし、パイプラインの状態が変わったとき に E メール通知を送信する ... 64

Amazon SNS を使用して E メール通知をセットアップする ... 64

AWS CodePipeline の CloudWatch イベント 通知ルールを作成する ... 65

リソースのクリーンアップ ... 67

チュートリアル: GitHub にプッシュされたときに Android アプリケーションをビルドしてテストする .... 67

Device Farm テストを使用するように AWS CodePipeline を設定する ... 67

チュートリアル: 変更が Amazon S3 に保存されたときに iOS アプリケーションをビルドしてテストす る ... 75

Device Farm テスト (Amazon S3 の例) を使用するように AWS CodePipeline を設定する ... 75

ベストプラクティスとユースケース ... 85 ベストプラクティス ... 85 AWS CodePipeline リソースで使用するセキュリティのベストプラクティス ... 85 AWS CodePipeline リソースで使用するモニタリングとログ記録のベストプラクティス ... 85 Jenkins プラグインを使用するためのベストプラクティス ... 86 AWS CodePipeline の使用方法の例 ... 86

Amazon S3、AWS CodeCommit、および AWS CodeDeploy で AWS CodePipeline を使用する ... 87

Use AWS CodePipeline をサードパーティのアクションプロバイダー (GitHub や Jenkins) と使 用する ... 87

AWS CodePipeline を AWS CodeStar と使用しコードプロジェクトでパイプラインを構築 ... 88

AWS CodeBuild で AWS CodePipeline を使用してコードをコンパイル、構築、テストを実行 ... 88

Amazon ECS と AWS CodePipeline を使用してクラウドにコンテナベースのアプリケーション を継続的に配信する ... 88

Elastic Beanstalk と AWS CodePipeline を使用してクラウドにウェブアプリケーションを継続的 に配信する ... 88

AWS Lambda と AWS CodePipeline を使用して Lambda ベースアプリケーションとサーバーレ スアプリケーションを継続的に配信する ... 89

AWS CloudFormation と AWS CodePipeline を使用してクラウドにテンプレートを継続的に配信 する ... 89

パイプラインの使用 ... 90

AWS CodePipeline でパイプラインの実行を開始する ... 90

パイプラインの自動開始に使用される変更検出方法 ... 91

CloudWatch イベント ルールを使用して AWS CodeCommit パイプラインを自動的に開始する ... 92

CloudWatch イベント ルールを使用して Amazon S3 パイプラインを自動的に開始する ... 99

ウェブフックを使用して自動的に GitHub パイプラインを開始する ... 105

定期的なチェックを使用して自動的にパイプラインを開始する ... 110

AWS CodePipeline でパイプラインを手動で開始する ... 110

Amazon CloudWatch Events を使用して、スケジュールに基づいてパイプラインを自動的に実行 する ... 111 パイプラインの作成 ... 113 コンテナベースのアプリケーションをデプロイするためのイメージ定義ファイルの作成 ... 114 パイプラインの作成 (コンソールの場合) ... 115 パイプラインを作成する (CLI の場合) ... 120 パイプラインの編集 ... 122 パイプラインの編集 (コンソールの場合) ... 123 パイプラインの表示 (AWS CLI の場合) ... 125 パイプラインの詳細と履歴の表示 ... 129 パイプラインの詳細と履歴を表示する (コンソール) ... 129 パイプラインの詳細と履歴を表示する (CLI) ... 131 パイプラインの削除 ... 134 パイプラインの削除 (コンソールの場合) ... 134 パイプラインの削除 (CLI の場合) ... 134 実行履歴の表示 ... 135 実行履歴の表示 ... 135 他のアカウントからリソースを使用するパイプラインを作成する ... 136 前提条件: AWS KMS 暗号化キーの作成 ... 137

(5)

ステップ 1: アカウントポリシーおよびロールのセットアップ ... 137 ステップ 2: パイプラインの編集 ... 143 アクションの操作 ... 146 パイプラインのカスタムアクションの作成 ... 146 カスタムアクション (CLI) の作成 ... 147 カスタムアクションのジョブワーカーの作成 ... 150 パイプラインにカスタムアクションを追加する ... 154 パイプラインに Lambda 関数を呼び出す ... 156 ステップ 1: パイプラインを作成する ... 157 ステップ 2: Lambda 関数を作成する ... 158

ステップ 3: AWS CodePipeline コンソールのパイプラインへの Lambda 関数の追加 ... 161

ステップ4: Lambda 関数でパイプラインをテストします。 ... 162 ステップ 5: 次のステップ ... 162 JSON イベントの例 ... 163 追加のサンプル関数 ... 164 失敗したアクションを再試行する ... 173 失敗したアクションを再試行する (コンソール) ... 173 失敗したアクションを再試行する (CLI) ... 174 パイプラインの承認アクションを管理する ... 175 手動の承認アクションに関する設定オプション ... 175 承認アクションのセットアップおよびワークフローの概要 ... 176

AWS CodePipeline の IAM ユーザーに承認権限を付与する ... 177

サービス ロールへの Amazon SNS アクセス許可の付与 ... 178 手動の承認アクションの追加 ... 179 承認アクションの承認または拒否 ... 183 手動の承認通知の JSON データ形式 ... 185 ステージ移行の操作 ... 186 移行を無効化または有効化する (コンソールの場合) ... 186 移行を無効化または有効化する (CLI の場合) ... 188 パイプラインのモニタリング ... 189 CloudWatch イベント でパイプラインの状態の変更を検出し対応する ... 189 パイプライン実行の状態変更ルールの仕組みを理解する ... 190

AWS CloudTrail での API コールのログ記録 ... 197

CloudTrail での AWS CodePipeline 情報 ... 197

AWS CodePipeline ログファイルエントリの概要 ... 198

パイプラインの現在のソースリビジョンの詳細を表示する ... 199

パイプラインの現在のソースリビジョンの詳細を表示する (コンソールの場合) ... 199

パイプラインの現在のソースリビジョンの詳細を表示する (CLI の場合) ... 200

トラブルシューティング ... 202

パイプラインのエラー: AWS Elastic Beanstalk で設定されたパイプラインは次のようなエラーメッ セージを返します。「デプロイに失敗しました。提供されたロールに十分なアクセス権限がありませ ん: サービス: AmazonElasticLoadBalancing」 ... 202

デプロイエラー: 「DescribeEvents」アクセス許可がない場合、AWS Elastic Beanstalk デプロイアク ションで設定したパイプラインは、失敗することなく中止します。 ... 203

パイプラインエラー: ソースアクションは次のような不十分な権限メッセージを返します。「AWS CodeCommit リポジトリ repository-name にアクセスできませんでした。」パイプラインの IAM ロールにリポジトリにはアクセスするための十分な権限があることを確認してください。」 ... 204

パイプラインのエラー: Jenkins のビルドまたはテストアクションは長期間実行されるため、認証情報 や権限がないと失敗します。 ... 204

パイプラインのエラー: GitHub ステージ自分のソースは Git サブモジュールが含まれているが、AWS CodePipeline 初期化されていません ... 204

パイプラインのエラー: 次のメッセージのパイプラインエラーが表示されます。「PermissionError: GitHub リポジトリにアクセスできませんでした」 ... 205

パイプラインのエラー: 別の AWS リージョンで作成されたバケットを使用して 1 つの AWS リージョ ンで作成されたパイプラインは、コード「JobFailed」を使用して「InternalError」を返します。 ... 206

デプロイのエラー: WAR ファイルを含む ZIP ファイルは AWS Elastic Beanstalk に正常にデプロイさ れますが、アプリケーションの URL に 404 Not Found エラーが報告されます ... 203

(6)

ZIP が外部属性を保持しないときは、ソースファイルに GitHub からのファイルアクセス権限は保持さ れません。 ... 207 別の問題で支援が必要ですか? ... 208 認証、アクセスコントロール、セキュリティ設定 ... 209 認証 ... 209 IAM ポリシーを使用したアクセスコントロール ... 210 アクセス管理の概要 ... 211 アイデンティティベースのポリシー (IAM ポリシー) を使用する ... 219 AWS CodePipeline コンソールを使用するために必要なアクセス権限 ... 219

AWS CodePipeline での AWS 管理 (事前定義) ポリシー ... 220

AWS CodePipeline サービスロールの管理 ... 220

お客様が管理するポリシーの例 ... 226

AWS CodePipeline の権限リファレンス ... 233

セキュリティ設定 ... 236

AWS CodePipeline 用として Amazon S3 に保存したアーティファクトのサーバー側の暗号化を 設定する ... 237 GitHub の認証を設定する ... 239 データベースパスワードまたはサードパーティの API キーを追跡するためにパラメータストア を使用する ... 242 コマンドラインリファレンス ... 243 パイプライン構造のリファレンス ... 244 AWS CodePipeline のパイプラインおよびステージ構造 ... 244 AWS CodePipeline のアクション構造の要件 ... 245 制限 ... 252 ドキュメント履歴 ... 256 以前の更新 ... 256 AWS の用語集 ... 264

(7)

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

(8)

AWS CodePipeline の紹介ビデオ

AWS CodePipeline とは

AWS CodePipeline は、ソフトウェアをリリースするために必要な手順のモデル化、視覚化、および自動 化に使用できる継続的な配信サービスです。ソフトウェアリリースプロセスのさまざまなステージをすば やくモデル化して設定できます。AWS CodePipeline は、ソフトウェアの変更を継続的にリリースするた めに必要なステップを自動化します。AWS CodePipeline の料金については、「料金表」を参照してくだ さい。 トピック • AWS CodePipeline の紹介ビデオ (p. 1) • AWS CodePipeline の機能 (p. 1) • AWS CodePipeline のクイックルック (p. 2) • AWS CodePipeline の使用を開始するには (p. 3) • ご意見をお待ちしております (p. 3) • AWS CodePipeline の概念 (p. 4)

AWS CodePipeline の紹介ビデオ

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

AWS CodePipeline の機能

AWS CodePipeline を使用すると、アプリケーションをクラウドで自動的に構築、テスト、およびデプロ イすることができます。具体的な内容は以下のとおりです。 • リリースプロセスを自動化する: AWS CodePipeline は、ソースリポジトリからビルド、テスト、デプロ イまで、リリースプロセスを完全に自動化します。ソースステージ以外の任意のステージで手動承認ア クションを含めることで、パイプラインを通して変更が移動しないようにすることができます。選択し たシステム上で、1 つのインスタンスまたは複数のインスタンス間で、必要に応じて自動的にリリース することができます。 • 一貫性のあるリリースプロセスを確立する: コードを変更するたびに実行される一貫性のあるステップを 定義します。AWS CodePipeline はお客様の基準に従ってリリースの各ステージを実行します。 • 品質を向上しながら配信を高速化: リリースプロセスを自動化して、開発者がコードを段階的にテストお よびリリースし、新しい機能のリリースを顧客に迅速に提供できるようにすることができます。 • お好みのツールを使用: 既存のソース、ビルド、およびデプロイツールをパイプラインに組み込むことが

できます。現在 AWS CodePipeline でサポートされている AWS のサービスとサードパーティーのツー ルの完全なリストについては、「AWS CodePipeline による製品とサービスの統合 (p. 11)」を参照し てください。

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

(9)

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

AWS CodePipeline のクイックルック

次の図は、AWS CodePipeline を使用したリリースプロセスの例を示しています。 この例では、開発者がソースリポジトリに変更をコミットすると、AWS CodePipeline は自動的に変更を 検出します。これらの変更が作成され、テストが設定されている場合は、それらのテストが実行されま す。テストが完了すると、ビルドされたコードがテスト用のステージングサーバーにデプロイされます。 ステージングサーバーから、AWS CodePipeline は統合テストや読み込みテストなどの追加テストを実行 します。これらのテストが正常に完了し、パイプラインに追加された手動承認アクションが承認された 後、AWS CodePipeline はテスト済みと承認済みコードを本番稼働インスタンスにデプロイします。 AWS CodePipeline は、AWS CodeDeploy、AWS Elastic Beanstalk、または AWS OpsWorks Stacks を使用してアプリケーションを Amazon EC2 インスタンスにデプロイできます。AWS CodePipeline は、Amazon ECS を使用してコンテナベースのアプリケーションをサービスにデプロイすることもできま す。開発者は、AWS CodePipeline で提供される統合ポイントを使用して、ビルドサービス、テストプロ バイダー、その他のデプロイターゲットやシステムなど、他のツールやサービスをプラグインすることも できます。 パイプラインは、リリースプロセスが必要とするのと同じくらいシンプルでも複雑でもかまいません。

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

AWS CodePipeline は、開発ツールと統合され、コード変更を自動的にチェックし、継続的な配信プロセ スのすべての段階を経てビルドおよびデプロイします。 ステージでは、パイプラインの作成時に選択した Amazon S3 アーティファクトバケットに保存されてい る入出力アーティファクトが使用されます。AWS CodePipeline は、ステージのアクションタイプに応じ て、入力または出力アーティファクトのファイルを圧縮して転送します。たとえば、ビルドアクションの 開始時に、AWS CodePipeline は入力アーティファクト (ビルドするファイル) を取得し、ビルドアクショ ンにアーティファクトを提供します。アクションが完了すると、AWS CodePipeline は出力アーティファ クト (構築済みアプリケーション) を取り出し、次のステージで使用するために出力アーティファクトバ ケットに保存します。

(10)

AWS CodePipeline の使用を開始するには

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

1. AWS CodePipeline は、ソースリポジトリへのコミットがあると、[Source] ステージからの出力アー ティファクトを渡して、パイプライン実行を自動的にトリガーします。 2. 前のステップの出力アーティファクトは、入力アーティファクトとして [Build] ステージに取り込まれま す。[Build] ステージからの出力アーティファクトは、更新されたアプリケーションまたはコンテナに構 築された更新された Docker イメージにすることができます。 3. 前のステップの出力アーティファクトは、AWS クラウドのステージング環境や本稼働環境など、 [Deploy] ステージに入力アーティファクトとして取り込まれます。アプリケーションをデプロイのフ リートにデプロイすることも、ECS クラスターで実行するタスクにコンテナベースのアプリケーション をデプロイすることもできます。 次の図は、AWS CodePipeline のステージ間の高レベルのアーティファクトワークフローを示していま す。

AWS CodePipeline の使用を開始するには

AWS CodePipeline の使用を開始するには

1. 「AWS CodePipeline の概念 (p. 4)」セクションを読んで、AWS CodePipeline の仕組みついて理解

します。

2. 「AWS CodePipeline の使用開始 (p. 9)」のステップに従って、AWS CodePipeline の使用につい

て準備します。

3. 「AWS CodePipeline のチュートリアル (p. 27)」チュートリアルのステップに従って、AWS

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

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

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

(11)

概念

AWS CodePipeline の概念

AWS CodePipeline で使用されている概念と用語、およびリリース自動化の基本概念のいくつかを理解し ていれば、自動リリースプロセスのモデリングと設定が容易になります。ここでは、AWS CodePipeline を使用する際に知っておかなければならないいくつかの概念を次に示します。 トピック • AWS CodePipeline での継続的な配信と統合 (p. 4) • AWS CodePipeline による (p. 4)

AWS CodePipeline での継続的な配信と統合

AWS CodePipeline は、ソフトウェアの構築、テスト、およびデプロイを本番稼働用に自動化する継続的 な配信サービスです。 「継続的な配信」はリリースプロセスが自動化されるソフトウェア開発方法です。すべてのソフトウェア 変更は自動的に構築され、テストされ、本番稼働用にデプロイされます。最終的な本番稼働に進む前に、 個人、自動テスト、またはビジネスルールが最終的なプッシュがいつ行われるかを決定します。正常なす べてのソフトウェア変更は、継続的な配信ですぐに本番稼働にリリースできますが、すべての変更をすぐ にリリースする必要はありません。 継続的統合は、チームのメンバーがバージョン管理システムを使用し、頻繁にマスターブランチなどの同 じ場所に作業を統合するソフトウェア開発のプラクティスです。各変更は、可能な限り迅速に統合エラー を検出するために構築され、検証されます。継続的な統合は、ソフトウェアのリリースプロセス全体を本 番稼働まで自動化する継続的な配信と比較して、コードの自動構築とテストに重点を置いています。 詳細については、「AWS での継続的な統合と継続的な配信の実施: DevOps でのソフトウェア配信の加 速」を参照してください。

AWS CodePipeline による

AWS CodePipeline は、パイプラインによるリリースプロセスワークフローの作成と管理を支援しま す。パイプラインは、ソフトウェアの変更がリリースプロセスをどのように通過するかを記述するワーク フロー構造です。AWS CodePipeline 制限 (p. 252) で説明したように、AWS と AWS CodePipeline の制 限内で必要な数のパイプラインを作成することができます。

次の図とそれに伴う説明では、AWS CodePipeline 固有の用語と、これらの概念が互いにどのように関係 しているかについて説明します。

(12)

AWS CodePipeline による

• AWS CodePipeline コンソール、AWS Command Line Interface (AWS CLI)、AWS SDK、またはこれら の組み合わせを使用して、パイプラインの作成や管理ができます。 コンソールを使用して最初のパイプラインを作成すると、AWS CodePipeline はパイプラインと同じ リージョンに Amazon S3 バケットを作成し、アカウントに関連付けられたそのリージョン内のすべて のパイプラインのアイテムを格納します。コンソールを使用してそのリージョンに別のパイプラインを 作成するたびに、AWS CodePipeline はバケット内にそのパイプライン用のフォルダを作成します。こ のフォルダを使用して、自動リリースプロセスの実行時にパイプラインのアイテムを格納します。この バケットには、codepipeline-region-1234567EXAMPLE という名前が付けられます。ここで、region はパイプラインを作成した AWS リージョンであり、1234567EXAMPLE はバケット名を一意にするため の 10 桁の乱数です。

AWS CLI を使用してパイプラインを作成する場合、そのバケットがパイプラインと同じ AWS リージョ ン内にあるかぎり、そのパイプラインのアーティファクトを任意の Amazon S3 バケットに格納できま す。アカウントに許可されている Amazon S3 バケットの制限を超えることが懸念される場合は、これ を行うことができます。

• リビジョンは、GitHub リポジトリまたは AWS CodeCommit リポジトリへのプッシュされたコミット、 またはバージョン管理された Amazon S3 バケット内のファイルへの更新など、AWS CodePipeline の ソースアクションで設定されたソースに対する変更です。各リビジョンは、パイプラインを通して個別 に実行されます。複数のリビジョンを同じパイプラインで処理できますが、各ステージでは一度に 1 つ のリビジョンしか処理できません。パイプラインのソースステージで指定された場所でリビジョンが行 われるとすぐに、パイプラインを通してリビジョンが実行されます。

(13)

AWS CodePipeline による

Note

パイプラインに複数のソースアクションが含まれている場合、1 つのソースアクションに対し てのみ変更が検出された場合でも、すべてのアクションが再度実行されます。 • AWS CodePipeline は、ワークフローを一連のステージに分割します。たとえば、コードがビルドさ れ、テストが実行されるビルドステージが存在する可能性があります。コードの更新がランタイム環境 にデプロイされるデプロイステージもあります。同じデプロイステージの異なる環境に複数の並列デプ ロイを設定できます。リリースプロセスでは、各ステージにラベルを付けることで、トラッキング、管 理、レポートの改善 (「ソース」、「ビルド」、「ステージング」など) を行うことができます。 パイプラインの各ステージには一意の名前があり、ワークフローの一部として一連のアクションが含ま れています。1 つのステージでは、一度に 1 つのリビジョンしか処理できません。リビジョンは、次の リビジョンが実行される前にステージを通過しなければなりません。ステージに設定されたすべてのア クションは、ステージが完了したとみなされる前に正常に完了する必要があります。ステージが完了す ると、パイプラインはそのステージのアクションによって作成されたリビジョンとそのアーティファク トをパイプラインの次のステージに移行します。これらの移行を手動で無効にして有効にすることがで きます。ステージ要件と構造の詳細については、「AWS CodePipeline のパイプラインおよびステージ 構造 (p. 244)」を参照してください。 • すべてのステージには少なくとも 1 つのアクションが含まれており、これはアーティファクトで実行 されるタスクの一種です。パイプラインのアクションは、ステージ設定の定義に従い、指定された順 序で順番に、または同時に実行されます。たとえば、デプロイステージには、1 つ以上のステージング サーバーにコードをデプロイするデプロイアクションが含まれる場合があります。1 つのアクションで ステージを設定して開始し、必要に応じてそのステージにアクションを追加することができます。詳細 については、「AWS CodePipeline でパイプラインを編集する (p. 122)」および「AWS CodePipeline

のアクション構造の要件 (p. 245)」を参照してください。 パイプラインを通してリビジョンの実行が開始されると、AWS CodePipeline は、パイプライン内のア クションとステージによって処理されるファイルや変更を Amazon S3 バケットにコピーします。これ らのオブジェクトは、アーティファクトと呼ばれ、アクションのソース (入力アーティファクト) または アクションの出力 (出力アーティファクト) である可能性があります。アーティファクトは、複数のアク ションによって処理することができます。 • すべてのアクションには種類があります。種類に応じて、アクションは次のいずれかまたは両方を持つ 場合があります。 • アクションが実行されている間に消費または動作するアーティファクトである入力アーティファク ト。 • アクションの出力である出力アーティファクト。 パイプラインの各出力アーティファクトには一意の名前が必要です。アクションのすべての入力アー ティファクトは、そのアクションがステージのアクションの直前であるか、あるいはいくつか前のス テージで実行されているかどうかにかかわらず、パイプラインの以前のアクションの出力アーティファ クトと一致していなければなりません。次の図は、パイプラインで入力アーティファクトと出力アー ティファクトがどのように生成され、消費されるかを示しています。

(14)

AWS CodePipeline による • 移行は、ワークフローの、あるステージから次へと継続するパイプラインにおける、1 つのリビジョン の操作です。AWS CodePipeline コンソールでは、移行の矢印はステージを接続してステージが発生す る順序を表示します。ステージが完了すると、デフォルトではリビジョンはパイプラインの次のステー ジに移行します。ステージ間への移行を無効にできます。これを行うと、パイプラインはその移行の 前にステージ内のすべてのアクションを実行しますが、その移行を有効にするまでステージまたはア クションは実行されません。これは、変更がパイプライン全体で実行されないようにする簡単な方法で す。移行を有効にすると、前のステージで正常に実行された最新のリビジョンが、移行後のステージで 実行されます。すべての移行が有効になっている場合、パイプラインは続けて実行します。すべてのリ ビジョンは、パイプラインによる正常な実行の一部としてデプロイされます (継続的なデプロイ)。 • 一度に 1 つのリビジョンしかステージを通して実行できないため、AWS CodePipeline は次のステージ が利用可能になるまで前のステージを完了したリビジョンをバッチ処理します。最新のリビジョンがス テージを通して実行されると、バッチされたリビジョンは最新のリビジョンに置き換えられます。 • 承認アクションは、権限が許可されるまでパイプラインが次のアクションに移行するのを防ぎます (た とえば、認定されたIAMユーザーからの手動承認を受けて)。たとえば、コードレビューが成功した後に のみパイプラインを継続したい場合や、パイプラインが最終的な本番稼働ステージに移行する時間を制 御したい場合は、承認アクションを使用することができます。この場合、本番稼働の直前のステージに 手動の承認アクションを追加し、変更を一般公開する準備ができたら自分で承認することができます。 • 失敗は、正常に完了していないステージのアクションです。ステージで 1 つのアクションが失敗した 場合、そのリビジョンはステージの次のアクションまたはパイプラインの次のステージに移行しませ ん。障害が発生した場合、そのリビジョンのパイプラインでの移行はそれ以上発生しません。AWS CodePipeline は、以下のいずれかが発生するまでパイプラインを一時停止します。 • 失敗したアクションを含むステージを手動で再試行します。 • そのリビジョンのパイプラインを再度開始します。 • ソースステージのアクションでは、別のリビジョンが作成されます。 • パイプラインは、(パイプラインのソースアクションで定義された) ソースの場所が変更されたとき、ま たは手動でパイプラインを開始したときに自動的に開始されます。指定したイベントが発生したときに 自動的にパイプラインを開始するように Amazon CloudWatch でルールを設定することもできます。パ イプラインが開始された後、リビジョンはパイプラインのあらゆるステージとアクションで実行されま す。パイプラインビューページで、各アクションの最後の実行の詳細をパイプラインで表示できます。

(15)

AWS CodePipeline による

Note

AWS CodeCommit ソースリポジトリを持つコンソールでパイプラインを作成または編集する と、AWS CodePipeline は Amazon CloudWatch Events を使用してリポジトリ内の変更を検出 し、変更が発生したときにパイプラインを開始します。

次の図は、AWS CodePipeline コンソールのサンプルパイプラインの 2 つのステージを示しています。こ れには、各ステージのアクションと、2 つのステージ間の有効な移行が含まれます。

(16)

ステップ 1: AWS アカウントの作成

AWS CodePipeline の使用開始

AWS CodePipeline を初めて使用する場合は、事前に以下のステップをすべて行う必要があります。 トピック • ステップ 1: AWS アカウントの作成 (p. 9) • ステップ 2: IAM ユーザーを作成または使用する (p. 9)

• ステップ 3: IAM 管理ポリシーを使用して IAM ユーザーへ AWS CodePipeline のアクセス許可を割り当

てる (p. 9) • 手順 4: AWS CLI をインストールする (p. 10) • ステップ 5: AWS CodePipeline コンソールを開く (p. 10) • 次のステップ (p. 10)

ステップ 1: AWS アカウントの作成

AWS アカウントを作成します (まだ持ってない場合)。そのためには、https://aws.amazon.com/ にアクセ スし、[サインアップ] を選択します。

ステップ 2: IAM ユーザーを作成または使用する

IAM ユーザーを作成するか、AWS アカウントに関連付けられた既存のユーザーを使用します。AWS アク セスキー ID および AWS シークレットアクセスキーがその IAM ユーザーに関連付けられていることを確 認します。詳細については、「AWS アカウント内での IAM ユーザーの作成」を参照してください。

ステップ 3: IAM 管理ポリシーを使用して IAM ユー

ザーへ AWS CodePipeline のアクセス許可を割り当

てる

IAM ユーザーのアクセス許可を付与して AWS CodePipeline と連携する必要があります。これを行う最も 簡単な方法は、AWSCodePipelineFullAccess 管理ポリシーを IAM ユーザーに適用することです。

AWS マネジメントコンソール を使用して IAM ユーザーにアクセス許可を付与するには

1. AWS マネジメントコンソール にサインインし、IAM コンソール(https://console.aws.amazon.com/ iam/)を開きます。

2. IAM コンソールのナビゲーションペインで、[ポリシー] を選択して、ポリシーのリストから AWSCodePipelineFullAccess 管理ポリシーを選択します。

3. [Policy Details] ページで、[Attached Entities] タブを選択して、[Attach] を選択します。

4. [ポリシーのアタッチ] ページで、IAM ユーザーまたはグループの横にあるチェックボックスをオンに し、[ポリシーのアタッチ] を選択します。

Note

AWSCodePipelineFullAccess ポリシーでは、IAM ユーザーがアクセスできるすべての AWS CodePipeline アクションおよびリソースだけでなく、パイプラインのステージ (AWS

(17)

手順 4: AWS CLI をインストールする

CodeDeploy、Elastic Beanstalk、または Amazon S3 を含むステージなど) の作成時に可能な すべてのアクションに対するアクセス許可を付与します。ベストプラクティスとして、職務 遂行に必要な許可のみを個人に付与することをお勧めします。IAM ユーザーがアクセス可能 な AWS CodePipeline アクションおよびリソースを制限する方法の詳細については、「未使 用の AWS サービスのアクセス許可の削除 (p. 225)」を参照してください。

手順 4: AWS CLI をインストールする

AWS CLI をインストールして設定するには

1. ローカルマシンで、AWS CLI をダウンロードしてインストールします。これにより、コマンドライン から AWS CodePipeline とやり取りすることができます。詳細については、「AWS コマンドラインイ

ンターフェイスの設定」を参照してください。

Note

AWS CodePipeline は、AWS CLI versions 1.7.38 以降でのみ動作します。インストールし た AWS CLI のバージョンを確認するには、aws --version コマンドを実行します。 古い バージョンの AWS CLI を最新のバージョンにアップグレードするには、「AWS CLI のアン

インストール」の指示に従ってから、「AWS Command Line Interface のインストール」の

指示に従います。

2. 以下のように、configure コマンドを使用して AWS CLI を設定します。 aws configure

プロンプトが表示されたら、AWS CodePipeline で使用する IAM ユーザーの AWS アクセスキーと AWS シークレットアクセスキーを指定します。デフォルトのリージョン名の入力を求められたら、パ イプラインを作成するリージョン (us-east-2 など) を指定します。デフォルトの出力形式の入力を 求められたら、json を指定します。以下に例を示します。

AWS Access Key ID [None]: Type your target AWS access key ID here, and then press Enter

AWS Secret Access Key [None]: Type your target AWS secret access key here, and then press Enter

Default region name [None]: Type us-east-2 here, and then press Enter

Default output format [None]: Type json here, and then press Enter

Note

IAM、アクセスキー、シークレットキーの詳細については、「IAM ユーザーのアクセスキー の管理」および「認証情報を取得する方法」を参照してください。 AWS CodePipeline で使用できるリージョンとエンドポイントの詳細については、「リー ジョンとエンドポイント」を参照してください。

ステップ 5: AWS CodePipeline コンソールを開く

• AWS マネジメントコンソール にサインインし、AWS CodePipeline コンソール (http://

console.aws.amazon.com/codepipeline) を開きます。

次のステップ

前提条件を完了しました。AWS CodePipeline の使用を開始できます。AWS CodePipeline の使用を開始す る方法については、「AWS CodePipeline のチュートリアル (p. 27)」を参照してください。

(18)

AWS CodePipeline アクションの種類との統合

AWS CodePipeline による製品とサー

ビスの統合

デフォルトで、AWS CodePipeline は多数の AWS のサービス、およびパートナーの製品やサービス と統合されています。以下のセクションの情報は、使用する製品やサービスを統合するための AWS CodePipeline の設定に役立ちます。 トピック • AWS CodePipeline アクションの種類との統合 (p. 11) • AWS CodePipeline との一般的な統合 (p. 19) • コミュニティからの例 (p. 23)

AWS CodePipeline アクションの種類との統合

このトピックの統合情報は、AWS CodePipeline アクションの種類によって編成されます。 トピック • ソース操作の統合 (p. 11) • アクション統合をビルドする (p. 13) • テストアクションの統合 (p. 15) • デプロイ アクションの統合 (p. 16) • 承認アクションの統合 (p. 19) • アクション統合の呼び出し (p. 19)

ソース操作の統合

以下の情報は、AWS CodePipeline のアクションの種類別に整理されており、AWS CodePipeline を使用し ている製品やサービスと統合するように設定するのに役立ちます。

Amazon Simple Storage

Service (Amazon S3) Amazon S3を使用すると、データの大きさにかかわらず、ウェブ上のどんな場所か はインターネット用のストレージサービスです。Amazon S3 らでもいつでも保存、取得することができます。バージョン管理された Amazon S3 バケットをコードのソースステージとして使用するように AWS CodePipeline を設定できます。ステージ内のソースアクションの一部とし てバケットを使用するパイプラインを作成する前に、まずバケットを作成し てバージョニングを有効にする必要があります。 詳細はこちら: • ステップ 1: アプリケーションの Amazon S3 バケットを作成す る (p. 28) • パイプラインを作成する (CLI の場合) (p. 120)

• AWS CodePipeline は Amazon CloudWatch Events を使用して、Amazon S3 ソースバケットの変更を検出します。各ソースアクションには対 応するイベントルールがあります。このイベントルールにより、ソー スに変更が発生すると、自動的にパイプラインを開始します。「AWS

(19)

ソース操作の統合

AWS CodeCommit AWS CodeCommit は、クラウド内のアセット (ドキュメント、ソースコー ド、バイナリファイルなど) を非公開で保存および管理するために使用でき る AWS によってホストされるバージョン管理サービスです。コードのソー スステージとして AWS CodeCommit リポジトリ内のブランチを使用するよ うに、AWS CodePipeline を設定できます。ステージ内のソースアクション の一部としてブランチを使用するパイプラインを作成する前に、まずリポジ トリを作成し、それをローカルマシン上の作業ディレクトリに関連付ける必 要があります。AWS CodeCommit リポジトリに接続するには、新しいパイ プラインを作成するか、既存のパイプラインを編集します。 詳細はこちら: • チュートリアル: シンプルなパイプラインを作成する (AWS CodeCommit リポジトリの場合) (p. 44)

• AWS での DevOps 入門ガイド — AWS CodePipeline を使用して、AWS

CodeCommit リポジトリのソースコードを AWS CodeDeploy、Elastic Beanstalk、および AWS OpsWorks のデプロイターゲットに継続的にデリ バリーおよびデプロイする方法について説明します。

• AWS CodePipeline は Amazon CloudWatch Events を利用して、パイプ ラインのソースとして使用される AWS CodeCommit リポジトリの変更 を検出します。各ソースアクションには対応するイベントルールがあり ます。このイベントルールにより、リポジトリに変更が発生すると、自 動的にパイプラインを開始します。「AWS CodePipeline との一般的な統

(20)

アクション統合をビルドする

GitHub コードのソースステージとして GitHub リポジトリを使用するように AWS CodePipeline を設定できます。これ以前に GitHub アカウントと少なくとも 1 つの GitHub リポジトリを作成しておく必要があります。GitHub リポジト リに接続するには、新しいパイプラインを作成するか、既存のパイプライン を編集します。

Note

GitHub Enterprise との AWS CodePipeline の統合はサポートされて いません。

GitHub リポジトリを最初にパイプラインに追加すると、リポジトリへの AWS CodePipeline アクセスを承認するように要求されます。GitHub と 統合するために、AWS CodePipeline はパイプラインに OAuth アプリケー ションを作成します。コンソールでパイプラインを作成または更新した場 合、AWS CodePipeline はリポジトリで変更が生じたときにパイプライン を開始する GitHub ウェブフックを作成します。トークンとウェブフックに は、以下の GitHub スコープが必要となります。 • repo スコープ。これは、パブリックおよびプライベートリポジトリから パイプラインにアーティファクトを読み込んでプルする完全制御に使用さ れます。 • admin:repo_hook スコープ。これは、リポジトリフックの完全制御に 使用されます。

GitHub のスコープに関する詳細については、「GitHub 開発者 API リファレ ンス」を参照してください。

AWS CodePipeline のアクセスは、その GitHub アカウントがアクセスで きるすべてのリポジトリに対して設定されます。 現在は個々のリポジトリ 用に設定することはできません。[設定]、[アプリケーション] を選択し、 次に、[認定アプリケーション] で認可されたアプリケーションのリスト で AWS CodePipeline を見つけ、[取り消し] を選択して、このアクセス を GitHub から取り消すことができます。アクセスを取り消すと、直ちに GitHub アカウントへのアクセス用に設定された GitHub リポジトリに AWS CodePipeline がアクセスできなくなります。

AWS CodePipeline による特定のリポジトリセットへのアクセスを制限する 場合は、GitHub アカウントを作成し、そのアカウントに AWS CodePipeline と統合するリポジトリのみへのアクセスを許可し、AWS CodePipeline を設 定するときにそのアカウントを使用して、パイプラインのソースステージに GitHub リポジトリを使用するようにします。 詳細はこちら: • チュートリアル: 4 ステージのパイプラインを作成する (p. 56) • ウェブフックを使用して自動的に GitHub パイプラインを開始す る (p. 105)

アクション統合をビルドする

AWS CodeBuild AWS CodeBuild は、クラウド内でソースコードをコンパイルし、単体テス トを実行して、デプロイ可能なアーティファクトを生成する完全マネージド 型のビルドサービスです。

(21)

アクション統合をビルドする AWS CodeBuild を、ビルドアクションとしてパイプラインのビルドス テージに追加できます。既存のビルドプロジェクトを使用するか、AWS CodePipeline コンソールで作成することができます。その後、パイプライ ンの一部として、ビルドプロジェクトの出力をデプロイできます。

Note

AWS CodeBuild は、ビルド出力の有無にかかわらず、テストアク ションとしてパイプラインに含めることもできます。 詳細はこちら: • AWS CodeBuild とは?

• 「AWS CodeBuild で AWS CodePipeline を使用してコードをテストし、

ビルドを実行する」の「AWS CodeBuild ビルドアクションをパイプライ ンに追加する」 • AWS CodeBuild でビルドプロジェクトを操作する • AWS CodeBuild – 完全マネージド型ビルドサービス CloudBees パイプラインの 1 つ以上のアクションで CloudBees を使用してコードをビ ルドまたはテストするように AWS CodePipeline を設定できます。 詳細はこちら: • ビルドとテストのジョブを実行するための CloudBees Jenkins プラット

フォームと AWS CodePipeline の統合に関する CloudBees のドキュメン ト

Jenkins パイプラインの 1 つ以上のアクションで Jenkins CI を使用してコードをビ ルドまたはテストするように AWS CodePipeline を設定できます。これ以前 に Jenkins プロジェクトを作成し、そのプロジェクト用に Jenkins の AWS CodePipeline プラグイン をインストールして設定しておく必要がありま す。Jenkins プロジェクトに接続するには、新しいパイプラインを作成する か、既存のパイプラインを編集します。

Jenkinsのアクセスは、プロジェクトベースで設定されます。AWS CodePipeline で使用するすべての Jenkins インスタンスに Jenkins の AWS CodePipeline プラグイン をインストールする必要があります。 さらに、Jenkins プロジェクトへの AWS CodePipeline アクセスを設定 する必要があります。HTTPS/SSL 接続のみを受け入れるように設定し て、Jenkins プロジェクトを安全にする必要があります。Jenkins プロジェ クトが Amazon EC2 インスタンスにインストールされている場合、AWS 認 証情報を提供するには、各インスタンスに AWS CLI をインストールし、そ のインスタンスの AWS プロファイルで、AWS CodePipeline と Jenkins と の接続に使用する IAM ユーザープロファイルと AWS 認証情報を設定してく ださい。Jenkins のウェブインターフェイスで、それらの認証情報を追加し たり、保存したりしないでください。 詳細はこちら: • Jenkins のアクセス • チュートリアル: 4 ステージのパイプラインを作成する (p. 56)

(22)

テストアクションの統合

Solano CI パイプラインの 1 つ以上のアクションで Solano Labs を使用してコードをビ ルドしてテストするように AWS CodePipeline を設定できます。

詳細はこちら:

• AWS CodePipeline で Solano CI を使用するための Solano Labs のドキュ メント

TeamCity パイプラインの 1 つ以上のアクションで TeamCity を使用してコードをビル ドまたはテストするように AWS CodePipeline を設定できます。

詳細はこちら:

• AWS CodePipeline の TeamCity プラグイン

• AWS と TeamCity でのエンドツーエンドの継続的デリバリーおよびデプ

ロイパイプラインの構築

テストアクションの統合

AWS CodeBuild AWS CodeBuild は、クラウド内でソースコードをコンパイルし、単体テス トを実行して、デプロイ可能なアーティファクトを生成する完全マネージド 型のビルドサービスです。 AWS CodeBuild をテストアクションとしてパイプラインに追加して、ビル ド出力アーティファクトの有無にかかわらず、コードに対してユニットテス トを実行することができます。テストアクションの出力アーティファクトを 生成すると、パイプラインの一部としてデプロイできます。既存のビルドプ ロジェクトを使用するか、AWS CodePipeline コンソールで作成することが できます。

Note

AWS CodeBuild は、必須ビルド出力アーティファクトを持つビル ドアクションとしてパイプラインに含めることもできます。 詳細はこちら: • AWS CodeBuild とは?

• 「AWS CodeBuild で AWS CodePipeline を使用してコードをテストし、

ビルドを実行する」の「AWS CodeBuild テストアクションをパイプライ

ンに追加する」

AWS Device Farm AWS Device Farm は、アマゾン ウェブ サービス (AWS) によりホストされ ている実際の物理的な電話やタブレットで、Android や iOS、およびウェ ブアプリケーションをテストしてやり取りできるアプリケーションテスト サービスです。パイプラインの 1 つ以上のアクションで AWS Device Farm を使用してコードをテストするように AWS CodePipeline を設定できま す。AWS Device Farm により、独自のテストをアップロードしたり、組 み込みのスクリプトフリーの互換性テストを使用したりできます。テス トは自動的に並列実行されるため、テストは複数のデバイスで数分のうち に開始されます。高レベルの結果、低レベルのログ、ピクセルからピクセ ルへのスクリーンショット、パフォーマンスデータを含むテストレポート は、テストが完了すると更新されます。AWS Device Farm は、ネイティ ブかつハイブリッドな Android、iOS、および Fire OS アプリケーション (PhoneGap、Titanium、Xamarin などのフレームワークで作成されたアプリ ケーション) のテストをサポートしています。Android アプリのリモートア

(23)

デプロイ アクションの統合

クセスをサポートしているため、テストデバイスと直接やりとりすることが できます。

詳細はこちら:

• AWS Device Farm とは?

• AWS CodePipeline テストステージでの AWS Device Farm の使用

BlazeMeter パイプラインの 1 つ以上のアクションで BlazeMeter を使用してコードをビ ルドしてテストするように AWS CodePipeline を設定できます。

詳細はこちら:

• AWS CodePipeline でテストするための BlazeMeter のドキュメント

Ghost Inspector パイプラインの 1 つ以上のアクションで Ghost Inspector を使用してコード をビルドしてテストするように AWS CodePipeline を設定できます。 詳細はこちら:

• AWS CodePipeline とのサービス統合のための Ghost Inspector のドキュ

メント

HPE StormRunner Load パイプラインの 1 つ以上のアクションで HPE StormRunner Load を使用し てコードをビルドしてテストするように AWS CodePipeline を設定できま す。

詳細はこちら:

• AWS CodePipeline との統合のための HPE StormRunner Load のドキュメ

ント

Nouvola パイプラインの 1 つ以上のアクションで Nouvola を使用してコードをビル ドしてテストするように AWS CodePipeline を設定できます。

詳細はこちら:

• AWS CodePipeline の Nouvola プラグイン

Runscope パイプラインの 1 つ以上のアクションで Runscope を使用してコードをビル ドしてテストするように AWS CodePipeline を設定できます。

詳細はこちら:

• AWS CodePipeline との統合のための Runscope ドキュメント

デプロイ アクションの統合

AWS CloudFormation AWS CloudFormation では、開発者とシステム管理者は、AWS リソースの プロビジョニングおよび更新用のテンプレートを使用して、関連する一連の リソースを簡単に作成および管理できます。AWS CloudFormation のサンプ ルテンプレートを使用するか、独自のテンプレートを作成して、アプリケー ションの実行に必要な AWS リソース、および関連する依存関係や実行時パ ラメータを定義できます。

AWS サーバーレスアプリケーションモデル (AWS SAM) は、AWS CloudFormation を拡張して、サーバーレスアプリケーションを定義してデ

(24)

デプロイ アクションの統合

プロイするための簡単な方法を提供します。AWS SAM は、Amazon API Gateway API、AWS Lambda 関数、および Amazon DynamoDB テーブルを サポートしています。AWS CodePipeline を AWS CloudFormation および AWS サーバーレスアプリケーションモデルと共に使用して、サーバーレス アプリケーションの継続的デリバリーが可能です。 デプロイプロバイダーとして AWS CloudFormation を使用するパイプラ インにアクションを追加できます。デプロイプロバイダーとしての AWS CloudFormation の一意のロールにより、パイプライン実行の一環とし て AWS CloudFormation スタックと変更セットに対してアクションを実 行できます。AWS CloudFormation は、パイプラインの実行時にスタッ クと変更セットを作成、更新、置換、削除できます。その結果、AWS CloudFormation テンプレートおよびパラメータ定義で指定した仕様に従っ て、AWS およびカスタムリソースをパイプライン実行中に自動的に作成、 プロビジョニング、更新、または終了することができます。 詳細はこちら:

• AWS CodePipeline による継続的デリバリー — AWS CodePipeline を使用

して AWS CloudFormation の継続的デリバリーワークフローを構築する方 法について説明します。 • Lambda ベースのアプリケーションのデプロイの自動化 - AWS サー バーレスアプリケーションモデルと AWS CloudFormation を使用し て、Lambda ベースのアプリケーションの継続的デリバリーワークフロー を構築する方法について説明します。

AWS CodeDeploy AWS CodeDeploy は、Amazon EC2 インスタンス、オンプレミスインス タンス、または両方へのアプリケーションのデプロイを調整します。AWS CodeDeploy を使用してコードをデプロイするように AWS CodePipeline を設定できます。パイプラインの作成前または [パイプラインの作成] ウィザードの使用時に、ステージのデプロイアクションに使用する AWS CodeDeploy アプリケーション、デプロイ、およびデプロイグループを作成 できます。 詳細はこちら: • ステップ 4: AWS CodeDeploy でアプリケーションを作成する (p. 32)

• Pipeline Starter Kit による AWS での継続的デリバリーの確認

Amazon Elastic Container

Service Amazon ECS は、スケーラビリティに優れた高性能なコンテナ管理サービスで、AWS クラウド上でコンテナベースのアプリケーションを実行する ことができます。パイプラインを作成すると、デプロイプロバイダとして Amazon ECS を選択できます。ソースコントロールリポジトリのコードを 変更すると、パイプラインが新しい Docker イメージを作成し、コンテナレ ジストリにプッシュし、更新されたイメージを Amazon ECS にデプロイし ます。 詳細はこちら: • Amazon ECS とは • チュートリアル: AWS CodePipeline による継続的デプロイ • AWS CodePipeline でパイプラインを作成する (p. 113)

(25)

デプロイ アクションの統合 AWS Elastic Beanstalk Elastic Beanstalk

は、Java、.NET、PHP、Node.js、Python、Ruby、Go、Docker で開発され たウェブアプリケーションとサービスを、Apache、Nginx、Passenger、IIS などの一般的なサーバーにデプロイしてスケーリングする使いやすいサー ビスです。Elastic Beanstalk を使用してコードをデプロイするように AWS CodePipeline を設定できます。パイプラインの作成前または [パイプライン の作成] ウィザードの使用時に、ステージのデプロイアクションに使用する Elastic Beanstalk アプリケーションおよび環境を作成できます。 詳細はこちら: • Elastic Beanstalk チュートリアル • AWS CodePipeline でパイプラインを作成する (p. 113)

AWS OpsWorks Stacks 設定管理サービスである AWS OpsWorks を使用すると、お客様は Chef を 使用して、あらゆる種類とサイズのアプリケーションを簡単に設定したり運 用したりできます。AWS OpsWorks Stacks を使用すると, パッケージのイ ンストール、ソフトウェア設定およびストレージなどのリソースを含む、各 コンポーネントのアプリケーションのアーキテクチャおよび仕様を定義でき ます。AWS OpsWorks Stacks を使用して、AWS OpsWorks で作成された カスタム Chef クックブックおよびアプリケーションと共にコードをデプロ イするように AWS CodePipeline を設定できます。

• カスタム Chef クックブック – AWS OpsWorks は、Chef クックブックを 使用して、パッケージのインストールと設定、アプリケーションのデプロ イなどのタスクを処理します。 • アプリケーション – AWS OpsWorks アプリケーションは、アプリケー ションサーバーで実行するコードで構成されます。アプリケーションコー ドは、Amazon S3 バケットなどのリポジトリに格納されています。 パイプラインを作成する前に使用する AWS OpsWorks スタックとレイヤー を作成します。パイプラインの作成前または [パイプラインの作成] ウィザー ドの使用時に、ステージのデプロイアクションに使用する AWS OpsWorks アプリケーションを作成できます。

AWS OpsWorks の AWS CodePipeline サポートは、米国東部(バージニア 北部) リージョン (us-east-1) でのみ利用可能です。

詳細はこちら:

• AWS CodePipeline を AWS OpsWorks Stacks に使用する

• クックブックとレシピ

• AWS OpsWorks アプリケーション

XebiaLabs パイプラインの 1 つ以上のアクションで XebiaLabs を使用してコードをデ プロイするように AWS CodePipeline を設定できます。

詳細はこちら:

• AWS CodePipeline での XL デプロイの使用に関する XebiaLabs のドキュ

(26)

承認アクションの統合

承認アクションの統合

Amazon Simple

Notification Service Amazon SNSスです。このサービスを使用すると、個々のメッセージを送信したり、多数 は、高速かつ柔軟な完全マネージド型のプッシュ通知サービ の受信者にメッセージをファンアウトしたりできます。Amazon SNS によ り、簡単かつコスト効率の高い方法で、モバイルデバイスユーザーおよび E メール受信者にプッシュ通知を送信したり、他の分散サービスにメッセージ を送信したりできます。 AWS CodePipeline で手動承認リクエストを作成する場合は、必要に応じ て Amazon SNS にトピックを発行して、サブスクライブしているすべての IAM ユーザーに承認アクションが承認または却下する準備ができたことが通 知されます。 詳細はこちら: • Amazon SNS とは?

• AWS CodePipeline サービスロールへの Amazon SNS アクセス許可の付

与 (p. 178)

アクション統合の呼び出し

AWS Lambda Lambda を使用すると、サーバーをプロビジョニングまたは管理しなくても コードを実行できます。Lambda 関数を使用してパイプラインに柔軟性と機 能性を追加するように AWS CodePipeline を設定できます。パイプラインの 作成前または [パイプラインの作成] ウィザードの使用時に、ステージのアク ションとして追加する Lambda 関数を作成できます。

詳細はこちら:

• AWS CodePipeline で パイプラインに AWS Lambda 関数を呼び出

す (p. 156)

AWS CodePipeline との一般的な統合

以下の AWS サービス統合は、AWS CodePipeline アクションの種類に基づいていません。

AWS CloudTrail CloudTrail は、AWS アカウントによってまたは代わって行われた AWS API コールと関連イベントをキャプチャし、指定した Amazon S3 バケットにロ グファイルを配信します。AWS CodePipeline コンソールからの、AWS CLI での AWS CodePipeline からの、さらに AWS CodePipeline API からの API コールをキャプチャするように、CloudTrail を設定できます。

詳細はこちら:

• AWS CodePipeline での AWS CloudTrail API コールのログ記録 (p. 197) Amazon CloudWatch Amazon CloudWatch は AWS リソースをモニタリングします。

詳細はこちら:

(27)

AWS CodePipeline との一般的な統合 Amazon CloudWatch

Events Amazon CloudWatch Eventsに基づいて AWS サービスの変更を検出し、指定された 1 つ以上の AWS の は、変更が発生したときに、定義したルール サービスでアクションを呼び出すウェブサービスです。

• 何かが変更されたときに自動的にパイプライン実行を開始する — Amazon CloudWatch Events で設定されたルールのターゲットとして AWS CodePipeline を設定できます。これにより、別のサービスが変更された ときに自動的にパイプラインが開始されるように設定されます。 詳細はこちら:

• Amazon CloudWatch Events とは?

• AWS CodePipeline でパイプラインの実行を開始する (p. 90).

• CloudWatch イベント ルールを使用して AWS CodeCommit パイプライ

ンを自動的に開始する (p. 92)

• パイプラインの状態が変更されたときに通知を受け取る — Amazon CloudWatch Events ルールを設定して、パイプライン、ステージ、または アクションの実行状態の変更を検出して対応することができます。 詳細はこちら:

• Amazon CloudWatch Events でパイプラインの状態の変更を検出し対応

する (p. 189)

• チュートリアル: CloudWatch イベント ルールをセットアップし、パイ

(28)

AWS CodePipeline との一般的な統合 AWS Key Management

Service AWS KMSにするマネージド型サービスです。デフォルトでは、AWS CodePipeline は は、データの暗号化に使用される暗号化キーの作成と管理を容易 AWS KMS を使用して、Amazon S3 バケットに保存されているパイプライ ンのアーティファクトを暗号化します。

参照

関連したドキュメント

水道水又は飲用に適する水の使用、飲用に適する水を使

※ 硬化時 間につ いては 使用材 料によ って異 なるの で使用 材料の 特性を 十分熟 知する こと

サーバー費用は、Amazon Web Services, Inc.が提供しているAmazon Web Servicesのサーバー利用料とな

サーバー API 複雑化 iOS&Android 間で複雑な API

注)○のあるものを使用すること。

荒天の際に係留する場合は、1つのビットに 2 本(可能であれば 3

・ 化学設備等の改造等の作業にお ける設備の分解又は設備の内部 への立入りを関係請負人に行わせ

鉄道駅の適切な場所において、列車に設けられる車いすスペース(車いす使用者の