AWS CLI là một công cụ mạnh mẽ cho phép lập trình viên quản lý và tương tác trực tiếp với các dịch vụ của AWS dễ dàng thông giao diện dòng lệnh. Trong bài viết này, hãy cùng ITviec khám phá chi tiết về AWS CLI cùng những lí do vì sao công cụ này lại trở nên thông dụng trong lĩnh vực công nghệ thông tin nhé!

Đọc bài viết để hiểu rõ:

  • Khái niệm AWS CLI, lí do phổ biến, cách hoạt động và những ưu nhược điểm
  • AWS CLI cung cấp những loại công cụ gì?
  • Phương pháp tải và cài đặt AWS CLI bản chuẩn cho Windows, macOS, Linux
  • Tổng hợp cú pháp AWS CLI thông dụng

AWS CLI là gì?

AWS CLI (Amazon Web Services Command Line Interface) là một công cụ cung cấp môi trường tập trung cho phép người dùng quản lý và giám sát tất cả các dịch vụ AWS của mình từ một phiên làm việc trên máy khách.

AWS là một nền tảng dịch vụ đám mây an toàn cung cấp khả năng điện toán, phân phối nội dung, lưu trữ cơ sở dữ liệu và các dịch vụ cơ sở hạ tầng khác. 

Mặc dù hầu hết các dịch vụ AWS có thể được quản lý thông qua AWS Management Console hoặc qua các API, người dùng còn một lựa chọn nữa đó là sử dụng giao diện dòng lệnh (CLI – Command Line Interface) mà AWS cung cấp trên các hệ điều hành Linux, MacOS và Windows. 

Chỉ cần một vài bước cài đặt đơn giản với máy tính có cấu hình tối thiểu, lập trình viên đã có thể bắt đầu sử dụng tất cả các chức năng được cung cấp bởi AWS Management Console qua CLI. Cụ thể:

  • Qua các shell Linux: Người dùng có thể sử dụng các chương trình shell như bash, tsch và zsh để chạy lệnh trên các hệ điều hành như Linux, macOS hoặc Unix.
  • Qua dòng lệnh của Windows: Trên Windows, lập trình viên có thể chạy các lệnh trong PowerShell hoặc dòng lệnh của Windows.
  • Từ xa: Người dùng còn có thể chạy lệnh trên các máy ảo Amazon EC2 thông qua phiên làm việc từ xa như PuTTY hoặc SSH, đồng thời cũng có thể sử dụng AWS Systems Manager để tự động hóa các nhiệm vụ vận hành trên tài nguyên AWS.

Ngoài ra, CLI cũng cung cấp khả năng truy cập trực tiếp vào API công khai của các dịch vụ AWS cùng khả năng tùy chỉnh cho nhiều dịch vụ.

Vì sao AWS CLI được sử dụng phổ biến?

Vậy nếu lập trình viên đã có AWS Web Console để kiểm soát các dịch vụ AWS, thì tại sao lại cần biết sử dụng cả CLI nữa?

Đọc thêm: AWS Console là gì? 10 thành phần chính của AWS Console

CLI cho phép người dùng truy cập vào các tệp trong cổng thông tin thông qua những lệnh cụ thể, giúp tiết kiệm rất nhiều thời gian do quy trình kiểm soát và quản lý dịch vụ AWS được tự động hóa toàn bộ thông qua các tập lệnh. Những tập lệnh này giúp tạo nên một cơ sở hạ tầng đám mây hoàn toàn tự động.

Hãy xem ví dụ dưới đây để hiểu hơn:

AWS Web Console cũng là một phương pháp để kiểm soát dịch vụ AWS nhưng ít hiệu quả hơn:

Cách người dùng kiểm soát các dịch vụ AWS hiệu quả hơn qua AWS CLI:

aws cli - itviec blog

aws cli - itviec blogLý do chính là vì quá trình cài đặt cấu hình cơ sở hạ tầng thông qua giao diện Web Console của AWS khá phức tạp và tốn nhiều thời gian, vậy nên AWS CLI sẽ trở thành công cụ cần thiết giúp quá trình cài đặt cấu hình trở nên nhanh chóng, đơn giản và hiệu quả, tiết kiệm rất nhiều thời gian, công sức và tăng năng suất làm việc chung.

