boto3をオフライン環境にインストールする方法

# 概要
boto3をオフライン環境のEC2（RHEL8）にインストールする方法

## 前提
Python3がインストール済みであること。まだの場合は以下コマンドでインストールを実施すること。
```
dnf install python39
```
# 目次
- boto3とは
- パッケージダウンロード
- TeratermにSCPでパッケージファイル移行
- パッケージインストール
- インストール確認

# boto3とは
>Boto3とは、「AWS SDK for Python」のことで、AWS の各種サービス（Amazon S3、Amazon EC2、Amazon RDSなど）をPythonから操作するためのライブラリです。これはAWSが公式で提供しています。

[PythonとBoto3を使用して、AWSのインフラ構築を自動化してみた](https://ops.jig-saw.com/tech-cate/python_boto3_aws#:~:text=Boto3%E3%81%A8%E3%81%AF%E3%80%81%E3%80%8CAWS%20SDK,%E3%81%A7%E6%8F%90%E4%BE%9B%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82)



## パッケージダウンロード
必要なパッケージ（.whlファイル）を以下URLからダウンロードしてローカルに保存する。
※boto3とbotocoreファイルは毎日更新されて最新バージョンが出るため、それをダウンロードするようにする。インストールサイトにアクセスし、該当ファイルをダウンロードすること。

※pipとsetuptoolsはPythonインストールした際に同時にインストールされるため、基本的にはインストール不要。バージョンアップしたい際にはインストールを実施すること。

他は基本的にインストールURLからインストールしても問題ないが、インストールサイトを見て最新バージョンが出ていたらそちらからインストールを実施すること。

■インストールサイト

https://pypi.org/project/boto3/#files

■インストールサイト

https://pypi.org/project/botocore/#files

■インストールサイト

https://pypi.org/project/jmespath/#files

■インストールURL

https://files.pythonhosted.org/packages/31/b4/b9b800c45527aadd64d5b442f9b932b00648617eb5d63d2c7a6587b7cafc/jmespath-1.0.1-py3-none-any.whl

■インストールサイト　※バージョンアップしない際は不要

https://pypi.org/project/pip/#files

■インストールURL

https://files.pythonhosted.org/packages/15/aa/3f4c7bcee2057a76562a5b33ecbd199be08cdb4443a02e26bd2c3cf6fc39/pip-23.3.2-py3-none-any.whl

■インストールサイト

https://pypi.org/project/python-dateutil/#files

■インストールURL

https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl

■インストールサイト

https://pypi.org/project/s3transfer/#files

■インストールURL

https://files.pythonhosted.org/packages/12/bb/7e7912e18cd558e7880d9b58ffc57300b2c28ffba9882b3a54ba5ce3ebc4/s3transfer-0.10.0-py3-none-any.whl

■インストールサイト　※バージョンアップしない際は不要

https://pypi.org/project/setuptools/#files

■インストールURL

https://files.pythonhosted.org/packages/55/3a/5121b58b578a598b269537e09a316ad2a94fdd561a2c6eb75cd68578cc6b/setuptools-69.0.3-py3-none-any.whl

■インストールサイト

https://pypi.org/project/six/#files

■インストールURL

https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl

■インストールサイト

https://pypi.org/project/urllib3/#files

■インストールURL

https://files.pythonhosted.org/packages/96/94/c31f58c7a7f470d5665935262ebd7455c7e4c7782eb525658d3dbf4b9403/urllib3-2.1.0-py3-none-any.whl


### 必要パッケージ
必要なパッケージは以下の通りです。（20240125時点）
- boto3           1.34.27（毎日最新バージョン更新）
- botocore        1.34.27（毎日最新バージョン更新）
- jmespath        1.0.1
- pip             20.2.4
- python-dateutil 2.8.2
- s3transfer      0.10.0
- setuptools      50.3.2
- six             1.16.0
- urllib3         1.26.18


## TeratermにSCPでパッケージファイル移行
Teratermを開き、ダウンロードしたファイルをドラッグ＆ドロップする。
格納先は任意のフォルダを指定する。（ex./tmpなど）

## パッケージインストール
以下コマンドを実行して移行したパッケージファイルをサーバにインストールする。
```
pip3 install --no-deps boto3-1.34.27-py3-none-any.whl
※最新バージョンをインストールすること
```
```
pip3 install --no-deps botocore-1.34.27-py3-none-any.whl 
※最新バージョンをインストールすること
```
```
pip3 install --no-deps jmespath-1.0.1-py3-none-any.whl
```
```
pip3 install --no-deps pip-23.3.2-py3-none-any.whl 
※バージョンアップしない際は不要
```
```
pip3 install --no-deps python_dateutil-2.8.2-py2.py3-none-any.whl 
```
```
pip3 install --no-deps s3transfer-0.10.0-py3-none-any.whl
```
```
pip3 install --no-deps setuptools-69.0.3-py3-none-any.whl
※バージョンアップしない際は不要
```
```
pip3 install --no-deps six-1.16.0-py2.py3-none-any.whl
```
```
pip3 install --no-deps urllib3-2.1.0-py3-none-any.whl 
```
## インストール確認
以下コマンドを実行してパッケージがインストールされたことを確認。
```
pip3 list
```