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である必要があります。
-
ユーザーが管理者権限を持っていることが必要です。詳細については、「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] (タグ) を展開し、タグを設定します。
[タグの追加] [タグの追加] を選択して、以下を実行します。
-
[キー] にはキー名を入力します。
-
[値] にキー値を入力します。
[タグを削除] タグのキーと値の右側にある [削除] を選択します。
-
-
[Create] (作成) を選択します。
ステップ 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と入力します。
-
-
[ネットワーク] で、セキュリティグループを作成するか、既存のグループを選択できます。使用するセキュリティグループに、前提条件 に一覧表示されているインバウンドルールがあることを確認してください。
-
[Create] (作成) を選択します。
ステップ 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、ロードバランサーなどを含むクラスターで作成された関連リソースがクリーンアップされます。