はじめに
業務の中でプライベート環境のEC2インスタンスへAWS CLIを導入(構築)する機会がありましたので、自身の備忘録を兼ねて記事にまとめました。
前提
前提条件として
・Ec2インスタンスは起動済みであること(Windows OS)
・Fleet Manager(Systems Manager)のRDP(リモートデスクトップ接続)ができる環境があること
・S3は作成済みであること
とします
設定手順
・S3エンドポイントの作成
S3のゲートウェイ型エンドポイント(Gateway Endpoint)を作成します。
これにより、インターネット接続のないプライベート環境のインスタンスからも、VPC内を通る安全な経路でS3へアクセスできるようになります。
・S3バケットにAWS CLIを配置
こちらのサイトからAWSCLIをダウンロードしてS3バケットに配置します。
・AWS CLIの「署名付きURL」を作成
S3にアップロードしたAWS CLIインストーラーを選択して「署名つきURLで共有」をクリックします

URLの有効期限を設定して「署名付きURLを作成」をクリックします。

・インスタンスで以下のコマンドを実行します
Fleermanagerを使ってインスタンスにRDPし、PowerShellを立ち上げます。
Invoke-WebRequest -Uri "S3の署名付きURL" -OutFile "保存先のパス"
"S3の署名付きURL" ここには作成した署名付きURLを記載します
"保存先のパス" ここには任意の保存先のパスを記載します
ダウンロードが完了すると、"保存先のパス" で指定した箇所にAWS CLIがインストールされていますので、ダブルクリックします。

セットアップウィザードが開始されるので、「Next」をクリックしていき「Install」をクリックします。

PowerShellを立ち上げ直し、以下のコマンドでAWS CLIのバージョンが表示されればインストールは完了です。
aws --version
まとめ
今回は、インターネット未接続のプライベート環境にあるWindows EC2インスタンスへ、S3 Gatewayエンドポイントを活用してAWS CLIを導入する手順を記事にしました。
外部と遮断された環境であっても、以下の流れで安全かつ簡単にセットアップが可能です。
他のソフトウェアのインストール等でも同様の手順で応用・対応が可能です。
・S3 Gatewayエンドポイントの作成(プライベート通信の確保)
・S3バケットへのインストーラー(AWSCLIV2.msi)配置
・Fleet Manager(RDP)経由でのインストール作業
同様の環境での構築手順として、参考になれば幸いです。
参考サイト




