🐱

e1sをご紹介:k9sに触発されたAWS ECS用CLIツール

2024/04/19に公開
2

AWS ECSをご利用の皆様、FargateでもEC2でも、aws-cliを駆使してリソースを管理するのは時に一苦労ですね。k9sがKubernetesにもたらした使い勝手の良さをECSにも提供することを目指し、e1sはあなたが待ち望んでいたツールになることでしょう。

e1sとは何でしょうか?

https://github.com/keidarcy/e1s

e1sは、AWS ECSリソースを簡単に管理するために開発されたコマンドラインインターフェースツールです。KubernetesのCLIツールであるk9sにインスピレーションを受け、AWS ECSの使用者に同等の利便性と効率をもたらすことを目指しています。

e1sを使えば、ターミナルから直接ECSのクラスタ、サービス、タスク、コンテナを簡単に管理できます。ターミナルベースのワークフローを好む開発者最適なECSの運用ツールです。

e1sの主要機能

  • リードオンリーモード: 意図せずに変更を加えることなくECSリソースを閲覧できます。
  • 自動更新: ECS環境の最新の変更を常に反映します。
  • リソースの説明: クラスタ、サービス、タスクなどに関する詳細情報を取得できます。
  • CloudWatchログ統合: ログをターミナルから直接表示し、ストリーミングします。
  • コンテナへのSSHアクセス: ECS Exec APIを通じて、迅速なデバッグとトラブルシューティングのためにコンテナに直接アクセスできます。
  • サービスの編集: 新しいTask DefinitionのJSONをすばやく登録し、登録されたTask Definitionのリビジョンとdesired task countでサービスを即座に更新できます。
  • ポートフォワーディングセッション: プライベートサブネット内のサービスにローカルから簡単にアクセスするためのポートフォワーディングを設定できます。
  • ファイル転送: ローカルマシンとECSコンテナ間でファイルを移動できます。
  • テーマ: にカスタマイズ可能なカラーテーマ

e1sが解決する実際のECS運用課題

コンテナへExec実行

e1sを使えば、ECSコンテナに即時アクセスできます。ecs-exec機能により、実行中のコンテナに直接対話的Exec実行、リアルタイムでのデバッグやコマンドを行い、SSHのように実行が可能です。

e1s-ssh-demo

これは、ECS環境内の問題を迅速に診断し、解決する必要がある開発者やオペレーターにとって特に便利です。

リモートホストポートフォワーディング

e1sのリモートホストポートフォワーディング機能を使えば、ECSコンテナを介してローカルマシンからリモートサービスへの安全な接続を作成できます。これは、RDS、ElastiCache、APIなど、プライベートサブネット内に安全に配置されたサービスとやり取りする必要がある開発者にとって非常に貴重です。

e1s-remote-host-port-forwarding-session-demo

e1sを活用して、ネットワークアクセスとセキュリティの複雑さを簡素化し、ローカル開発環境をクラウドに簡単かつ安全に接続する橋渡しをしましょう。

S3バケットを利用したファイル転送

e1sを使えば、ローカルシステムとECSコンテナ間のファイル転送を簡単に行えます。新しいアプリケーション設定のデプロイやログの分析のための抽出など、S3バケットを利用することで、転送は迅速かつ安全、信頼性の高いものになります。

e1s-file-transfer

即時タスク定義の登録とサービス更新

e1sでデプロイ戦略を革新しましょう。JSONファイルから新しいタスク定義をすばやく登録し、リアルタイムで最新のリビジョンと希望するカウントでECSサービスを更新できます。

e1s-register-task-definition-demo

e1sでECSデプロイのスピードを高めましょう。ターミナルでデプロイ、コンテナの健康状態、ログも監視できます。

テーマを独自で定義できる

--themeで色々なtheme選択できますし、--config-fileのcolors指定したら、どのような色でも指定可能です。

  • command e1s --theme dracula
  • screenshot

theme-dracula

  • config file
colors:
  BgColor: "#272822"
  FgColor: "#f8f8f2"
  BorderColor: "#a1efe4"
  Black: "#272822"
  Red: "#f92672"
  Green: "#a6e22e"
  Yellow: "#f4bf75"
  Blue: "#66d9ef"
  Magenta: "#ae81ff"
  Cyan: "#a1efe4"
  Gray: "#808080"
  • screenshot

theme-hex

  • config file
colors:
  BgColor: black
  FgColor: cadeblue
  BorderColor: dodgerblue
  Black: black
  Red: orangered
  Green: palegreen
  Yellow: greenyellow
  Blue: darkslateblue
  Magenta: mediumpurple
  Cyan: lightskyblue
  Gray: lightslategray
  • screenshot

theme-w3c

e1sでECS管理を一歩前進

e1sは、ECSの管理を直感的かつ効率的に行うためのユーザーフレンドリーな代替手段を提供することを目指しています。e1sがまだk9sと同じレベルの力を持っていないかもしれませんが、進化し続けており、皆さんのフィードバックが成長には不可欠です。

e1sが皆さんのECS管理ツールキットに欠かせない存在となり、操作を簡素化し、貴重な時間を節約するお手伝いができれば幸いです!

詳細は https://github.com/keidarcy/e1s をご覧ください。

https://medium.com/@keidarcy.1015/introducing-e1s-the-k9s-inspired-cli-for-aws-ecs-c492bd124b3c から日本語に翻訳しました。

Discussion

knziiyknziiy

素晴らしいツールありがとうございます。

コンテナへのSSHアクセス

ecs-execはsshを実現するものではなく、コンテナのnamespaceで指定したプロセスを実行(exec)し、そのセッションと接続してくれるものなので、誤解のないよう訂正いただくのがよいかと思います😊

ecspressoとの比較、優位性の情報もあるととってもうれしいです!

keidarcykeidarcy

コメントありがとうございます。

確かにSSHは厳密ではない言い方です。修正しました。