ECS Exec を使用してコマンド実行 - Amazon Elastic Container Service

ECS Exec を使用してコマンド実行

Amazon ECS Exec を使用して、コンテナに関連する診断情報を収集し、コンテナのライフサイクル全体で発生するエラーのトラブルシューティングを行うことができます。

前提条件

ECS Exec の使用を開始する前に、次の操作が完了していることを確認してください。

  • 考慮事項を確認します。詳細については、考慮事項 を参照してください。

  • タスクとサービスに対する ECS Exec を設定する 詳細については、ECS Exec の設定を参照してください。

  • AWS CLI をインストールして設定します。詳細については、「AWS CLI の使用を開始する」を参照してください。

  • AWS CLI のセッションマネージャープラグインをインストールします。詳細については、に セッション マネージャー プラグインのインストールAWS CLI を参照してください。

  • 適切なアクセス許可を持つタスクロールを設定します。ECS Exec の適切なアクセス許可のあるタスクロールを使用する必要があります。詳細については、「タスク IAM ロール」を参照してください。

  • バージョンの要件を確認します。ECS Exec には、タスクが Amazon EC2 でホストされているか AWS Fargate でホストされているかに応じて、バージョン要件があります:

    • Amazon EC2 を使用している場合は、2021 年 1 月 20 日以降にリリースされた Amazon ECS 最適化 AMI を、エージェントバージョン 1.50.2 以上で使用する必要があります。詳細については、Amazon ECS 最適化 AMI を参照してください。

    • AWS Fargate を使用している場合、プラットフォームバージョン 1.4.0 以上 (Linux) または 1.0.0 (Windows) を使用する必要があります。詳細については、の「AWS Fargateプラットフォームバージョン」を参照してください。

サービスタスクにコンソールを使用する

コンソールを使用して、ECS Exec でコマンドを実行できます。

  1. コンソールをhttps://console.aws.amazon.com/ecs/v2で開きます。

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

  3. [クラスターの詳細] ページの [サービス] セクションで、サービスを選択します。

    [サービスの詳細] ページが表示されます。

  4. [サービスの詳細] ページで、[タスク] を選択します。次に、タスクを選択します。

  5. [Containers] で、ECS Exec を使用するコンテナを選択します。

  6. コマンドを実行するには、次のいずれかの方法を使用します。

    • [接続] を選択します。

      CloudShell セッションが表示され、そこでコマンドを実行できます。

    • 矢印を選択し、[AWS CLI コマンドをコピー]を選択します。

      その後、コマンドをローカル環境で実行できます。

予想される結果

接続が成功すると、コンテナからインタラクティブなシェルプロンプトが表示されます。コマンドをコンテナ環境で直接実行できるようになりました。セッションを終了するには、[セッションの終了] を選択します。

スタンドアロンタスクにコンソールを使用する

コンソールを使用して、ECS Exec でコマンドを実行できます。

  1. コンソールをhttps://console.aws.amazon.com/ecs/v2で開きます。

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

  3. [クラスターの詳細] ページの [タスク] セクションで、サービスを選択します。

    [タスクの詳細] ページが表示されます。

  4. [Containers] で、ECS Exec を使用するコンテナを選択します。

  5. コマンドを実行するには、次のいずれかの方法を使用します。

    • [接続] を選択します。

      CloudShell セッションが表示され、そこでコマンドを実行できます。

    • 矢印を選択し、[AWS CLI コマンドをコピー]を選択します。

      その後、コマンドをローカル環境で実行できます。

予想される結果

接続が成功すると、コンテナからインタラクティブなシェルプロンプトが表示されます。コマンドをコンテナ環境で直接実行できるようになりました。セッションを終了するには、[セッションの終了] を選択します。

コマンドシェルの使用

コマンドシェルを使用して、ECS Exec でコマンドを実行できます。

ExecuteCommandAgent が実行されていることを確認したら、以下のコマンドを使用してコンテナ上でインタラクティブシェルを開くことができます。タスクに複数のコンテナが含まれている場合は、--containerフラグを使うコンテナ名を指定する必要があります。Amazon ECS はインタラクティブセッションの開始のみをサポートするため、--interactiveフラグを使用する必要があります。

次のコマンドでは、task-id という ID のタスクで、container-name という名前のコンテナに対して、インタラクティブな /bin/sh コマンドが実行されます。

task-id は、タスクの Amazon リソースネーム (ARN) です。

aws ecs execute-command --cluster cluster-name \ --task task-id \ --container container-name \ --interactive \ --command "/bin/sh"

予想される結果

コマンドが成功すると、コンテナからインタラクティブなシェルプロンプトが表示されます。コマンドをコンテナ環境で直接実行できるようになりました。セッションを終了するには、exit を入力するか、[Ctrl+D] を押します。