チュートリアル: シンプルなパイプラインを作成する (CodeCommit リポジトリ) - AWS CodePipeline

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

チュートリアル: シンプルなパイプラインを作成する (CodeCommit リポジトリ)

このチュートリアルでは、 CodePipeline を使用して、 CodeCommit リポジトリに保持されているコードを 1 つの Amazon EC2 インスタンスにデプロイします。変更を CodeCommit リポジトリにプッシュすると、パイプラインがトリガーされます。パイプラインは、 をデプロイサービス CodeDeploy として使用してAmazon EC2 インスタンスに変更をデプロイします。

パイプラインには 2 つのステージがあります。

  • ソースアクションの CodeCommit ソースステージ (ソース )。

  • デプロイアクションの CodeDeploy デプロイステージ (Deploy )。

の使用を開始する最も簡単な方法は、 CodePipeline コンソールでパイプラインの作成ウィザードを使用すること AWS CodePipeline です。

注記

開始する前に、 と連携するように Git クライアントが設定されていることを確認してください CodeCommit。手順については、「 のセットアップ CodeCommit」を参照してください。

ステップ 1: CodeCommit リポジトリを作成する

まず、 にリポジトリを作成します CodeCommit。パイプラインを実行すると、このリポジトリからソースコードが取得されます。また、コードをリポジトリにプッシュする前に、コードを維持および更新するローカル CodeCommit リポジトリを作成します。

CodeCommit リポジトリを作成するには

  1. https://console.aws.amazon.com/codecommit/ で CodeCommit コンソールを開きます。

  2. リージョンセレクタで、リポジトリとパイプライン AWS リージョン を作成する を選択します。詳細については、「AWS リージョン およびエンドポイント」を参照してください。

  3. [Repositories (リポジトリ)] ページで、[Create repository (リポジトリの作成)] を選択します。

  4. [リポジトリの作成] ページの [リポジトリ名] に、新しいリポジトリの名前を入力します (例: MyDemoRepo)。

  5. [作成] を選択します。

注記

このチュートリアルの残りのステップでは、 CodeCommit リポジトリの名前MyDemoRepoに を使用します。別の名前を選択した場合は、このチュートリアル全体でそれを使用してください。

ローカルリポジトリをセットアップするには

このステップでは、リモート CodeCommitリポジトリに接続するためのローカルリポジトリを設定します。

注記

ローカルリポジトリを設定する必要はありません。ステップ 2: CodeCommit リポジトリにサンプルコードを追加する の説明に従って、コンソールを使用してファイルをアップロードすることもできます。

  1. コンソールで新しいリポジトリを開き、ページの右上にある [URL のクローンを作成] を選択してから、[SSH のクローンを作成] を選択します。Git リポジトリのクローンを作成するアドレスがクリップボードにコピーされます。

  2. ターミナルまたはコマンドラインで、ローカルリポジトリを保存するローカルディレクトリに移動します。このチュートリアルでは、/tmp を使用します。

  3. 次のコマンドを実行してリポジトリをクローンし、SSH アドレスを前のステップでコピーしたものに置き換えます。このコマンドは、MyDemoRepo という名前のディレクトリを作成します。サンプルアプリケーションをこのディレクトリにコピーします。

    git clone ssh://git-codecommit.us-west-2.amazonaws.com/v1/repos/MyDemoRepo

ステップ 2: CodeCommit リポジトリにサンプルコードを追加する

