AWS용 터미널 UI (taws) – 터미널 기반 AWS 리소스 뷰어 및 관리자
(github.com/huseyinbabal)- 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
- Linux:
키 바인딩
-
탐색:
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로 원격 사용할 수 있음
- 실용적인 관점에서는 키보드 중심 프로그램들이 대부분 TUI 형태임
-
실행이 잘 되지 않았음
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_ID와AWS_SECRET_ACCESS_KEY를 직접 써야 함
프로덕션 환경에서는 보안상 위험이 커서 실사용이 어렵다고 봄- 나도 보안이 중요하다고 생각하지만, 이건 초기 버전임. 커뮤니티 피드백을 반영해 점진적으로 기능을 추가할 예정임
- SSO 미지원이라면 나도 사용하기 어렵다고 느낌
-
요즘은 15줄짜리 셸 스크립트가 어느새 50k라인짜리 bun CLI나 TUI 앱으로 커지는 느낌임
- 용도가 다름. aws-cli는 스크립팅과 반복 작업용이고, 이런 툴은 탐색과 임시 검토용임
기존 CLI를 대체하는 게 아니라 보완재로 보면 됨 - 말하자면 터미널 속의 Electron 같은 느낌임
- 용도가 다름. aws-cli는 스크립팅과 반복 작업용이고, 이런 툴은 탐색과 임시 검토용임
-
여러 AWS 계정을 가진 조직이라면, aws-sso-util 같은 도구로 프로필을 미리 구성해두면 계정 전환이 훨씬 빠름
-
제목을 처음 보고 “AWS UI가 터미널 기반으로 바뀌었다”는 뜻인 줄 알고 잠깐 설렜음
-
바보 같은 질문일 수도 있지만, 밝은 배경 터미널에서도 TUI가 잘 보이는지 궁금함
- 전혀 바보 같은 질문이 아님. 예전 그린스크린 터미널 세대라서, 흰 배경에 검은 글자가 훨씬 편함
다크 모드는 오히려 눈의 피로를 유발함
아쉽게도 내 밝은 배경 터미널에서는 앱이 실행 직후 크래시해서 테스트를 못 했음
- 전혀 바보 같은 질문이 아님. 예전 그린스크린 터미널 세대라서, 흰 배경에 검은 글자가 훨씬 편함
-
처음 실행하자마자 크래시함. 이런 상태로는 바이럴되기 어려움
- 리소스 처리 문제가 있었지만, 1.0.1 버전에서 수정되었으니 다시 시도해볼 수 있음
-
더 많은 TUI 디자이너들이 Hercules 같은 메인프레임 시절 인터페이스를 경험해봤으면 함
그 시절의 UI 구성 철학은 배울 점이 많음- 나도 그 부분이 궁금함. 요즘 TUI 앱들이 비슷비슷해서, 그 시절의 차별화된 디자인 접근이 궁금함
- 구체적으로 어떤 점이 마음에 들었는지 더 듣고 싶음