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:
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.
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.
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.
Download and run the 64-bit Windows installer.
Download and run the MacOS PKG installer.
Download, unzip and then run the Linux installer
The AWS CLI comes pre-installed on Amazon Linux AMI.
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
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,
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.