Amazon Elastic Container Service
開発者ガイド (API バージョン 2014-11-13)

Windows コンテナの開始方法

このチュートリアルでは、手動で Windows コンテナを Amazon ECS で実行する手順について説明します。Windows コンテナインスタンスのクラスターを作成し、クラスターで 1 つ以上のコンテナインスタンスを起動します。次に、Windows コンテナイメージを使用するタスク定義を登録し、そのタスク定義を使用するサービスを作成して、コンテナが実行するサンプルのウェブページを表示します。

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

Windows コンテナの新しいクラスターを作成する必要があります。Linux コンテナインスタンスは Windows コンテナで実行できず、Windows コンテナインスタンスは Linux コンテナで実行できません。したがって、適切なタスク配置を達成するには、Windows コンテナインスタンスと Linux コンテナインスタンスを別々のクラスターで実行します。このチュートリアルでは、Windows コンテナ用の windows というクラスターを作成します。

AWS マネジメントコンソール を使用してクラスターを作成するには

  1. https://console.aws.amazon.com/ecs/ にある Amazon ECS コンソールを開きます。

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

  3. [Clusters] ページで、[Create Cluster] を選択します。

  4. [EC2 Windows + Networking]、[Next step] の順に選択します。

  5. [Cluster name] に、クラスターの名前を入力します (この例では、クラスターの名前は windows です)。最大 255 文字の英字 (大文字と小文字)、数字、ハイフン、アンダースコアを使用できます。

  6. [Create an empty cluster]、[Create] の順に選択します。

AWS CLI を使用してクラスターを作成するには

  • 以下のコマンドを使用して AWS CLI でクラスターを作成することもできます。

    aws ecs create-cluster --cluster-name windows

ステップ 2: Windows コンテナインスタンスをクラスターで起動する

このトピックで説明しているように、AWS マネジメントコンソールを使用して Windows コンテナインスタンスを起動できます。開始する前に、必ず「Amazon ECS でのセットアップ」の手順を完了してください。インスタンスを起動したら、そのインスタンスを使用してタスクを実行できます。

