クラシックコンソールを使用して Windows コンテナで開始する
このチュートリアルでは、AWS Management Console で Amazon ECS 最適化 Windows サーバー AMI を使用して、Amazon ECS 上で Windows コンテナを Amazon ECS で実行する手順を説明します。
Windows コンテナインスタンスのクラスターを作成し、クラスターで 1 つ以上のコンテナインスタンスを起動します。次に、Windows コンテナイメージを使用するタスク定義を登録し、そのタスク定義を使用するサービスを作成して、コンテナが実行するサンプルのウェブページを表示します。詳細については、「Amazon EC2 Windows コンテナ」を参照してください。
トピック
ステップ 1: Windows クラスターを作成する
Windows コンテナの新しいクラスターを作成することができます。LinuxのAmazon ECS最適化AMIを使用するAmazon EC2インスタンスは、Windowsコンテナを実行することができず、その逆もできません。したがって、適切なタスクの配置は、WindowsとLinuxのコンテナインスタンスを別々のクラスターで実行することで最も効果的に実現します。このチュートリアルでは、windows
というクラスターを作成し、Windows コンテナのクラスターに 1 つ以上の Amazon EC2 インスタンスを登録します。
AWS Management Console を使用してクラスターを作成するには
Amazon ECS コンソール (https://console.aws.amazon.com/ecs/
) を開きます。 -
ナビゲーションペインで [Clusters] (クラスター) を選択します。
-
[Clusters] ページで、[Create Cluster] を選択します。
-
[EC2 Windows + Networking]、[Next step] の順に選択します。
-
[Cluster name] に、クラスターの名前を入力します (この例では、クラスターの名前は
windows
です)。最大 255 文字の英字 (大文字と小文字)、数字、ハイフン、アンダースコアを使用できます。 -
[インスタンスの設定] セクションで、以下のステップを実行します。
-
[Provisioning model] (プロビジョニングモデル) で、以下のインスタンスタイプのいずれかを選択します。
-
[オンデマンドインスタンス] – オンデマンドインスタンスでは、長期間のコミットメントや前払いなしに、時間単位で、コンピューティング性能に対して料金を支払います。
-
Spot - スポットインスタンスでは、スペアのAmazon EC2 のコンピューティング性能をオンデマンド価格の最大で 90% まで入札することができます。詳細については、「スポットインスタンス」を参照してください。
注記 スポットインスタンスは中断される可能性があります。中断できないアプリケーションに対しては、スポットインスタンスを使用しないことをお勧めします。詳細については、「スポットインスタンスの中断」を参照してください。
-
-
スポットインスタンスを使用する場合は、ここで説明している手順に従います。使用しない場合は、次の手順に進みます。
-
[Spot Instance allocation strategy] で、お客様のニーズに合った戦略を選択します。詳細については、「スポットフリートの配分戦略」を参照してください。
-
[Maximum bid price (per instance/hour)] で、入札価格を指定します。入札価格が、選択したインスタンスタイプのスポット料金より低い場合、スポットインスタンスは起動されません。
-
-
[EC2 インスタンスタイプ] ページで、インスタンスのハードウェア構成を選択します。選択したインスタンスタイプによって、タスクの実行に使用できるリソースが決まります。
-
[インスタンス数] で、クラスターに起動するAmazon EC2 インスタンスの数を選択します。
-
[EC2 AMI Id (EC2 AMI ID)] で、コンテナインスタンスに使用する Amazon ECS 最適化 AMI を選択します。使用可能な AMIs は、選択したリージョンとインスタンスタイプによって決まります。詳細については、「Amazon ECS に最適化された AMI」を参照してください。
-
[EBS storage (GiB) (EBS ストレージ (GiB)] で、コンテナインスタンスのデータストレージに使用する Amazon EBS ボリュームのサイズを選択します。データボリュームのサイズを増やしてイメージとコンテナのストレージを拡大できます。
-
[キーペア] で、RDPアクセスのためにコンテナインスタンスで 使用する Amazon EC2 キーペアを選択します。キーペアを指定しないと、RDP を使用してコンテナインスタンスに接続することはできません。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「Amazon EC2 のキーペア」を参照してください。
-
-
[Networking] セクションで、コンテナインスタンスを起動する VPC を設定します。デフォルトでは、クラスター作成ウィザードで作成される新しい VPC には、異なるアベイラビリティーゾーンの 2 つのサブネットと、ポート 80 でインターネットに開かれているセキュリティグループが設定されます。HTTP サービスには、この基本的な設定で十分です。ただし、これらの設定は以下のサブステップに従って変更できます。
-
[VPC] で、新しい VPC を作成するか、既存の VPC を選択します。
-
(オプション) 新しい VPC を作成することを選択した場合は、[CIDR Block] で VPC の CIDR ブロックを選択します。詳細については、Amazon VPC ユーザーガイドの「VPC とサブネット」を参照してください。
-
[Subnets] (サブネット) で、VPC に使用するサブネットを選択します。新しい VPC を作成することを選択した場合は、デフォルト設定をそのまま使用するか、ニーズに合わせて変更することができます。既存の VPC を使用することを選択した場合は、その VPC でクラスターに使用する 1 つ以上のサブネットを選択します。
-
[セキュリティグループ] で、クラスターのコンテナインスタンスにアタッチするセキュリティグループを選択します。新しいセキュリティグループを作成することを選択した場合は、受信トラフィックを許可する CIDR ブロックを指定できます。デフォルトのポート 0.0.0.0/0 はインターネットに開放されています。1 つのポートまたは連続した一連のポートをコンテナインスタンスで開くポートとして選択できます。より複雑なセキュリティグループルールの場合は、作成済みの既存のセキュリティグループを選択できます。
注記 新しいセキュリティグループを作成することを選択し、クラスターの作成後にルールを変更することもできます。詳細は、「Windows インスタンス用 Amazon EC2 ユーザーガイド」のWindows インスタンス用 Amazon EC2 セキュリティグループ」を参照してください。
-
[コンテナインスタンスの IAM ロール] セクションで、コンテナインスタンスで使用する IAM ロールを選択します。アカウントにコンソールの初回実行ウィザードで作成されている ecsInstanceRole がある場合は、それがデフォルトで選択されます。このロールがアカウントにない場合は、このロールを作成することを選択できます。または別の IAM; ロールを選択してコンテナインスタンスで使用することもできます。
重要 使用する IAM ロールには、
AmazonEC2ContainerServiceforEC2Role
管理ポリシーがアタッチされている必要があります。アタッチされていない場合、クラスターの作成時にエラーが発生します。適切な IAM アクセス許可を使用してコンテナインスタンスを起動しないと、Amazon ECS エージェントはクラスターに接続されません。詳細については、「Amazon ECS コンテナインスタンスの IAM ロール」を参照してください。 -
先ほど スポットインスタンス タイプを選択した場合、[Spot Fleet Role IAM role (スポットフリートロール IAM ロール)] セクションでは、IAM ロール
ecsSpotFleetRole
が作成されることが示されています。
-
-
左タグセクションでは、クラスターに関連付ける各タグのキーと値を指定します。詳細については、「Amazon ECS リソースにタグを付ける」を参照してください。
-
[ CloudWatch コンテナインサイト] セクションで、クラスターの コンテナ インサイト を有効にするかどうかを選択します。詳細については、「Amazon ECS CloudWatch コンテナインサイト」を参照してください。
-
[Create] を選択します。
注記 Windows コンテナインスタンスがクラスターに登録されるまでには最大 15 分かかる場合があります。
ステップ 2: Windows タスク定義を登録する
Amazon ECS クラスターで Windows コンテナを実行する前に、タスク定義を登録する必要があります。次のタスク定義の例では、microsoft/iis
コンテナイメージを使用してコンテナインスタンスのポート 8080 でシンプルなウェブページを表示します。
AWS Management Console を使用してサンプルタスク定義を登録するには
Amazon ECS コンソール (https://console.aws.amazon.com/ecs/
) を開きます。 -
ナビゲーションペインで、[タスク定義] を選択します。
-
[Task Definitions] ページで、[Create new Task Definition] を選択します。
-
[Select launch type compatibilities (起動タイプの互換性の選択)] ページで、[EC2]、[Next step (次のステップ)] の順に選択します。
-
ページの末尾までスクロールし、[Configure via JSON] を選択します。
-
以下のサンプルタスク定義 JSON をテキスト領域に貼り付け (その領域にあらかじめ入力されている JSON を置き換え)、[Save] を選択します。
{ "family": "windows-simple-iis", "containerDefinitions": [ { "name": "windows_sample_app", "image": "mcr.microsoft.com/windows/servercore/iis", "cpu": 512, "entryPoint":["powershell", "-Command"], "command":["New-Item -Path C:\\inetpub\\wwwroot\\index.html -ItemType 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>' -Force ; C:\\ServiceMonitor.exe w3svc"], "portMappings": [ { "protocol": "tcp", "containerPort": 80, "hostPort": 8080 } ], "memory": 768, "essential": true } ] }
-
情報を確認し、[Create] (作成) を選択します。
AWS CLI を使用してサンプルタスク定義を登録するには
-
windows-simple-iis.json
という名前のファイルを作成します。 -
このファイルを任意のテキストエディタで開き、上のサンプルの JSON を追加して保存します。
-
AWS CLI を使用し、次のコマンドを実行して Amazon ECS にタスク定義を登録します。
注記 Windows クラスターがあるリージョンと同じリージョンを使うように AWS CLI が設定されていることを確認します。そうでない場合は、
--region
オプションをコマンドに追加します。your_cluster_region
aws ecs register-task-definition --cli-input-json file://
windows-simple-iis.json
ステップ 3: タスク定義を使用してサービスを作成する
タスク定義を登録したら、それを使用してクラスターにタスクを配置できます。次の手順では、タスク定義を使用してサービスを作成し、クラスターに 1 つのタスクを配置します。
コンソールを使用してタスク定義からサービスを作成するには
-
[Task Definition: windows-simple-iis] 登録確認ページで、[Actions]、[Create Service] の順に選択します。
-
[Create Service] ページで、以下の情報を入力し、[Create service] を選択します。
-
起動タイプ:
EC2
-
Cluster: windows
-
Service name: windows-simple-iis
-
[Service type] (サービスタイプ):
REPLICA
-
Number of tasks: 1
-
デプロイタイプ: ローリング更新
-
AWS CLI でタスク定義からサービスを作成するには
-
AWS CLI で、次のコマンドを実行してサービスを作成します。
aws ecs create-service --cluster
windows
--task-definitionwindows-simple-iis
--desired-count1
--service-namewindows-simple-iis
ステップ 4: サービスを表示する
サービスによってクラスターでタスクが起動されたら、サービスを表示し、ブラウザで IIS テストページを開いてコンテナが実行中であることを確認できます。
コンテナインスタンスで Windows コンテナベースレイヤーをダウンロードして抽出するまでに最大 15 分かかる場合があります。
サービスを表示するには
Amazon ECS コンソール (https://console.aws.amazon.com/ecs/
) を開きます。 -
[Clusters] ページで、[windows] クラスターを選択します。
-
[Services] タブで、[windows-simple-iis] サービスを選択します。
-
[Service: windows-simple-iis] ページで、サービスのタスクのタスク ID を選択します。
-
[Task] ページで、
iis
コンテナを展開してその情報を表示します。 -
コンテナの [Network bindings] で、[External Link] の IP アドレスとポートの組み合わせのリンクを確認します。そのリンクを選択してブラウザで IIS テストページを開きます。