このステップでは、サンプルチュートリアル用に CodeDeploy作成されたサンプルアプリケーションのコードをダウンロードし、 CodeCommit リポジトリに追加します。

  1. 次に、サンプル をダウンロードし、ローカルコンピュータのフォルダまたはディレクトリに保存します。

    1. 次のいずれかを選択します 。Linux インスタンスについて、このチュートリアルのステップに従う場合は、SampleApp_Linux.zip を選択します。

      • を使用して Amazon Linux インスタンスにデプロイする場合は CodeDeploy、サンプルアプリケーションを SampleApp_Linux.zip からダウンロードします。

      • を使用して Windows Server インスタンスにデプロイする場合は CodeDeploy、サンプルアプリケーションを SampleApp_Windows.zip からダウンロードします。

      サンプルアプリケーションには、 でデプロイするための以下のファイルが含まれています CodeDeploy。

      • appspec.yml – アプリケーション仕様ファイル (AppSpec ファイル) は、デプロイを管理する CodeDeploy ために が使用する YAML 形式のファイルです。 AppSpec ファイルの詳細については、「 ユーザーガイド」のCodeDeploy AppSpec 「ファイルリファレンスAWS CodeDeploy 」を参照してください。

      • index.html - インデックスファイルには、デプロイされたサンプルアプリケーションのホームページが含まれています。

      • LICENSE.txt - ライセンスファイルには、サンプルアプリケーションのライセンス情報が含まれています。

      • スクリプトのファイル - サンプルアプリケーションはスクリプトを使用して、インスタンス上の場所にテキストファイルを書き込みます。複数の CodeDeploy デプロイライフサイクルイベントごとに 1 つのファイルが次のように書き込まれます。

        • (Linux サンプルのみ) scripts フォルダ - このフォルダに入っているのはシェルスクリプト install_dependenciesstart_serverstop_server です。依存関係をインストールし、自動デプロイのサンプルアプリケーションを起動および停止するために使用されます。

        • (Windows サンプルのみ) before-install.bat - BeforeInstall デプロイライフサイクルイベントのバッチスクリプトです。このサンプルの前のデプロイ中に書き込まれた古いファイルを削除し、新しいファイルを書き込む場所をインスタンス上に作成するために実行されます。

    2. 圧縮 (zip) ファイルをダウンロードします。

  2. SampleApp_Linux.zip から、以前に作成したローカルディレクトリ ( /tmp/MyDemoRepoや などc:\temp\MyDemoRepo) にファイルを解凍します。

    それらのファイルはローカルリポジトリに直接配置してください。SampleApp_Linux フォルダーは含めないでください。例えば、ローカルの Linux、macOS、Unix マシンでは、ディレクトリとファイルの階層は次のようになります。

    /tmp └-- MyDemoRepo │-- appspec.yml │-- index.html │-- LICENSE.txt └-- scripts │-- install_dependencies │-- start_server └-- stop_server
  3. リポジトリにファイルをアップロードするには、次のいずれかの方法を使用します。

    1. CodeCommit コンソールを使用してファイルをアップロードするには:

      1. CodeCommit コンソールを開き、リポジトリリストからリポジトリを選択します。

      2. [Add file]、[Upload file] の順に選択します。

      3. [ファイルの選択] を選択し、ファイルを参照します。フォルダにファイルを追加するには、ファイルの作成 を選択してから、scripts/install_dependencies のようなファイル名でフォルダ名を入力します。ファイルの内容を新しいファイルに貼り付けます。

        ユーザー名とメールアドレスを入力して、変更をコミットします。

        [Commit changes] (変更のコミット) を選択します。

      4. ファイルごとにこの手順を繰り返します。

        リポジトリの内容は次のようになります。

        │-- appspec.yml │-- index.html │-- LICENSE.txt └-- scripts │-- install_dependencies │-- start_server └-- stop_server
    2. git コマンドを使用してファイルをアップロードするには:

      1. ディレクトリをローカルリポジトリに変更する:

        (For Linux, macOS, or Unix) cd /tmp/MyDemoRepo (For Windows) cd c:\temp\MyDemoRepo
      2. 以下のコマンドを実行して、すべてのファイルを一度にステージングします。

        git add -A
      3. 以下のコマンドを実行して、コミットメッセージによりファイルをコミットします。

        git commit -m "Add sample application files"
      4. 次のコマンドを実行して、ローカルリポジトリからリポジトリにファイルをプッシュします CodeCommit。

        git push
  4. これで、ダウンロードしてローカルリポジトリに追加したファイルがリポジトリの main ブランチ CodeCommit MyDemoRepoに追加され、パイプラインに含める準備が整いました。