Windows コンテナインスタンスを起動するには

  1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。

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

  3. コンソールダッシュボードで、[Launch Instance] を選択します。

  4. [Amazon マシンイメージ (AMI)] ページに、Windows Amazon ECS に最適化された AMI (推奨) または Amazon ECS 仕様をサポートする別の Windows AMI を選択するオプションがあります。

    1. オプション 1: Windows Amazon ECS 最適化 AMI を使用する。[コミュニティ AMI] を選択します。

      [Search community AMIs] フィールドに ECS_Optimized と入力し、Enter キーを押します。Windows_Server-2016-English-Full-ECS_Optimized-2018.07.25 AMI の横にある [Select] を選択します。

      参考までに、現在のリージョン別の Amazon ECS-optimized Windows AMI ID を以下に示します。

      サービス対象 AMI ID
      us-east-2 ami-7cecd619
      us-east-1 ami-884e41f7
      us-west-2 ami-b81048c0
      us-west-1 ami-034ba660
      eu-west-2 ami-702fc517
      eu-west-3 ami-d173c3ac
      eu-west-1 ami-4ff7eda5
      eu-central-1 ami-8017156b
      ap-northeast-2 ami-725fe81c
      ap-northeast-1 ami-005621ed
      ap-southeast-2 ami-26bd1b44
      ap-southeast-1 ami-dabdfb30
      ca-central-1 ami-adbb36c9
      ap-south-1 ami-55e7d53a
      sa-east-1 ami-16eacb7a
      us-gov-west-1 ami-abb02cca
    2. オプション 2: 別の Windows AMI を使用する。選択する Windows AMI の横にある [選択] を選択します。

  5. [Choose an Instance Type] ページで、インスタンスのハードウェア構成を選択できます。デフォルトでは、t2.micro インスタンスタイプが選択されます。選択したインスタンスタイプによって、タスクの実行に使用できるリソースが決まります。

  6. [Next: Configure Instance Details] を選択します。

  7. [Configure Instance Details] ページで、インスタンスをパブリックインターネットからアクセス可能にするかどうかに応じて、[Auto-assign Public IP] チェックボックスを設定します。インスタンスをインターネットからアクセス可能にする場合は、[Auto-assign Public IP] フィールドが [Enable] に設定されていることを確認します。インスタンスをインターネットからアクセス不可にする場合は、[Disable] を選択します。

    注記

    コンテナインスタンスには、Amazon ECS サービスエンドポイントと通信するために外部ネットワークアクセスが必要なため、コンテナインスタンスにパブリック IP アドレスがない場合は、NAT (ネットワークアドレス変換) を使用してこのアクセスを提供する必要があります。詳細については、Amazon VPC ユーザーガイドの「NAT ゲートウェイおよびこのガイドの「HTTP プロキシ設定を参照してください。詳細については、「チュートリアル: クラスターのパブリックサブネットとプライベートサブネットを持つ VPC を作成する」を参照してください。

  8. [Configure Instance Details] ページで、IAM role] の値 に「Amazon ECS でのセットアップ」でコンテナインスタンス用に作成した ecsInstanceRoleを選択します。

    重要

    適切な IAM アクセス権限を使用してコンテナインスタンスを起動しないと、Amazon ECS エージェントはクラスターに接続されません。詳細については、「Amazon ECS コンテナインスタンスの IAM ロール」を参照してください。

  9. Amazon ECS 最適化 AMI を使用している場合は、[高度な詳細] セクションを展開し、提供されたユーザーデータの PowerShell スクリプトを [ユーザーデータ] フィールドに貼り付けます。デフォルトでは、このスクリプトによって、前に作成した windows クラスターにコンテナインスタンスが登録されます。windows 以外のクラスターで起動するには、以下のスクリプトで赤のテキストを、起動先のクラスターの名前に置き換えます。

    Amazon ECS 最適化 AMI を使用していない場合は、次のステップに進みます。

    注記

    この -EnableTaskIAMRole オプションは、タスクの IAM ロールを有効にするために必要です。詳細については、「Windows タスク用の IAM ロール」を参照してください。

    <powershell> Import-Module ECSTools Initialize-ECSAgent -Cluster 'windows' -EnableTaskIAMRole </powershell>
  10. [次の手順: ストレージの追加] を選択します。

  11. [Add Storage] ページで、コンテナインスタンスのストレージを設定します。Windows OS およびコンテナイメージはきわめて大きい (Windows サーバーのコアベースレイヤーは約 9 GiB) ため、Amazon ECS-optimized Windows AMI で使用するデフォルトの 50 GiB ボリュームサイズはいくつかのイメージやコンテナだけですぐに満杯になります。より大きなルートボリュームサイズ (200 GiB など) を使用することで、インスタンスのコンテナとイメージの数を増やすことができます。

    オプションで、アプリケーションのニーズに合わせてインスタンスのボリュームサイズを増減できます。

  12. [Review and Launch] を選択します。

  13. [Review Instance Launch] ページの [Security Groups] に、ウィザードで作成および選択したセキュリティグループが表示されます。デフォルトでは、RDP 接続用のポートは 3389 です。インターネットからのインバウンドトラフィックをコンテナで受信する場合は、そのためのポートも開きます。

    1. [Edit security groups] を選択します。

    2. [Configure Security Group] ページで、[Create a new security group] オプションが選択されていることを確認します。

    3. コンテナに必要と思われるその他のポートのルールを追加し、[確認と作成] を選択します。このウォークスルーの後半のサンプルのタスク定義ではポート 8080 を使用するため、それを [任意の場所] に対して開きます。

  14. [Review Instance Launch] ページで、[Launch] を選択します。

  15. [Select an existing key pair or create a new key pair] ダイアログボックスで、[Choose an existing key pair] を選択し、セットアップ時に作成したキーペアを選択します。

    準備ができたら、確認フィールドを選択してから、[Launch Instances] を選択します。

  16. インスタンスを起動することを知らせる確認ページが表示されます。[View Instances] を選択して確認ページを閉じ、コンソールに戻ります。

  17. [Instances] 画面でインスタンスのステータスを表示できます。インスタンスはすぐに起動します。インスタンスを起動した直後のステータスは pending です。インスタンスを起動した後は、状態が running に変わり、パブリック DNS 名を受け取ります ([Public DNS] 列が非表示になっている場合は、[Show/Hide] アイコンを選択して [Public DNS] を選択します)。

  18. インスタンスが起動したら、Amazon ECS コンソールでクラスターを表示し、クラスターにコンテナインスタンスが登録されていることを確認します。

    注記

    Windows コンテナインスタンスがクラスターに登録されるまでには最大 15 分かかる場合があります。

ステップ 3 (省略可能): Amazon ECS コンテナエージェントのインストール

Windows インスタンスを作成するときに Amazon ECS に最適化された AMI 以外の AMI を使用した場合は、Amazon ECS コンテナエージェントを手動でインストールする必要があります。

