1P by GN⁺ 2일전 | ★ favorite | 댓글 1개
  • taws는 터미널 환경에서 AWS 리소스를 탐색하고 관리할 수 있는 Rust 기반 UI 도구로, AWS 인프라를 실시간으로 관찰하고 제어할 수 있음
  • 94개 이상의 리소스 유형60개 이상의 AWS 서비스를 지원하며, 프로필 및 리전 전환, Vim 스타일 키보드 조작, 자동 완성 기능을 제공
  • EC2 인스턴스의 시작·중지·종료, 리소스의 JSON/YAML 상세 보기, 필터링 및 실시간 갱신 기능을 지원
  • macOS, Linux, Windows에서 Homebrew, Cargo, 바이너리 다운로드 등 다양한 설치 방법을 제공하며, AWS 자격 증명 및 IAM 권한 설정이 필요
  • k9s에서 영감을 받아 Ratatui 라이브러리로 제작된 오픈소스 프로젝트로, AWS CLI 사용자에게 시각적이고 직관적인 관리 경험을 제공

taws 개요

  • taws는 터미널 기반의 AWS 리소스 뷰어 및 관리자로, AWS 인프라를 쉽게 탐색하고 관리할 수 있도록 설계
    • AWS 리소스 변화를 지속적으로 감시하고, 관찰된 리소스에 대한 명령 실행 기능 제공
  • 프로젝트의 목적은 AWS 인프라 관리의 단순화 및 효율화
  • MIT 라이선스로 공개되어 있으며, Rust 언어로 작성됨

주요 기능

  • 멀티 프로필 및 리전 지원으로 다양한 AWS 계정과 리전을 손쉽게 전환 가능
  • 94개 이상의 리소스 유형60개 이상의 서비스 탐색 및 관리 지원
  • 실시간 갱신 기능으로 단일 키 입력으로 리소스 상태 새로고침 가능
  • Vim 유사 키보드 조작을 통한 빠른 탐색 및 명령 실행
  • EC2 인스턴스 제어(시작, 중지, 종료) 기능 내장
  • JSON/YAML 상세 보기, 이름·속성 기반 필터링, 퍼지 매칭 자동완성 기능 제공

설치 방법

  • Homebrew(macOS/Linux) : brew install huseyinbabal/tap/taws
  • 사전 빌드 바이너리 다운로드: macOS, Linux, Windows용 아키텍처별 패키지 제공
  • Cargo 설치: cargo install taws
  • 소스 빌드: Rust 1.70 이상, C 컴파일러 및 링커 필요
    • 플랫폼별 개발 도구 설치 명령 제공 (예: xcode-select --install, sudo apt install build-essential -y)

실행 및 설정

  • AWS 자격 증명aws configure, 환경 변수, IAM 역할, ~/.aws/credentials 파일 등 표준 경로에서 인식
  • IAM 권한은 최소한 Describe*, List* 권한 필요
  • 실행 예시:
    • 기본 프로필 실행: taws
    • 특정 프로필 지정: taws --profile production
    • 특정 리전 지정: taws --region us-west-2
    • 디버그 로그 활성화: taws --log-level debug
  • 로그 파일 경로:
    • Linux: ~/.config/taws/taws.log
    • macOS: ~/Library/Application Support/taws/taws.log
    • Windows: %APPDATA%\taws\taws.log

키 바인딩

  • 탐색: j/k 또는 화살표 키로 이동, Ctrl-u/d로 페이지 이동
  • 뷰 전환: :로 리소스 선택기 열기, Enter 또는 d로 상세 보기
  • 작업: r 새로고침, / 필터, p 프로필 전환, R 리전 전환, q 종료
  • EC2 제어: s 시작, S 중지, T 종료

지원 서비스

  • 30개 핵심 AWS 서비스 지원 (전체 사용의 95% 이상 커버)
    • Compute: EC2, Lambda, ECS, EKS, Auto Scaling
    • Storage: S3
    • Database: RDS, DynamoDB, ElastiCache
    • Networking: VPC, Route 53, CloudFront, API Gateway, ELB
    • Security: IAM, Secrets Manager, KMS, ACM, Cognito
    • Management: CloudFormation, CloudWatch Logs, CloudTrail, SSM, STS
    • Messaging: SQS, SNS, EventBridge
    • Containers: ECR
    • DevOps: CodePipeline, CodeBuild
    • Analytics: Athena

환경 변수 설정

  • AWS_PROFILE: 기본 프로필
  • AWS_REGION: 기본 리전
  • AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN: 인증 정보

알려진 이슈

  • 일부 리소스는 기본 읽기 전용 정책으로 접근 불가할 수 있음
  • 페이지네이션으로 인해 로딩 중 리소스 수가 변동될 수 있음
  • IAM, Route53, CloudFront 등 일부 글로벌 서비스는 항상 us-east-1 리전을 사용

기여 및 기술 기반

  • 기여는 환영되며, 새로운 서비스 추가 전에는 GitHub Discussions에서 제안 필요
  • k9s에서 영감을 받았으며, Ratatui(Rust TUI 라이브러리)와 aws-sigv4(AWS SDK for Rust) 사용
  • AWS 커뮤니티를 위한 오픈소스 프로젝트로, 622개 Star, 15개 Fork 기록

