クラスターへの外部インスタンスの登録 - Amazon Elastic Container Service

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

クラスターへの外部インスタンスの登録

Amazon ECS クラスターに登録する外部インスタンスごとに、SSM Agent、Amazon ECS コンテナエージェント、および Docker がインストールされている必要があります。外部インスタンスを Amazon ECS クラスターに登録するには、まず AWS Systems Manager マネージドインスタンスとして登録する必要があります。インストールスクリプトは、Amazon ECS コンソールで数回クリックするだけで作成できます。インストールスクリプトには、Systems Manager のアクティベーションキーと、必要なエージェントと Docker をインストールするためのコマンドが含まれています。インストールと登録の手順を完了するには、オンプレミスのサーバーまたは VM でインストールスクリプトを実行する必要があります。

注記

Linux の外部インスタンスをクラスターに登録する前に、/etc/ecs/ecs.config ファイルを作成し、必要なコンテナエージェント設定パラメータを追加します。外部インスタンスをクラスターに登録した後は、これを行うことはできません。詳細については、「Amazon ECS コンテナエージェントの設定」を参照してください。

AWS Management Console
  1. コンソール (https://console.aws.amazon.com/ecs/v2) を開きます。

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

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

  4. リポジトリの [クラスター] ページで、外部インスタンスを登録するクラスターを選択します。

  5. [Cluster : name] (クラスター: 名前) のページで、[Infrastructure] (インフラストラクチャ) タブを選択します。

  6. [Register external instances] (外部インスタンスの登録) ページで、次のステップを完了します。

    1. [Activation key duration (in days)] (アクティベーションキーの期間 (日数)) を使用する場合、アクティベーションキーがアクティブなままになる日数を入力します。入力した日数が経過すると、外部インスタンスの登録時にキーが機能しなくなります。

    2. インスタンス数を使用する場合 アクティベーションキーを使用してクラスターに登録する外部インスタンスの数を入力します。

    3. インスタンスロールを使用する場合、外部インスタンスに関連付ける IAM ロールを選択します。ロールがまだ作成されていない場合は、新規ロールの作成を選択すると、Amazon ECS がユーザーに代わってロールを作成します。外部インスタンスに必要な IAM 許可の詳細については、「ECS Anywhere IAM ロール」を参照してください。

    4. 登録コマンドをコピーします。このコマンドは、クラスターに登録する各外部インスタンスで実行する必要があります。

      重要

      スクリプトの bash 部分は root として実行する必要があります。コマンドが root として実行されない場合、エラーが返されます。

    5. [閉じる] を選びます。

AWS CLI for Linux operating systems
  1. Systems Manager のアクティベーションペアを作成します。これは、Systems Manager が管理するインスタンスのアクティベーションに使用されます。出力には、ActivationIdおよびActivationCodeが含まれます。これらは、後のステップで使用します。作成した ECS Anywhere IAM ロールを指定していることを確認します。詳細については、「ECS Anywhere IAM ロール」を参照してください。

    aws ssm create-activation --iam-role ecsAnywhereRole | tee ssm-activation.json
  2. オンプレミスのサーバーまたは仮想マシン (VM) で、インストールスクリプトをダウンロードします。

    curl --proto "https" -o "/tmp/ecs-anywhere-install.sh" "https://amazon-ecs-agent.s3.amazonaws.com/ecs-anywhere-install-latest.sh"
  3. (オプション) オンプレミスサーバーまたは仮想マシン (VM) で、次の手順を使用して、スクリプト署名ファイルを使用してインストールスクリプトを確認します。

    1. GnuPG をダウンロードし、インストールします。GNUpg の詳細については、「GnuPG ウェブサイト」を参照してください。Linux システムの場合は、お使いの Linux ディストリビューションでパッケージマネージャーを使用して gpg をインストールします。

    2. Amazon ECS PGP パブリックキーを取得します。

      gpg --keyserver hkp://keys.gnupg.net:80 --recv BCE9D9A42D51784F
    3. インストールスクリプトの署名をダウンロードします。署名は、ASCII でデタッチ済みの PGP 署名で、拡張子が .asc のファイルに保存されています。

      curl --proto "https" -o "/tmp/ecs-anywhere-install.sh.asc" "https://amazon-ecs-agent.s3.amazonaws.com/ecs-anywhere-install-latest.sh.asc"
    4. キーを使用してインストールスクリプトファイルを確認します。

      gpg --verify /tmp/ecs-anywhere-install.sh.asc /tmp/ecs-anywhere-install.sh

      予想される出力は次のようになります。

      gpg: Signature made Tue 25 May 2021 07:16:29 PM UTC gpg: using RSA key 50DECCC4710E61AF 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
  4. オンプレミスのサーバーまたは仮想マシン (VM) で、インストールスクリプトを実行します。クラスター名、リージョン、Systems Manager のアクティベーション ID とアクティベーションコードを、最初のステップで指定します。

    sudo bash /tmp/ecs-anywhere-install.sh \ --region $REGION \ --cluster $CLUSTER_NAME \ --activation-id $ACTIVATION_ID \ --activation-code $ACTIVATION_CODE

    オンプレミスサーバーまたは仮想マシン (VM) で、GPU ワークロード用の NVIDIA ドライバーがインストールされている場合は、インストールスクリプトに --enable-gpu フラグを設定する必要があります。このフラグを指定すると、インストールスクリプトは NVIDIA ドライバが実行中であることを確認してから、Amazon ECS タスクを実行するために必要な構成変数を追加します。GPU ワークロードの実行と、タスク定義での GPU 要件の指定の詳細については、「タスク定義での GPU の指定」を参照してください。

    sudo bash /tmp/ecs-anywhere-install.sh \ --region $REGION \ --cluster $CLUSTER_NAME \ --activation-id $ACTIVATION_ID \ --activation-code $ACTIVATION_CODE \ --enable-gpu

既存の外部インスタンスを別のクラスターに登録するには、次のステップを実行します。

既存の外部インスタンスを別のクラスターに登録するには
  1. Amazon ECS コンテナエージェントを停止します。

    sudo systemctl stop ecs.service
  2. /etc/ecs/ecs.configファイルとECS_CLUSTER行を編集して、クラスター名が外部インスタンスを登録するクラスターの名前と一致していることを確認します。

  3. 既存の Amazon ECS エージェントデータを削除します。

    sudo rm /var/lib/ecs/data/agent.db
  4. Amazon ECS コンテナエージェントを開始する

    sudo systemctl start ecs.service
AWS CLI for Windows operating systems
  1. Systems Manager のアクティベーションペアを作成します。これは、Systems Manager が管理するインスタンスのアクティベーションに使用されます。出力には、ActivationIdおよびActivationCodeが含まれます。これらは、後のステップで使用します。作成した ECS Anywhere IAM ロールを指定していることを確認します。詳細については、「ECS Anywhere IAM ロール」を参照してください。

    aws ssm create-activation --iam-role ecsAnywhereRole | tee ssm-activation.json
  2. オンプレミスのサーバーまたは仮想マシン (VM) で、インストールスクリプトをダウンロードします。

    Invoke-RestMethod -URI "https://amazon-ecs-agent.s3.amazonaws.com/ecs-anywhere-install.ps1" -OutFile “ecs-anywhere-install.ps1”
  3. (オプション) Powershell スクリプトは Amazon によって署名されているため、Windows は同じ場所で証明書の検証を自動的に実行します。手動で検証を実行する必要はありません。

    証明書を手動で検証するには、ファイルを右クリックしてプロパティに移動し、[Digital Signatures] (デジタル署名) タブを使用して詳細を取得します。

    このオプションは、ホストが証明書ストアに証明書がある場合にのみ使用できます。

    検証の結果、次のような情報が返されます。

    # Verification (PowerShell) Get-AuthenticodeSignature -FilePath .\ecs-anywhere-install.ps1 SignerCertificate Status Path ----------------- ------ ---- EXAMPLECERTIFICATE Valid ecs-anywhere-install.ps1 ... Subject : CN="Amazon Web Services, Inc.",... ----
  4. オンプレミスのサーバーまたは仮想マシン (VM) で、インストールスクリプトを実行します。クラスター名、リージョン、Systems Manager のアクティベーション ID とアクティベーションコードを、最初のステップで指定します。

    .\ecs-anywhere-install.ps1 -Region $Region -Cluster $Cluster -ActivationID $ActivationID -ActivationCode $ActivationCode
  5. Amazon ECS コンテナエージェントが実行されていることを確認します。

    Get-Service AmazonECS Status Name DisplayName ------ ---- ----------- Running AmazonECS Amazon ECS

既存の外部インスタンスを別のクラスターに登録するには、次のステップを実行します。

既存の外部インスタンスを別のクラスターに登録するには
  1. Amazon ECS コンテナエージェントを停止します。

    Stop-Service AmazonECS
  2. クラスター名が外部インスタンスを登録するクラスターの名前と一致するように ECS_CLUSTER パラメータを変更します。

    [Environment]::SetEnvironmentVariable("ECS_CLUSTER", $ECSCluster, [System.EnvironmentVariableTarget]::Machine)
  3. 既存の Amazon ECS エージェントデータを削除します。

    Remove-Item -Recurse -Force $env:ProgramData\Amazon\ECS\data\*
  4. Amazon ECS コンテナエージェントを開始する

    Start-Service AmazonECS

AWS CLI を使用して、インストールスクリプトを実行して外部インスタンスの登録プロセスを完了する前に、Systems Manager のアクティベーションを作成できます。