What is AWS CLI?

The AWS CLI is a tool that pulls all AWS services together into a central console, giving you easy control of multiple AWS services with a single tool.

The acronym stands for Amazon Web Services Command Line Interface because, as its name suggests, users operate it from the command line. With it, you can control services manually or automate them with powerful scripts.

How it works?

AWS is a secure cloud services platform that provides developers computing power, content delivery, database storage, and other infrastructure services.

Proponents point to its speed, flexible pricing, exemplary customer service, and multiple services as benefits. The AWS CLI puts the icing on the cake by bundling control of all those services into a simple command-line interface. It cuts out the user-friendly (but time-consuming) phase of interacting with the system through the Graphical User Interface (GUI).

How to Install AWS CLI

You can download and install the tool from the AWS CLI resource page on Amazon. The page has download options for Windows, Mac, and Linux installations.

It also has a beginners guide, a comprehensive reference manual, a user forum, and a link to the GitHub project. Here are the install tools offered by Amazon:

  • Windows 64-bit download
  • Windows 32-bit download

Chocolately: choco awscli

Mac and Linux download (requires Python 2.6.5 or greater)

Pip install link

To install AWS CLI, users sign up for an AWS account, get an access key ID and secret access key, then pick a (very simple!) install method depending on their system and software.

Those with a pip/Python system can run:

Amazon's install documentation here also explains options to install Python/pip/CLI on Linux and install AWS CLI on MS Windows, macOS, or in a Virtual Environment. There's also an option to install the tool with the Bundled Installer for Linux, Unix, or macOS. Overall, the install steps are as simple as downloading the archive, unpacking it, running the (short) install script and checking your work.

The following examples show the interface in action performing various tasks and demonstrate how powerful it can be.

Deleting an S3 Bucket

The Amazon S3 service is Amazon's Simple Storage Device. It provides basic online data storage in a pay-for-what-you-use plan. The data are stored in buckets.

When using the standard GUI, deleting a bucket with several files and folders can be somewhat time-consuming. By using the AWS CLI, you can perform this task in just a few seconds with a single command:

Creating EC2 instances

Amazon Elastic Compute Cloud or EC2 is an Amazon Web service that provides simple web-scale cloud computing for developers. The example below shows how the command-line tool makes it easy to start multiple EC2 instances.

List all paused EC2 instances and showed why each one stopped

When you're managing multiple EC2 instances, listing the paused instances and showing the reason for each can be a minor issue with the standard GUI. The example below shows how to use the AWS CLI (and jq) to do this easily:

Advantages of AWS CLI

One of the main advantages is the ability to save substantial time. The savings come from easy installation, all services support from one tool, moving beyond the GUI, and automating processes and commands with shell scripting.

  • Easy to install. Installing previous toolkits, such as the older AWS EC2 API Toolkit, took several steps and forced users to set multiple environment variables. There were too many places to go wrong and set up. One of the major benefits of the AWS CLI is that the installation is smooth, quick, simple, and standardized.
  • Supports all Amazon web services. Previously, you only needed a dedicated CLI tool for the EC2 service. It worked well, but it didn't let users control other Amazon Web services, such as, for example, AWS RDS (Relational Database Service). The AWS CLI, in contrast, lets you control allthe services with one simple tool.
  • Saves time. GUIs are great when you're learning the ropes of a system. Once you're up and running, the user-friendly graphical interface tools start to stand in your way. Most users find the AWS CLI faster and easier to use once they reach a certain level of proficiency.
  • Scr Amazon's ability to automate the control of all web services with scripts is probably the biggest advantage. Partial task automation can free developers from logging into the AWS Management Console, and shell scripts make it easy to automate cloud infrastructure fully.

Since the interface is a controller for all of Amazon's web services, the best practices for using it well are largely the same as for AWS. Amazon has produced an avalanche of good documentation on its best practices that could fill mass-market paperbacks.

