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

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

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

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

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

  • ソースステージ (ソース) あなたのために CodeCommit ソースアクション

  • デプロイ段階 (デプロイ) あなたのために CodeDeploy デプロイアクション。

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

注記

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

ステップ 1: の作成 CodeCommit 倉庫

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

を作成するには CodeCommit 倉庫

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

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

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

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

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

注記

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

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

このステップでは、ローカルリポジトリをセットアップしてリモート 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 repository。

  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 デプロイメント。また、インスタンスが次のようなファイルをフェッチできるようにするポリシーをアタッチします。 CodeDeploy エージェントはを使用してアプリケーションをデプロイし、インスタンスを SSM で管理できるようにします。

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

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

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

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

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

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

  6. 名前の付いたポリシーを検索して選択しますAmazonSSMManagedInstanceCore。[Next: (次へ:)] を選択します タグ

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

    注記

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

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

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

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

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

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

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

  5. []インスタンスタイプ、対象となる無料利用枠を選択してくださいt2.microインスタンスのハードウェア設定としてを入力します。

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

    また、選択することもできますkey pair なしで続行

    注記

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

  7. []ネットワーク設定、以下の操作を実行します。

    In (イン)Auto-assign Public IP、ステータスがであることを確認してくださいの有効化

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

    • の列にSSH、の下では出典タイプ、選択してくださいマイ IP

    • 選択してくださいセキュリティグループの追加、選択してくださいREPOSITORY、そして下出典タイプ、選択してくださいマイ IP

  8. 拡張高度な詳細。In (イン)IAM インスタンスプロファイルで、前の手順で作成した IAM ロールを選択します (例:EC2InstanceRole).

  9. []概要、の下ではインスタンス数、ENTER1。。

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

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

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

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

まず、許可するロールを作成します CodeDeploy デプロイメントを実行するため。次に、 CodeDeploy アプリケーションを作成します。

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

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

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

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

  4. [][Select trusted entity、選択してくださいAWSサービス。[]ユースケース、選択してくださいCodeDeploy。選択してくださいCodeDeployリストされているオプションから。[Next] (次へ) を選択します。AWSCodeDeployRole マネージドポリシーはロールにアタッチ済みです。

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

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

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

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

  2. そのファイルにアプリケーションページが表示されない場合は、メニューで選択してくださいアプリケーション

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

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

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

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

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

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

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

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

  3. In (イン)サービスロールで、先ほど作成したサービスロールを選択します (例: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 repository。

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

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

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

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

  3. In (イン)ステップ 1: パイプライン設定を選択、にパイプライン名、ENTERMyFirstPipeline

  4. In (イン)サービスロール、選択してください新しいサービスロール許可するには CodePipeline IAM でサービスロールを作成します。

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

  6. In (イン)ステップ 2: ソースステージを追加、にソースプロバイダー、選択してくださいCodeCommit。In (イン)リポジトリ名、名前を選択します CodeCommit で作成したリポジトリステップ 1: の作成 CodeCommit 倉庫。[ブランチ名] で、[main] を選択し、[次のステップ] を選択します。

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

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

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

  7. In (イン)ステップ 3: ビルドステージを追加する、選択してくださいビルドステージをスキップを選択し、警告メッセージを受け入れてからスキップ再開。[Next] (次へ) を選択します。

    注記

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

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

  9. In (イン)ステップ 5: 確認、情報を確認してから、パイプラインを作成します

  10. パイプラインは、作成後に実行を開始します。あなたからコードをダウンロードします CodeCommitリポジトリを作成して CodeDeploy EC2 インスタンスにデプロイします。進行状況、成功、失敗のメッセージは CodePipeline サンプルは、Amazon EC2 インスタンスにウェブページをデプロイします CodeDeploy Deployment。

    
            で稼働を開始したパイプラインのビュー 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) をコピーし、ウェブブラウザのアドレスバーに貼り付けます。

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

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

ステップ 6: 内のコードを変更 CodeCommit 倉庫

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

  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. 変更をコミットして CodeCommit リポジトリでは、次のコマンドを一度に 1 つずつ実行します。

    git commit -am "Updated sample application files"
    git push

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

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

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

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

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

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

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

  1. 次をクリーンアップするには: CodePipeline リソースについては、「」の手順に従いますでパイプラインを削除します。AWS CodePipeline

  2. 次をクリーンアップするには: CodeDeploy リソースについては、「」の手順に従いますクリーンアップ導入チュートリアルのリソース

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

ステップ 8: 詳細情報

方法の詳細情報を確認する CodePipeline 作品: