チュートリアル: Amazon にアプリケーションをデプロイする ECS - Amazon CodeCatalyst

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

チュートリアル: Amazon にアプリケーションをデプロイする ECS

このチュートリアルでは、ワークフロー、Amazon 、および他のECSいくつかのサービスを使用して、サーバーレスアプリケーションを Amazon Elastic Container Service (Amazon ECS) にデプロイする方法について説明します AWS 。デプロイされたアプリケーションは、Apache ウェブサーバーの Docker イメージ上に構築されたシンプルな Hello World ウェブサイトです。このチュートリアルでは、クラスターの設定など、必要な準備作業を順を追って説明し、アプリケーションを構築およびデプロイするワークフローを作成する方法について説明します。

ヒント

このチュートリアルを進める代わりに、完全な Amazon ECSセットアップを実行するブループリントを使用できます。Node.js を API AWS Fargateで、または Java をブループリントAPI AWS Fargateで使用する必要があります。詳細については、「ブループリントを使用したプロジェクトの作成」を参照してください。

前提条件

開始する前に:

  • 接続された AWS アカウントを持つ CodeCatalyst スペースが必要です。詳細については、「スペースの作成」を参照してください。

  • スペースには、次の名前の空のプロジェクトが必要です。

    codecatalyst-ecs-project

    このプロジェクトを作成するには、最初から開始 オプションを使用します。

    詳細については、「Amazon での空のプロジェクトの作成 CodeCatalyst」を参照してください。

  • プロジェクトには、次の CodeCatalyst 環境が必要です。

    codecatalyst-ecs-environment

    この環境を次のように設定します。

    • 非本番環境の など、任意のタイプを選択します。

    • アカウントをその AWS アカウントに接続します。

    • デフォルトIAMロール で、任意のロールを選択します。後で別のロールを指定します。

    詳細については、「AWS アカウント と へのデプロイ VPCs」を参照してください。

ステップ 1: AWS ユーザーと を設定する AWS CloudShell

このチュートリアルの最初のステップは、 でユーザーを作成し AWS IAM Identity Center、このユーザーとしてインスタンスを起動 AWS CloudShell することです。このチュートリアルの間、 CloudShell は開発用コンピュータであり、 は AWS リソースとサービスを設定する場所です。チュートリアルを完了したら、このユーザーを削除します。

注記

このチュートリアルでは、ルートユーザーを使用しないでください。別のユーザーを作成する必要があります。作成しないと、後で AWS Command Line Interface (CLI) でアクションを実行するときに問題が発生する可能性があります。

IAM Identity Center ユーザーと の詳細については CloudShell、「 AWS IAM Identity Center ユーザーガイド」とAWS CloudShell 「 ユーザーガイド」を参照してください。

IAM Identity Center ユーザーを作成するには
  1. にサインイン AWS Management Console し、 で AWS IAM Identity Center コンソールを開きますhttps://console.aws.amazon.com/singlesignon/

    注記

    スペース AWS アカウント に接続されている CodeCatalyst を使用してサインインしていることを確認してください。どのアカウントが接続されているかを確認するには、スペースに移動し、AWSアカウントタブを選択します。詳細については、「スペースの作成」を参照してください。

  2. ナビゲーションペインで [Users] (ユーザー)、[Add user] (ユーザーの追加) の順に選択します。

  3. ユーザー名 で、次のように入力します。

    CodeCatalystECSUser
  4. パスワード で、このユーザーと共有できるワンタイムパスワードの生成 を選択します。

  5. E メールアドレスE メールアドレスの確認 で、IAMIdentity Center にまだ存在しない E メールアドレスを入力します。

  6. で、次のように入力します。

    CodeCatalystECSUser
  7. 表示名 で、自動的に生成された名前を保持します。

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

  9. ユーザーをグループに追加ページで、次へ を選択します。

  10. ユーザーの確認と追加ページで情報を確認し、ユーザーの追加を選択します

    ワンタイムパスワードダイアログボックスが表示されます。

  11. アクセス AWS ポータルやワンタイムパスワードなどのサインイン情報をコピーして貼り付けURLます。

  12. [閉じる] を選びます。

アクセス権限セットを作成するには

このアクセス許可セットは後で に割り当てCodeCatalystECSUserます。

  1. ナビゲーションペインで [アクセス許可セット] を選択し、[アクセス許可セットの作成] を選択します。

  2. 事前定義されたアクセス許可セットを選択し、 を選択しますAdministratorAccess。このポリシーは、すべての に完全なアクセス許可を提供します AWS のサービス。

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

  4. アクセス許可セット名」に、次のように入力します。

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

  6. [確認と作成] ページで情報を確認し、[グループの作成] を選択します。

アクセス許可セットを に割り当てるには CodeCatalystECSUser
  1. ナビゲーションペインで を選択しAWS アカウント、現在サインイン AWS アカウント している の横にあるチェックボックスをオンにします。

  2. [ユーザーまたはグループの割り当て] を選択します。

  3. [ユーザー] タブを選択します。

  4. [CodeCatalystECSUser] のチェックボックスをオンにします。

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

  6. [CodeCatalystECSPermissionSet] のチェックボックスをオンにします。

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

  8. 情報を確認し、[送信] を選択します。

    これで、 CodeCatalystECSUserCodeCatalystECSPermissionSetを に割り当て AWS アカウント、それらをバインドしました。

としてサインアウトして再度サインインするには CodeCatalystECSUser
  1. サインアウトする前に、 AWS アクセスポータルURLと、 のユーザー名とワンタイムパスワードがあることを確認してくださいCodeCatalystECSUser。以前にこの情報をテキストエディタにコピーしておく必要があります。

    注記

    この情報がない場合は、IAMIdentity Center CodeCatalystECSUserの詳細ページに移動し、パスワードのリセット ワンタイムパスワードの生成 [...]、パスワードのリセットをもう一度選択して、画面に情報を表示します。

  2. からサインアウトします AWS。

  3. AWS アクセスポータルをブラウザのアドレスバーURLに貼り付けます。

  4. のユーザー名とワンタイムパスワードでサインインしますCodeCatalystECSUser

  5. 新しいパスワード でパスワードを入力し、新しいパスワード の設定 を選択します。

    画面に AWS アカウント ボックスが表示されます。

  6. を選択しAWS アカウントCodeCatalystECSUserユーザーとアクセス許可セット AWS アカウント を割り当てた の名前を選択します。

  7. CodeCatalystECSPermissionSet の横にある [管理コンソール] を選択します。

    AWS Management Console が表示されます。これで、適切なアクセス許可CodeCatalystECSUserで としてサインインします。

