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

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

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

このチュートリアルでは、CodePipeline を使用して、CodeCommit リポジトリに保持されているコードを 1 つの 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. [Region] セレクタで、AWS リージョンリポジトリとパイプラインを作成する場所です。詳細については、[AWS リージョン およびエンドポイント] を参照してください。

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

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

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

注記

このチュートリアルの残りのステップでは、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/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 のようなファイル名でフォルダ名を入力します。ファイルの内容を新しいファイルに貼り付けます。

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

        [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. ダウンロードしてローカルリポジトリに追加したファイルは、CodeCommit main リポジトリの MyDemoRepo ブランチに追加され、パイプラインに含める準備ができています。

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

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

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

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

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

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

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

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

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

    注記

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

    [Create role] (ロールの作成) を選択します。

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

  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コマンド)で実行する例については、AWS CodeDeploy ユーザーガイドAmazon Linux または RHEL 用の CodeDeploy エージェントのインストールまたは再インストール の CodeDeploy エージェントリファレンスを参照してください。

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

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

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

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

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

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

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

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

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

  10. インスタンスの起動の確認 ページで、起動 を選択します。キーペアの入力を求められたら、[Proceed without a key pair (キーペアなしで続行)] を選択します。

    注記

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

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

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

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

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

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

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

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

CodeDeploy サービスロールの作成するために

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

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

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

  4. []信頼されたエンティティのタイプを選択[] を選択します。AWSサービスユースケースの選択 で、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. [デプロイ設定] で、[CodeDeployDefault.OneAtaTime] を選択します。

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

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

  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. [Create pipeline] を選択します。

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

  4. サービスロール で、新しいサービスロール を選択して、CodePipeline が IAM でサービスロールを作成できるようにします。

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

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

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

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

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

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

    注記

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

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

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

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

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

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

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

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

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

  2. After成功パイプラインのステータスが、[] のステータス領域に表示されます。デプロイステージ、選択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 リポジトリにプッシュしたサンプルアプリケーションの Web ページが表示されます。

ステージ、アクション、パイプラインの仕組みの詳細については、「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 の仕組みの詳細: