Fargate 起動タイプ用の Amazon ECS Windows タスクを作成する方法について説明します。 - Amazon Elastic Container Service

Fargate 起動タイプ用の Amazon ECS Windows タスクを作成する方法について説明します。

Amazon ECS で AWS Fargate がサポートされているリージョンで、タスクに Fargate 起動タイプを使用し、Amazon ECS on AWS Fargate の使用を開始します。

AWS Fargateで Amazon ECSの使用を開始するには、以下のステップを完了します。

前提条件

開始する前に、Amazon ECS を使用するようにセットアップする のステップを完了し、AWS ユーザーに AdministratorAccess IAM ポリシー例で指定されているアクセス許可があることを確認します。

コンソールは、Fargate タスクに必要なタスク実行 IAM ロールを自動で作成しようとします。コンソールがこの IAM ロールを作成できるようにするには、次のいずれかがtrueである必要があります。

重要

タスク定義を使用してサービスを作成するときに選択するセキュリティグループには、インバウンドトラフィック用にポート 80 が開いている必要があります。セキュリティグループに次のインバウンドルールを追加します。セキュリティグループの作成方法については、「Amazon EC2 ユーザーガイド」の「Amazon EC2 インスタンス用のセキュリティグループの作成」を参照してください。

  • [Type]: HTTP

  • [Protocol]: TCP

  • ポート範囲: 80

  • ソース: 任意の場所 (0.0.0.0/0)

ステップ 1: クラスターを作成する

デフォルトの VPCを使用する [ウィンドウズ] という名前の新しいクラスターを作成できます。