AWS CloudShell インスタンスを起動するには
  1. としてCodeCatalystECSUser、上部のナビゲーションバーで AWS アイコン () を選択します AWS icon

    のメインページ AWS Management Console が表示されます。

  2. 上部のナビゲーションバーで、 AWS CloudShell アイコン () を選択します CloudShell icon

    CloudShell が開きます。 CloudShell 環境が作成されるまで待ちます。

    注記

    CloudShell アイコンが表示されない場合は、 でサポートされているリージョン CloudShellにいることを確認してください。このチュートリアルは、米国西部 (オレゴン) リージョンにいることを前提としています。

AWS CLI がインストールされていることを確認するには
  1. CloudShell ターミナルで、次のように入力します。

    aws --version
  2. バージョンが表示されていることを確認します。

    AWS CLI は現在のユーザー 用にすでに設定されているためCodeCatalystECSUser、通常どおり、 AWS CLI キーと認証情報を設定する必要はありません。

ステップ 2: プレースホルダーアプリケーションを Amazon にデプロイする ECS

このセクションでは、プレースホルダーアプリケーションを Amazon に手動でデプロイしますECS。このプレースホルダーアプリケーションは、ワークフローによってデプロイされた Hello World アプリケーションに置き換えられます。プレースホルダーアプリケーションは Apache Web Server です。

Amazon の詳細についてはECS、「Amazon Elastic Container Service デベロッパーガイド」を参照してください。

プレースホルダーアプリケーションをデプロイするには、以下の一連の手順を実行します。

タスク実行ロールを作成するには

このロールは、ユーザーに代わって API を呼び出すアクセス AWS Fargate 許可を Amazon ECS に付与します。

  1. 信頼ポリシーを作成します。

    1. で AWS CloudShell、次のコマンドを入力します。

      cat > codecatalyst-ecs-trust-policy.json

      CloudShell ターミナルに点滅するプロンプトが表示されます。

    2. プロンプトに次のコードを入力します。

      { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ecs-tasks.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    3. 最後の中括弧 () の後にカーソルを置きます}

    4. EnterCtrl+dを押してファイルを保存し、猫を終了します。

  2. タスク実行ロールを作成します。

    aws iam create-role \ --role-name codecatalyst-ecs-task-execution-role \ --assume-role-policy-document file://codecatalyst-ecs-trust-policy.json
  3. AWS 管理AmazonECSTaskExecutionRolePolicyポリシーをロールにアタッチします。

    aws iam attach-role-policy \ --role-name codecatalyst-ecs-task-execution-role \ --policy-arn arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy
  4. ロールの詳細を表示します。

    aws iam get-role \ --role-name codecatalyst-ecs-task-execution-role
  5. ロールの値"Arn":、例えば を書き留めますarn:aws:iam::111122223333:role/codecatalyst-ecs-task-execution-role。この Amazon リソースネーム (ARN) は後で必要になります。

Amazon ECSクラスターを作成するには

このクラスターには Apache プレースホルダーアプリケーションと、後で Hello World アプリケーションが含まれます。

  1. としてCodeCatalystECSUser、 で空のクラスター AWS CloudShellを作成します。

    aws ecs create-cluster --cluster-name codecatalyst-ecs-cluster
  2. (オプション) クラスターが正常に作成されたことを確認します。

    aws ecs list-clusters

    codecatalyst-ecs-cluster クラスターARNの がリストに表示され、正常に作成されたことを示します。

タスク定義ファイルを作成するには

タスク定義ファイルは、 からプルされた Apache 2.4 ウェブサーバーの Docker イメージ (httpd:2.4) を実行することを示します DockerHub。

  1. としてCodeCatalystECSUser、 でタスク定義ファイル AWS CloudShellを作成します。

    cat > taskdef.json
  2. プロンプトに次のコードを貼り付けます。

    { "executionRoleArn": "arn:aws:iam::111122223333:role/codecatalyst-ecs-task-execution-role", "containerDefinitions": [ { "name": "codecatalyst-ecs-container", "image": "httpd:2.4", "essential": true, "portMappings": [ { "hostPort": 80, "protocol": "tcp", "containerPort": 80 } ] } ], "requiresCompatibilities": [ "FARGATE" ], "cpu": "256", "family": "codecatalyst-ecs-task-def", "memory": "512", "networkMode": "awsvpc" }

    上記のコードで、arn:aws:iam::111122223333:role/codecatalyst-ecs-task-execution-role

    でメモしたタスク実行ロールARNの を使用しますタスク実行ロールを作成するには

  3. 最後の中括弧 () の後にカーソルを置きます}

  4. EnterCtrl+dを押してファイルを保存し、猫を終了します。

タスク定義ファイルを Amazon に登録するには ECS
  1. としてCodeCatalystECSUser、 にタスク定義 AWS CloudShellを登録します。

    aws ecs register-task-definition \ --cli-input-json file://taskdef.json
  2. (オプション) タスク定義が登録されていることを確認します。

    aws ecs list-task-definitions

    codecatalyst-ecs-task-def タスク定義がリストに表示されます。

Amazon ECSサービスを作成するには

