What is AWS CLI and How to Install it?

Read it in 14 Mins

Last updated on
31st May, 2022
Published
10th Sep, 2019
Views
10,474
What is AWS CLI and How to Install it?

Whether you are a small business or a big organisation, you must be familiar with Amazon Web Services. AWS is the world’s most widely used cloud computing platform – something that lets you move faster, operate more securely and save substantial costs. AWS offers 165 services spanning a wide range including computing, tools for the Internet of Things, developer tools, deployment, analytics, database, networking, etc. The AWS Command Line Interface (CLI) is a unified tool to manage your AWS services.

Do you want to Get AWS Certified? Learn about various  AWS Certification in detail

What is AWS CLI?

The AWS Command Line Interface (CLI) is a unified tool that manages the AWS services for you. You only have to download and configure one simple tool to control a plethora of AWS services. They are automated through scripts and help you implement a certain level of automation. It is indeed AWS CLI that makes AWS so dynamic and easy to use.

How to Install AWS CLI?

Putting AWS CLI to use in your AWS involves a few steps.

  • There are a few different ways to install it – you need to choose what works for your system.
  • Every operating system has a different method of installation.
  • Some generic steps are followed after the installation.
  • Then comes the configuration.
  • You will also need to upgrade it timely. 

Follow these steps to successfully install and configure the AWS CLI for use.

Ways to Install:

You can effectively install the AWS Command Line Interface (AWS CLI) using:

Ways to install the AWS Command Line Interface in AWS CLI

  1. pip
  2. a virtual environment
  3. a bundled installer

What do you need?

  • Unix, macOS, Linux, Windows
  • Python 3 version 3.3+ or Python 2 version 2.6.5+

It is important to know that you may not be able to use an older version of Python with all AWS Services. Update to a newer version if there are Insecure Platform Warning or deprecation notices. To find out what version you currently have, visit:

  https://github.com/aws/aws-cli/blob/master/CHANGELOG.rst.

1. Installing the AWS CLI Using pip

Pip is the main distribution method for the AWS CLI on macOS, Windows and Linux. It is a package manager for Python.

Installing the current AWS CLI Version

If you have pip and a supported version of Python, use the following command to install the AWS CLI. Use the pip3 command if you have Python version 3+ installed:

$ pip3 install awscli --upgrade –user

The --upgrade option commands pip3 to upgrade the requirements that are already installed. The --user option commands pip3 to install the program to a subdirectory of the user directory. Doing this avoids the complication of modifying libraries used by your operating system.

Upgrading to the latest version

Use the pip list -o command to identify packages that are "outdated”:

$ aws --version
aws-cli/1.16.170 Python/3.7.3 Linux/4.14.123-111.109.amzn2.x86_64 botocore/1.12.160

$ pip3 list -o

Package    Version      Latest        Type 
----------     --------      --------        -----
awscli       1.16.170    1.16.198   wheel
botocore   1.12.160    1.12.188   wheel

Now, run pip install --upgrade to get the latest version:

$ pip3 install --upgrade --user awscli
Collecting  aws cli 
Downloadinghttps://files.pythonhosted.org/packages/dc/70/b32e9534c32fe9331801449e1f7eacba6a1992c2e4af9c82ac9116661d3b/awscli-1.16.198-py2.py3-none-any.whl (1.7MB)
     |████████████████████████████████| 1.7MB 1.6MB/s 