AWS Management Console を使用してクラスターを作成するには
  1. コンソール (https://console.aws.amazon.com/ecs/v2) を開きます。

  2. ナビゲーションバーから、使用するリージョンを選択します。

  3. ナビゲーションペインで [Clusters] (クラスター) を選択します。

  4. [Clusters] (クラスター) ページで、[Create Cluster] (クラスターの作成) を選択します。

  5. [Cluster configuration] (クラスター設定) の [Cluster name] (クラスター名) に「windows」と入力します。

  6. (オプション) Container Insights を有効にするには、[Monitoring] (モニタリング) を展開し、[Use Container Insights] (Container Insights を使用する) をオンにします。

  7. (オプション) クラスターを識別しやすくするには、[Tags] (タグ) を展開し、タグを設定します。

    [タグの追加] [タグの追加] を選択して、以下を実行します。

    • [キー] にはキー名を入力します。

    • [] にキー値を入力します。

    [タグを削除] タグのキーと値の右側にある [削除] を選択します。

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

ステップ 2: Windows タスク定義を登録する

Amazon ECS クラスターで Windows コンテナを実行する前に、タスク定義を登録する必要があります。次のタスク定義の例では、mcr.microsoft.com/windows/servercore/iis コンテナイメージを使用してコンテナインスタンスのポート 8080 でシンプルなウェブページを表示します。

AWS Management Console を使用してサンプルタスク定義を登録するには
  1. ナビゲーションペインで、タスクの定義 を選択します。

  2. [Create new task definition] (新しいタスク定義の作成)、[Create new task definition with JSON] (JSON で新しいタスク定義を作成) の順に選択します。

  3. 以下のタスク定義の例をコピーしてボックスに貼り付け、[Save (保存)] を選択します。

    { "containerDefinitions": [ { "command": ["New-Item -Path C:\\inetpub\\wwwroot\\index.html -Type file -Value '<html> <head> <title>Amazon ECS Sample App</title> <style>body {margin-top: 40px; background-color: #333;} </style> </head><body> <div style=color:white;text-align:center> <h1>Amazon ECS Sample App</h1> <h2>Congratulations!</h2> <p>Your application is now running on a container in Amazon ECS.</p>'; C:\\ServiceMonitor.exe w3svc"], "entryPoint": [ "powershell", "-Command" ], "essential": true, "cpu": 2048, "memory": 4096, "image": "mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2019", "name": "sample_windows_app", "portMappings": [ { "hostPort": 80, "containerPort": 80, "protocol": "tcp" } ] } ], "memory": "4096", "cpu": "2048", "networkMode": "awsvpc", "family": "windows-simple-iis-2019-core", "executionRoleArn": "arn:aws:iam::012345678910:role/ecsTaskExecutionRole", "runtimePlatform": {"operatingSystemFamily": "WINDOWS_SERVER_2019_CORE"}, "requiresCompatibilities": ["FARGATE"] }
  4. 情報を確認し、[Create] (作成) を選択します。

ステップ 3: タスク定義を使用してサービスを作成する

タスク定義を登録したら、それを使用してクラスターにタスクを配置できます。次の手順では、タスク定義を使用してサービスを作成し、クラスターに 1 つのタスクを配置します。

コンソールを使用してタスク定義からサービスを作成するには
  1. ナビゲーションペインで、[Clusters] (クラスター) を選択してから、ステップ 1: クラスターを作成する で作成したクラスターを選択します。

  2. [Services] (サービス) タブから、[Create] (作成) を選択します。

  3. [Deployment configure] (デプロイ設定) で、アプリケーションのデプロイ方法を指定します。

    1. [Task definition] (タスク定義) で、ステップ 2: Windows タスク定義を登録する で作成したタスク定義を選択します。

    2. [Service name] (サービス名) でサービスの名前を入力します。

    3. [Desired tasks] (必要なタスク) に、1と入力します。

  4. [ネットワーク] で、セキュリティグループを作成するか、既存のグループを選択できます。使用するセキュリティグループに、前提条件 に一覧表示されているインバウンドルールがあることを確認してください。

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

ステップ 4: サービスを表示する

サービスによってクラスターでタスクが起動されたら、サービスを表示し、ブラウザで IIS テストページを開いてコンテナが実行中であることを確認できます。

注記

コンテナインスタンスで Windows コンテナベースレイヤーをダウンロードして抽出するまでに最大 15 分かかる場合があります。

サービスを表示するには
  1. コンソール (https://console.aws.amazon.com/ecs/v2) を開きます。

  2. ナビゲーションペインで [Clusters] (クラスター) を選択します。

  3. サービスを実行したクラスターを選択します。

  4. [サービス] タブの [サービス名] で、ステップ 3: タスク定義を使用してサービスを作成する に作成したサービスを選択します。

  5. [タスク] タブ > サービス内のタスクの順に選択します。

  6. [タスク] ページの [設定] セクションの [パブリック IP] で、[オープンアドレス] を選択します。

ステップ 5: クリーンアップ

Amazon ECS クラスターの使用が終了したら、使用していないリソースに対する料金が発生しないよう、それに関連付けられたリソースをクリーンアップする必要があります。

タスク、サービス、クラスター、コンテナインスタンスなど、一部の Amazon ECS リソースは、Amazon ECS コンソールを使用してクリーンアップします。Amazon EC2 インスタンス、Elastic Load Balancing ロードバランサー、Auto Scaling グループなど他のリソースは、Amazon EC2 コンソールで手動でクリーンアップするか、それを作成した AWS CloudFormation スタックを削除することでクリーンアップする必要があります。

  1. ナビゲーションペインで [Clusters] (クラスター) を選択します。

  2. [クラスター] ページで、このチュートリアル用に作成したクラスターを選択します。

  3. [サービス] タブを選択します。

  4. サービス > [削除] の順に選択します。

  5. 確認プロンプトで、delete (削除) と入力し、[Delete] (削除) を選択します。

    サービスが削除されるまでお待ちください。

  6. [Delete Cluster] を選択します。確認プロンプトで、delete cluster-nameと入力し、[Delete] (削除) を選択します。クラスターを削除すると、Auto Scaling グループ、VPC、ロードバランサーなどを含むクラスターで作成された関連リソースがクリーンアップされます。