ステップ 3: Amazon EC2 Linux インスタンスを作成し、 CodeDeploy エージェントをインストールする

このステップでは、サンプルアプリケーションをデプロイする先の Amazon EC2 インスタンスを作成します。このプロセスの一環として、インスタンスに CodeDeploy エージェントをインストールおよび管理できるようにするインスタンスロールを作成します。 CodeDeploy エージェントは、 CodeDeploy デプロイでインスタンスを使用できるようにするソフトウェアパッケージです。また、インスタンスがアプリケーションをデプロイするために CodeDeploy エージェントが使用するファイルを取得し、SSM によるインスタンスの管理を許可するポリシーをアタッチします。

インスタンスロールを作成するには
  1. https://console.aws.amazon.com/iam/ で IAM コンソール を開きます。

  2. コンソールダッシュボードで [ロール] を選択します。

  3. [ロールを作成] を選択します。

  4. [信頼されたエンティティのタイプを選択] で、[AWS サービス ] を選択します。ユースケースの選択 で、EC2 を選択します。[Select your use case (ユースケースを選択)] で、[EC2] を選択します。[次のステップ: アクセス許可] を選択します。

  5. AmazonEC2RoleforAWSCodeDeploy という名前のマネージドポリシーを検索して選択します。

  6. AmazonSSMManagedInstanceCore という名前のマネージドポリシーを検索して選択します。[次へ : タグ] を選択します。

  7. [次へ: レビュー] を選択します。ロールの名前を入力します (例: EC2InstanceRole)。

    注記

    次のステップのロール名をメモしておきます。このロールは、インスタンスの作成時に選択します。

    [ロールを作成] を選択します。

インスタンスを起動するには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. サイドナビゲーションから [インスタンス] を選択し、ページの上部から [インスタンスの起動] を選択します。

  3. [名前] に「MyCodePipelineDemo」と入力します。これにより、インスタンスにはキーName で、MyCodePipelineDemo というタグがが割り当てられます。後で、サンプル CodeDeploy アプリケーションをこのインスタンスにデプロイするアプリケーションを作成します。 CodeDeploy はタグに基づいてデプロイするインスタンスを選択します。

  4. アプリケーションイメージと OS イメージ (Amazon マシンイメージ) で、 AWS ロゴの付いた Amazon Linux AMI オプションを見つけ、選択されていることを確認します。(この AMI は Amazon Linux 2 AMI (HVM) と表記され、「無料利用枠対象」と表示されています。)

  5. [インスタンスタイプ] で、インスタンスのハードウェア構成として無料利用枠対象となる t2.micro タイプを選択します。

  6. [キーペア (ログイン)] で、キーペアを選択するか作成します。

    [キーペアなしで続行] を選択することもできます。

    注記

    このチュートリアルでは、キーペアを使用せずに続行できます。SSH を使用してインスタンスに接続するには、キーペアを作成または使用します。

  7. [ネットワーク設定] で、次の操作を行います。

    [パブリック IP の自動割り当て] で、ステータスが [有効] になっていることを確認します。

    • [セキュリティグループの割り当て] の横にある [新規セキュリティグループを作成] を選択します。

    • [SSH] の行で、[ソースタイプ] の [マイ IP] を選択します。

    • [セキュリティグループの追加]、[HTTP] の順に選択し、[ソースタイプ] で [マイ IP] を選択します。

  8. [Advanced Details] (高度な詳細) を展開します。[IAM インスタンスプロファイル] で、前の手順で作成した IAM ロール (EC2InstanceRole など) を選択します。

  9. [概要] の [インスタンス数] に「1」と入力します。

  10. [インスタンスを起動] を選択します。

  11. [インスタンス] ページで、起動のステータスを表示できます。インスタンスを起動すると、その初期状態は pending です。インスタンスを起動した後は、状態が running に変わり、パブリック DNS 名を受け取ります ([パブリック DNS] 列が表示されていない場合は、[表示/非表示] アイコンを選択してから、[パブリック DNS] を選択します)。