Collecting botocore==1.12.188 (from awscli)
Using cached https://files.pythonhosted.org/packages/10/cb/8dcfb3e035a419f228df7d3a0eea5d52b528bde7ca162f62f3096a930472/botocore-1.12.188-py2.py3-none-any.whl
Requirement already satisfied, skipping upgrade: docutils>=0.10 in ./venv/lib/python3.7/site-packages (from awscli) (0.14)
Requirement already satisfied, skipping upgrade: rsa<=3.5.0,>=3.1.2 in ./venv/lib/python3.7/site-packages (from awscli) (3.4.2)
Requirement already satisfied, skipping upgrade: colorama<=0.3.9,>=0.2.5 in ./venv/lib/python3.7/site-packages (from awscli) (0.3.9)
Requirement already satisfied, skipping upgrade: PyYAML<=5.1,>=3.10; python_version != "2.6" in ./venv/lib/python3.7/site-packages (from awscli) (3.13)
Requirement already satisfied, skipping upgrade: s3transfer<0.3.0,>=0.2.0 in ./venv/lib/python3.7/site-packages (from awscli) (0.2.0)
Requirement already satisfied, skipping upgrade: jmespath<1.0.0,>=0.7.1 in ./venv/lib/python3.7/site-packages (from botocore==1.12.188->awscli) (0.9.4)
Requirement already satisfied, skipping upgrade: urllib3<1.26,>=1.20; python_version >= "3.4" in ./venv/lib/python3.7/site-packages (from botocore==1.12.188->awscli) (1.24.3)
Requirement already satisfied, skipping upgrade: python-dateutil<3.0.0,>=2.1; python_version >= "2.7" in ./venv/lib/python3.7/site-packages (from botocore==1.12.188->awscli) (2.8.0)
Requirement already satisfied, skipping upgrade: pyasn1>=0.1.3 in ./venv/lib/python3.7/site-packages (from rsa<=3.5.0,>=3.1.2->awscli) (0.4.5)
Requirement already satisfied, skipping upgrade: six>=1.5 in ./venv/lib/python3.7/site-packages (from python-dateutil<3.0.0,>=2.1; python_version >= "2.7"->botocore==1.12.188->awscli) (1.12.0)
Installing collected packages: botocore, awscli
Found existing installation: botocore 1.12.160
Uninstalling botocore-1.12.160:
Successfully uninstalled botocore-1.12.160
Found existing installation: awscli 1.16.170
Uninstalling awscli-1.16.170:
Successfully uninstalled awscli-1.16.170
Successfully installed awscli-1.16.198 botocore-1.12.188

2. Installing the AWS CLI in a Virtual Environment

Another option is to install the AWS CLI in a virtual environment to separate the tool and its dependencies. You can also use a different Python version for this purpose.

3. Installing the AWS CLI Using an Installer

Use the bundled installer for automated and offline installation on Unix, macOS, and Linux. It includes the AWS CLI, its dependencies, and a shell script that is responsible for the installation. For Windows, try MSI installer. Both these methods simplify the initial installation. 

Installation of Linux or Unix

Both the platforms have identical installation process. You need to have Python’s latest version. We recommend using the bundled installer for this. The steps are as follows:

1. To begin the installation:

curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"

2. Unzip the downloaded package:

unzip awscli-bundle.zip

3. Run the installation:

sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws

Using the -b option allows you to use the AWS CLI from any directory.

Installation on Amazon Linux

The AWS Command Line Interface comes preinstalled on both Amazon Linux and Amazon Linux 2. Below are the steps to install:

1. Identify currently installed version:

$ aws --version
aws-cli/1.16.116 Python/3.6.8 Linux/4.14.77-81.59.amzn2.x86_64 botocore/1.12.106

2. Use pip3 to install the latest version of the AWS CLI. If you run the command from within a Python virtual environment (venv), then you don't need to use the --user option.

$ pip3 install --upgrade --user awscli

3. Add the install location to the beginning of the PATH variable.

$ export PATH=/home/ec2-user/.local/bin:$PATH

4. Verify that you're running new version with aws --version.

$ aws --version
aws-cli/1.16.116 Python/3.6.8 Linux/4.14.77-81.59.amzn2.x86_64 botocore/1.12.106

Installation on Windows

The AWS Command Line Interface can be installed on Windows by using a standalone installer or through a pip - a package manager for Python

> Through Installer

  1. Download the appropriate MSI installer.
  2. Run the downloaded MSI installer or the setup file.
  3. Follow these instructions:

By default, the CLI installs to C:\Program Files\Amazon\AWSCLI (64-bit version) or C:\Program Files (x86)\Amazon\AWSCLI (32-bit version). To confirm the installation, use the aws --version command at a command prompt (open the Start menu and search for cmd to start a command prompt).

C:\> aws --version
aws-cli/1.16.116 Python/3.6.8 Windows/10 botocore/1.12.106

If Windows is unable to find the program, you might need to close and reopen the command prompt to refresh the path, or add the installation directory to your PATH environment variable manually.

> Through Pip

1. Open Start menu→Command Prompt
2. Verify that both Python and pip are installed correctly:

C:\> python --version
Python 3.7.1
C:\> pip3 --version
pip 18.1 from c:\program files\python37\lib\site-packages\pip (python 3.7)

3. Install AWS CLI via pip

C:\> pip3 install awscli

4. Check if the installation went right

C:\> aws --version
aws-cli/1.16.116 Python/3.6.8 Windows/10 botocore/1.12.106

To upgrade to the latest version:

C:\> pip3 install --user --upgrade awscli

Installation on MAC OS

> Through Installer

1. Download the  AWS CLI Bundled Installer

$ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"

2. Unzip the package

$ unzip awscli-bundle.zip

3. Run the installation

$ sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws

This command installs the AWS CLI to /usr/local/aws and creates the symlink aws in the /usr/local/bin directory. Using the -b option to create a symlink eliminates the need to specify the install directory in the user's $PATH variable. It enables users to run the AWS CLI by typing “aws” from any directory.

If you want to see an explanation of the -i and -b options, use the -h option

$ ./awscli-bundle/install -h

the commands summarized for easy cut and paste at the command line.

curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"
unzip awscli-bundle.zip
sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws

> Through PIP

1. Download and install the latest version of Python from Python.org.
2. Download and run the pip3 installation script provided by the Python Packaging Authority

$ curl -O https://bootstrap.pypa.io/get-pip.py
$ python3 get-pip.py --user

3. Use pip3 to install the AWS CLI. We recommend using the pip3 command if you use Python version 3+

$ pip3 install awscli --upgrade --user

4. See if AWS CLI is installed correctly

$ aws --version
AWS CLI 1.16.116 (Python 3.6.8)

To upgrade to the latest version, run the command:

$ pip3 install awscli --upgrade --user

Installation on Ubuntu

> Through APT Package Manager

1. Update the package repository cache

$ sudo apt-get update

2. Install AWS CLI with the following command

$ sudo apt-get install awscli

press y and then press <Enter> to continue. Your screen should look something like this: 



3. Now that it’s installed, check if it’s working properly or not

$ aws --version

> Through PIP

AWS CLI being a Python module itself makes it easy for users who install it through PIP to update it on a regular basis. Assuming you have Python 3, follow the below steps to install:

1. Install Python PIP with the following command

$ sudo apt-get install python3-pip

Press y and then press <Enter> to continue
2. Install AWS CLI using PIP with the following command

$ pip3 install awscli --upgrade --user

3. Run AWS CLI with the following command

$ python3 -m awscli --version

After Installation

After you have successfully installed AWS CLI, you need to set the Path to Include the AWS CLI in your system.

> LINUX

Find out the folder in which pip installed the AWS CLI

$ which aws
/home/username/.local/bin/aws

You can reference this as “~/.local/bin/” because of the reason that “/home/username” corresponds to ~ in Linux OS
In case you don't know where Python is installed, run this command

$ which python
/usr/local/bin/python

If this is the same folder you added to the path while installing pip, there’s nothing else to be done. Otherwise, perform those same steps again, adding this additional folder to the path.

> WINDOWS

The Windows System PATH tells your PC where it can find specific directories:

C:\> where aws

C:\Program Files\Amazon\AWSCLI\bin\aws.exe
Find out where the aws program is installed

C:\> where c:\ aws
C:\Program Files\Python37\Scripts\aws

If the command returns the following error, then it is not in the system PATH and you can't run it by typing its name.

C:\> where c:\ aws

INFO:Could not find files for the given pattern.

In that case, you need to add the path manually. First, you need to search where it is installed on your computer:

C:\> where /R c:\ aws
c:\Program Files\Amazon\AWSCLI\bin\aws.exe
c:\Program Files\Amazon\AWSCLI\bincompat\aws.cmd
c:\Program Files\Amazon\AWSCLI\runtime\Scripts\aws
c:\Program Files\Amazon\AWSCLI\runtime\Scripts\aws.cmd
...
To modify your PATH variable (Windows)

  1. Press the Windows key and enter environment variables.
  2. Choose the Edit environment variables for your account.
  3. Choose the PATH →Edit.
  4. Add the path to the Variable value field. For example: C:\new\path
  5. Click OK twice to apply the new settings.
  6. Close any running command prompts and reopen the command prompt window.

> MAC OS

Locate Python

$ which python
/usr/local/bin/python

The output might be the path to a symlink, not the actual program. Run ls -al to see where it points.

$ ls -al /usr/local/bin/python
~/Library/Python/3.7/bin/python3.6

Pip install programs in the same folder as the Python application. Add this folder to your PATH variable.

To modify the PATH variable for macOS (and Linus or Unix):

1. Find the shell profile script in the user folder. In case you don’t know which shell you have, run echo $SHELL

2. Through the following, add an export command to the profile script

export PATH=~/.local/bin:$PATH

This adds a path, ~/.local/bin in this example, to the current PATH variable.

3. The updated profile can now be loaded into your current session

$ source ~/.bash_profile

Profile

Joydip Kumar

Solution Architect

Joydip is passionate about building cloud-based applications and has been providing solutions to various multinational clients. Being a java programmer and an AWS certified cloud architect, he loves to design, develop, and integrate solutions. Amidst his busy work schedule, Joydip loves to spend time on writing blogs and contributing to the opensource community.

Develop the skills of the future via outcome-based immersive learning

Speak to our Career Advisor now!

Select
Your Message (Optional)