Tóm lại, AWS CLI giúp cho việc điều khiển tất cả các dịch vụ AWS trở nên dễ dàng hơn bằng cách kết nối các lệnh vào một giao diện dòng lệnh (CLI) đơn giản và loại bỏ bước tương tác với hệ thống thông qua Giao diện Người dùng Đồ họa (GUI), do GUI tuy thân thiện với người dùng nhưng có thể tốn thời gian làm việc.

Các loại công cụ trong AWS CLI

Trong AWS, có hai loại công cụ CLI được cung cấp:

  1. AWS CLI: Đây là công cụ dòng lệnh chính mà bài viết của chúng ta đang đề cập tới. Để sử dụng, lập trình viên cài đặt trực tiếp AWS CLI trên máy tính của mình. Công cụ AWS này chỉ có thể được sử dụng trên các hệ thống đã có cài đặt và cấu hình phù hợp.
  2. AWS CloudShell: Đây là một shell dựa trên trình duyệt mà người dùng có thể khởi động trực tiếp từ AWS Console để chạy các lệnh CLI tiêu chuẩn. CloudShell là một phần mở rộng hơn của AWS CLI và cung cấp nhiều lợi ích hơn, đặc biệt khả năng hỗ trợ truy cập từ bất cứ đâu thông qua cloud. 

Phương pháp tải và cài đặt AWS CLI cho Windows, macOS, Linux

