Amazon Q CLI - Dễ sử dụng như thế mà tới giờ mình mới dùng!

Amazon Q CLI - Dễ sử dụng như thế mà tới giờ mình mới dùng!

Publish Date: May 27
2 0

🚀 Amazon Q CLI - Trợ lý AI Siêu Đẳng Trong Terminal Của Bạn!

Nhờ chương trình: Build Games with Amazon Q CLI and score a T shirt 🏆👕 mà mình mới thực sự tiếp xúc, thực hành với Amazon Q CLI. Và nó tuyệt vời hơn cả sự mong đợi của mình.
Image description

🤯 Những điều Amazon Q CLI làm được sẽ khiến bạn ngỡ ngàng

Bất ngờ #1: Nó hiểu hệ thống của bạn!

Amazon Q không chỉ là một AI thông minh, nó còn hiểu rõ môi trường làm việc của bạn. Hệ điều hành? Thư mục hiện tại? Cấu trúc dự án? Q nắm rõ tất cả! Không cần phải giải thích dài dòng về context nữa.

Bất ngờ #2: Nó viết code như một senior dev!

# Bạn: "Viết cho tôi một hàm tính giai thừa"
# Amazon Q: "Đây là hàm tính giai thừa với cả đệ quy và vòng lặp:"

def factorial_recursive(n):
    if n <= 1:
        return 1
    return n * factorial_recursive(n-1)

def factorial_iterative(n):
    result = 1
    for i in range(1, n+1):
        result *= i
    return result
Enter fullscreen mode Exit fullscreen mode

Chỉ vài dòng promt, mà mình đã build ra được cái game rắn săn mồi với tính năng cơ bản nhất:

Mọi người có thể tham khảo tại: https://github.com/mvn-bachhuynh-dn/snake-amazonq

Vậy là có thể nhận áo rồi của chương trình trên rồi :-)

Bất ngờ #3: Nó thực thi lệnh bash giúp bạn!

Quên đi những lần Google "làm sao để tìm file trong Linux" - Amazon Q sẽ làm điều đó cho bạn!

Từ giờ chẳng cần bạn phải nhớ bất kì câu lệnh nào cả...chỉ cần prompt thôi, ngay cả ngôn ngữ tiếng Việt thì Amazon Q CLI cũng hiểu rất tốt.

Image description

Bất ngờ #4: Nó tương tác với AWS như một chuyên gia!

Bạn không nhớ cú pháp của AWS CLI? Không sao! Amazon Q sẽ giúp bạn tạo, quản lý và truy vấn tài nguyên AWS một cách dễ dàng.

Đúng như vậy, với đặc điểm đặc biệt là Amazon Q CLI của AWS phát triển, thì mình tin chắc nó nắm vững AWS CLI và kiến trúc AWS rõ hơn tất cả các AI khác hiện nay.

Bạn có thể làm mọi điều bằng Amazon Q CLI:

Thông qua promt - Thông qua promt - Thông qua promt

  • Đăng nhập aws sso với 1 profile nhất định: Q tự tìm và đăng nhập cho bạn luôn, nếu failed, Q tự retry lại với những option khác nhau.

Image description

  • Liệt kê chi phí. Nhờ Q tìm hiểu cách giảm chi phí

Ví dụ một response của Q khi mình muốn giảm chi phí Cloudwatch Logs

2. Custom Metrics:
   • Mỗi custom metric có chi phí $0.30/tháng
   • Với nhiều services, số lượng metrics có thể lên đến hàng nghìn

3. Tần suất thu thập metrics cao:
   • Hiện tại đang cấu hình 60 giây/lần (standard resolution)
   • Mỗi datapoint có chi phí riêng

4. Enhanced Monitoring cho RDS:
   • Đang bật Enhanced Monitoring với tần suất 60 giây cho cả hai instance RDS
   • Tạo ra nhiều metrics chi tiết với chi phí cao

5. Dashboards và Alarms:
   • Mỗi dashboard có chi phí $3/tháng
   • Mỗi alarm metric có chi phí $0.10/tháng

## Giải pháp tối ưu hóa chi phí CloudWatch:

### 1. Tối ưu hóa Log Groups:

• **Giảm thời gian lưu trữ logs**:

bash
  aws logs put-retention-policy --log-group-name "/ecs/us-prod-receptionhq-taskdef-service-*" --retention-in-days 14


  • Giảm từ mặc định (vĩnh viễn) xuống 14-30 ngày có thể tiết kiệm 50-70% chi phí lưu trữ

• **Lọc logs không cần thiết**:

