
目次
こんにちは、AWSエンジニアのダーシーです。
今回は、Amazon Linux2のCLIのバージョンアップをしてみようと思います。
現在の自分の環境はAmazon Linux2でデフォルトでaws cli バージョン1がインストールされています。
公式サイトでは、バージョン1をアンインストールしてバージョン2にすることを推奨しています。
最初からバージョン2のAMIを用意してくれよって感じですが、がんばります。
バージョン2のメリット
公式サイトに記載があるので見ておいたほうがいいでしょう。
なんでバージョン2にするの?って聞かれたときのために。
環境確認
OSバージョン
[root@www1a ~]#[root@www1a ~]#
[root@www1a ~]#
[root@www1a ~]# cat /etc/os-release
NAME="Amazon Linux"
VERSION="2"
ID="amzn"
ID_LIKE="centos rhel fedora"
VERSION_ID="2"
PRETTY_NAME="Amazon Linux 2"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2"
HOME_URL="https://amazonlinux.com/"
[root@www1a ~]#
[root@www1a ~]#
[root@www1a ~]#
CLIのバージョン
[root@www1a ~]#[root@www1a ~]#
[root@www1a ~]# aws --version
aws-cli/1.18.147 Python/2.7.18 Linux/5.10.102-99.473.amzn2.x86_64 botocore/1.18.6
[root@www1a ~]#
[root@www1a ~]#
[root@www1a ~]#
Pythonのバージョン
[root@www1a ~]#[root@www1a ~]#
[root@www1a ~]# python -V
Python 2.7.18
[root@www1a ~]#
[root@www1a ~]#
[root@www1a ~]#
AWS CLIバージョン1のアンインストール
前提知識
で、さっそくバージョン1のアンインストールを始めるわけですが、
を見ると、同じバージョン1でも、マイナーバージョンの違いによってインストールされる、いや、しなければならないPythonのバージョンも違うことが判明。
で、さらにみると
「-AWS CLIバージョン 1 は Python SDK を使用して構築されるため、互換性のあるバージョンの Python をインストールする必要があります。」
とのこと。
まあ、要するに今のAWS CLIバージョン1.18から1.20.0以上にアップデートしてCLIv1を利用する場合は、
Pythonを2.7から3.6以上にアップデートしなければ使えないよってことね。
AWS CLIバージョン1のアンインストール
で、やっとこの公式サイトにCLIバージョン1のアンインストールが書いてあるわけですが、
なんと、「Python 3.6 以降をインストールする必要があります。」とのこと。
つまり、現在のインストールされているAWS CLIバージョン「aws-cli/1.18」だとバンドルさているPythonバージョンが「Python 2.7.18」だから、
アンインストールできない。
だから、現在のCLIバージョンを「aws-cli/2.0以降」まで上げて、バンドルされるPythonも3.6まで上げろと言っています。
(文脈の流れからいうとそういうことと、そう自分が解釈しました)
AWS CLIバージョン1のアンインストール、の前のバージョン1のバージョンアップ
で、そのバージョン1のバージョンアップですが、公式サイトの記事の中盤くらいに手順が記載されていますね。
コマンドは
pip3 install --upgrade --user awscli
ですね、ではやってみましょう。
ん、pip3ってPython3が入ってないと使えないとネットが書いてあるぞ!
でもpip3コマンド自体はデフォルトでインストールされているようだ。
[root@web1 ~]#[root@web1 ~]# pip
pip3 pip-3 pip-3.7 pip3.7
[root@web1 ~]#
[root@web1 ~]#
CLIバージョン1のバージョンアップ前のPythonアップデート
[root@www1a ~]#[root@www1a ~]#
[root@www1a ~]# yum install python3
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
amzn2-core | 3.7 kB 00:00:00
Package python3-3.7.10-1.amzn2.0.1.x86_64 already installed and latest version
Nothing to do
[root@www1a ~]#
[root@www1a ~]#
[root@www1a ~]#
あれ?もうpython3インストールされている?
[root@www1a ~]#
[root@www1a ~]# rpm -qa | grep python3
python3-libs-3.7.10-1.amzn2.0.1.x86_64
python3-daemon-2.2.3-8.amzn2.0.2.noarch
python3-setuptools-49.1.3-1.amzn2.0.2.noarch
python3-lockfile-0.11.0-17.amzn2.0.2.noarch
python3-pip-20.2.2-1.amzn2.0.3.noarch
python3-pystache-0.5.4-12.amzn2.0.1.noarch
python3-3.7.10-1.amzn2.0.1.x86_64
python3-docutils-0.14-1.amzn2.0.2.noarch
python3-simplejson-3.2.0-1.amzn2.0.2.x86_64
[root@www1a ~]#
[root@www1a ~]#
[root@www1a ~]#
[root@www1a ~]# rpm -qa | grep python2
python2-oauthlib-2.0.1-8.amzn2.0.1.noarch
python2-dateutil-2.6.0-3.amzn2.0.1.noarch
python2-futures-3.0.5-1.amzn2.noarch
python2-s3transfer-0.3.3-1.amzn2.0.1.noarch
python2-setuptools-41.2.0-4.amzn2.0.2.noarch
python2-cryptography-1.7.2-2.amzn2.x86_64
python2-jmespath-0.9.3-1.amzn2.0.1.noarch
python2-jsonschema-2.5.1-3.amzn2.0.1.noarch
python2-botocore-1.18.6-1.amzn2.0.1.noarch
python2-rpm-4.11.3-40.amzn2.0.6.x86_64
python2-pyasn1-0.1.9-7.amzn2.0.1.noarch
python2-rsa-3.4.1-1.amzn2.0.1.noarch
[root@www1a ~]#
[root@www1a ~]#
[root@www1a ~]#
同居している状態だったんかい!
ってことはパスがPython2.7に通っている状態ってことね。
と思ったがネットで調べてみるとPython2とPython3ではコマンドが違うことが判明!!
[root@www1a ~]#
[root@www1a ~]# python -V
Python 2.7.18
[root@www1a ~]#
[root@www1a ~]#
[root@www1a ~]# python3 -V
Python 3.7.10
[root@www1a ~]#
[root@www1a ~]#
[root@www1a ~]#
Python3のパスも最初からパスは通っていることがこれで判明!
pip3は入っていることを確認済み。
[root@www1a ~]#
[root@www1a ~]#
[root@www1a ~]# which pip
/usr/bin/which: no pip in (/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
[root@www1a ~]#
[root@www1a ~]#
[root@www1a ~]# which pip3
/bin/pip3
[root@www1a ~]#
[root@www1a ~]#
pythonコマンドを調べてみると、
[root@web1 ~]#
[root@web1 ~]#
[root@web1 ~]# python
python python2.7 python2-config python3.7 python-config
python2 python2.7-config python3 python3.7m
[root@web1 ~]#
[root@web1 ~]#
[root@web1 ~]#
おいおい、今度はpython3コマンド、python3.7てのがあるじゃないか?
どういう仕様だよ?って言っててもしょうがないので自分で確認する。
あ!ちなみにホスト名変わってますけど、同じデフォルト状態のLinux2なので問題なしです。
まず、python-config、python2-config、python2.7-config、はあるツールをビルドするのに利用するpythonのツールらしい。
pythonで開発するときに利用するものでしょう。ってことで無視。
python3.7mは利用ケースが少ないようです。独自コマンドでこれでしか実行できないものがあるように思えます。-mオプションの代用かもしれません。ということで無視。
[root@web1 ~]#
[root@web1 ~]#
[root@web1 ~]# python -V
Python 2.7.18
[root@web1 ~]#
[root@web1 ~]# python2.7 -V
Python 2.7.18
[root@web1 ~]#
[root@web1 ~]# python3 -V
Python 3.7.10
[root@web1 ~]#
[root@web1 ~]#
[root@web1 ~]# python3.7 -V
Python 3.7.10
[root@web1 ~]#
[root@web1 ~]# which python
/usr/bin/python
[root@web1 ~]#
[root@web1 ~]# which python2.7
/usr/bin/python2.7
[root@web1 ~]#
[root@web1 ~]#
[root@web1 ~]# which python3
/usr/bin/python3
[root@web1 ~]#
[root@web1 ~]# which python3.7
/usr/bin/python3.7
[root@web1 ~]#
[root@web1 ~]#
[root@web1 ~]#
ははーん、用途によってコマンド使い分けできるPythonの仕様ってことね。
[root@web1 ~]#
[root@web1 ~]# pip3 -V
pip 20.2.2 from /usr/lib/python3.7/site-packages/pip (python 3.7)
[root@web1 ~]#
[root@web1 ~]#
[root@web1 ~]#
[root@web1 ~]# pip3.7 -V
pip 20.2.2 from /usr/lib/python3.7/site-packages/pip (python 3.7)
[root@web1 ~]#
[root@web1 ~]#
で、pip3コマンドはpython 3.7を利用する仕様になっているってことね。ふむふむ。
pipコマンド、pythonコマンドを利用する場合は、
明示的にバージョンが記載されたコマンドを指定してログに残したほうがよさそうですね。
では再度、公式サイトにある、CLIバージョン1の更新コマンドを実行。
[root@web1 ~]#
[root@web1 ~]# aws --v
aws-cli/1.18.147 Python/2.7.18 Linux/5.10.102-99.473.amzn2.x86_64 botocore/1.18.6
[root@web1 ~]#
[root@web1 ~]#
# pip3 install --upgrade --user awscli
# export PATH=$HOME/.local/bin:$PATH
# source ~/.bash_profile
[root@web1 ~]#
[root@web1 ~]#
[root@web1 ~]# aws --v
aws-cli/1.22.77 Python/3.7.10 Linux/5.10.102-99.473.amzn2.x86_64 botocore/1.24.22
[root@web1 ~]#
[root@web1 ~]#
[root@web1 ~]#
ほほう!バージョン1がアップデートされた!
これでやっとaws cliバージョン1がアンインストールできる環境ができた。
ちなみにこの設定、このユーザ(root)だけの設定で、一時的な設定なのね。
ログインしなおすともう一回、
# export PATH=$HOME/.local/bin:$PATH
# source ~/.bash_profile
やんなきゃだめなのね。
アンインストールする前提だからね。
pip3 を使用して AWS CLI バージョン 1 をアンインストール
で、何でCLIバージョン1を更新してからCLIバージョン1をアンインストールしなければならないんだっけ?
公式サイト見て、自分がそう判断したからか、、、、
別サーバで確認してみるか、、、
[root@jump1 ~]#[root@jump1 ~]# aws --v
aws-cli/1.18.147 Python/2.7.18 Linux/5.10.102-99.473.amzn2.x86_64 botocore/1.18.6
[root@jump1 ~]#
[root@jump1 ~]#
[root@jump1 ~]# pip3 uninstall awscli
WARNING: Skipping awscli as it is not installed.
[root@jump1 ~]#
[root@jump1 ~]#
できない、やっぱ当たってた。
本題のCLIv1のアンインストールを、公式サイトにあるコマンドで実行。
[root@web1 ~]#[root@web1 ~]#
[root@web1 ~]# aws --v
aws-cli/1.22.77 Python/3.7.10 Linux/5.10.102-99.473.amzn2.x86_64 botocore/1.24.22
[root@web1 ~]#
[root@web1 ~]#
[root@web1 ~]# pip3 uninstall awscli
Found existing installation: awscli 1.22.77
Uninstalling awscli-1.22.77:
Would remove:
/root/.local/bin/aws
/root/.local/bin/aws.cmd
/root/.local/bin/aws_bash_completer
/root/.local/bin/aws_completer
/root/.local/bin/aws_zsh_completer.sh
/root/.local/lib/python3.7/site-packages/awscli-1.22.77.dist-info/*
/root/.local/lib/python3.7/site-packages/awscli/*
Proceed (y/n)? y
Successfully uninstalled awscli-1.22.77
[root@web1 ~]#
[root@web1 ~]#
[root@web1 ~]#
[root@web1 ~]# aws --version
-bash: /root/.local/bin/aws: No such file or directory
[root@web1 ~]#
[root@web1 ~]#
これでバージョン1のアンインストールは完了。
yum コマンドを利用したCLIバージョン1のアップデートとアンインストール
pip3じゃなくて、yumコマンドだけでもできたのね。こっちのほうが簡単じゃん。
公式サイトの下の方に書いてあるとは意地が悪いな。
別サーバで試してみる。
[root@jump1 ~]#[root@jump1 ~]#
[root@jump1 ~]# aws --version
aws-cli/1.18.147 Python/2.7.18 Linux/5.10.102-99.473.amzn2.x86_64 botocore/1.18.6
[root@jump1 ~]#
[root@jump1 ~]#
[root@jump1 ~]# python -V
Python 2.7.18
[root@jump1 ~]#
[root@jump1 ~]# python3 -V
Python 3.7.10
[root@jump1 ~]#
[root@jump1 ~]#
[root@jump1 ~]#
CLIバージョン1のバージョンを最新にする
[root@jump1 ~]#[root@jump1 ~]# yum update awscli
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
No packages marked for update
[root@jump1 ~]#
[root@jump1 ~]#
ぬぬぬ!エラーやはり簡単には罠がある。ネットで調べると
「ec2からamazonlinuxのyumリポジトリへアクセスできないことが原因です。
(リポジトリはS3にあります)」
とのことらしい。
S3に繋げるVPCエンドポイントの設定が必要みたいですね。
ec2にS3のロール設定も必要となりますよね、この場合。
結局、yumのほうが手間がかかるのね。。。
AWS CLIバージョン2のインストール
ここからやっと本題のCLIバージョン2のインストールになります。
改めて公式サイトを見返してみましょう。
インスタンスタイプ(CPU)によっても設定するコマンドが違うようですね。
ECインスタンスタイプのアーキテクチャを確認する
[ec2-user@www1a ~]$[ec2-user@www1a ~]$ hostnamectl
Static hostname: www1a
Icon name: computer-vm
Chassis: vm
Machine ID: bfec4713d39e42259a538adc4e721152
Boot ID: 2650e3bfedd74eeb86ef2edf5c3c9886
Virtualization: amazon
Operating System: Amazon Linux 2
CPE OS Name: cpe:2.3:o:amazon:amazon_linux:2
Kernel: Linux 5.10.102-99.473.amzn2.x86_64
Architecture: x86-64
[ec2-user@www1a ~]$
[ec2-user@www1a ~]$
x86-64ですね。
Linux x86(64-bit)(最新バージョンをインストールする場合)
公式サイトにあるx86-64用のコマンドを打つ。
[root@web1 ~]#
[root@web1 ~]# 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.1M 100 44.1M 0 0 22.4M 0 0:00:01 0:00:01 --:--:-- 22.4M
[root@web1 ~]#
[root@web1 ~]#
[root@web1 ~]# unzip -q awscliv2.zip (-qは標準出力を非表示にする)
[root@web1 ~]#
[root@web1 ~]#
[root@web1 ~]# sudo ./aws/install
You can now run: /usr/local/bin/aws --version
[root@web1 ~]#
[root@web1 ~]#
[root@web1 ~]#
[root@web1 ~]# /usr/local/bin/aws --version
aws-cli/2.4.27 Python/3.8.8 Linux/5.10.102-99.473.amzn2.x86_64 exe/x86_64.amzn.2 prompt/off
[root@web1 ~]#
[root@web1 ~]#
はい、aws-cli/2.4.27になっていますね。成功です。
え?Python/3.8.8になっている?これはおかしいって?
これね、あとあとネットで調べたんだけど、結論からいうと
- CLIv1の場合は仕様としてサーバにインストールされているPythonを利用して動作する
- CLIv2の場合は仕様としてサーバにインストールされているPythonを利用しないで動作する
という仕様になったぽい。
理由はCLIv1の場合はなんらかの理由(例:PythonによるWEB開発等)でPythonを利用していた場合に、
バージョンアップをした場合、CLIv1の動作に影響が出ることがあったかららしい。
そういわれると納得。
じゃあ、CLIv2はどうなっているのかというと、サーバのPythonと干渉しないように、インストール時に別Pythonがインストールされる仕様となっている。
ほんまかいな?ってことで調べてみる。確かインストールした覚えがないPython/3.8.8がプロンプトで表示されてたはず。
[root@web1 ~]#
[root@web1 ~]# find / -name "python3.8*"
/usr/local/aws-cli/v2/2.4.27/dist/include/python3.8
/usr/local/aws-cli/v2/2.4.27/dist/lib/python3.8
/root/aws/dist/include/python3.8
/root/aws/dist/lib/python3.8
[root@web1 ~]#
[root@web1 ~]#
みっけ!
[root@web1 ~]# sudo ./aws/installのとき、裏でやっているから見えないだけだったというオチ。
CLIバージョン2の確認
[root@web1 ~]#[root@web1 ~]#
[root@web1 ~]# aws --v
-bash: /root/.local/bin/aws: No such file or directory
[root@web1 ~]#
[root@web1 ~]#
[root@web1 ~]#
あれ!まだ設定が必要?
ん!パスが通ってないっぽいですね。
公式サイトでまたコマンドを確認して、そのまま打ってみる。
[root@web1 ~]#
[root@web1 ~]# aws --v
-bash: /root/.local/bin/aws: No such file or directory
[root@web1 ~]#
[root@web1 ~]#
[root@web1 ~]# ./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.
[root@web1 ~]#
[root@web1 ~]#
[root@web1 ~]# aws --v
-bash: /root/.local/bin/aws: No such file or directory
[root@web1 ~]#
[root@web1 ~]#
[root@web1 ~]# sudo ./aws/install --bin-dir /usr/local/bin --install-dir /usr/local/aws-cli --update
Found same AWS CLI version: /usr/local/aws-cli/v2/2.4.27. Skipping install.
[root@web1 ~]#
[root@web1 ~]# aws --v
-bash: /root/.local/bin/aws: No such file or directory
[root@web1 ~]#
[root@web1 ~]#
[root@web1 ~]# which aws
/usr/local/bin/aws
[root@web1 ~]#
[root@web1 ~]# ls -l /usr/local/bin/aws
lrwxrwxrwx 1 root root 37 Mar 20 20:27 /usr/local/bin/aws -> /usr/local/aws-cli/v2/current/bin/aws
[root@web1 ~]#
[root@web1 ~]#
[root@web1 ~]# aws --version
-bash: /root/.local/bin/aws: No such file or directory
[root@web1 ~]#
[root@web1 ~]#
[root@web1 ~]# [root@web1 ~]#
[root@web1 ~]# which aws
/usr/local/bin/aws
[root@web1 ~]#
[root@web1 ~]#
あれ!合っているけど、エラーが出ているぞ!
一旦rootをログアウトして再度ログインしてみよう。
[root@web1 ~]#[root@web1 ~]# aws --v
-bash: /root/.local/bin/aws: No such file or directory
[root@web1 ~]#
[root@web1 ~]#
[root@web1 ~]# exit
logout
[ec2-user@web1 ~]$
[ec2-user@web1 ~]$
[ec2-user@web1 ~]$ sudo su -
Last login: Sun Mar 20 20:21:05 JST 2022 on pts/0
[root@web1 ~]#
[root@web1 ~]# [root@web1 ~]# aws --v
aws-cli/2.4.27 Python/3.8.8 Linux/5.10.102-99.473.amzn2.x86_64 exe/x86_64.amzn.2 prompt/off
[root@web1 ~]#
反映されてますね。めでたし、めでたし。
念の為、awsコマンドのパスを確認
[root@www1a ~]#
[root@www1a ~]# which aws
/bin/aws
[root@www1a ~]#
[root@www1a ~]#
ec2-userで試してみる。
[root@web1 ~]#[root@web1 ~]#
[root@web1 ~]# exit
logout
[ec2-user@web1 ~]$
[ec2-user@web1 ~]$
[ec2-user@web1 ~]$ aws --v
aws-cli/1.18.147 Python/2.7.18 Linux/5.10.102-99.473.amzn2.x86_64 botocore/1.18.6
[ec2-user@web1 ~]$
[ec2-user@web1 ~]$
反映されていない、、、、
そうか、確かPython3.8.8はroot配下にインストールされてたもんな。
[root@web1 ~]#
[root@web1 ~]#
[root@web1 ~]# find / -name "python3.8*"
/usr/local/aws-cli/v2/2.4.27/dist/include/python3.8
/usr/local/aws-cli/v2/2.4.27/dist/lib/python3.8
/root/aws/dist/include/python3.8
/root/aws/dist/lib/python3.8
[root@web1 ~]#
[root@web1 ~]#
他ユーザでパスを無理に通しても、権限で弾かれる可能性があるってわけか。
まあ、これがサーバのPythonに頼らないでCLIのエラー回避する方法っていうことになるのね。
ということは、ユーザーごとにCLIv2のインストールが必要になるってことでもある。
というのが答え、というかCLIv2の仕様ということになりますね。
CLIv2をec2-userでも利用できるようにインストールする
[ec2-user@web1 ~]$
[ec2-user@web1 ~]$ id
uid=1000(ec2-user) gid=1000(ec2-user) groups=1000(ec2-user),4(adm),10(wheel),190(systemd-journal)
[ec2-user@web1 ~]$
[ec2-user@web1 ~]$
[ec2-user@web1 ~]$ pwd
/home/ec2-user
[ec2-user@web1 ~]$
[ec2-user@web1 ~]$ ll
total 0
[ec2-user@web1 ~]$
[ec2-user@web1 ~]$
[ec2-user@web1 ~]$ sudo 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.1M 100 44.1M 0 0 21.8M 0 0:00:02 0:00:02 --:--:-- 21.8M
[ec2-user@web1 ~]$
[ec2-user@web1 ~]$
[ec2-user@web1 ~]$ unzip -q awscliv2.zip
[ec2-user@web1 ~]$
[ec2-user@web1 ~]$ sudo ./aws/install
Found preexisting AWS CLI installation: /usr/local/aws-cli/v2/current. Please rerun install script with --update flag.
[ec2-user@web1 ~]$
[ec2-user@web1 ~]$
[ec2-user@web1 ~]$ ./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.
[ec2-user@web1 ~]$
[ec2-user@web1 ~]$
[ec2-user@web1 ~]$ sudo ./aws/install --bin-dir /usr/local/bin --install-dir /usr/local/aws-cli --update
Found same AWS CLI version: /usr/local/aws-cli/v2/2.4.27. Skipping install.
[ec2-user@web1 ~]$
[ec2-user@web1 ~]$
[ec2-user@web1 ~]$ which aws
/usr/local/bin/aws
[ec2-user@web1 ~]$
[ec2-user@web1 ~]$
[ec2-user@web1 ~]$ ls -l /usr/local/bin/aws
lrwxrwxrwx 1 root root 37 Mar 20 20:27 /usr/local/bin/aws -> /usr/local/aws-cli/v2/current/bin/aws
[ec2-user@web1 ~]$
[ec2-user@web1 ~]$
[ec2-user@web1 ~]$ aws --version
aws-cli/1.18.147 Python/2.7.18 Linux/5.10.102-99.473.amzn2.x86_64 botocore/1.18.6
[ec2-user@web1 ~]$
[ec2-user@web1 ~]$
[ec2-user@web1 ~]$ exec bash
[ec2-user@web1 ~]$
[ec2-user@web1 ~]$
[ec2-user@web1 ~]$ aws --version
aws-cli/2.4.27 Python/3.8.8 Linux/5.10.102-99.473.amzn2.x86_64 exe/x86_64.amzn.2 prompt/off
[ec2-user@web1 ~]$
[ec2-user@web1 ~]$
[ec2-user@web1 ~]$
ログインし直してみる。
__| __|_ )
_| ( / Amazon Linux 2 AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-2/
[ec2-user@web1 ~]$
[ec2-user@web1 ~]$
[ec2-user@web1 ~]$
[ec2-user@web1 ~]$ aws --v
aws-cli/2.4.27 Python/3.8.8 Linux/5.10.102-99.473.amzn2.x86_64 exe/x86_64.amzn.2 prompt/off
[ec2-user@web1 ~]$
[ec2-user@web1 ~]$
バージョン2になっていますね。
基本ができていないと何を言っているのか、なぜそう書いているのか、わからないと思います。
スムーズに理解できていないと、現場では通用しません。
動画で予備知識は一気に予習、復習しておきましょう。動画のほうが理解と記憶の定着率が桁違いです。
試験問題もおすすめです。
Udemy(動画、ハンズオン)でAWS学習おすすめ教材(初学者向け)