ハクソク

世界を動かす技術を、日本語で。

Show HN: AWS用ターミナルUI

概要

tawsはAWSリソース管理用のターミナルUIツール
マルチプロファイル・リージョン対応Vim風操作など多機能。
95%以上の主要AWSサービスをカバーし、リアルタイム監視も可能。
簡単インストール多彩なキーバインドで直感的操作を実現。
Rust製で高いパフォーマンスと拡張性を持つ。

taws:AWSリソース管理のためのターミナルUI

  • AWSリソースをターミナルUIで直感的に管理・監視できるツール
  • プロジェクトの目的はAWSインフラのナビゲーション・観察・操作の簡易化
  • リアルタイム監視機能で変更を即時検知
  • 後続コマンドで観察中リソースへ直接操作

主な特徴

  • マルチプロファイル対応:AWSプロファイルの簡単切替
  • マルチリージョン対応:異なるAWSリージョン間の移動
  • 60以上のAWSサービス94種類以上のリソースタイプに対応
  • リアルタイム更新:ワンキーでリソース情報をリフレッシュ
  • キーボード中心操作:Vim風ナビゲーション&コマンド
  • リソースアクション:EC2インスタンスの起動・停止・削除など直接操作
  • 詳細ビュー:リソース情報をJSON/YAML形式で表示
  • フィルタリング:名前や属性でリソースを絞り込み
  • オートコンプリート:ファジーマッチングによるスマート補完

インストール方法

  • Homebrew (macOS/Linux)
    • brew install huseyinbabal/tap/tawsによる簡単インストール
  • バイナリダウンロード
    • Releasesページから各プラットフォーム用バイナリ取得
      • macOS (Apple Silicon/Intel)
      • Linux (x86_64/ARM64)
      • Windows (x86_64)
  • クイックインストール(macOS/Linux)
    • curl+tar+mvコマンドで即導入
  • Cargo経由
    • cargo install tawsでRustパッケージとして導入
  • ソースからビルド
    • Rust 1.70+必要
    • git clonecargo build --releaseでビルド

前提条件

  • AWS認証情報の設定
    • aws configure(AWS CLI)
    • 環境変数(AWS_ACCESS_KEY_ID等)
    • IAMロール(EC2/ECS/Lambda実行時)
    • ~/.aws/credentials内プロファイル
  • IAM権限
    • 最低限Describe*List*権限が必要

クイックスタート

  • デフォルトプロファイルで起動
    • taws
  • 特定プロファイルで起動
    • taws --profile production
  • 特定リージョンで起動
    • taws --region us-west-2

キーバインド一覧

  • ナビゲーション
    • 上移動:k /
    • 下移動:j /
    • ページアップ:Ctrl-u
    • ページダウン:Ctrl-d
    • 最上部:g
    • 最下部:G
  • ビュー操作
    • リソース選択::
    • 詳細表示:Enter / d
    • 戻る:Esc
    • ヘルプ:?
  • アクション
    • 更新:r
    • フィルタ:/
    • プロファイル切替:p
    • リージョン切替:R
    • 終了:q / Ctrl-c
  • EC2アクション
    • 起動:s
    • 停止:S
    • 削除:T

リソースナビゲーション

  • :でリソースピッカーを開く
    • 例::ec2(EC2インスタンス)、:lambda(Lambda関数)、:s3(S3バケット)
  • Tabキーで補完、Enterキーで決定

対応AWSサービス

  • コンピュート:EC2, Lambda, ECS, EKS, Auto Scaling

  • ストレージ:S3

  • データベース:RDS, DynamoDB, ElastiCache

  • ネットワーク:VPC, Route 53, CloudFront, API Gateway, ELB

  • セキュリティ:IAM, Secrets Manager, KMS, ACM, Cognito

  • 運用管理:CloudFormation, CloudWatch Logs, CloudTrail, SSM, STS

  • メッセージング:SQS, SNS, EventBridge

  • コンテナ:ECR

  • DevOps:CodePipeline, CodeBuild

  • 分析:Athena

    • サポート外サービス追加希望時はディスカッションで提案

設定・環境変数

  • 認証情報読み込み場所
    • ~/.aws/credentials
    • ~/.aws/config
    • 環境変数
  • 主な環境変数
    • AWS_PROFILE:デフォルトプロファイル
    • AWS_REGION:デフォルトリージョン
    • AWS_ACCESS_KEY_ID:アクセスキー
    • AWS_SECRET_ACCESS_KEY:シークレットキー
    • AWS_SESSION_TOKEN:一時認証トークン

既知の問題

  • 一部リソースは追加IAM権限が必要
  • ページネーションによりリソース数が一時的に変動する場合あり
  • グローバルサービス(IAM, Route53, CloudFront)は常にus-east-1を使用

