0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

この記事は、エアークローゼットアドベントカレンダー2024の日18目の記事です。

今日は、ECSコンテナへのアクセス方法を紹介したいので、ぜひ参考にしてください!

この記事のまとめ

・ECSとは?
・ECS Exec
・事前条件
・Execコマンド

ECSとは?

Amazon Elastic Container Service (ECS) は、Dockerコンテナを管理・実行するための高度なコンテナオーケストレーションサービスです。ECSを使用すると、アプリケーションを複数のDockerコンテナに分割し、それらを効率的かつスケーラブルに実行できます。また、タスクスケジューリングや自動スケーリングなどの機能も備えています。

ECS Exec

ECS ExecはAWS Systems Manager(SSM)を活用しています。
具体的にはSSMセッションマネージャーを利用して、「exec」コマンドを開始するデバイスとターゲットコンテナの間に安全なチャネルを作成します。
image.png

この機能はClientでもServerでもSSMの機能が必要なため、事前に設定する必要があります。これにより次のセクションに行きましょう。

事前条件

1. Client-Side

AWS CLIを使用してexecコマンドを開始する場合、インストールする必要があるパッケージはAWS CLI用のSSMセッションマネージャプラグインだけです。使用しているプラットフォーム(Linux、Mac、Windows)に応じて、指示に従って適切なバイナリを設定する必要があります。

2. Server-side(AWS Fargate)

Fargateソフトウェアスタックは、「プラットフォームバージョン」と呼ばれるものを介して管理されているため、最新バージョンである 1.4(ECS Execの前提条件が含まれているバージョン)を使用していることを確認するだけです。

サービスをデプロイする際には、「exec」の実行コマンドを有効にすることが必要です。

aws ecs update-service --service <SERVICE_NAME> --cluster <CLUSTER_NAME> \
  --enable-execute-command \
  --force-new-deployment

AnsibleまたはEcspressoを使用している場合は、この構成があることを確認してください。

 "enableExecuteCommand": true

3. IAM

次のアクセス権限をタスクIAMロールに追加し、タスクIAMロールをタスク定義に含める必要があります。

{
   "Version": "2012-10-17",
   "Statement": [
       {
       "Effect": "Allow",
       "Action": [
            "ssmmessages:CreateControlChannel",
            "ssmmessages:CreateDataChannel",
            "ssmmessages:OpenControlChannel",
            "ssmmessages:OpenDataChannel"
       ],
      "Resource": "*"
      }
   ]
}

ECSタスクロールレベル(role level)でIAM権限を設定する必要です(ECSタスク実行ロールレベルではなく)。これは、SSMと同じコンテナ内で実行されるためです。他のAWSサービスに対してそれらのアクションを実行するためには、コンテナ自体にIAM権限を付与するべきです。

Execコマンド

もし上記のすべての手順を完了したなら、ECS Fargateに接続する準備ができていると思います。以下のコマンドを参考してください。

aws ecs execute-command --cluster <CLUSTER_NAME> --task <TASK_ID> --container <CONTAINER_NAME> --interactive --command "sh"

アクセスできました。:thumbsup:
image.png

最後までご覧いただきありがとうございました!

エアークローゼット Advent Calendar 2024はまだまだ続きますので、ぜひ他のエンジニア, デザイナー, PMの記事もご覧いただければと思います

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?