ステップ 4: でアプリケーションを作成する CodeDeploy

では CodeDeploy、アプリケーションはデプロイするソフトウェアアプリケーションを含むリソースです。後で、 でこのアプリケーションを使用して CodePipeline 、Amazon EC2 インスタンスへのサンプルアプリケーションのデプロイを自動化します。

まず、 がデプロイを実行 CodeDeploy できるようにするロールを作成します。次に、 CodeDeploy アプリケーションを作成します。

CodeDeploy サービスロールを作成するには
  1. https://console.aws.amazon.com/iam/ で IAM コンソール を開きます。

  2. コンソールダッシュボードで [ロール] を選択します。

  3. [ロールを作成] を選択します。

  4. [信頼されたエンティティを選択] で、[AWS サービス] を選択します。[Use case] (ユースケース) で、[CodeDeploy] を選択します。表示されたオプションCodeDeployから選択します。[次へ] をクリックします。AWSCodeDeployRole マネージドポリシーはロールにアタッチ済みです。

  5. [次へ] をクリックします。

  6. ロールの名前 (例: CodeDeployRole) を入力し、[ロールの作成] を選択します。

でアプリケーションを作成するには CodeDeploy
  1. https://console.aws.amazon.com/codedeploy で CodeDeploy コンソールを開きます。

  2. [アプリケーション] ページが表示されない場合は、メニューで [アプリケーション] を選択します。

  3. [Create application] を選択します。

  4. [アプリケーション名] に、「MyDemoApplication」と入力します。

  5. [コンピューティングプラットフォーム] で [EC2/オンプレミス] を選択します。

  6. [Create application] を選択します。

でデプロイグループを作成するには CodeDeploy

デプロイグループは、デプロイ先のインスタンスやデプロイの速度など、デプロイ関連の設定を定義するリソースです。

  1. アプリケーションが表示されるページで、[Create deployment group (デプロイグループの作成)] を選択します。

  2. [Deployment group name] (デプロイグループ名) に「MyDemoDeploymentGroup」と入力します。

  3. [サービスロール] で、先ほど作成したサービスロールの ARN を選択します (arn:aws:iam::account_ID:role/CodeDeployRole など)。

  4. [Deployment type] (デプロイタイプ) で、[In-place] (インプレース) を選択します。

  5. [環境設定] で、[Amazon EC2 インスタンス] を選択します。キー フィールドに Name と入力します。 フィールドに、(MyCodePipelineDemo のような) インスタンスのタグ付けに使用した名前を入力します。

  6. AWS Systems Manager を使用したエージェント設定 で、今すぐ を選択し、更新をスケジュールします。これにより、インスタンスにエージェントがインストールされます。Linux インスタンスはすでに SSM エージェントで設定されており、 CodeDeploy エージェントで更新されます。

  7. [デプロイ設定] で、[CodeDeployDefault.OneAtaTime] を選択します。

  8. ロードバランサー で、ロードバランシングの有効化 が選択されていないことを確認します。この例では、ロードバランサーを設定したり、ターゲットグループを選択したりする必要はありません。

  9. デプロイグループの作成 を選択します。

ステップ 5: で最初のパイプラインを作成する CodePipeline

これで、最初のパイプラインを作成および実行する準備ができました。このステップでは、コードが CodeCommit リポジトリにプッシュされたときに自動的に実行されるパイプラインを作成します。

