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

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

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

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

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

  • ソースステージ (ソース) を CodeCommit 1 つ指定します。

  • デプロイステージ (デプロイ) を CodeDeploy 1 つ指定します。

AWS CodePipelineで開始する最も簡単な方法は、 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. 次のファイルをダウンロードしてください:SampleApp_Linux.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 デプロイでインスタンスを使用できるようにするソフトウェアパッケージです。また、インスタンスがアプリケーションのデプロイに使用するファイルを読込み許可し、SSM によるインスタンスの管理を許可するポリシーもアタッチします。 CodeDeploy

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

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

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

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

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

  6. という名前のポリシーを検索して選択しますAmazonSSMManagedInstanceCore[Next: Tags] (次のステップ: タグ) を選択します。

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

    注記

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

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

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

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

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

  4. [アプリケーションとOSイメージ (Amazonマシンイメージ)] で、AWSロゴの付いた Amazon Linux AMI オプションを探し、選択されていることを確認します。(この AMI は Amazon Linux 2 AMI (HVM) と呼ばれ、「無料利用枠対象」というラベルが付けられています。)

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

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

    [Proceed without a key pair] (キーペアなしで続行) も選択できます。

    注記

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

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

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

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

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

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

  8. 詳細情報を展開してくださいIAM インスタンスプロファイルで、前の手順で作成した IAM ロール (例:EC2InstanceRole) を選択します。

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

  10. Launch instance (インスタンスの起動) を選択します。

  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一覧にあるオプションから選択します。[Next] (次へ) を選択します。AWSCodeDeployRole マネージドポリシーはロールにアタッチ済みです。

  5. [Next] (次へ) を選択します。

  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. サービスロール」で、以前に作成したサービスロール (例:CodeDeployRole) を選択します。

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

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

  6. AWSSystems Manager によるエージェント設定で、[今すぐアップデートをスケジュールする] を選択します。これにより、インスタンスにエージェントがインストールされます。Linux インスタンスはすでに SSM エージェントを使用して設定されており、 CodeDeploy 今後はエージェントを使用して更新されます。

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

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

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

ステップ 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. [サービスロール] で、[新しいサービスロール] を選択し、IAM CodePipeline でのサービスロールの作成を許可します。

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

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

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

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

    [Next] (次へ) を選択します。

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

    注記

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

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

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

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

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

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

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

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

  2. パイプラインのステータスに [Succeeded] が表示されたら、Deploy ステージのステータス領域でを選択します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 リポジトリのコードが変更されるとパイプラインが実行されるように設定されています。このステップでは、 CodeDeploy CodeCommit リポジトリ内のサンプルアプリケーションの一部である 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. アクションステータスが [成功] と表示されたら、ブラウザで先ほどアクセスしたデモページを更新します。

    更新された Web ページが表示されます。

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

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

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

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

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

ステップ 8: 詳細情報

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