

# AWS Toolkit for JetBrains を使用して Amazon Elastic Container Service を操作する
<a name="ecs"></a>

次のトピックでは、AWS Toolkit for JetBrains を使用して AWS アカウントの Amazon ECS リソースを操作する方法について説明します。

**Topics**
+ [Amazon ECS Exec](ecs-exec.md)

# AWS Toolkit の Amazon Elastic Container Service (Amazon ECS) Exec
<a name="ecs-exec"></a>

Amazon ECS Exec 機能を使用して、AWS Toolkit から直接単一のコマンドを発行したり、Amazon Elastic Container Service (Amazon ECS) コンテナ でシェルを実行したりすることができます。

**重要**  
Amazon ECS Exec を有効または無効にすると、AWS アカウントのリソースの状態が変わります。これには、サービスの停止と再起動が含まれます。さらに、Amazon ECS Exec が有効になっている間にリソースの状態を変更すると、予期しない結果が生じる可能性があります。Amazon ECS Exec の詳細については、デベロッパーガイドの「[Amazon ECS Exec を使用してデバッグする](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-exec.html#ecs-exec-considerations)」を参照してください。

## Amazon Exec の前提条件
<a name="ecs-exec-prereq"></a>

Amazon ECS Exec の機能を使用する前に、いくつかの前提条件を満たす必要があります。

**重要**  
特定のサービスで Amazon ECS Exec を有効にする場合には、そのサービスの Amazon ECS Cloud Debugging を無効にする必要があります。

### Amazon ECS の要件
<a name="w7aac13c27b8c11b7"></a>

Amazon ECS Exec には、タスクが Amazon EC2 でホストされているか AWS Fargate でホストされているかに応じて、異なるバージョン要件があります。
+ Amazon EC2 を使用している場合は、2021 年 1 月 20 日以降にリリースされた Amazon ECS 最適化 AMI を、エージェントバージョン 1.50.2 以上で使用する必要があります。補足情報はデベロッパーガイド「[Amazon ECS に最適化された AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)」に記載されています。
+ AWS Fargate を使用している場合は、プラットフォームバージョン 1.4.0 以上を使用する必要があります。Fargate の要件に関する補足情報は、デベロッパーガイド「[AWS Fargate プラットフォームバージョン](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)」に記載されています。

### AWS アカウントの設定と IAM のアクセス許可
<a name="w7aac13c27b8c11b9"></a>

Amazon ECS Exec の機能を使用するには、既存の Amazon Exec のクラスターが AWS アカウント に関連付けられている必要があります。Amazon ECS Exec は Systems Manager を使用してクラスター内のコンテナとの接続を確立します。SSM サービスと通信するには、特定のタスクの IAM ロールのアクセス許可が必要です。

Amazon ECS Exec に固有の IAM ロールとポリシーの情報については、「[ECS Exec に必要な IAM アクセス許可](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-exec.html#ecs-exec-enabling-and-using) デベロッパーガイド」に記載されています。

## Amazon ECS Exec の操作
<a name="w7aac13c27b8c15"></a>

Amazon ECS Exec は、AWS Toolkit for JetBrains の AWS エクスプローラーから直接有効または無効にできます。Amazon ECS Exec を有効にしたら、Amazon ECS メニューからコンテナを選択し、それらに対してコマンドを実行することができます。

### Amazon ECS Exec の有効化
<a name="w7aac13c27b8c15b5"></a>

1. AWS エクスプローラー で、[Amazon ECS] メニューを展開します。

1. **[クラスター]** セクションを展開し、変更するクラスターを選択します。

1. 編集するサービスのコンテキストメニュー (右クリック) を開き、**[コマンドの実行を有効にする]** を選択します。
**注記**  
このサービスで Amazon ECS Cloud Debugging が有効になっている場合は、**[コマンドの実行を有効にする]** オプションは使用できません。Cloud Debugging を無効にするとオプションが復元されますが、サービスが停止して再起動されます。

**重要**  
これによりサービスの新規デプロイが開始されます。完了まで数分かかることがあります。詳細については、このセクションの冒頭にある注意事項を参照してください。

### Amazon ECS Exec の無効化
<a name="w7aac13c27b8c15b7"></a>

1. AWS エクスプローラー で、[Amazon ECS] メニューを展開します。

1. **[クラスター]** セクションを展開し、変更するクラスターを選択します。

1. 編集するサービスのコンテキストメニュー (右クリック) を開き、**[コマンドの実行を無効にする]** を選択します。

**重要**  
これによりサービスの新規デプロイが開始されます。完了まで数分かかることがあります。詳細については、このセクションの冒頭にある注意事項を参照してください。

### コンテナに対するコマンドの実行
<a name="w7aac13c27b8c15b9"></a>

AWS Explorer を使用してコンテナに対してコマンドを実行するには、Amazon ECS Exec を有効にする必要があります。有効になっていない場合は、このセクションの「**Amazon ECS Exec を有効にする**」の手順を参照してください。

1. AWS エクスプローラー で、[Amazon ECS] メニューを展開します。

1. **[クラスター]** セクションを展開し、変更するクラスターを選択します。

1. サービスを展開してコンテナを一覧表示します。

1. 編集するコンテナのコンテキストメニュー (右クリック) を開き、**[コンテナでコマンドを実行する]** を選択します。

1. **[コンテナでコマンドを実行する]** ダイアログボックスで、必要となる **[タスク ARN]** を選択します。

1. 実行するコマンドを入力するか、同じセッション中に実行されたコマンドのリストの中から選択することができます。

1. **[Execute]** (実行) を選択します。

### シェル内からコマンドを実行する
<a name="w7aac13c27b8c15c11"></a>

AWS エクスプローラーを使用してシェル内からコンテナに対してコマンドを実行するには、Amazon ECS Exec を有効にする必要があります。有効になっていない場合は、このセクションの「**Amazon ECS Exec を有効にする**」の手順を参照してください。

1. AWS エクスプローラー で、[Amazon ECS] メニューを展開します。

1. **[クラスター]** セクションを展開し、変更するクラスターを選択します。

1. サービスを展開して、コンテナを一覧表示します。

1. 編集するコンテナのコンテキストメニュー (右クリック) を開き、**[インタラクティブシェルを開く]** を選択します。

1. **[インタラクティブシェル]** ダイアログボックスで、必要な **[タスク ARN]** を選択します。

1. 対応するドロップダウンからシェルを選択するか、操作したいシェルの名前を入力します。

1. 設定が満足できるものになったら、**[実行]** を選択します。

1. シェルがターミナルで開いたら、コマンドを入力してコンテナを使用することができます。