라이선스

  • MIT License로 배포
  • 소스 및 라이선스 파일은 GitHub 저장소에서 확인 가능
Hacker News 의견들
  • TUI의 매력이 뭔지 잘 모르겠음
    CLI는 스크립트화와 조합성이 장점인데, TUI는 단지 브라우저 UI의 저해상도 버전처럼 느껴짐

    • 실용적인 관점에서는 키보드 중심 프로그램들이 대부분 TUI 형태임
      GUI에서는 이런 표현력 있는 키보드 인터페이스가 잘 안 보임
    • 서버에 단순히 터미널 연결만으로 조작 가능하다는 점이 매력임
    • 예를 들어 Lazygit을 정말 좋아함. CLI 다음으로 빠르고, 시각적 정보도 함께 볼 수 있어서 git을 다루기 가장 효율적임
    • k9s를 찾아보면 좋은 예시임. 대부분의 동작이 한 번의 키 입력으로 가능함
    • 다른 의견에 덧붙이자면, TUI는 서버에 설치해서 SSH로 원격 사용할 수 있음
  • 실행이 잘 되지 않았음
    AWS 인프라 위에 미들웨어 레이어를 추가하는 게 걱정임. 잘못된 명령이나 버그가 심각한 결과를 초래할 수 있음
    특히 AWS는 상태를 가진 데이터베이스나 프로덕션 워크로드가 많아서 복구가 어려움
    CLI 경험을 개선하려는 시도는 좋지만, 개인적으로는 읽기 전용 모드조차도 망설여짐
    AWS CLI나 콘솔은 최소한 실패 지점을 하나 줄여줌

    • 읽기 전용이라면 그 정도의 주의는 과한 것 같음. 실패해도 툴이 크래시하거나 잘못된 데이터를 주는 정도임
      이건 AWS CLI나 콘솔도 마찬가지임.
      IaC로 변경을 관리한다면, 시각적으로 리소스를 탐색할 수 있는 도구는 유용함. AWS 콘솔은 너무 불편함
    • 나도 비슷한 생각임. 이미 Terraform으로 프로비저닝을 관리하고 있고, ad-hoc 작업은 aws-cli로 충분함
      또 다른 레이어를 추가하는 건 위험 부담이 큼
    • 그래도 빠르게 로그와 콘솔을 오가며 상황을 파악할 수 있다면 좋겠음
      k9s처럼 읽기 전용 권한으로만 쓰는 용도라면 괜찮을 듯함
    • Terraform처럼 실행 전 “plan”을 출력하고, 그 외의 동작은 절대 하지 않는 엔진이 있다면 좋겠음
  • 메뉴바에 “현재 변경 비용(Price of Current Changes)” 같은 항목이 있으면 좋겠음
    변경이 0.01달러인지 10,001달러인지 바로 볼 수 있게

    • 아마존이 그렇게 단순하게 만들어줬다면 얼마나 좋았을까 하는 생각임
  • 코드에 // TODO: Handle credential_source, role_arn, source_profile, sso_* 주석이 있음
    즉, SSO나 멀티 계정 로그인을 지원하지 않고, AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY를 직접 써야 함
    프로덕션 환경에서는 보안상 위험이 커서 실사용이 어렵다고 봄

    • 나도 보안이 중요하다고 생각하지만, 이건 초기 버전임. 커뮤니티 피드백을 반영해 점진적으로 기능을 추가할 예정임
    • SSO 미지원이라면 나도 사용하기 어렵다고 느낌
  • 요즘은 15줄짜리 셸 스크립트가 어느새 50k라인짜리 bun CLI나 TUI 앱으로 커지는 느낌임

    • 용도가 다름. aws-cli는 스크립팅과 반복 작업용이고, 이런 툴은 탐색과 임시 검토용임
      기존 CLI를 대체하는 게 아니라 보완재로 보면 됨
    • 말하자면 터미널 속의 Electron 같은 느낌임
  • 여러 AWS 계정을 가진 조직이라면, aws-sso-util 같은 도구로 프로필을 미리 구성해두면 계정 전환이 훨씬 빠름

  • 제목을 처음 보고 “AWS UI가 터미널 기반으로 바뀌었다”는 뜻인 줄 알고 잠깐 설렜음

  • 바보 같은 질문일 수도 있지만, 밝은 배경 터미널에서도 TUI가 잘 보이는지 궁금함

    • 전혀 바보 같은 질문이 아님. 예전 그린스크린 터미널 세대라서, 흰 배경에 검은 글자가 훨씬 편함
      다크 모드는 오히려 눈의 피로를 유발함
      아쉽게도 내 밝은 배경 터미널에서는 앱이 실행 직후 크래시해서 테스트를 못 했음
  • 처음 실행하자마자 크래시함. 이런 상태로는 바이럴되기 어려움

    • 리소스 처리 문제가 있었지만, 1.0.1 버전에서 수정되었으니 다시 시도해볼 수 있음
  • 더 많은 TUI 디자이너들이 Hercules 같은 메인프레임 시절 인터페이스를 경험해봤으면 함
    그 시절의 UI 구성 철학은 배울 점이 많음

    • 나도 그 부분이 궁금함. 요즘 TUI 앱들이 비슷비슷해서, 그 시절의 차별화된 디자인 접근이 궁금함
    • 구체적으로 어떤 점이 마음에 들었는지 더 듣고 싶음