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

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

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

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

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

  • ソースステージ (送信元)を使用して、CodeCommit ソースアクションを実行します。

  • デプロイステージ (デプロイ)を使用して、CodeDeploy デプロイメントアクションを実行します

を使い始める最も簡単な方法AWS CodePipelineを使用することです。パイプラインを作成するウィザードを CodePipeline コンソールに追加します。

注記

開始する前に、CodeCommit で動作するように Git クライアントを設定されていることを確認します。手順については、以下を参照してください。CodeCommit のセットアップ

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

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

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

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

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

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

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

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

注記

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

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

このステップでは、リモート 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. 次のファイルをダウンロードします。SampleApp_Linux.zip

  2. SampleApp_Linux.zip から先ほど作成したローカルディレクトリ (例: /tmp/MyDemoRepoc:\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。ファイルの内容を新しいファイルに貼り付けます。

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

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

      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ブランチを CodeCommitMyDemoRepoリポジトリに格納され、パイプラインに含める準備が整いました。

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

このステップでは、サンプルアプリケーションをデプロイする先の EC2 インスタンスを作成します。このプロセスの一環として、CodeDeploy エージェントを EC2 インスタンスにインストールします。CodeDeploy エージェントは、CodeDeploy デプロイメントでインスタンスを使用できるようにするソフトウェアパッケージです。また、IAM ロールをインスタンスにアタッチします (インスタンスのロール) を使用して CodeDeploy エージェントがアプリケーションのデプロイに使用するファイルをフェッチできるようにします。

インスタンスロールを作成するには

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

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

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

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

  5. という名前のポリシーを検索し、選択します。Amazonec2Roleforawscodeデプロイ[] を選択してから、次へ: タグ

  6. [Next: (次へ:)] を選択します 確認. ロールの名前を入力します (例: EC2InstanceRole)。

    注記

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

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

インスタンスを起動するには

  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. コンソールダッシュボードから [インスタンスの作成] を選択し、ポップアップに表示されるオプションから [インスタンスの作成] を選択します。

  3. Onステップ 1: Amazon マシンイメージ(AMI)[] を見つけます。Amazon Linux 2 AMI (HVM)、SSD ボリュームタイプ[] を選択してから、Select。(この AMI は "Free tier eligible" とラベル付けされており、リストの先頭にあります)。

  4. リポジトリの []ステップ 2: インスタンスタイプの選択ページで、対象となる無料利用枠を選択します。t2.microタイプをインスタンスのハードウェア設定として、[] を選択し、次へ: インスタンスの詳細の設定

  5. リポジトリの []ステップ 3: インスタンスの詳細の設定[] ページで、以下の操作を実行します。

    • [インスタンス数] に「1」と入力します。

    • [Auto-assign Public IP] で、[Enable] を選択します。

    • [IAM ロール] で、前の手順で作成した IAM ロール (EC2InstanceRole など) を選択します。

    • [高度な詳細] を展開して、[ユーザーデータ] フィールドに次のように入力します。

      #!/bin/bash yum -y update yum install -y ruby yum install -y aws-cli cd /home/ec2-user wget https://aws-codedeploy-us-east-2.s3.us-east-2.amazonaws.com/latest/install chmod +x ./install ./install auto
      注記

      これらのコマンドを昇格された特権 (sudo コマンド) で実行CodeDeploy については、Amazon Linux または RHEL 用の CodeDeploy エージェントをインストールまたは再インストールします()AWS CodeDeployユーザーガイド

      このコードは、インスタンスの作成時に、CodeDeploy エージェントをインストールします。

    • 残りの項目は、[] のままステップ 3: インスタンスの詳細の設定ページは変更しません。[Next: (次へ:)] を選択します ストレージの追加

  6. L軒をつけるステップ 4: ストレージの追加[] ページは変更せず、[] を選択します。次へ: タグの追加

  7. [Add Tag] を選択します。[キー] に「Name」と入力し、[] に「MyCodePipelineDemo」と入力します。[Next: (次へ:)] を選択します セキュリティグループの設定。後で、このインスタンスにサンプルアプリケーションをデプロイする CodeDeploy アプリケーションを作成します。CodeDeploy は、インスタンスにアタッチされたタグに基づいて、デプロイするインスタンスを選択します。

  8. リポジトリの []手順 6: セキュリティグループの設定[] ページで、以下の操作を実行します。

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

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

    • [ルールの追加]、[HTTP] の順に選択し、[ソース] の [マイ IP] を選択します。

  9. [Review and Launch] を選択します。

  10. [Review Instance Launch] ページで、[Launch] を選択します。key pair 入力を求められたら、[] を選択します。key pair なしで続行

    注記

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

    準備ができたら、[確認] を選択します。[] チェックボックスをオンにしてから、[] を選択します。インスタンスを起動する

  11. [View Instances] を選択して確認ページを閉じ、コンソールに戻ります。

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

  13. インスタンスに接続可能になるまでには、数分かかることがあります。[ステータスチェック] 列の情報を参照して、インスタンスがステータスチェックに合格したかどうかを確認します。

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

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

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

CodeDeploy サービスロールを作成するには

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

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

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

  4. [信頼されたエンティティの種類を選択] で、[AWS のサービス] を選択します。[ユースケースの選択] で、[CodeDeploy] を選択します。[]ユースケースを選択します。] で、CodeDeploy。Cフース次へ: アクセス許可. AWSCodeDeployRole 管理ポリシーはロールにアタッチ済みです。

  5. [Next: (次へ:)] を選択します タグ, および次へ: 確認.

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