CodePipeline パイプラインを作成するには
  1. にサインイン AWS Management Console し、http://console.aws.amazon.com/codesuite/codepipeline/home で CodePipeline コンソールを開きます。

    https://console.aws.amazon.com/codepipeline/ で CodePipeline コンソールを開きます。

  2. パイプラインの作成 を選択します。

  3. [ステップ 1: パイプラインの設定を選択する] の [パイプライン名] に「MyFirstPipeline」と入力します。

  4. このチュートリアルの目的では、[パイプラインタイプ] で、[V1] を選択します。[V2] を選択することもできますが、パイプラインタイプは特性と価格が異なることに注意してください。詳細については、「パイプラインのタイプ」を参照してください。

  5. サービスロール で、IAM でサービスロールを作成することを許可する新しいサービスロール を選択します。 CodePipeline

  6. [詳細設定] をデフォルト設定のままにし、[次へ] を選択します。

  7. ステップ 2: ソースステージ を追加する、ソースプロバイダー で を選択しますCodeCommitリポジトリ名 で、 で作成した CodeCommit リポジトリの名前を選択しますステップ 1: CodeCommit リポジトリを作成する。[ブランチ名] で、[main] を選択し、[次のステップ] を選択します。

    リポジトリ名とブランチを選択すると、このパイプライン用に作成される Amazon CloudWatch Events ルールがメッセージに表示されます。

    [Change detection options] で、デフォルト値のままにします。これにより、 CodePipeline は Amazon CloudWatch Events を使用してソースリポジトリの変更を検出できます。

    [次へ] をクリックします。

  8. [Step 3: Add build stage] (ステップ 3: ビルドステージを追加する) で、[Skip build stage] (ビルドステージのスキップ) を選択し、もう一度 [スキップ] を選択して警告メッセージを受け入れます。[次へ] をクリックします。

    注記

    このチュートリアルでは、ビルドサービスを必要としないコードをデプロイするため、このステップは省略できます。ただし、ソースコードをインスタンスにデプロイする前に構築する必要がある場合は、このステップCodeBuildで を設定できます。

  9. ステップ 4: デプロイステージ を追加デプロイプロバイダー で を選択しますCodeDeploy。[アプリケーション名] に、「MyDemoApplication」を選択します。[デプロイグループ] で、[MyDemoDeploymentGroup]、[次のステップ] の順に選択します。

  10. [ステップ 5: 確認] で情報を確認し、[パイプラインの作成] を選択します。

  11. パイプラインは、作成後に実行を開始します。リポジトリから CodeCommitコードをダウンロードし、EC2 インスタンスへの CodeDeploy デプロイを作成します。 CodePipeline サンプルが CodeDeploy デプロイ内の Amazon EC2 インスタンスにウェブページをデプロイすると、進行状況、成功、失敗のメッセージを表示できます。

    CodePipeline コンソールで実行を開始するパイプラインのビュー。

お疲れ様でした。でシンプルなパイプラインを作成しました CodePipeline。

次に、結果を確認します。

パイプラインが正常に実行されたことを確認するには
  1. パイプラインの最初の進行状況を表示します。各ステージのステータスは、[まだ実行はありません] から [進行中] に変わり、その後、[Succeeded (成功)] または [Failed (失敗)] のいずれかに変わります。パイプラインの最初の実行は数分で完了します。

  2. パイプラインのステータスが成功と表示されたら、デプロイステージのステータスエリアで を選択しますCodeDeploy。これにより、 CodeDeploy コンソールが開きます。[成功] が表示されない場合は、「トラブルシューティング CodePipeline」を参照してください。

  3. [Deployments (デプロイ)] タブで、デプロイ ID を選択します。デプロイのページの [Deployment lifecycle events (デプロイライフサイクルイベント)] で、インスタンス ID を選択します。これにより、EC2 コンソールが開きます。

  4. [説明] タブの [パブリック DNS] でアドレス (例: ec2-192-0-2-1.us-west-2.compute.amazonaws.com) をコピーし、ウェブブラウザのアドレスバーに貼り付けます。

    ダウンロードして CodeCommit リポジトリにプッシュしたサンプルアプリケーションのウェブページが表示されます。