Phương pháp tải và cài đặt AWS CLI cho Windows

  • Bước 1: Truy cập quyền quản trị để cài đặt phần mềm.
  • Bước 2: Tải và cài đặt
    1. Truy cập vào web của AWS để tải bản cài đặt CLI cho Windows (64-bit): [https://awscli.amazonaws.com/AWSCLIV2.msi
    2. Sau khi tải xong, chạy tệp cài đặt AWSCLIV2.msi. Bạn có thể sử dụng Command Prompt để chạy lệnh sau:
C:\> msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi

Hoặc bạn có thể chạy lệnh sau để cài đặt mặc định (silent installation):

C:\> msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi /qn
  • Bước 3: Xác nhận cài đặt
    1. Mở Command Prompt bằng cách tìm kiếm “cmd” trong menu Start.
    2. Trong cửa sổ Command Prompt, nhập lệnh sau để kiểm tra phiên bản AWS CLI đã được cài đặt:
C:\> aws --version

Nếu cài đặt thành công, bạn sẽ nhận được đầu ra tương tự như sau:

C:\> aws --version
aws-cli/2.15.30 Python/3.11.6 Windows/10 exe/AMD64 prompt/off

Nếu Command Prompt không nhận ra lệnh aws, bạn có thể thử đóng và mở lại cửa sổ Command Prompt để làm mới đường dẫn, hoặc thực hiện các bước sửa lỗi trong trang Troubleshoot AWS CLI errors.

Lưu ý: Bạn nên kiểm tra Changelog trên GitHub để xem phiên bản AWS CLI mới nhất nào đã phát hành khi cần cập nhật.

Phương pháp tải và cài đặt AWS CLI cho macOS

  • Bước 1: Kiểm tra các yêu cầu và các phiên bản macOS được hỗ trợ (từ macOS phiên bản 10.9 trở lên). Để biết thêm thông tin chi tiết, bạn có thể xem trên AWS Developer Tools Blog.
  • Bước 2: Tải và cài đặt CLI sử dụng trực tiếp trình cài đặt macOS
    1. Truy cập vào đường link sau trong trình duyệt để tải tệp macOS pkg: [https://awscli.amazonaws.com/AWSCLIV2.pkg]
    2. Sau khi tải xong, mở tệp đã tải và làm theo hướng dẫn trên màn hình. Bạn có thể chọn cách cài đặt như sau:

– Cài đặt cho tất cả người dùng trên máy tính (cần sử dụng sudo): Chọn thư mục mặc định /usr/local/aws-cli hoặc thư mục khác theo mong muốn của bạn.

– Cài đặt chỉ cho người dùng hiện tại (không cần sudo): Chọn một thư mục mà bạn có quyền ghi.

    1. Sau khi cài đặt hoàn tất, bạn cần tạo các liên kết symlink tới các chương trình awsaws_completer trong $PATH của bạn. Sử dụng Terminal và các lệnh sau (lưu ý thay đổi đường dẫn nếu cần):
$ sudo ln -s /folder/installed/aws-cli/aws /usr/local/bin/aws
$ sudo ln -s /folder/installed/aws-cli/aws_completer /usr/local/bin/aws_completer

Lưu ý: Nếu $PATH của bạn không có thư mục có thể ghi, bạn cần sử dụng sudo trong các lệnh trên để có quyền ghi vào thư mục đích.

    1. Để xác nhận rằng Terminal có thể tìm thấy và chạy lệnh aws trong $PATH, sử dụng các lệnh sau:
$ which aws
/usr/local/bin/aws 
$ aws --version
aws-cli/2.15.30 Python/3.11.6 Darwin/23.3.0 botocore/2.4.5

Nếu lệnh aws không được tìm thấy, bạn có thể cần khởi động lại Terminal hoặc thực hiện các bước sửa lỗi trong Troubleshoot AWS CLI errors.

Phương pháp tải và cài đặt AWS CLI cho Linux

  • Bước 1: Kiểm tra các yêu cầu và các phiên bản Linux được hỗ trợ 

Yêu cầu: Phiên bản 64-bit của các bản phân phối Linux như CentOS, Fedora, Ubuntu, Amazon Linux 1, Amazon Linux 2, Amazon Linux 2023 và Linux ARM.

  • Bước 2: Tải và cài đặt

Cách 1: Cài đặt AWS CLI nhanh

  1. Sử dụng lệnh curl để tải tệp zip chứa CLI cho Linux 64-bit:
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
  1. Giải nén tệp zip sau khi tải xong:
unzip awscliv2.zip
  1. Chạy lệnh install từ thư mục đã giải nén. Lệnh này sẽ cài đặt CLI vào /usr/local/aws-cli và tạo một liên kết tượng trưng trong /usr/local/bin (cần sử dụng sudo để có quyền ghi vào các thư mục này):
sudo ./aws/install

Cách 2: Cài đặt AWS CLI có hướng dẫn

  1. Sử dụng lệnh curl để tải tệp zip chứa CLI cho Linux 64-bit:
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
  1. Giải nén tệp zip sau khi tải xong:
$ unzip awscliv2.zip
  1. Chạy lệnh install từ thư mục đã giải nén để cài đặt CLI. Bạn có thể chỉ định thư mục cài đặt và thư mục bin của bạn:
sudo ./aws/install --bin-dir /usr/local/bin --install-dir /usr/local/aws-cli --update

Để cập nhật CLI, bạn có thể sử dụng cùng một quy trình như trên nhưng thêm tùy chọn –update vào lệnh install:

$ sudo ./aws/install --bin-dir /usr/local/bin --install-dir /usr/local/aws-cli --update
  1. Xác nhận cài đặt

Sau khi cài đặt hoàn tất, bạn có thể kiểm tra phiên bản CLI đã cài đặt bằng lệnh:

$ aws --version

Nếu lệnh aws không được tìm thấy, bạn có thể cần khởi động lại Terminal hoặc thực hiện các bước sửa lỗi trong Troubleshoot AWS CLI errors.

Ưu điểm và nhược điểm của AWS CLI

Ưu điểm

  • Dễ dàng cài đặt: CLI được cài đặt một cách đơn giản và có tiêu chuẩn rõ ràng hơn so với các toolkit trước đây như AWS EC2 API toolkit. Việc cài đặt AWS trước đây cần qua nhiều bước và yêu cầu người dùng thiết lập nhiều biến môi trường. Công cụ này đã loại bỏ những sự phức tạp này, cho phép người dùng cài đặt nhanh chóng và dễ dàng hơn.
  • Hỗ trợ tất cả các dịch vụ AWS: Trước đây, lập trình viên cần sử dụng một công cụ CLI riêng cho dịch vụ EC2. Tuy vậy, công cụ này không cho phép người dùng kiểm soát các dịch vụ khác của Amazon Web Services như RDS (Relational Database Service). Giờ đây với CLI, người dùng có thể kiểm soát tất cả các dịch vụ từ một công cụ đơn giản.
  • Tiết kiệm thời gian: Việc sử dụng CLI giúp người dùng thao tác nhanh hơn so với giao diện đồ họa (GUI) một khi đã quen với hệ thống và cần sử dụng nhiều lệnh hơn.
  • Tự động hóa với Shell scripting: Khả năng tự động hóa kiểm soát tất cả các dịch vụ web của Amazon bằng scripts là một trong những lợi ích nổi bật nhất của CLI. Việc tự động hóa một phần các tác vụ giúp lập trình viên không cần phải đăng nhập vào AWS Management Console mà vẫn có thể dễ dàng tự động hóa cơ sở hạ tầng điện toán đám mây.

Nhược điểm

  • Khá khó học và làm quen: CLI yêu cầu lập trình viên đầu tư công sức và thời gian học nhiều hơn do cần ghi nhớ các lệnh và cú pháp/đối số phức tạp. So với giao diện đồ họa người dùng (GUI), người dùng mới có thể gặp nhiều khó khăn hơn khi bắt đầu sử dụng CLI.
  • Lệnh khác nhau trong các shell khác nhau: CLI sử dụng các lệnh khác nhau trong các shell khác nhau (ví dụ: bash, zsh). Điều này có thể gây khó khăn cho người dùng khi phải chuyển đổi giữa các môi trường shell khác nhau.

Mặc dù có một số nhược điểm như trên, đây vẫn là một công cụ mạnh mẽ cho phép người dùng kiểm soát, tự động hóa các dịch vụ của Amazon Web Services một cách hiệu quả và linh hoạt.

Cú pháp cơ bản của AWS CLI

aws <command> <subcommand> [options and parameters]

Trong đó:

aws: Là lệnh gọi AWS CLI.

<command>: Tương ứng với dịch vụ AWS mà bạn muốn truy cập.

<subcommand>: Chỉ định hoạt động mà bạn muốn thực hiện.

[options and parameters]: Là các tùy chọn và tham số của CLI có thể được đưa ra ở đây.

Các tùy chọn phổ biến của AWS CLI

–region: Chỉ định khu vực AWS mà yêu cầu của lệnh sẽ được gửi đến.

–output: Chỉ định định dạng đầu ra cho một lệnh cụ thể. Các định dạng đầu ra có thể được lựa chọn là JSON, YAML, văn bản và bảng.

cliread-timeout: Chỉ định thời gian tối đa để đọc socket tính bằng giây. Nếu là 0, thì thời gian chờ là không giới hạn.

Các lệnh phổ biến của AWS CLI cho Amazon S3

Tạo một bucket

aws s3 mb s3://my-bucket

Thay my-bucket bằng tên gọi mong muốn cho bucket của bạn.

Liệt kê các bucket

aws s3 ls

Liệt kê tất cả các bucket trong tài khoản Amazon S3 của bạn.

Tải lên một tập tin

aws s3 cp file.txt s3://my-bucket/file.txt

Thay file.txt bằng tên của tập tin bạn muốn tải lên và my-bucket bằng tên bucket của bạn.

Tải xuống một tập tin

aws s3 cp s3://my-bucket/file.txt file.txt

Thay file.txt bằng tên của tập tin bạn muốn tải xuống và my-bucket bằng tên bucket của bạn.

Xóa một tập tin

aws s3 rm s3://my-bucket/file.txt

Thay file.txt bằng tên của tập tin bạn muốn xóa và my-bucket bằng tên bucket của bạn.

Xóa một bucket

aws s3 rb s3://my-bucket

Thay my-bucket bằng tên của bucket bạn muốn xóa.

Các lệnh phổ biến của AWS CLI cho Amazon Elastic Compute Cloud (Amazon EC2)

Tạo một instance EC2

aws ec2 run-instances --image-id ami-0c55b159cbfafe1f0 --count 1 --instance-type t2.micro --key-name MyKeyPair --security-group-ids sg-0123456789abcdef0 --subnet-id subnet-0123456789abcdef0

Lệnh này tạo một instance EC2 loại t2.micro, sử dụng Amazon Machine Image (AMI) có ID là ami-0c55b159cbfafe1f0, được liên kết với key pair MyKeyPair và security group sg-0123456789abcdef0, và được khởi chạy trong subnet subnet-0123456789abcdef0.

Liệt kê các instance EC2

aws ec2 describe-instances

Lệnh này trả về một đối tượng JSON chứa thông tin về các instance, bao gồm ID, loại và trạng thái của chúng.

Dừng một instance EC2

aws ec2 stop-instances --instance-ids i-0123456789abcdef0

Lệnh này dừng instance EC2 với ID là i-0123456789abcdef0.

Khởi động lại một instance EC2

aws ec2 start-instances --instance-ids i-0123456789abcdef0

Lệnh này khởi động lại instance EC2 với ID là i-0123456789abcdef0.

Trên đây là một số ví dụ về các tác vụ S3 và EC2 mà bạn có thể thực hiện bằng CLI. Công cụ AWS này cung cấp một tập hợp các lệnh phong phú cho phép lập trình viên quản lý instance EC2, tạo bản snapshot, cùng nhiều tác vụ khác.

Các câu hỏi thường gặp về AWS CLI

Version mới nhất của AWS CLI là gì?

Phiên bản mới nhất của AWS CLI là phiên bản 2. CLI phiên bản 2 hỗ trợ tất cả các tính năng mới nhất và có nhiều cải tiến so với phiên bản trước đó. 

AWS CLI có sử dụng được trong AWS Lambda không?

Có, người dùng hoàn toàn có thể sử dụng CLI trong hàm AWS Lambda. Để thực hiện điều này, lập trình viên cần tạo một lambda layer và bao gồm tất cả các phụ thuộc của CLI trong gói triển khai của mình, và sau đó có thể gọi các lệnh AWS CLI từ bên trong hàm Lambda để tương tác với các dịch vụ AWS khác. 

AWS CLI có điểm gì khác với AWS Console?

AWS CLI là một công cụ dòng lệnh dùng để quản lý và tương tác với dịch vụ AWS thông qua terminal, cho phép tích hợp vào các quy trình công việc và tự động hóa các tác vụ.

Trong khi đó, AWS Console là một ứng dụng web đồ họa cung cấp giao diện trực quan để tương tác và quản lý các dịch vụ AWS thủ công trực tiếp.

AWS CLI có phải mã nguồn mở không?

AWS CLI là một công cụ miễn phí có mã nguồn mở từ Amazon Web Services (AWS), cho phép người dùng tương tác với dịch vụ AWS thông qua các lệnh trong command line shell.

Những vị trí nào nên biết sử dụng AWS CLI?

Hiểu biết kiến thức sử dụng AWS CLI sẽ giúp ích cho lập trình viên trong nhiều vị trí công việc IT như: AWS Engineer, AWS Developer, AWS Architect, AWS DevOps Engineer, JAVA DevOps Engineer,…

Tổng kết

Từ những thao tác như tạo instance EC2, đến quản lý các tệp trên S3, AWS CLI là một công cụ không thể thiếu đối với mọi chuyên viên phát triển ứng dụng và quản trị viên hệ thống AWS. Với khả năng tự động hóa tối ưu năng suất và tiết kiệm thời gian, công cụ AWS này chính là “trợ thủ” giúp lập trình viên gia tăng hiệu quả làm việc trên nền tảng cùng loạt sản phẩm đa dạng của AWS, từ đó thúc đẩy năng lực cạnh tranh của chính mình trên thị trường IT.