最新の Amazon ECS コンテナエージェントファイルを、リージョン別に以下に示します。

サービス対象 リージョン名 コンテナエージェント コンテナエージェントの署名
us-east-2 米国東部 (オハイオ) ECS コンテナエージェント PGP 署名
us-east-1 米国東部(バージニア北部) ECS コンテナエージェント PGP 署名
us-west-2 米国西部 (オレゴン) ECS コンテナエージェント PGP 署名
us-west-1 米国西部 (北カリフォルニア) ECS コンテナエージェント PGP 署名
eu-west-3 EU (パリ) ECS コンテナエージェント PGP 署名
eu-west-2 欧州 (ロンドン) ECS コンテナエージェント PGP 署名
eu-west-1 欧州 (アイルランド) ECS コンテナエージェント PGP 署名
eu-central-1 欧州 (フランクフルト) ECS コンテナエージェント PGP 署名
ap-northeast-2 アジアパシフィック (ソウル) ECS コンテナエージェント PGP 署名
ap-northeast-1 アジアパシフィック (東京) ECS コンテナエージェント PGP 署名
ap-southeast-2 アジアパシフィック (シドニー) ECS コンテナエージェント PGP 署名
ap-southeast-1 アジアパシフィック (シンガポール) ECS コンテナエージェント PGP 署名
ca-central-1 カナダ (中部) ECS コンテナエージェント PGP 署名
ap-south-1 アジアパシフィック (ムンバイ) ECS コンテナエージェント PGP 署名
sa-east-1 南米 (サンパウロ) ECS コンテナエージェント PGP 署名
us-gov-west-1 AWS GovCloud (米国) ECS コンテナエージェント PGP 署名
cn-north-1 中国 (北京) ECS コンテナエージェント PGP 署名