The list includes best practices for Architecture, Web App Hosting, Security, Email, IAM, DynamoDB, EC2 and Trusted advisors. Below is a list of top five best practices of programmer analyst.

  • Keep your credentials With great power comes great responsibility. The command-line interface makes everything easy for hackers and White Hat users to manage Amazon Web Services. Never use root accounts for day-to-day conversations, and do not generate a root access key for your AWS root account.
  • Secure your applications. Allow only app-layer access to your database layer. Allow connections to the outside world only where it is necessary and deny all other Internet traffic.
  • Backup early, backup often. Use Amazon EBS Snapshot to back up your instance regularly. Test recovery resources before an emergency occur. Here's Amazon's documentationon how to automate backups.
  • Use a trusted advisor. Amazon Called Trusted Advisor "Your Optimized Cloud Expert!" It analyzes your AWS environment, helping you follow best practices. Trusted Consultant seeks ways to save money, address security loopholes, and improve system reliability and performance. For example, you can access Trusted Advisor from the AWS command-line interface to check service limits.
  • Understand the Shared Responsibility Model. Users manage their data, operating system, and security, and Amazon is responsible for infrastructure and services. It is true whether you're using the standard GUI or the simpler, faster command-line interface.

Additional Resources and Tutorials

For additional info and help with the interface, see the shortlist of resources below.

AWS CLI Shell. This shell is an interactive productivity booster available on GitHub, and it helps users run the interface even if they don't know all the commands.

The Amazon Web Services command-line interface is a powerful tool to help you manage powerful cloud services.

But Amazon isn't the only cloud service; At Stackify, we're big fans of Azure, and we built our powerful APM solution, Retrace, with Azure in mind. If you're on the fence about cloud providers, check out our Azure vs AWS comparison. In this post, we offer some additional points to consider and make a case for not putting all your eggs in one basket.

AWS command-line interface

The AWS Command Line Interface (CLI) is a unified tool for managing your AWS services. With just one tool to download and configure, you can control multiple AWS services from the command line and automate them through scripts.

AWS CLI v2 offers several new features, including an improved installer, new configuration options such as AWS Single Sign-On (SSO), and various interactive features.

Windows

Download and run the 64-bit Windows installer.

MacOS

Download and run the MacOS PKG installer.

Linux

Download, unzip and then run the Linux installer

Amazon Linux

The AWS CLI comes pre-installed on Amazon Linux AMI.

Release Notes

Check out the Release Notes for more information on the latest version.

aws-shell (Developer Preview)

aws-shell is a command-line shell program that provides convenience and productivity features to help new and advanced users of the AWS Command Line Interface. Key features include the following.

Fuzzy auto-completion for Commands (e.g. ec2, describe-instances, sqs, create-queue)

Options (e.g. --instance-ids, --queue-url)

Resource identifiers (e.g. Amazon EC2 instance IDs, Amazon SQS queue URLs, Amazon SNS topic names)

Dynamic in-line documentation

Documentation for commands and options are displayed as you type

Execution of OS shell commands

Use common OS commands such as cat, ls, and cp and pipe inputs and outputs without leaving the shell.

Export executed commands to a text editor

Usage

The AWS Command Line Interface User Guide walks you through installing and configuring the tool. After that, you can begin making calls to your AWS services from the command line.

You can get help on the command line to see the supported services,

  • $ aws help the operations for a service,
  • $ aws autoscaling help and the parameters for a service operation.
  • $ aws autoscaling create-auto-scaling-group help

File Commands for Amazon S3

New file commands make it easy to manage your Amazon S3 objects. Using familiar syntax, you can view the contents of your S3 buckets in a directory-based listing.

You can perform recursive uploads and downloads of multiple files in a single folder-level command. The AWS CLI will run these transfers in parallel for increased performance.

A sync command makes it easy to synchronize the contents of a local folder with a copy in an S3 bucket.