AWS CLI v1 에서 v2로 업그레이드 해봅시다

2022.05.31

안녕하세요, 임채정입니다.
ec2 인스턴스에서 AWS 관련 작업을 할 때는 AWS CLI가 필요합니다.
그런데 새로운 리눅스 인스턴스를 세우면 AWS CLI v1이 설치되어 있는거 아시나요?
지금은 AWS CLI v2가 있기 때문에 이번 블로그에서는 AWS CLI v1을 v2로 업그레이드하는 방법을 정리해보려고 합니다.

버전 업그레이드

■ 현재 버전 확인

aws --version
aws-cli/1.18.147 Python/2.7.18 Linux/5.10.109-104.500.amzn2.x86_64 botocore/1.18.6

현재 aws-cli 의 버전이 1.18.147.
즉, v1으로 되어 있습니다.

■ AWS CLI v1 삭제

공식 페이지에도 나와있지만 AWS CLI v2 로 업그레이드를 하기 위해서는 v1을 삭제하고 v2를 설치하는 방법을 권장하고 있습니다.
자세한 공식 페이지는 이하의 페이지를 참고해주세요.

# aws 의 위치를 확인합니다.
$ which aws 
/usr/bin/aws

# `ls` 명령을 사용하여 symlink가 가리키는 디렉터리 검색
$ ls -l /usr/bin/aws 
-rwxr-xr-x 1 root root 818  9월 28  2020 /usr/bin/aws

# aws 의 삭제를 위해 파일을 삭제합니다.
$ sudo rm /usr/bin/aws 
$ sudo rm /usr/bin/aws_completer 
$ sudo rm -rf /usr/local/aws-cli

이제 삭제가 되었을 겁니다. 다시 한번 AWS 버전을 확인해보겠습니다.

aws --version
-bash: /usr/bin/aws: No such file or directory

성공적으로 삭제됐습니다.

■ AWS CLI v2 설치

AWS CLI v1 이 삭제완료 되었기 때문에 이번에는 v2 를 설치해보겠습니다.

# AWS CLI v2 설치 파일을 다운로드
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 44.8M  100 44.8M    0     0  59.8M      0 --:--:-- --:--:-- --:--:-- 59.8M

# 패키지의 압축을 풀고 현재 디렉터리 아래에 `aws`라는 디렉터리 생성
$ unzip awscliv2.zip
inflating: aws/dist/awscli/examples/ec2/delete-key-pair.rst
inflating: aws/dist/awscli/examples/ec2/authorize-client-vpn-ingress.rst
inflating: aws/dist/awscli/examples/ec2/delete-network-interface.rst
...

# 설치 프로그램을 실행
$ sudo ./aws/install
You can now run: /usr/local/bin/aws --version

# 설치 위치를 지정
$ ./aws/install -i /usr/local/aws-cli -b /usr/local/bin
Found preexisting AWS CLI installation: /usr/local/aws-cli/v2/current. Please rerun install script with --update flag.

■ 업그레이드 된 버전 확인

# aws 의 위치를 확인합니다.
$ which aws
/usr/local/bin/aws

# `ls` 명령을 사용하여 symlink가 가리키는 디렉터리 검색
$ ls -l /usr/local/bin/aws
lrwxrwxrwx 1 root root 37  5월 31 07:50 /usr/local/bin/aws -> /usr/local/aws-cli/v2/current/bin/aws

# 버전 확인
$ aws --version
-bash: /usr/bin/aws: No such file or directory

이 때, aws의 버전을 확인할 수 없는 경우에는 당황하지 말고 ec2 인스턴스을 한번 나갔다가 다시 들어와서 버전을 확인합니다.

# exit 후 다시 인스턴스에 로그인해서 버전 확인
$ aws --version
aws-cli/2.7.4 Python/3.9.11 Linux/5.10.109-104.500.amzn2.x86_64 exe/x86_64.amzn.2 prompt/off

성공적으로 aws-cli2.7.4 로 업그레이드 됐습니다.
또한, Python Linux 등도 최신버전으로 업그레이드 된 것을 확인할 수 있습니다.