元も子もないのですが、プロキシを使わないで済むのなら使わないほうがいいと思います。
(AWS CLIを使いたいのならセキュリティ的にも工数的にもVPCエンドポイントを作ったほうがいいです。)
ですが、今後また同一条件でサーバ構築する可能性はあるため、将来の自分を救うとともに同じように苦しむ人を少しでも減らせることを願って備忘録を残そうと思います。
※随時更新予定です。
前提条件:
・構築環境はAWS
・ネットワークへの接続はプロキシサーバ経由
・OSはLinux
注意事項:
・Linuxと一口で言ってもRedHat系、Debian系など多くの種類があります。
できる限り共通の注意点をまとめる予定ですが、各ベンダーの仕様は必ず確認してください。
・AWSは唐突に仕様変更することがあります。現在もこの記事に記載している仕様であるかは必ず確認してください。
1. プロキシ設定の環境変数
export http_proxy=http://proxy.example.com:8080
export https_proxy=https://proxy.example.com:8080
export HTTP_PROXY=http://proxy.example.com:8080
export HTTPS_PROXY=https://proxy.example.com:8080
export no_proxy=169.254.169.254
□大文字・小文字のプロキシ設定を入れている理由
・ごくまれに大文字または小文字でないとプロキシ設定を受け付けないMWがあるので、要件がなければ初めから両方設定しておくことを推奨します。
□169.254.169.254の解説
・インスタンスメタデータという自身の情報を取得するときのIPアドレスとなってます。
この情報取得は内部で完結する情報であるため、プロキシを使用しないようにする設定がAWSでは必須となります。
□上記以外の注意点
・MWによっては環境変数のプロキシ設定を受け付けないことがあります。
そういう場合は/etc配下にある設定ファイルに上記プロキシ設定を書き込んであげる必要があるかもしれないです。
例えば、yumやaptなどのパッケージ管理ツールは設定ファイルに書き込まないとプロキシ設定が効かないです
・ログイン時に自動で適用されるようにするにはログイン処理の一部として実行されるようにスクリプトファイルを/~/.bashrc
や/etc/profile
にプロキシ設定を読み込む処理を記述してあげる必要があります。プロジェクトの要件に応じて実装方法を検討してください。