コントリビューション

  • 貢献歓迎、詳細はContributing Guide参照
  • 新サービス追加前には必ずディスカッションを実施

その他

  • k9s(Kubernetes CLI)にインスパイア
  • Ratatui(Rust TUIライブラリ)を使用
  • aws-sigv4でリクエスト署名
  • MITライセンスで公開
  • AWSコミュニティへの愛を込めて開発

Hackerたちの意見

いいね!もし組織に複数のAWSアカウントがあるなら、aws-sso-utilみたいなツールを使ってプロファイルを設定すると、すぐに切り替えられて便利だよ。
いいアイデアだけど、最初のコミットが11時間前ってのはちょっと信用できないな。
最初のコミットは単なるスクワッシュとマージだったみたいだし、公共のコミット履歴を信頼することはまずないかな。何が問題なのか気になるね。
もっとクレイジーなのは、AWSに関するredditの投稿が、誰かが月3ドルのクローズドソース版をリリースしたことについてで、かなり注目を集めたけど、クローズドソースってことでちょっと叩かれてたのが、最初のコミットの3時間前に作られたってこと。こいつは100%アイデアを盗んで、オープンソースの部分を再現してここに投稿したんだ。READMEを見て比べてみて。ほぼ1:1のコピーだよ。この人、めっちゃ怪しい。これが注目されてるなら、開発者としてはヤバい状況だね。
いいね!前にAzure用に似たようなものを始めたことがあるけど、全然進まなかった(これほど洗練されてないし!)。ざっくりしたプロトタイプだけど、Azureユーザーには役立つかもね。: https://github.com/brendank310/aztui
みんなRustに興味があるみたいだけど、君のはGoで書かれてるね。
いいね、2週間前にこういうプロジェクトを探してたんだ。K9sユーザーとして、AWSリソースを管理するのに似たような体験が欲しかったんだよね。
タイトルを見たとき、AWSのUIが「ターミナル」って意味だと思ったんだけど、それには賛成だな。
なんか、今書く15行のシェルスクリプトが50klocのCLIやTUIアプリに変わっちゃうんだよね。こういうケースは結構多いみたい。
ターミナルエレクトロン。
使い方がいろいろあるよね。スクリプト用にaws-cliが欲しいんだ。繰り返しのケースや、特定の結果を得るための実行を組み込むためにね。探索やアドホックなレビューにも使いたいし。CLIツールがなくなるわけじゃないし、使わなくてもいいんだから。「変わる」ってことはないよ。
初回使用でクラッシュ。これじゃバイラルになるのは無理だね。
俺のアイデアを盗んだんだ、しかも実際に機能するやつを! https://seamlessglance.com。これは昨日公開されたばかりで、こいつは明らかにアイデアをコピーしてオープンソースにするためのプロンプトを作ったんだ。
もっとTUIデザイナーがHerculesを使って、昔の「メインフレーム」スタイルのインターフェースの配置を体験してほしいな。あの人たちは本当にすごかった。
彼らのどんなところが特に良かった?
恥ずかしいけど、ちょっとバカな質問なんだけど…ダーク背景のターミナルを使ってない数少ないユーザーの一人だったら、これらのTUIは(ライト背景で)どれくらいうまく表示されるの?
全然バカな質問じゃないよ。俺は実際のグリーンスクリーン端末を使って育ったから、高解像度のカラーモニターや白背景に黒文字のアプリが出てきたときは、本当にありがたいと思った。ダークモードに戻る意味が全然わからない。目が疲れまくるし。残念ながら、明るい背景の端末でテストできなかったんだ。アプリが起動時にクラッシュしちゃうから。
これをうまく動かすことができなかった。もっと広く言うと、AWSのインフラにミドルウェアレイヤーを導入することに不安がある。誤解されたコマンドやバグが深刻な結果を招く可能性があるから。k9sみたいなものとはリスクの感じ方が違う気がする。AWSのリソースには、状態を持つデータベースや本番のワークロード、復元が難しいインフラが含まれることが多いからね。このプロジェクトにかけられた努力には感謝してるし、より良いCLI体験の魅力もわかるけど、個人的には読み取り専用の操作でも使うのは躊躇しちゃうな。直接AWSのCLIやコンソールを使えば、少なくとも失敗の可能性を減らせるし。他の人はこのリスクと利益のトレードオフについてどう思ってるのか気になる。
そういうことだと思う。何かを実行する前に、ほぼTerraformのような「計画」を印刷して、その後は計画にないことは何もできないような、非常にリテラルな実行エンジンが欲しいんだよね。
これも俺の最初の考えだった。繰り返し可能でソース管理されたサービスプロビジョニングにはすでにTerraformがあるし、アドホックな管理には比較的シンプルなAWS CLIがある。もう一つレイヤーが必要かどうかはわからないし、かなりリスキーに感じる。