1 คะแนน โดย GN⁺ 2026-01-05 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • taws เป็นเครื่องมือ UI ที่พัฒนาด้วย Rustซึ่งช่วยให้สำรวจและจัดการทรัพยากร AWS ได้ในสภาพแวดล้อมเทอร์มินัล ทำให้สามารถสังเกตและควบคุมโครงสร้างพื้นฐาน AWS ได้แบบเรียลไทม์
  • รองรับทรัพยากรมากกว่า 94 ประเภทและบริการ AWS มากกว่า 60 รายการ พร้อมความสามารถในการสลับโปรไฟล์และรีเจียน, การควบคุมด้วยคีย์บอร์ดสไตล์ Vim, และฟังก์ชันเติมคำอัตโนมัติ
  • รองรับการเริ่ม·หยุด·ยุติอินสแตนซ์ EC2, การดูรายละเอียดแบบ JSON/YAMLของทรัพยากร, รวมถึงความสามารถด้านการกรองและการรีเฟรชแบบเรียลไทม์
  • มีวิธีติดตั้งหลากหลายบน macOS, Linux และ Windows เช่น Homebrew, Cargo, การดาวน์โหลดไบนารี และต้องมีการตั้งค่าข้อมูลรับรอง AWS และสิทธิ์ IAM
  • เป็นโปรเจกต์โอเพนซอร์สที่สร้างด้วยไลบรารี Ratatui โดยได้รับแรงบันดาลใจจาก k9s และมอบประสบการณ์การจัดการที่มองเห็นภาพและใช้งานได้อย่างเป็นธรรมชาติให้กับผู้ใช้ AWS CLI

ภาพรวมของ taws

  • taws เป็นตัวดูและตัวจัดการทรัพยากร AWS บนเทอร์มินัล ที่ออกแบบมาเพื่อให้สามารถสำรวจและจัดการโครงสร้างพื้นฐาน AWS ได้อย่างง่ายดาย
    • คอยเฝ้าติดตามการเปลี่ยนแปลงของทรัพยากร AWS อย่างต่อเนื่อง และมีความสามารถในการรันคำสั่งกับทรัพยากรที่ตรวจพบ
  • เป้าหมายของโปรเจกต์คือการทำให้การจัดการโครงสร้างพื้นฐาน AWS เรียบง่ายและมีประสิทธิภาพมากขึ้น
  • เผยแพร่ภายใต้MIT License และเขียนด้วยภาษา Rust

ฟีเจอร์หลัก

  • รองรับหลายโปรไฟล์และหลายรีเจียน ทำให้สลับบัญชี AWS และรีเจียนต่าง ๆ ได้อย่างสะดวก
  • รองรับการสำรวจและจัดการทรัพยากรมากกว่า 94 ประเภทและบริการมากกว่า 60 รายการ
  • มีฟังก์ชันรีเฟรชแบบเรียลไทม์ ที่สามารถอัปเดตสถานะทรัพยากรได้ด้วยการกดปุ่มเพียงครั้งเดียว
  • การควบคุมด้วยคีย์บอร์ดคล้าย Vim เพื่อการนำทางและสั่งงานอย่างรวดเร็ว
  • มีฟังก์ชันควบคุมอินสแตนซ์ EC2ในตัว (เริ่ม, หยุด, ยุติ)
  • รองรับการดูรายละเอียดแบบ JSON/YAML, การกรองตามชื่อ·คุณสมบัติ, และการเติมคำอัตโนมัติแบบ fuzzy matching

วิธีติดตั้ง

  • Homebrew(macOS/Linux) : brew install huseyinbabal/tap/taws
  • ดาวน์โหลดไบนารีที่สร้างไว้ล่วงหน้า: มีแพ็กเกจแยกตามสถาปัตยกรรมสำหรับ macOS, Linux และ Windows
  • ติดตั้งผ่าน Cargo: cargo install taws
  • บิลด์จากซอร์ส: ต้องใช้ Rust 1.70 ขึ้นไป พร้อม C compiler และ linker
    • มีคำสั่งสำหรับติดตั้งเครื่องมือพัฒนาตามแพลตฟอร์ม (เช่น xcode-select --install, sudo apt install build-essential -y)

การรันและการตั้งค่า

  • ข้อมูลรับรอง AWS จะถูกตรวจพบจากเส้นทางมาตรฐาน เช่น aws configure, ตัวแปรสภาพแวดล้อม, IAM role, ไฟล์ ~/.aws/credentials
  • สิทธิ์ IAM ต้องมีอย่างน้อย Describe*, List*
  • ตัวอย่างการรัน:
    • รันด้วยโปรไฟล์เริ่มต้น: taws
    • ระบุโปรไฟล์เฉพาะ: taws --profile production
    • ระบุรีเจียนเฉพาะ: taws --region us-west-2
    • เปิดใช้งาน debug log: 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 ยุติ