bash
  aws logs put-subscription-filter --log-group-name "/ecs/us-prod-receptionhq-taskdef-service-*" --filter-name "exclude-debug" --filter-pattern "?DEBUG ?TRACE" --destination-arn "arn:aws:logs:region:account:destination"


  • Loại bỏ logs debug và trace có thể giảm 30-40% khối lượng logs

• **Nén logs**:
  • Bật tính năng nén logs để giảm kích thước lưu trữ
  • Tiết kiệm 40-60% chi phí lưu trữ

### 2. Tối ưu hóa Metrics:

• **Giảm tần suất thu thập metrics**:

bash
  aws cloudwatch put-metric-alarm --alarm-name "CPU-Utilization" --metric-name "CPUUtilization" --namespace "AWS/EC2" --period 300 --evaluation-periods 1 --threshold 80 --comparison-operator "GreaterThanThreshold" --statistic "Average"


  • Thay đổi từ 60 giây lên 300 giây (5 phút) có thể giảm 80% chi phí metrics

• **Loại bỏ metrics không cần thiết**:
  • Xác định và loại bỏ các custom metrics ít sử dụng
  • Tập trung vào metrics quan trọng cho monitoring và alerting

• **Sử dụng Metric Math thay vì tạo metrics mới**:
  • Sử dụng Metric Math để tính toán metrics phái sinh thay vì lưu trữ chúng

### 3. Tối ưu hóa RDS Enhanced Monitoring:

• **Giảm tần suất Enhanced Monitoring**:

bash
  aws rds modify-db-instance --db-instance-identifier us-prod-receptionhq-mariadb --monitoring-interval 300
  aws rds modify-db-instance --db-instance-identifier us-prod-receptionhq-mssqldb --monitoring-interval 300


  • Thay đổi từ 60 giây lên 300 giây có thể giảm 80% chi phí

• **Chỉ bật Enhanced Monitoring cho instance quan trọng**:
  • Có thể tắt Enhanced Monitoring cho môi trường không quan trọng

### 4. Tối ưu hóa Dashboards và Alarms:

• **Hợp nhất dashboards**:
  • Kết hợp nhiều dashboards thành một dashboard tổng hợp
  • Giảm số lượng dashboards không cần thiết

• **Xem xét lại các alarms**:
  • Loại bỏ các alarms trùng lặp hoặc không cần thiết
  • Sử dụng composite alarms để giảm số lượng alarms

### 5. Sử dụng CloudWatch Logs Insights hiệu quả:

• **Tối ưu hóa queries**:
  • Sử dụng queries hiệu quả để giảm khối lượng dữ liệu quét
  • Giới hạn thời gian quét logs

• **Lên lịch cho các báo cáo**:
  • Thay vì truy vấn liên tục, lên lịch cho các báo cáo định kỳ

### 6. Sử dụng CloudWatch Container Insights có chọn lọc:

• **Chỉ bật cho các services quan trọng**:
  • Container Insights tạo ra nhiều metrics chi tiết với chi phí cao
  • Chỉ bật cho các services quan trọng cần giám sát chi tiết

### 7. Sử dụng CloudWatch Contributor Insights có chọn lọc:

• **Giới hạn việc sử dụng**:
  • Chỉ sử dụng cho việc phân tích ngắn hạn, không bật liên tục

### Ước tính tiết kiệm:

| Giải pháp | Tiết kiệm ước tính |
|-----------|-------------------|
| Giảm thời gian lưu trữ logs | $100-150/tháng |
| Lọc logs không cần thiết | $50-80/tháng |
| Giảm tần suất thu thập metrics | $80-120/tháng |
| Tối ưu RDS Enhanced Monitoring | $30-50/tháng |
| Hợp nhất dashboards và alarms | $10-20/tháng |
| Tổng tiết kiệm tiềm năng | $270-420/tháng |

### Kế hoạch triển khai:

1. Ngay lập tức (1-2 ngày):
   • Giảm thời gian lưu trữ logs xuống 14-30 ngày
   • Giảm tần suất Enhanced Monitoring cho RDS

2. Ngắn hạn (1 tuần):
   • Lọc logs debug và trace không cần thiết
   • Giảm tần suất thu thập metrics từ 60s lên 300s

3. Trung hạn (2-4 tuần):
   • Xem xét và loại bỏ các custom metrics không cần thiết
   • Hợp nhất dashboards và alarms

4. Dài hạn (1-2 tháng):
   • Triển khai chiến lược logs và metrics toàn diện
   • Thiết lập quy trình đánh giá chi phí CloudWatch định kỳ