ステージ、アクション、パイプラインの仕組みの詳細については、「CodePipeline の概念」を参照してください。

ステップ 6: CodeCommit リポジトリ内のコードを変更する

パイプラインは、リポジトリにコードが変更されるたびに実行されるように CodeCommit設定されています。このステップでは、 CodeCommit リポジトリ内のサンプル CodeDeployアプリケーションの一部である HTML ファイルを変更します。これらの変更をプッシュすると、パイプラインが再度実行され、変更内容は先ほどアクセスしたウェブアドレスに表示されます。

  1. ディレクトリをローカルリポジトリに変更する:

    (For Linux, macOS, or Unix) cd /tmp/MyDemoRepo (For Windows) cd c:\temp\MyDemoRepo
  2. テキストエディタを使用して、index.html ファイルを変更します。

    (For Linux or Unix)gedit index.html (For OS X)open –e index.html (For Windows)notepad index.html
  3. index.html ファイルのコンテンツを変更して、背景色およびウェブページのテキストの一部を変更してから、ファイルを保存します。

    <!DOCTYPE html> <html> <head> <title>Updated Sample Deployment</title> <style> body { color: #000000; background-color: #CCFFCC; font-family: Arial, sans-serif; font-size:14px; } h1 { font-size: 250%; font-weight: normal; margin-bottom: 0; } h2 { font-size: 175%; font-weight: normal; margin-bottom: 0; } </style> </head> <body> <div align="center"><h1>Updated Sample Deployment</h1></div> <div align="center"><h2>This application was updated using CodePipeline, CodeCommit, and CodeDeploy.</h2></div> <div align="center"> <p>Learn more:</p> <p><a href="https://docs.aws.amazon.com/codepipeline/latest/userguide/">CodePipeline User Guide</a></p> <p><a href="https://docs.aws.amazon.com/codecommit/latest/userguide/">CodeCommit User Guide</a></p> <p><a href="https://docs.aws.amazon.com/codedeploy/latest/userguide/">CodeDeploy User Guide</a></p> </div> </body> </html>
  4. 次のコマンドを一度に 1 つずつ実行して、変更を CodeCommit リポジトリにコミットしてプッシュします。

    git commit -am "Updated sample application files"
    git push
パイプラインが正常に実行されたことを確認するには
  1. パイプラインの最初の進行状況を表示します。各ステージのステータスは、[まだ実行はありません] から [進行中] に変わり、その後、[Succeeded (成功)] または [Failed (失敗)] のいずれかに変わります。パイプラインの実行は数分以内に完了します。

  2. アクションステータスが [成功] と表示されたら、ブラウザで先ほどアクセスしたデモページを更新します。

    更新されたウェブページが表示されます。

ステップ 7: リソースをクリーンアップする

このガイドの他のチュートリアルでは、このチュートリアルで作成したリソースの一部を使用できます。例えば、 CodeDeploy アプリケーションとデプロイを再利用できます。ただし、これらのチュートリアルの完了後、これらのリソースに対する継続利用料金が発生しないよう、使用したパイプラインおよびリソースを削除する必要があります。まずパイプラインを削除し、次に CodeDeploy アプリケーションとそれに関連付けられた Amazon EC2 インスタンスを削除 CodeCommitし、最後にリポジトリを削除します。

このチュートリアルで使用されているリソースをクリーンアップするには
  1. CodePipeline リソースをクリーンアップするには、「」の「パイプラインの削除 AWS CodePipeline」の手順に従います。

  2. CodeDeploy リソースをクリーンアップするには、「クリーンアップデプロイチュートリアルリソース」の手順に従います。

  3. CodeCommit リポジトリを削除するには、「リポジトリの削除 CodeCommit」の手順に従います。

ステップ 8: 詳細情報

の CodePipeline 仕組みの詳細をご覧ください。