Amazon ECSサービスは、Apache プレースホルダーアプリケーションのタスク (および関連する Docker コンテナ) を実行し、後で Hello World アプリケーションを実行します。

  1. としてCodeCatalystECSUser、まだ Amazon Elastic Container Service コンソールに切り替えていない場合は、切り替えます。

  2. 前に作成したクラスター を選択しますcodecatalyst-ecs-cluster

  3. サービス タブで、 の作成 を選択します。

  4. 「作成」ページで、次の操作を行います。

    1. 次にリストされているものを除き、すべてのデフォルト設定を保持します。

    2. 起動タイプ で、 を選択しますFARGATE

    3. タスク定義 で、ファミリードロップダウンリストで以下を選択します。

      codecatalyst-ecs-task-def

    4. サービス名 には、次のように入力します。

      codecatalyst-ecs-service
    5. 必要なタスク には、次のように入力します。

      3

      このチュートリアルでは、各タスクが単一の Docker コンテナを起動します。

    6. ネットワークセクションを展開します。

    7. にはVPC、任意の を選択しますVPC。

    8. サブネット で、任意のサブネットを選択します。

      注記

      サブネットは 1 つだけ指定します。このチュートリアルに必要なのはこれだけです。

      注記

      VPC および サブネットがない場合は、作成します。「Amazon VPCユーザーガイド」の「 の作成」および「 でのサブネットVPCの作成」を参照してください。 VPC

    9. セキュリティグループ で、新しいセキュリティグループの作成 を選択し、次の操作を行います。

      1. セキュリティグループ名 には、次のように入力します。

        codecatalyst-ecs-security-group
      2. セキュリティグループの説明 には、次のように入力します。

        CodeCatalyst ECS security group
      3. [ルールを追加] を選択します。タイプ で を選択しHTTPソース Anywhere を選択します。

    10. 下部で、 の作成 を選択します。

    11. サービスが作成されるまで待ちます。このプロセスには数分かかることがあります。

  5. タスクタブを選択し、更新ボタンを選択します。3 つのタスクすべてで、Last Status 列が Running に設定されていることを確認します。

(オプション) Apache プレースホルダーアプリケーションが実行されていることを確認するには
  1. タスク タブで、3 つのタスクのいずれかを選択します。

  2. パブリック IP フィールドで、オープンアドレス を選択します。

    It Works! ページが表示されます。これは、Amazon ECSサービスが Apache イメージで Docker コンテナを起動したタスクを正常に開始したことを示します。

    チュートリアルのこの時点で、Amazon ECSクラスター、サービス、タスク定義、および Apache プレースホルダーアプリケーションを手動でデプロイしました。これらの項目がすべて揃うと、Apache プレースホルダーアプリケーションをチュートリアルの Hello World アプリケーションに置き換えるワークフローを作成する準備が整いました。

ステップ 3: Amazon ECRイメージリポジトリを作成する

このセクションでは、Amazon Elastic Container Registry (Amazon ) にプライベートイメージリポジトリを作成しますECR。このリポジトリには、以前にデプロイした Apache プレースホルダーイメージを置き換えるチュートリアルの Docker イメージが保存されます。

Amazon の詳細についてはECR、「Amazon Elastic Container Registry ユーザーガイド」を参照してください。

Amazon でイメージリポジトリを作成するには ECR
  1. としてCodeCatalystECSUser、 で AWS CloudShell Amazon に空のリポジトリを作成しますECR。

    aws ecr create-repository --repository-name codecatalyst-ecs-image-repo
  2. Amazon ECRリポジトリの詳細を表示します。

    aws ecr describe-repositories \ --repository-names codecatalyst-ecs-image-repo
  3. “repositoryUri”: 値に注意してください。例えば、 です111122223333.dkr.ecr.us-west-2.amazonaws.com/codecatalyst-ecs-image-repo

    これは、後でリポジトリをワークフローに追加するときに必要になります。

ステップ 4: AWS ロールを作成する

このセクションでは、 CodeCatalyst ワークフローが機能するために必要なロールを作成します AWS IAM。これらのロールは次のとおりです。

  • ビルドロール – AWS アカウントにアクセスして Amazon と ECR Amazon に書き込むための CodeCatalyst ビルドアクション (ワークフロー内) アクセス許可を付与しますEC2。

  • ロールのデプロイ – AWS アカウント、Amazon CodeCatalyst 、および他のいくつかのサービスにアクセスするためのアクションへのデプロイ ECS (ワークフロー内) アクセス許可を付与します。 ECS AWS

IAM ロールの詳細については、「 ユーザーガイド」の「 IAMロールAWS Identity and Access Management 」を参照してください。

注記

時間を節約するために、前述の 2 つのロールではなく、CodeCatalystWorkflowDevelopmentRole-spaceNameロールと呼ばれる 1 つのロールを作成できます。詳細については、「アカウントとスペースのCodeCatalystWorkflowDevelopmentRole-spaceNameロールの作成」を参照してください。CodeCatalystWorkflowDevelopmentRole-spaceName ロールには、セキュリティリスクをもたらす可能性のある非常に広範なアクセス許可があることを理解します。このロールは、セキュリティが懸念されないチュートリアルやシナリオでのみ使用することをお勧めします。このチュートリアルでは、前述の 2 つのロールを作成することを前提としています。

ビルドロールとデプロイロールを作成するには、 AWS Management Console または を使用できます AWS CLI。

AWS Management Console

ビルドロールとデプロイロールを作成するには、以下の一連の手順を実行します。

