Fargate 起動タイプ用の Amazon ECS Windows タスクを作成する方法について説明します。
Amazon ECS で AWS Fargate がサポートされているリージョンで、タスクに Fargate 起動タイプを使用し、Amazon ECS on AWS Fargate の使用を開始します。
AWS Fargateで Amazon ECSの使用を開始するには、以下のステップを完了します。
前提条件
開始する前に、Amazon ECS を使用するようにセットアップする のステップを完了し、IAM ユーザーに AdministratorAccess IAM ポリシー例で指定されているアクセス許可があることを確認します。
コンソールは、Fargate タスクに必要なタスク実行 IAM ロールを自動で作成しようとします。コンソールがこの IAM ロールを作成できるようにするには、次のいずれかがtrueである必要があります。
- 
                ユーザーが管理者権限を持っていることが必要です。詳細については、「Amazon ECS を使用するようにセットアップする」を参照してください。 
- 
                ユーザーがサービスロールを作成するための IAM 権限を持っていることが必要です。詳細については、「AWS サービスにアクセス許可を委任するロールの作成」を参照してください。 
- 
                管理者権限を持つユーザーは、タスク実行ロールを手動で作成することにより、使用するアカウントで有効にできます。詳細については、「Amazon ECS タスク実行IAM ロール」を参照してください。 
重要
タスク定義を使用してサービスを作成するときに選択するセキュリティグループには、インバウンドトラフィック用にポート 80 が開いている必要があります。セキュリティグループに次のインバウンドルールを追加します。セキュリティグループの作成方法については、「Amazon EC2 ユーザーガイド」の「Amazon EC2 インスタンス用のセキュリティグループの作成」を参照してください。
-   [Type]: HTTP 
- [Protocol]: TCP 
-   ポート範囲: 80 
-  ソース: 任意の場所 ( 0.0.0.0/0)
ステップ 1: クラスターを作成する
デフォルトの VPCを使用する [ウィンドウズ] という名前の新しいクラスターを作成できます。
AWS Management Console を使用してクラスターを作成するには
- コンソール (https://console.aws.amazon.com/ecs/v2 - ) を開きます。 
- 
                ナビゲーションバーから、使用するリージョンを選択します。 
- 
                ナビゲーションペインで [Clusters] (クラスター) を選択します。 
- 
                [Clusters] (クラスター) ページで、[Create Cluster] (クラスターの作成) を選択します。 
- 
                [Cluster configuration] (クラスター設定) の [Cluster name] (クラスター名) に「windows」と入力します。 
- 
                (オプション) Container Insights を有効にするには、[Monitoring] (モニタリング) を展開し、[Use Container Insights] (Container Insights を使用する) をオンにします。 
- 
                (オプション) クラスターを識別しやすくするには、[Tags] (タグ) を展開し、タグを設定します。 [タグの追加] [タグの追加] を選択して、以下を実行します。 - 
                        [キー] にはキー名を入力します。 
- 
                        [値] にキー値を入力します。 
 [タグを削除] タグのキーと値の右側にある [削除] を選択します。 
- 
                        
- 
                [作成] を選択します。 
ステップ 2: Windows タスク定義を登録する
Amazon ECS クラスターで Windows コンテナを実行する前に、タスク定義を登録する必要があります。次のタスク定義の例では、mcr.microsoft.com/windows/servercore/iis コンテナイメージを使用してコンテナインスタンスのポート 8080 でシンプルなウェブページを表示します。
AWS Management Console を使用してサンプルタスク定義を登録するには
- 
                ナビゲーションペインで、タスクの定義 を選択します。 
- 
                [Create new task definition] (新しいタスク定義の作成)、[Create new task definition with JSON] (JSON で新しいタスク定義を作成) の順に選択します。 
- 
                以下のタスク定義の例をコピーしてボックスに貼り付け、[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"] }
- 
                情報を確認し、[Create] (作成) を選択します。 
ステップ 3: タスク定義を使用してサービスを作成する
タスク定義を登録したら、それを使用してクラスターにタスクを配置できます。次の手順では、タスク定義を使用してサービスを作成し、クラスターに 1 つのタスクを配置します。
コンソールを使用してタスク定義からサービスを作成するには
- 
                ナビゲーションペインで、[Clusters] (クラスター) を選択してから、ステップ 1: クラスターを作成する で作成したクラスターを選択します。 
- 
                [Services] (サービス) タブから、[Create] (作成) を選択します。 
- 
                [Deployment configure] (デプロイ設定) で、アプリケーションのデプロイ方法を指定します。 - 
                        [Task definition] (タスク定義) で、ステップ 2: Windows タスク定義を登録する で作成したタスク定義を選択します。 
- 
                        [Service name] (サービス名) でサービスの名前を入力します。 
- 
                        [Desired tasks] (必要なタスク) に、1と入力します。 
 
- 
                        
- 
                [ネットワーク] で、セキュリティグループを作成するか、既存のグループを選択できます。使用するセキュリティグループに、前提条件 に一覧表示されているインバウンドルールがあることを確認してください。 
- 
                [作成] を選択します。 
ステップ 4: サービスを表示する
サービスによってクラスターでタスクが起動されたら、サービスを表示し、ブラウザで IIS テストページを開いてコンテナが実行中であることを確認できます。
注記
コンテナインスタンスで Windows コンテナベースレイヤーをダウンロードして抽出するまでに最大 15 分かかる場合があります。
サービスを表示するには
- コンソール (https://console.aws.amazon.com/ecs/v2 - ) を開きます。 
- 
                ナビゲーションペインで [Clusters] (クラスター) を選択してください。 
- 
                サービスを実行したクラスターを選択します。 
- 
                [サービス] タブの [サービス名] で、ステップ 3: タスク定義を使用してサービスを作成する に作成したサービスを選択します。 
- 
                [タスク] タブ > サービス内のタスクの順に選択します。 
- 
                [タスク] ページの [設定] セクションの [パブリック IP] で、[オープンアドレス] を選択します。 
ステップ 5: クリーンアップ
Amazon ECS クラスターの使用が終了したら、使用していないリソースに対する料金が発生しないよう、それに関連付けられたリソースをクリーンアップする必要があります。
タスク、サービス、クラスター、コンテナインスタンスなど、一部の Amazon ECS リソースは、Amazon ECS コンソールを使用してクリーンアップします。Amazon EC2 インスタンス、Elastic Load Balancing ロードバランサー、Auto Scaling グループなど他のリソースは、Amazon EC2 コンソールで手動でクリーンアップするか、それを作成した AWS CloudFormation スタックを削除することでクリーンアップする必要があります。
- 
                ナビゲーションペインで [Clusters] (クラスター) を選択してください。 
- 
                [クラスター] ページで、このチュートリアル用に作成したクラスターを選択します。 
- 
                [サービス] タブを選択します。 
- 
                サービス > [削除] の順に選択します。 
- 
                確認プロンプトで、delete (削除) と入力し、[Delete] (削除) を選択します。 サービスが削除されるまでお待ちください。 
- 
                [Delete Cluster] を選択します。確認プロンプトで、delete cluster-nameと入力し、[Delete] (削除) を選択します。クラスターを削除すると、Auto Scaling グループ、VPC、ロードバランサーなどを含むクラスターで作成された関連リソースがクリーンアップされます。