CodeDeploy でアプリケーションを作成するには

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

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

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

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

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

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

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

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

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

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

  3. [サービスロール] で、先ほど作成したサービスロール (例: CodeDeployRole) を選択します。

  4. [デプロイタイプ] で、[インプレース] を選択します。

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

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

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

  8. [Advanced (詳細)] セクションを展開します。[警報] で、アラームが表示されている場合は、[アラーム設定を無視する] を選択します。

  9. [Create deployment group (デプロイグループの作成)] を選択します。

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

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

CodePipeline パイプラインを作成するには

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

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

  2. [Create pipeline] を選択します。

  3. Eclipseステップ 1: パイプラインの設定の選択, でパイプライン名[] と入力します。MyFirstPipeline

  4. Eclipseサービスロール] で、新しいサービスロールCodePipeline が IAM でのサービスロールの作成を許可します。

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

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

    
            -ステップ 2: 送信元CodePipeline パイプラインウィザードのページ

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

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

    [Next] を選択します。

  7. Eclipseステップ 3: ビルドステージの追加] で、ビルドステージのスキップを選択し、[] を選択して警告メッセージを受け入れます。スキップするをクリックします。[Next] を選択します。

    注記

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

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

    
            -ステップ 4: デプロイCodePipeline パイプラインウィザードのページ

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

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

    
            CodePipeline コンソールでの実行を開始したパイプラインのビュー

おめでとうございます。CodePipeline でシンプルなパイプラインを作成しました。

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

パイプラインが正常に実行されたことを確認するには

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

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

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

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

    これは、ダウンロードして CodeCommit リポジトリにプッシュしたサンプルアプリケーションです。

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

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

    
            CodeCommit リポジトリにプッシュされて更新されたサンプルウェブページアプリケーション。

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

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

このチュートリアルで使用されているリソースをクリーンアップするには

  1. CodePipeline リソースをクリーンアップするには、」の削除pAWS CodePipeline

  2. CodeDeploy リソースをクリーンアップするには、」配置のクリーンアップに関するウォークスルーリソース

  3. CodeCommit リポジトリを削除するには、」CodeCommit を削除するrエポジトリー

ステップ 8: 詳細情報

CodePipeline の動作の詳細について説明します。