ビルドロールを作成するには
  1. 次のように、ロールのポリシーを作成します。

    1. にサインインします AWS。

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

    3. ナビゲーションペインで、ポリシー を選択します。

    4. ポリシーの作成を選択します。

    5. [JSON] タブを選択します。

    6. 既存のコードを削除します。

    7. 次のコードを貼り付けます。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:*", "ec2:*" ], "Resource": "*" } ] }
      注記

      ロールを初めて使用してワークフローアクションを実行するときは、リソースポリシーステートメントでワイルドカードを使用し、使用可能になった後にリソース名でポリシーの範囲を絞り込みます。

      "Resource": "*"
    8. [次へ: タグ] を選択します。

    9. [次へ: レビュー] を選択します。

    10. 名前 で、次のように入力します。

      codecatalyst-ecs-build-policy
    11. [ポリシーの作成] を選択します。

      これで、アクセス許可ポリシーが作成されました。

  2. 次のようにビルドロールを作成します。

    1. ナビゲーションペインで ロール を選択してから、ロールを作成する を選択します。

    2. カスタム信頼ポリシー を選択します。

    3. 既存のカスタム信頼ポリシーを削除します。

    4. 次のカスタム信頼ポリシーを追加します。

      { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
    5. [次へ] をクリックします。

    6. アクセス許可ポリシー で を検索しcodecatalyst-ecs-build-policy、そのチェックボックスをオンにします。

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

    8. ロール名 には、次のように入力します。

      codecatalyst-ecs-build-role
    9. ロールの説明 には、次のように入力します。

      CodeCatalyst ECS build role
    10. [ロールの作成] を選択します。

    これで、アクセス許可ポリシーと信頼ポリシーを使用してビルドロールが作成されました。

  3. 次のようにARN、ビルドロール を取得します。

    1. ナビゲーションペインで [ロール] を選択します。

    2. 検索ボックスに、作成したロールの名前 () を入力しますcodecatalyst-ecs-build-role

    3. リストからロールを選択します。

      ロールの概要ページが表示されます。

    4. 上部で、ARN値をコピーします。これは、後で必要になります。

デプロイロールを作成するには
  1. 次のように、ロールのポリシーを作成します。

    1. にサインインします AWS。

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

    3. ナビゲーションペインで、ポリシー を選択します。

    4. [ポリシーの作成] を選択します。

    5. [JSON] タブを選択します。

    6. 既存のコードを削除します。

    7. 次のコードを貼り付けます。

      { "Version": "2012-10-17", "Statement": [{ "Action":[ "ecs:DescribeServices", "ecs:CreateTaskSet", "ecs:DeleteTaskSet", "ecs:ListClusters", "ecs:RegisterTaskDefinition", "ecs:UpdateServicePrimaryTaskSet", "ecs:UpdateService", "elasticloadbalancing:DescribeTargetGroups", "elasticloadbalancing:DescribeListeners", "elasticloadbalancing:ModifyListener", "elasticloadbalancing:DescribeRules", "elasticloadbalancing:ModifyRule", "lambda:InvokeFunction", "lambda:ListFunctions", "cloudwatch:DescribeAlarms", "sns:Publish", "sns:ListTopics", "s3:GetObject", "s3:GetObjectVersion", "codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:GetApplication", "codedeploy:GetDeployment", "codedeploy:GetDeploymentGroup", "codedeploy:ListApplications", "codedeploy:ListDeploymentGroups", "codedeploy:ListDeployments", "codedeploy:StopDeployment", "codedeploy:GetDeploymentTarget", "codedeploy:ListDeploymentTargets", "codedeploy:GetDeploymentConfig", "codedeploy:GetApplicationRevision", "codedeploy:RegisterApplicationRevision", "codedeploy:BatchGetApplicationRevisions", "codedeploy:BatchGetDeploymentGroups", "codedeploy:BatchGetDeployments", "codedeploy:BatchGetApplications", "codedeploy:ListApplicationRevisions", "codedeploy:ListDeploymentConfigs", "codedeploy:ContinueDeployment" ], "Resource":"*", "Effect":"Allow" },{"Action":[ "iam:PassRole" ], "Effect":"Allow", "Resource":"*", "Condition":{"StringLike":{"iam:PassedToService":[ "ecs-tasks.amazonaws.com", "codedeploy.amazonaws.com" ] } } }] }
      注記

      ロールを初めて使用してワークフローアクションを実行する場合は、リソースポリシーステートメントでワイルドカードを使用します。その後、リソース名が使用可能になったら、そのリソース名を使用してポリシーの範囲を絞り込むことができます。

      "Resource": "*"
    8. [次へ: タグ] を選択します。

    9. [次へ: レビュー] を選択します。

    10. 名前 で、次のように入力します。

      codecatalyst-ecs-deploy-policy
    11. [ポリシーの作成] を選択します。

      これで、アクセス許可ポリシーが作成されました。

  2. デプロイロールを次のように作成します。

    1. ナビゲーションペインで ロール を選択してから、ロールを作成する を選択します。

    2. カスタム信頼ポリシー を選択します。

    3. 既存のカスタム信頼ポリシーを削除します。

    4. 次のカスタム信頼ポリシーを追加します。

      { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
    5. [次へ] をクリックします。

    6. アクセス許可ポリシー で を検索しcodecatalyst-ecs-deploy-policy、そのチェックボックスをオンにします。

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

    8. ロール名 には、次のように入力します。

      codecatalyst-ecs-deploy-role
    9. ロールの説明 には、次のように入力します。

      CodeCatalyst ECS deploy role
    10. [ロールの作成] を選択します。

    これで、信頼ポリシーを使用してデプロイロールが作成されました。

  3. 次のようにARN、デプロイロール を取得します。

    1. ナビゲーションペインで [ロール] を選択します。

    2. 検索ボックスに、作成したロールの名前 () を入力しますcodecatalyst-ecs-deploy-role

    3. リストからロールを選択します。

      ロールの概要ページが表示されます。

    4. 上部に値をコピーしますARN。これは、後で必要になります。

AWS CLI

ビルドロールとデプロイロールを作成するには、以下の一連の手順を実行します。

両方のロールの信頼ポリシーを作成するには

としてCodeCatalystECSUser、 で信頼ポリシーファイル AWS CloudShellを作成します。

  1. ファイルを作成します。

    cat > codecatalyst-ecs-trust-policy.json
  2. ターミナルプロンプトで、次のコードを貼り付けます。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
  3. 最後の中括弧 () の後にカーソルを置きます}

  4. EnterCtrl+dを押してファイルを保存し、猫を終了します。

ビルドポリシーとビルドロールを作成するには
  1. ビルドポリシーを作成します。

    1. としてCodeCatalystECSUser、 でビルドポリシーファイル AWS CloudShellを作成します。

      cat > codecatalyst-ecs-build-policy.json
    2. プロンプトで、次のコードを入力します。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:*", "ec2:*" ], "Resource": "*" } ] }
    3. 最後の中括弧 () の後にカーソルを置きます}

    4. EnterCtrl+dを押してファイルを保存し、猫を終了します。

  2. ビルドポリシーを に追加します AWS。

    aws iam create-policy \ --policy-name codecatalyst-ecs-build-policy \ --policy-document file://codecatalyst-ecs-build-policy.json
  3. コマンド出力で、 などの"arn":値を書き留めますarn:aws:iam::111122223333:policy/codecatalyst-ecs-build-policy。これはARN後で必要になります。

  4. ビルドロールを作成し、信頼ポリシーをアタッチします。

    aws iam create-role \ --role-name codecatalyst-ecs-build-role \ --assume-role-policy-document file://codecatalyst-ecs-trust-policy.json
  5. ビルドポリシーをビルドロールにアタッチします。

    aws iam attach-role-policy \ --role-name codecatalyst-ecs-build-role \ --policy-arn arn:aws:iam::111122223333:policy/codecatalyst-ecs-build-policy

    各パラメータの意味は次のとおりです。arn:aws:iam::111122223333:policy/codecatalyst-ecs-build-policy は、前にメモしたビルドポリシーARNの に置き換えられます。

  6. ビルドロールの詳細を表示します。

    aws iam get-role \ --role-name codecatalyst-ecs-build-role
  7. ロール"Arn":の値、例えば を書き留めますarn:aws:iam::111122223333:role/codecatalyst-ecs-build-role。これはARN後で必要になります。