บริการที่รองรับ

  • รองรับบริการ AWS หลัก 30 รายการ (ครอบคลุมการใช้งานรวมมากกว่า 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: ข้อมูลยืนยันตัวตน

ปัญหาที่ทราบ

  • ทรัพยากรบางส่วนอาจไม่สามารถเข้าถึงได้ด้วยนโยบายอ่านอย่างเดียวเริ่มต้น
  • จำนวนทรัพยากรอาจเปลี่ยนแปลงระหว่างการโหลดเนื่องจาก pagination
  • บริการแบบ global บางรายการ เช่น 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 repository

1 ความคิดเห็น

 
GN⁺ 2026-01-05
ความคิดเห็นจาก Hacker News
  • ไม่ค่อยเข้าใจว่าเสน่ห์ของ TUI คืออะไร
    จุดเด่นของ CLI คือ การทำสคริปต์และการประกอบใช้งานร่วมกัน แต่ TUI ให้ความรู้สึกเหมือนเป็นแค่ UI บนเบราว์เซอร์เวอร์ชันความละเอียดต่ำ

    • ถ้ามองในเชิงการใช้งานจริง โปรแกรมที่ เน้นคีย์บอร์ดเป็นหลัก ส่วนใหญ่ก็มักมาในรูปแบบ TUI
      ใน GUI แทบไม่ค่อยเห็นอินเทอร์เฟซคีย์บอร์ดที่แสดงพลังแบบนี้
    • ความน่าสนใจคือสามารถ ใช้งานได้แค่ต่อเทอร์มินัลเข้ากับเซิร์ฟเวอร์
    • ตัวอย่างเช่นชอบ Lazygit มาก เร็วรองจาก CLI และยังเห็นข้อมูลเชิงภาพไปพร้อมกัน เลยรู้สึกว่ามีประสิทธิภาพที่สุดในการจัดการ git
    • ลองดู k9s เป็นตัวอย่างที่ดี การทำงานส่วนใหญ่ทำได้ด้วย การกดปุ่มครั้งเดียว
    • ขอเสริมจากความเห็นอื่นว่า TUI สามารถติดตั้งบนเซิร์ฟเวอร์แล้ว ใช้งานระยะไกลผ่าน SSH ได้
  • รันแล้วไม่ค่อยทำงาน
    กังวลเรื่องการเพิ่ม เลเยอร์มิดเดิลแวร์ เข้าไปบนโครงสร้างพื้นฐานของ AWS เพราะคำสั่งผิดหรือบั๊กอาจทำให้เกิดผลเสียร้ายแรงได้
    โดยเฉพาะบน AWS ที่มักมีฐานข้อมูลแบบมีสถานะหรือเวิร์กโหลด production จำนวนมาก ซึ่งกู้คืนได้ยาก
    แม้จะชอบความพยายามในการปรับปรุงประสบการณ์ CLI แต่ส่วนตัวแล้วแม้แต่ โหมดอ่านอย่างเดียวก็ยังลังเล
    อย่างน้อย AWS CLI หรือคอนโซลก็ช่วยลดจุดล้มเหลวไปได้หนึ่งจุด

    • ถ้าเป็นแบบอ่านอย่างเดียวก็ดูเหมือนจะระวังเกินไปหน่อย ต่อให้พลาดก็แค่ เครื่องมือแครชหรือแสดงข้อมูลผิด
      ซึ่ง AWS CLI หรือคอนโซลก็เป็นแบบเดียวกัน
      ถ้าจัดการการเปลี่ยนแปลงด้วย IaC เครื่องมือที่ใช้สำรวจรีซอร์สแบบมองเห็นภาพได้ก็มีประโยชน์ AWS คอนโซลนั้น ใช้งานลำบาก เกินไป
    • ฉันก็คิดคล้ายกัน ตอนนี้จัดการ provisioning ด้วย Terraform อยู่แล้ว และงาน ad-hoc ก็ใช้ aws-cli ก็พอ
      การเพิ่มอีกเลเยอร์เข้ามาทำให้มี ความเสี่ยง สูง
    • ถึงอย่างนั้น ถ้าสามารถสลับไปมาระหว่างล็อกกับคอนโซลได้เร็วเพื่อดูสถานการณ์ก็ถือว่าดี
      ถ้าใช้แบบ k9s โดยให้มีแค่ สิทธิ์อ่านอย่างเดียว ก็น่าจะโอเค
    • น่าจะดีถ้ามีเอนจินแบบ Terraform ที่ แสดง “plan” ก่อนรัน และไม่ทำอย่างอื่นนอกจากนั้นโดยเด็ดขาด
  • ถ้ามีรายการอย่าง “ค่าใช้จ่ายของการเปลี่ยนแปลงปัจจุบัน (Price of Current Changes)” บนแถบเมนูก็น่าจะดี
    จะได้เห็นทันทีว่าการเปลี่ยนแปลงนั้นราคา 0.01 ดอลลาร์หรือ 10,001 ดอลลาร์

    • คิดอยู่เหมือนกันว่าถ้า Amazon ทำให้มันง่ายแบบนั้นได้ก็คงดีมาก
  • ในโค้ดมีคอมเมนต์ // TODO: Handle credential_source, role_arn, source_profile, sso_*
    หมายความว่ายังไม่รองรับ SSO หรือการล็อกอินหลายบัญชี และต้องใช้ AWS_ACCESS_KEY_ID กับ AWS_SECRET_ACCESS_KEY โดยตรง
    ในสภาพแวดล้อม production มองว่า เสี่ยงด้านความปลอดภัย มาก จึงใช้งานจริงได้ยาก

    • ฉันก็คิดว่าความปลอดภัยสำคัญ แต่ตอนนี้ยังเป็น เวอร์ชันเริ่มต้น อยู่ มีแผนจะค่อย ๆ เพิ่มความสามารถโดยรับฟังฟีดแบ็กจากชุมชน
    • ถ้า ไม่รองรับ SSO ฉันก็คงใช้ลำบากเหมือนกัน
  • ช่วงนี้รู้สึกว่าสคริปต์เชลล์ยาว 15 บรรทัดมักจะพองตัวกลายเป็น แอป bun CLI หรือ TUI ขนาด 50k บรรทัด ไปเสียหมด

    • จุดประสงค์ต่างกัน aws-cli มีไว้สำหรับ สคริปต์และงานซ้ำ ๆ ส่วนเครื่องมือแบบนี้มีไว้สำหรับ การสำรวจและตรวจดูเฉพาะหน้า
      ไม่ได้มาแทน CLI เดิม แต่ควรมองว่าเป็น เครื่องมือเสริม
    • พูดอีกแบบคือให้ความรู้สึกเหมือน Electron ในเทอร์มินัล
  • ถ้าเป็นองค์กรที่มีหลายบัญชี AWS การตั้งค่าโปรไฟล์ล่วงหน้าด้วยเครื่องมืออย่าง aws-sso-util จะช่วยให้สลับบัญชีได้เร็วขึ้นมาก

  • ตอนแรกที่เห็นชื่อหัวข้อ นึกไปเองชั่วครู่ว่าหมายถึง “AWS UI เปลี่ยนมาเป็นแบบเทอร์มินัล แล้ว” เลยแอบตื่นเต้น

  • อาจเป็นคำถามงี่เง่า แต่สงสัยว่า TUI จะมองเห็นได้ดีไหมใน เทอร์มินัลพื้นหลังสว่าง

    • ไม่ใช่คำถามงี่เง่าเลย ฉันมาจากยุค เทอร์มินัลจอเขียว เลยสบายตากว่ามากกับพื้นขาวตัวอักษรดำ
      dark mode กลับทำให้ ล้าตา มากกว่า
      น่าเสียดายที่บนเทอร์มินัลพื้นหลังสว่างของฉัน แอป แครช ทันทีหลังเปิด เลยยังทดสอบไม่ได้
  • พอรันครั้งแรกก็ แครช ทันที สภาพแบบนี้คงยากจะดังแบบไวรัล

    • มี ปัญหาการจัดการรีซอร์ส อยู่ แต่แก้แล้วในเวอร์ชัน 1.0.1 ลองใหม่ได้
  • อยากให้ดีไซเนอร์ TUI ได้ลองสัมผัสอินเทอร์เฟซยุคเมนเฟรมอย่าง Hercules กันมากกว่านี้
    ปรัชญาการจัดวาง UI ในยุคนั้น มีหลายอย่างที่น่าเรียนรู้

    • ฉันก็สงสัยเรื่องนั้นเหมือนกัน ทุกวันนี้แอป TUI ดูคล้ายกันไปหมด เลยอยากรู้ว่าการออกแบบที่แตกต่างในยุคนั้นเป็นอย่างไร
    • อยากฟังเพิ่มเติมว่าคุณชอบจุดไหนเป็นพิเศษ