インスタンスに Amazon ECS コンテナエージェントを手動でインストールするには

  1. インスタンスに接続します。

  2. Docker をインストールし、サービスとして実行します。詳細については、Install Docker Enterprise Edition for Windows Server を参照してください。

  3. Amazon ECS コンテナエージェントはサービスまたはプロセスとして実行できます。

    1. オプション 1: コンテナエージェントをサービスとして実行する。PowerShell を開き、次の一連のコマンドを実行します。$agentZipUri をリージョン固有の URL に置き換えます。

      # Set up the file directories the Amazon ECS container agent will use. PS C:\> New-Item -Type directory -Path ${env:ProgramFiles}\Amazon\ECS -Force PS C:\> New-Item -Type directory -Path ${env:ProgramData}\Amazon\ECS -Force PS C:\> New-Item -Type directory -Path ${env:ProgramData}\Amazon\ECS\data -Force # Set up the configuration. PS C:\> $ecsExeDir = "${env:ProgramFiles}\Amazon\ECS" # Replace "windows" in the following command with your own cluster name PS C:\> [Environment]::SetEnvironmentVariable("ECS_CLUSTER", "windows", "Machine") PS C:\> [Environment]::SetEnvironmentVariable("ECS_LOGFILE", "${env:ProgramData}\Amazon\ECS\log\ecs-agent.log", "Machine") PS C:\> [Environment]::SetEnvironmentVariable("ECS_DATADIR", "${env:ProgramData}\Amazon\ECS\data", "Machine") # Download the container agent. # Replace the "agentVersion" with the version of the container agent you want to download. For example, "latest" will download the most current stable version. PS C:\> $agentVersion = "latest" # Replace the "agentZipUri" with the URL of the regional bucket you want to download the Amazon ECS container agent from. PS C:\> $agentZipUri = "http://s3.amazonaws.com/amazon-ecs-agent-us-east-1/ecs-agent-windows-$agentVersion.zip" PS C:\> $zipFile = "${env:TEMP}\ecs-agent.zip" PS C:\> Invoke-RestMethod -OutFile $zipFile -Uri $agentZipUri # Put the executables in the executable directory. PS C:\> Expand-Archive -Path $zipFile -DestinationPath $ecsExeDir -Force PS C:\> Set-Location ${ecsExeDir} # Set $EnableTaskIAMRoles to $true to enable task IAM roles. # Note that enabling IAM roles will make port 80 unavailable for tasks. PS C:\> [bool]$EnableTaskIAMRoles = $false PS C:\> if (${EnableTaskIAMRoles}) {.\hostsetup.ps1} # Install the container agent service. PS C:\> New-Service -Name "AmazonECS" -BinaryPathName "$ecsExeDir\amazon-ecs-agent.exe -windows-service" -DisplayName "Amazon ECS" -Description "Amazon ECS service runs the Amazon ECS agent" -DependsOn Docker -StartupType Manual PS C:\> sc.exe failure AmazonECS reset=300 actions=restart/5000/restart/30000/restart/60000 PS C:\> sc.exe failureflag AmazonECS 1 # Start the AmazonECS service. PS C:\> Start-Service AmazonECS
    2. オプション 2: コンテナエージェントをプロセスとして実行する。PowerShell を開き、次の一連のコマンドを実行します。

      PS C:\> # Set up directories the agent uses PS C:\> New-Item -Type directory -Path ${env:ProgramFiles}\Amazon\ECS -Force PS C:\> New-Item -Type directory -Path ${env:ProgramData}\Amazon\ECS -Force PS C:\> New-Item -Type directory -Path ${env:ProgramData}\Amazon\ECS\data -Force PS C:\> # Set up configuration PS C:\> $ecsExeDir = "${env:ProgramFiles}\Amazon\ECS" PS C:\> # Replace "windows" in the following command with your own cluster name PS C:\> [Environment]::SetEnvironmentVariable("ECS_CLUSTER", "windows", "Machine") PS C:\> [Environment]::SetEnvironmentVariable("ECS_LOGFILE", "${env:ProgramData}\Amazon\ECS\log\ecs-agent.log", "Machine") PS C:\> [Environment]::SetEnvironmentVariable("ECS_DATADIR", "${env:ProgramData}\Amazon\ECS\data", "Machine") PS C:\> # Set this environment variable to "true" to enable IAM roles. Note that enabling IAM roles will make port 80 unavailable for tasks. PS C:\> [Environment]::SetEnvironmentVariable("ECS_ENABLE_TASK_IAM_ROLE", "false", "Machine") # Download the container agent. # Replace the "agentVersion" with the version of the container agent you want to download. For example, "latest" will download the most current stable version. PS C:\> $agentVersion = "latest" # Replace the "agentZipUri" with the URL of the regional bucket you want to download the Amazon ECS container agent from. PS C:\> $agentZipUri = "http://s3.amazonaws.com/amazon-ecs-agent-us-east-1/ecs-agent-windows-$agentVersion.zip" PS C:\> $zipFile = "${env:TEMP}\ecs-agent.zip" PS C:\> Invoke-RestMethod -OutFile $zipFile -Uri $agentZipUri PS C:\> # Put the executables in the executable directory. PS C:\> Expand-Archive -Path $zipFile -DestinationPath $ecsExeDir -Force PS C:\> # Run the container agent. PS C:\> cd '$ecsExeDir'; .\amazon-ecs-agent.ps1

    注記

    Windows インスタンスを再起動すると、${env:TEMP} ディレクトリ内のファイルは削除されます。この問題が発生した場合は、再度 zip ファイルをダウンロードする必要があります。

  4. (省略可能) Windows バイナリおよび PGP 署名を使用して、コンテナエージェントファイルの有効性を検証できます。

    1. Windows バイナリ署名を取得します。

      PS C:\> $sig=Get-AuthenticodeSignature -FilePath ${env:ProgramFiles}\Amazon\ECS\amazon-ecs-agent.exe
    2. Windows バイナリ署名を検証します。

      PS C:\> $sig.Status

      正常な出力:

      有効
      PS C:\> $sig.SignerCertificate.Subject

      正常な出力:

      CN=Amazon Services LLC, OU=Software Services, O=Amazon Services LLC, L=Seattle, S=Washington, C=US
    3. GnuPG をダウンロードし、インストールします。Windows の場合は、GnuPG ウェブサイトから Windows のシンプルなインストーラをダウンロードして使用します。GNUpg の詳細については、「GnuPG ウェブサイト」を参照してください。

    4. Amazon ECS PGP パブリックキーを取得します。コマンドを使用してこのキーを取得するか、手動でキーを作成してからインポートします。

      1. オプション 1: 次のコマンドを使用してキーを取得します。

        gpg --keyserver hkp://keys.gnupg.net --recv BCE9D9A42D51784F
      2. オプション 2: 次の Amazon ECS PGP パブリックキーの内容でファイルを作成してからインポートします。

        -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2 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 =Gi5D -----END PGP PUBLIC KEY BLOCK-----

        Amazon ECS PGP パブリックキーの詳細を参照用として以下に示します。

        キー ID: BCE9D9A42D51784F タイプ: RSA サイズ: 4096/4096 有効期限: なし ユーザー ID: Amazon ECS キーのフィンガープリント: F34C 3DDA E729 26B0 79BE AEC6 BCE9 D9A4 2D51 784F

        次のコマンドを使用して、Amazon ECS PGP パブリックキーをインポートします。

        gpg --import <public_key_filename>
    5. ECS コンテナエージェント署名をダウンロードします。ECS コンテナエージェント署名は、ascii でデタッチされた PGP 署名であり、拡張子が .asc のファイルに保存されています。この署名ファイルには、対応する実行可能ファイルと同じ名前がつけられており、拡張子は .asc です。

      PS C:\> Invoke-WebRequest -OutFile ecs-agent.asc http://s3.amazonaws.com/amazon-ecs-agent-us-east-1/ecs-agent-windows-latest-zip.asc
    6. 署名を検証します。

      gpg --verify ecs-agent.asc ${env:TEMP}\ecs-agent.zip

      正常な出力:

      gpg: Signature made Wed 16 May 2018 08:21:06 PM UTC using RSA key ID 710E61AF gpg: Good signature from "Amazon ECS <ecs-security@amazon.com>" [unknown] gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: F34C 3DDA E729 26B0 79BE AEC6 BCE9 D9A4 2D51 784F Subkey fingerprint: D64B B6F9 0CF3 77E9 B5FB 346F 50DE CCC4 710E 61AF

      注記

      出力に警告が表示されることがありますが、問題ありません。これは、個人 PGP キー (持っている場合) と Amazon ECS PGP キーの間に信頼チェーンがないために表示されます。詳細については、「Web of trust」を参照してください。

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

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