デプロイポリシーとデプロイロールを作成するには
  1. デプロイポリシーを作成します。

    1. で AWS CloudShell、デプロイポリシーファイルを作成します。

      cat > codecatalyst-ecs-deploy-policy.json
    2. プロンプトで、次のコードを入力します。

      { "Version": "2012-10-17", "Statement": [{ "Action":[ "ecs:DescribeServices", "ecs:CreateTaskSet", "ecs:DeleteTaskSet", "ecs:ListClusters", "ecs:RegisterTaskDefinition", "ecs:UpdateServicePrimaryTaskSet", "ecs:UpdateService", "elasticloadbalancing:DescribeTargetGroups", "elasticloadbalancing:DescribeListeners", "elasticloadbalancing:ModifyListener", "elasticloadbalancing:DescribeRules", "elasticloadbalancing:ModifyRule", "lambda:InvokeFunction", "lambda:ListFunctions", "cloudwatch:DescribeAlarms", "sns:Publish", "sns:ListTopics", "s3:GetObject", "s3:GetObjectVersion", "codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:GetApplication", "codedeploy:GetDeployment", "codedeploy:GetDeploymentGroup", "codedeploy:ListApplications", "codedeploy:ListDeploymentGroups", "codedeploy:ListDeployments", "codedeploy:StopDeployment", "codedeploy:GetDeploymentTarget", "codedeploy:ListDeploymentTargets", "codedeploy:GetDeploymentConfig", "codedeploy:GetApplicationRevision", "codedeploy:RegisterApplicationRevision", "codedeploy:BatchGetApplicationRevisions", "codedeploy:BatchGetDeploymentGroups", "codedeploy:BatchGetDeployments", "codedeploy:BatchGetApplications", "codedeploy:ListApplicationRevisions", "codedeploy:ListDeploymentConfigs", "codedeploy:ContinueDeployment" ], "Resource":"*", "Effect":"Allow" },{"Action":[ "iam:PassRole" ], "Effect":"Allow", "Resource":"*", "Condition":{"StringLike":{"iam:PassedToService":[ "ecs-tasks.amazonaws.com", "codedeploy.amazonaws.com" ] } } }] }
      注記

      ロールを初めて使用してワークフローアクションを実行するときは、リソースポリシーステートメントでワイルドカードを使用し、使用可能になった後にリソース名でポリシーの範囲を絞り込みます。

      "Resource": "*"
    3. 最後の中括弧 () の後にカーソルを置きます}

    4. EnterCtrl+dを押してファイルを保存し、猫を終了します。

  2. デプロイポリシーを に追加します AWS。

    aws iam create-policy \ --policy-name codecatalyst-ecs-deploy-policy \ --policy-document file://codecatalyst-ecs-deploy-policy.json
  3. コマンド出力で、デプロイポリシーの値"arn":、例えば を書き留めますarn:aws:iam::111122223333:policy/codecatalyst-ecs-deploy-policy。これはARN後で必要になります。

  4. デプロイロールを作成し、信頼ポリシーをアタッチします。

    aws iam create-role \ --role-name codecatalyst-ecs-deploy-role \ --assume-role-policy-document file://codecatalyst-ecs-trust-policy.json
  5. デプロイポリシーをデプロイロールにアタッチします。ここで、arn:aws:iam::111122223333:policy/codecatalyst-ecs-deploy-policy は、前にメモしたデプロイポリシーARNの に置き換えられます。

    aws iam attach-role-policy \ --role-name codecatalyst-ecs-deploy-role \ --policy-arn arn:aws:iam::111122223333:policy/codecatalyst-ecs-deploy-policy
  6. デプロイロールの詳細を表示します。

    aws iam get-role \ --role-name codecatalyst-ecs-deploy-role
  7. ロールの値"Arn":、例えば を書き留めますarn:aws:iam::111122223333:role/codecatalyst-ecs-deploy-role。これはARN後で必要になります。

ステップ 5: に AWS ロールを追加する CodeCatalyst

このステップでは、ビルドロール (codecatalyst-ecs-build-role) とデプロイロール (codecatalyst-ecs-deploy-role) をスペース内の CodeCatalyst アカウント接続に追加します。