Bạn có muốn tôi đi sâu vào bất kỳ giải pháp cụ thể nào trong số này không?
Enter fullscreen mode Exit fullscreen mode
  • Thực hiện start/stop instance, db

Image description

  • Thực hiện chạy ECS task...
  • v.v...

Bất ngờ #5: Chế độ ngắn gọn

q --brief "Giải thích về Docker"
Enter fullscreen mode Exit fullscreen mode

Khi bạn cần câu trả lời ngắn gọn, súc tích, không lan man!

Bất ngờ #6: Lưu cuộc trò chuyện

q --save-chat my_awesome_chat
Enter fullscreen mode Exit fullscreen mode

Để sau này nhìn lại và tự hỏi: "Wow, AI đã giúp mình giải quyết vấn đề này á?"

Bất ngờ #7: Chế độ code

q --code "Viết một API REST với FastAPI"
Enter fullscreen mode Exit fullscreen mode

Tập trung vào code, bỏ qua những giải thích dài dòng!

🎮 Hướng dẫn sử dụng cơ bản

Cài đặt siêu đơn giản

Theo document này: https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/command-line-installing.html

Đặc biệt, nếu sử dụng trên nền tảng Linux thông qua SSH (Không có GUI)
sử dụng document này:
https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/command-line-installing-ssh-setup-autocomplete.html

Lưu ý:
Trong hướng dẫn có ghi rõ với cách cài đặt Standard version (glibc 2.34+) thì yêu cầu glibc >= 2.34.
Mình sử dụng Ubuntu khi kiểm tra glibc version hiện tại là 2.35.
Tới khi cài đặt bản này thì báo lỗi:

./q/install.sh
/home/steve/.local/bin/q: /lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.32' not found (required by /home/steve/.local/bin/q)
/home/steve/.local/bin/q: /lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.34' not found (required by /home/steve/.local/bin/q)
/home/steve/.local/bin/q: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by /home/steve/.local/bin/q)
Enter fullscreen mode Exit fullscreen mode

Nếu gặp lỗi như vậy thì bạn hãy cài đặt bản: Musl version (for glibc < 2.34)

Bắt đầu cuộc trò chuyện thần kỳ

# Khởi động Amazon Q
q

# Hoặc với một câu hỏi cụ thể
q "Làm thế nào để tạo một Lambda function với Python?"
Enter fullscreen mode Exit fullscreen mode

Các option hữu ích

  • /editor Giúp bạn nhập promt nhiều dòng hoặc paste đoạn code nào đó bạn muốn Q xử lý.
  • /quit thoát Q.
  • /help Xem các option của Q.
  • /save Lưu lại toàn bộ conversation với Q.
  • /load Load lại conversation được lưu. ....

Setting cực kỳ quan trọng:

Để AmazonQ CLI không học từ dữ liệu của bạn. Hãy setting như sau (ở Terminal chính), gõ lệnh:

  • q settings telemetry.enabled false
  • q settings codeWhisperer.shareCodeWhispererContentWithAWS false

Để AmazonQ CLI luôn hỏi bạn nếu muốn xóa file:

  • /context hooks add prevent-file-deletion --global --trigger conversation_start --command "echo \"Confirm before deleting any files\""

🎭 Những tình huống Amazon Q CLI tỏa sáng

  1. Khi bạn quên cú pháp: "làm sao để grep chỉ tên file thôi?"
  2. Khi deadline cận kề: "giúp tôi debug đoạn code này gấp!"
  3. Khi bạn lười đọc docs: "S3 bucket policy cần những gì?"
  4. Khi 3 giờ sáng và không ai online: "tại sao code của tôi lại crash?"

🚫 Những điều Amazon Q không làm được (ít thôi!)

  • Không pha được cà phê (nhưng có thể giúp bạn viết script điều khiển máy pha cà phê thông minh!)
  • Không thể thay thế hoàn toàn Stack Overflow (nhưng gần như thế!)
  • Không thể đọc được suy nghĩ của sếp (nhưng có thể giúp bạn viết email chuyên nghiệp cho sếp!)

🌟 Kết luận: Cuộc sống developer/devops chưa bao giờ dễ dàng đến thế! Cuộc sống của một AWS engineer chưa bao giờ dễ dàng đến thế!

Hãy thử ngay hôm nay và cảm nhận sự khác biệt. Bạn sẽ tự hỏi làm thế nào mà trước đây bạn có thể sống mà không có nó! 😉

Comments 0 total

    Add comment