AWS マネジメントコンソール を使用してサンプルタスク定義を登録するには

  1. https://console.aws.amazon.com/ecs/ にある Amazon ECS コンソールを開きます。

  2. ナビゲーションペインで、[Task Definitions] を選択します。

  3. [Task Definitions] ページで、[Create new Task Definition] を選択します。

  4. ページの末尾までスクロールし、[Configure via JSON] を選択します。

  5. 以下のサンプルタスク定義 JSON をテキスト領域に貼り付け (その領域にあらかじめ入力されている JSON を置き換え)、[Save] を選択します。

    { "family": "windows-simple-iis", "containerDefinitions": [ { "name": "windows_sample_app", "image": "microsoft/iis", "cpu": 100, "entryPoint":["powershell", "-Command"], "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"], "portMappings": [ { "protocol": "tcp", "containerPort": 80, "hostPort": 8080 } ], "memory": 500, "essential": true } ] }
  6. 情報を確認し、[Create] を選択します。

AWS CLI でサンプルタスク定義を登録するには

  1. windows-simple-iis.json という名前のファイルを作成します。

  2. このファイルを任意のテキストエディタで開き、上のサンプルの JSON を追加して保存します。

  3. AWS CLI を使用し、次のコマンドを実行して Amazon ECS にタスク定義を登録します。

    注記

    Windows クラスターがあるリージョンと同じリージョンを使うように AWS CLI が設定されていることを確認します。そうでない場合は、--region your_cluster_region オプションをコマンドに追加します。

    aws ecs register-task-definition --cli-input-json file://windows-simple-iis.json

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

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

コンソールを使用してタスク定義からサービスを作成するには

  1. [Task Definition: windows-simple-iis] 登録確認ページで、[Actions]、[Create Service] の順に選択します。

  2. [Create Service] ページで、以下の情報を入力し、[Create service] を選択します。

    • Cluster: windows

    • Number of tasks: 1

    • Service name: windows-simple-iis

AWS CLI でタスク定義からサービスを作成するには

  • AWS CLI で、次のコマンドを実行してサービスを作成します。

    aws ecs create-service --cluster windows --task-definition windows-simple-iis --desired-count 1 --service-name windows-simple-iis

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

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

注記

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

サービスを表示するには

  1. https://console.aws.amazon.com/ecs/ にある Amazon ECS コンソールを開きます。

  2. [Clusters] ページで、[windows] クラスターを選択します。

  3. [Services] タブで、[windows-simple-iis] サービスを選択します。

  4. [Service: windows-simple-iis] ページで、サービスのタスクのタスク ID を選択します。

  5. [Task] ページで、iis コンテナを展開してその情報を表示します。

  6. コンテナの [Network bindings] で、[External Link] の IP アドレスとポートの組み合わせのリンクを確認します。そのリンクを選択してブラウザで IIS テストページを開きます。

     Windows のシンプルな IIS テストページ