ビルドロールとデプロイロールをアカウント接続に追加するには
  1. で CodeCatalyst、スペースに移動します。

  2. [AWS アカウント] を選択します。アカウント接続のリストが表示されます。

  3. ビルドロールとデプロイロールを作成したアカウントを表す AWS アカウント接続を選択します。

  4. AWS 管理コンソール からロールの管理 を選択します。

    「Amazon CodeCatalyst スペースへのIAMロールの追加」ページが表示されます。ページにアクセスするには、サインインが必要な場合があります。

  5. で作成した既存のロールを追加 IAMを選択します。

    ドロップダウンリストが表示されます。このリストには、 codecatalyst-runner.amazonaws.comおよび codecatalyst.amazonaws.comサービスプリンシパルを含む信頼ポリシーを持つすべてのIAMロールが表示されます。

  6. ドロップダウンリストで、 を選択しcodecatalyst-ecs-build-roleロールの追加 を選択します。

    注記

    が表示された場合はThe security token included in the request is invalid、適切なアクセス許可がないためである可能性があります。この問題を解決するには、 からサインアウト AWS して、スペースの作成時に使用した AWS アカウントで再度サインインします CodeCatalyst。

  7. IAM 「ロールの追加」を選択し、「」で作成した既存のロールの追加IAM「」を選択し、ドロップダウンリストから「」を選択しますcodecatalyst-ecs-deploy-role。[Add role] を選択します。

    これで、ビルドロールとデプロイロールをスペースに追加しました。

  8. Amazon CodeCatalyst 表示名 の値をコピーします。この値は、後でワークフローを作成するときに必要になります。

ステップ 6: ソースリポジトリを作成する

このステップでは、 でソースリポジトリを作成します CodeCatalyst。このリポジトリには、タスク定義ファイルなど、チュートリアルのソースファイルが保存されます。

ソースリポジトリの詳細については、「」を参照してくださいソースリポジトリの作成

ソースリポジトリを作成するには
  1. https://codecatalyst.aws/ で CodeCatalyst コンソールを開きます。

  2. プロジェクト に移動しますcodecatalyst-ecs-project

  3. ナビゲーションペインで [コード] を選択してから、[ソースリポジトリ] を選択します。

  4. [リポジトリの追加] を選択し、[リポジトリの作成] を選択します。

  5. リポジトリ名 で、次のように入力します。

    codecatalyst-ecs-source-repository
  6. [作成] を選択します。

ステップ 7: ソースファイルを追加する

このセクションでは、Hello World ソースファイルを CodeCatalyst リポジトリ に追加しますcodecatalyst-ecs-source-repository。それらは以下で構成されます。

  • index.html ファイル - ブラウザに Hello World メッセージを表示します。

  • Dockerfile – Docker イメージに使用するベースイメージと、それに適用する Docker コマンドについて説明します。

  • taskdef.json ファイル — クラスターでタスクを起動するときに使用する Docker イメージを定義します。

フォルダ構造は次のとおりです。

. |— public-html | |— index.html |— Dockerfile |— taskdef.json
注記

次の手順は、コンソールを使用してファイルを追加する方法を示しています CodeCatalyst が、必要に応じて Git を使用できます。詳細については、「ソースリポジトリのクローン作成」を参照してください。

index.html

index.html ファイルには、ブラウザに Hello World メッセージが表示されます。

index.html ファイルを追加するには
  1. CodeCatalyst コンソールで、ソースリポジトリ に移動しますcodecatalyst-ecs-source-repository

  2. ファイル で、ファイルの作成 を選択します。

  3. ファイル名 には、次のように入力します。

    public-html/index.html
    重要

    同じ名前のフォルダを作成するには、必ず public-html/ プレフィックスを含めてください。index.html はこのフォルダにあることが想定されます。

  4. テキストボックスに、次のコードを入力します。

    <html> <head> <title>Hello World</title> <style> body { background-color: black; text-align: center; color: white; font-family: Arial, Helvetica, sans-serif; } </style> </head> <body> <h1>Hello World</h1> </body> </html>
  5. コミット を選択し、もう一度コミット を選択します。

    index.html は、 public-htmlフォルダのリポジトリに追加されます。

Dockerfile

Dockerfile は、使用するベース Docker イメージと、それに適用する Docker コマンドを記述します。Dockerfile の詳細については、「Dockerfile リファレンス」を参照してください。

ここで指定された Dockerfile は、Apache 2.4 ベースイメージ (httpd) を使用することを示します。また、ウェブページを提供する Apache サーバーのフォルダindex.htmlに というソースファイルをコピーする手順も含まれています。Dockerfile の EXPOSE命令は、コンテナがポート 80 でリッスンしていることを Docker に伝えます。

Dockerfile を追加するには
  1. ソースリポジトリで、ファイルの作成 を選択します。

  2. ファイル名 には、次のように入力します。

    Dockerfile

    ファイル拡張子を含めないでください。

    重要

    Dockerfile はリポジトリのルートフォルダに存在する必要があります。ワークフローのDocker buildコマンドは、ワークフローが存在することを想定しています。

  3. テキストボックスに、次のコードを入力します。

    FROM httpd:2.4 COPY ./public-html/index.html /usr/local/apache2/htdocs/index.html EXPOSE 80
  4. コミット を選択し、もう一度コミット を選択します。

    Dockerfile がリポジトリに追加されます。

taskdef.json

このステップで追加するファイルは、 で既に指定したtaskdef.jsonファイルと同じですがステップ 2: プレースホルダーアプリケーションを Amazon にデプロイする ECS、次の違いがあります。

image: フィールド (httpd:2.4) でハードコードされた Docker イメージ名を指定する代わりに、ここでのタスク定義では、いくつかの変数を使用してイメージ $REPOSITORY_URIと を示します$IMAGE_TAG。これらの変数は、後のステップでワークフローを実行するときに、ワークフローのビルドアクションによって生成された実際の値に置き換えられます。

タスク定義パラメータの詳細については、「Amazon Elastic Container Service デベロッパーガイド」の「タスク定義パラメータ」を参照してください。

