entOS6.8 はすでに EOL(サポート終了)しており、
標準状態の Python2.6.6 では AWS CLI は動作しません。
それでも、
- レガシーVMのS3アップロード
- VM Import/Export 作業
- 変換専用サーバ
など、どうしても CentOS6 環境で AWS CLI が必要になるケースは現場ではまだ存在します。
この記事では OS標準Pythonを壊さず Python2.7 を追加導入し、
AWS CLI v1 を安全に動かす方法 をまとめます。
環境
- OS:CentOS 6.8
- 標準Python:2.6.6
- 目標:AWS CLI v1 を利用可能にする
方針(重要)
CentOS6 の Python2.6 は yum や OS の内部処理で使われているため
削除・上書きは厳禁 です。
そこで以下の構成を取ります。
/usr/bin/python → Python2.6(既存のまま)
/usr/local/python27 → Python2.7(追加インストール)
AWS CLI は Python2.7 側のみで使用します。
① 開発ツールの導入
Pythonビルドに必要なパッケージを入れます。
yum groupinstall -y "Development Tools"
yum install -y openssl-devel bzip2-devel libffi-devel zlib-devel
※ CentOS6 は公式mirrorが停止している場合があります。
yum が失敗する場合は vault.centos.org へ切り替えてください。
② Python2.7 ソース取得
cd /usr/src
wget https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tgz
展開:
tar xzf Python-2.7.18.tgz
cd Python-2.7.18
③ Python2.7 ビルド
既存Pythonと共存させるため prefix を指定します。
./configure --prefix=/usr/local/python27
make
make install
確認:
/usr/local/python27/bin/python -V
出力例:
Python 2.7.18
④ pip のインストール
Python2.7用 pip を追加します。
cd /usr/src
curl -O https://bootstrap.pypa.io/pip/2.7/get-pip.py
実行:
/usr/local/python27/bin/python get-pip.py
確認:
/usr/local/python27/bin/pip -V
⑤ AWS CLI v1 のインストール
CentOS6 では新しい awscli は依存関係で失敗しやすいため、安定版を固定指定します。
/usr/local/python27/bin/pip install awscli==1.18.223
確認:
/usr/local/python27/bin/aws --version
出力例:
aws-cli/1.18.223 Python/2.7.18 Linux/2.6.32
⑥ PATH を通す(任意)
毎回フルパス入力を省略したい場合:
echo 'export PATH=/usr/local/python27/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
⑦ 初期設定
aws configure
入力例:
Region:ap-northeast-1
Output format:json
⑧ 動作確認
S3一覧取得で確認します。
aws s3 ls
バケット一覧が表示されれば成功です。
よくあるトラブル
SSLエラーが出る場合
yum install -y ca-certificates
update-ca-trust force-enable
実務的な注意点(重要)
CentOS6 は TLS や証明書周りが古く、
・大容量S3アップロード
・Multipart Upload
・VM Import
では 転送失敗や再開不能トラブルが起きやすい です。
推奨構成
・CentOS6 → 変換処理のみ
・AmazonLinux2023 → AWS CLI 実行
中継構成にすることで安定性が大きく向上します。
まとめ
CentOS6 でも、
・Python2.7 を追加導入
・pip を導入
・AWS CLI v1 を固定指定
この構成を守れば安全に AWS CLI を利用可能です。
ただし本番運用では可能な限り新しいOSへの移行を推奨します。