taskdef.json ファイルを追加するには
  1. ソースリポジトリで、ファイルの作成 を選択します。

  2. ファイル名 には、次のように入力します。

    taskdef.json
  3. テキストボックスに、次のコードを入力します。

    { "executionRoleArn": "arn:aws:iam::account_ID:role/codecatalyst-ecs-task-execution-role", "containerDefinitions": [ { "name": "codecatalyst-ecs-container", # The $REPOSITORY_URI and $IMAGE_TAG variables will be replaced # by the workflow at build time (see the build action in the # workflow) "image": $REPOSITORY_URI:$IMAGE_TAG, "essential": true, "portMappings": [ { "hostPort": 80, "protocol": "tcp", "containerPort": 80 } ] } ], "requiresCompatibilities": [ "FARGATE" ], "networkMode": "awsvpc", "cpu": "256", "memory": "512", "family": "codecatalyst-ecs-task-def" }

    上記のコードで、

    arn:aws:iam::account_ID:role/codecatalyst-ecs-task-execution-role

    でメモしたタスク実行ロールARNの を使用しますタスク実行ロールを作成するには

  4. コミット を選択し、もう一度コミット を選択します。

    taskdef.json ファイルがリポジトリに追加されます。

ステップ 8: ワークフローを作成して実行する

このステップでは、ソースファイルを取得し、Docker イメージにビルドして、そのイメージを Amazon ECSクラスターにデプロイするワークフローを作成します。このデプロイは、既存の Apache プレースホルダーアプリケーションを置き換えます。

ワークフローは、順番に実行される次の構成要素で構成されます。

  • トリガー — このトリガーは、変更をソースリポジトリにプッシュすると、ワークフローの実行を自動的に開始します。トリガーについての詳細は、「トリガーを使用してワークフローを自動的に開始する」を参照してください。

  • ビルドアクション (BuildBackend) – トリガー時に、 アクションは Dockerfile を使用して Docker イメージをビルドし、そのイメージを Amazon にプッシュしますECR。ビルドアクションは、 を正しいimageフィールド値taskdef.jsonで更新し、このファイルの出力アーティファクトを作成します。このアーティファクトは、デプロイアクションの入力として使用され、次は です。

    ビルドアクションの詳細については、「」を参照してくださいワークフローを使用した構築

  • デプロイアクション (DeployToECS) – ビルドアクションが完了すると、デプロイアクションはビルドアクション (TaskDefArtifact) によって生成された出力アーティファクトを検索し、そのtaskdef.json内部を見つけて、Amazon ECSサービスに登録します。次に、このサービスは taskdef.json ファイルの指示に従って、Amazon ECSクラスター内で 3 つの Amazon ECSタスク、および関連付けられた Hello World Docker コンテナを実行します。

ワークフローを作成するには
  1. CodeCatalyst コンソールのナビゲーションペインで CI/CD を選択し、ワークフロー を選択します。

  2. ワークフローの作成 を選択します。

  3. ソースリポジトリ で、 を選択しますcodecatalyst-ecs-source-repository

  4. ブランチ で、 を選択しますmain

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

  6. YAML サンプルコードを削除します。

  7. 次のYAMLコードを追加します。

    注記

    次のYAMLコードでは、必要に応じてConnections:セクションを省略できます。これらのセクションを省略する場合は、環境のデフォルトロールフィールドで指定されたIAMロールに、 で説明されている両方のロールのアクセス許可と信頼ポリシーが含まれていることを確認する必要がありますステップ 5: に AWS ロールを追加する CodeCatalyst。デフォルトのIAMロールで環境を設定する方法の詳細については、「」を参照してください環境を作成する

    Name: codecatalyst-ecs-workflow SchemaVersion: 1.0 Triggers: - Type: PUSH Branches: - main Actions: BuildBackend: Identifier: aws/build@v1 Environment: Name: codecatalyst-ecs-environment Connections: - Name: codecatalyst-account-connection Role: codecatalyst-ecs-build-role Inputs: Sources: - WorkflowSource Variables: - Name: REPOSITORY_URI Value: 111122223333.dkr.ecr.us-west-2.amazonaws.com/codecatalyst-ecs-image-repo - Name: IMAGE_TAG Value: ${WorkflowSource.CommitId} Configuration: Steps: #pre_build: - Run: echo Logging in to Amazon ECR... - Run: aws --version - Run: aws ecr get-login-password --region us-west-2 | docker login --username AWS --password-stdin 111122223333.dkr.ecr.us-west-2.amazonaws.com #build: - Run: echo Build started on `date` - Run: echo Building the Docker image... - Run: docker build -t $REPOSITORY_URI:latest . - Run: docker tag $REPOSITORY_URI:latest $REPOSITORY_URI:$IMAGE_TAG #post_build: - Run: echo Build completed on `date` - Run: echo Pushing the Docker images... - Run: docker push $REPOSITORY_URI:latest - Run: docker push $REPOSITORY_URI:$IMAGE_TAG # Replace the variables in taskdef.json - Run: find taskdef.json -type f | xargs sed -i "s|\$REPOSITORY_URI|$REPOSITORY_URI|g" - Run: find taskdef.json -type f | xargs sed -i "s|\$IMAGE_TAG|$IMAGE_TAG|g" - Run: cat taskdef.json # The output artifact will be a zip file that contains a task definition file. Outputs: Artifacts: - Name: TaskDefArtifact Files: - taskdef.json DeployToECS: DependsOn: - BuildBackend Identifier: aws/ecs-deploy@v1 Environment: Name: codecatalyst-ecs-environment Connections: - Name: codecatalyst-account-connection Role: codecatalyst-ecs-deploy-role Inputs: Sources: [] Artifacts: - TaskDefArtifact Configuration: region: us-west-2 cluster: codecatalyst-ecs-cluster service: codecatalyst-ecs-service task-definition: taskdef.json

    上記のコードで、以下を置き換えます。

    • の両方のインスタンス codecatalyst-ecs-environment で作成した環境の名前。 前提条件

    • の両方のインスタンス codecatalyst-account-connection アカウント接続の表示名を入力します。表示名は数字にすることができます。詳細については、「ステップ 5: に AWS ロールを追加する CodeCatalyst」を参照してください。

    • codecatalyst-ecs-build-role で作成したビルドロールの名前。 ステップ 4: AWS ロールを作成する

    • 111122223333.dkr.ecr.us-west-2.amazonaws.com/codecatalyst-ecs-image-repo ( Value:プロパティの) を、 で作成した Amazon ECRリポジトリURIの とともに使用しますステップ 3: Amazon ECRイメージリポジトリを作成する

    • 111122223333.dkr.ecr.us-west-2.amazonaws.com ( Run: aws ecr コマンドで) イメージサフィックス () なしで Amazon ECRリポジトリURIの を使用します/codecatalyst-ecs-image-repo

    • codecatalyst-ecs-deploy-role に、 で作成したデプロイロールの名前を入力しますステップ 4: AWS ロールを作成する

    • の両方のインスタンス us-west-2 AWS リージョンコードを入力します。リージョンコードのリストについては、「」の「リージョンエンドポイント」を参照してくださいAWS 全般のリファレンス

    注記

    ビルドロールとデプロイロールを作成しない場合は、codecatalyst-ecs-build-role また、codecatalyst-ecs-deploy-role CodeCatalystWorkflowDevelopmentRole-spaceName はロールの名前で指定します。このロールの詳細については、「ステップ 4: AWS ロールを作成する」を参照してください。

    ヒント

    前のワークフローコードに示されている find および sed コマンドを使用してリポジトリとイメージ名を更新する代わりに、この目的のために Amazon ECSタスク定義アクションをレンダリングできます。詳細については、「Amazon ECSタスク定義の変更」を参照してください。

  8. (オプション) 検証 を選択して、コミットする前にYAMLコードが有効であることを確認します。

  9. [Commit] (コミット) を選択します。

  10. コミットワークフローダイアログボックスに、次のように入力します。

    1. コミットメッセージ で、テキストを削除して次のように入力します。

      Add first workflow
    2. リポジトリ で、 を選択しますcodecatalyst-ecs-source-repository

    3. ブランチ名 で、main を選択します。

    4. [Commit] (コミット) を選択します。

    これでワークフローが作成されました。ワークフローの実行は、ワークフローの上部で定義されたトリガーが原因で自動的に開始されます。具体的には、workflow.yamlファイルをソースリポジトリにコミット (およびプッシュ) すると、トリガーによってワークフロー実行が開始されます。

ワークフロー実行の進行状況を表示するには
  1. CodeCatalyst コンソールのナビゲーションペインで CI/CD を選択し、ワークフロー を選択します。

  2. 先ほど作成したワークフロー を選択しますcodecatalyst-ecs-workflow

  3. ビルドの進行状況BuildBackendを表示するには、 を選択します。

  4. DeployToECS を選択して、デプロイの進行状況を確認します。

    実行の詳細の表示の詳細については、「」を参照してくださいワークフローの実行ステータスと詳細の表示

デプロイを確認するには
  1. で Amazon ECS Classic コンソールを開きますhttps://console.aws.amazon.com/ecs/

  2. クラスター を選択しますcodecatalyst-ecs-cluster

  3. [タスク] タブを選択します。

  4. 3 つのタスクのいずれかを選択します。

  5. パブリック IP フィールドで、オープンアドレス を選択します。

    ブラウザに「Hello World」ページが表示され、Amazon ECSサービスがアプリケーションを正常にデプロイしたことを示します。

ステップ 9: ソースファイルを変更する

このセクションでは、ソースリポジトリの index.html ファイルを変更します。この変更により、ワークフローは新しい Docker イメージを構築し、コミット ID でタグ付けして Amazon にプッシュしECR、Amazon にデプロイしますECS。

index.html を変更するには
  1. CodeCatalyst コンソールのナビゲーションペインで、コード を選択し、ソースリポジトリ を選択し、リポジトリ を選択しますcodecatalyst-ecs-source-repository

  2. [public-html] を選択し、[index.html] を選択します。

    の内容index.htmlが表示されます。

  3. [編集] を選択します。

  4. 14 行目で、Hello Worldテキストを に変更しますTutorial complete!

  5. コミット を選択し、もう一度コミット を選択します。

    コミットにより、新しいワークフロー実行が開始されます。

  6. (オプション) ソースリポジトリのメインページに移動し、コミットの表示 を選択しindex.html変更のコミット ID を書き留めます。

  7. デプロイの進行状況を確認します。

    1. ナビゲーションペインで CI/CD を選択し、ワークフロー を選択します。

    2. を選択して最新の実行codecatalyst-ecs-workflowを表示します。

    3. を選択しBuildBackend、ワークフロー実行の進行状況DeployToECSを確認します。

  8. 次のように、アプリケーションが更新されていることを確認します。

    1. で Amazon ECS Classic コンソールを開きますhttps://console.aws.amazon.com/ecs/

    2. クラスター を選択しますcodecatalyst-ecs-cluster

    3. [タスク] タブを選択します。

    4. 3 つのタスクのいずれかを選択します。

    5. パブリック IP フィールドで、オープンアドレス を選択します。

      Tutorial complete! ページが表示されます。

  9. (オプション) で AWS Amazon ECRコンソールに切り替え、新しい Docker イメージにステップ 6 のコミット ID がタグ付けされていることを確認します。

クリーンアップ

このチュートリアルで使用するファイルとサービスをクリーンアップして、料金が発生しないようにします。

で AWS Management Console、次の順序でクリーンアップします。

  1. Amazon ではECS、次の操作を行います。

    1. を削除しますcodecatalyst-ecs-service

    2. を削除しますcodecatalyst-ecs-cluster

    3. codecatalyst-ecs-task-definition の登録を解除します。

  2. Amazon でECR、 を削除しますcodecatalyst-ecs-image-repo

  3. Amazon でEC2、 を削除しますcodecatalyst-ecs-security-group

  4. IAM Identity Center で、以下を削除します。

    1. CodeCatalystECSUser

    2. CodeCatalystECSPermissionSet

CodeCatalyst コンソールで、次のようにクリーンアップします。

  1. を削除しますcodecatalyst-ecs-workflow

  2. を削除しますcodecatalyst-ecs-environment

  3. を削除しますcodecatalyst-ecs-source-repository

  4. を削除しますcodecatalyst-ecs-project

このチュートリアルでは、 CodeCatalyst ワークフローと Amazon へのデプロイアクションを使用してアプリケーションを Amazon ECSサービスにデプロイする方法を学習しました。 ECS