AWS EC2のGPUインスタンス(g6, g5など)でWindows Server 2025にNVIDIA GRIDドライバーをインストールする

AWSのEC2でGPUインスタンスを使うことがあったけど、GPUアクセラレーションを効かせるためのドライバーは別途インストールする必要があります。
ドライバーインストール済みのAMIを使う方法もあるけど、最新のg6とかだと対応のマーケットプレイスAMIがなかったので手動でインストールする方法を書いておきます。

前置きと注意

  1. この記事はEC2のGPUインスタンスでゲームエンジンなどの3Dソフトや映像編集ソフトなどを使う上で必要なドライバーセットアップについて解説します。
    (AI・機械学習環境構築向けの内容ではないです)
  2. AWSの公式ドキュメントを噛み砕いた内容です。(わかる人はこちらから公式ドキュメント読んでください)
  3. AWS公式のMicrosoft Windows Server 2025 Baseをマシンイメージとして利用しています (Linuxとかの話は今回しないです)

今回はg6.xlargeマシンタイプを利用します (NVIDIA L4 GPU搭載)
(マシンスペックはこちらの記事がわかりやすいです)

1. AWS EC2のGPUインスタンスで利用できるドライバーの種類について

  1. NVIDIA公式サイトからインストールする Teslaドライバー
    • NVIDIAの公式サイトからインストールするので、これが正しいと思われがちですが違います。
      これはAI/機械学習などのGPGPU用途にGPUを利用する際に利用するためのドライバーとなっておりグラフィックス用途としては利用できず、3DアプリケーションなどではGPUアクセラレーションが効きません。
  2. AWS上のS3からインストールする GRIDドライバー (今回インストールするもの)
    • NVIDIAには仮想GPU (vGPU)というソフトウェアが存在しており、AWSやGoogle Cloudなどのクラウド事業者はこれを利用することによってGPUをEC2などの仮想マシン上で利用できるようにしています。
    • vGPUはリリース当初NVIDIA GRIDと呼ばれており、GRIDドライバーの名前はそれに由来します
  3. AWS上のS3からインストールする ゲームドライバー
    • 2のGRIDドライバーとほぼ同等のものですが、ゲーム用途に最適化されているため頻繁に更新されています。
      マルチディスプレイのサポートなどはありませんが、GeForceなどのコンシューマーGPUと一番扱いが近いドライバーです

2. ドライバーインストールの流れ

2-1. AWS CLI (PowerShell)を使ってAWSへのログイン情報を設定する (認証)

GRIDドライバー・ゲームドライバーはAWS公式のS3で配布されており、ダウンロードするにはAWS CLIでの認証が必要です。
(AWS公式のWindows Server 2025 Base AMIにはデフォルトでAWS CLIがPowerShellで利用できるようになっています)

やり方はいろいろありますが、今回はアクセスキー・シークレットキー方式で認証します。
アクセスキーの作成方法はこちらを参考にしてください。

権限はAmazonS3ReadOnlyAccess とかで十分です。

アクセスキー・シークレットキーが取得できたら以下のコマンドで認証情報を設定します。

Set-AWSCredential -AccessKey アクセスキー -SecretKey シークレットキー -StoreAs default

-StoreAs default で認証にデフォルトで使うプロファイルとしてセットしています。
(別のプロファイル設定したい場合はお好みで)

2-2. S3からドライバーをダウンロードする

認証情報を設定してS3にアクセスできるようになったので、公式ドキュメント と同じコマンドでデスクトップにドライバーをダウンロードします。

以下のPowerShellコマンドで GRIDドライバーをダウンロードできます。

$Bucket = "ec2-windows-nvidia-drivers"
$KeyPrefix = "latest"
$LocalPath = "$home\Desktop\NVIDIA"
$Objects = Get-S3Object -BucketName $Bucket -KeyPrefix $KeyPrefix -Region us-east-1
foreach ($Object in $Objects) {
$LocalFileName = $Object.Key
if ($LocalFileName -ne '' -and $Object.Size -ne 0) {
    $LocalFilePath = Join-Path $LocalPath $LocalFileName
    Copy-S3Object -BucketName $Bucket -Key $Object.Key -LocalFile $LocalFilePath -Region us-east-1
}
}

2-3. ドライバーのインストール

デスクトップに作成されたNVIDIAフォルダー内にダウンロードしたドライバーが入っているので、インストールします。
インストールは画面の指示に従ってください。

これでドライバーインストール完了です。

3. 便利情報

Amazon DCV (旧 NICE DCV)を使うと便利

Windows標準のRDP(Remote Desktop)よりも動作もレイテンシーも優れているので、使いましょう。
(特にGPUを利用するアプリの場合標準RDPは何かと不都合が多いです)

あわせて読みたい

EC2インスタンスの場合無料でDCVサーバーを使えます。 (インストールも簡単)

インストール方法はこちらが参考になります。

Elastic IPを使ってIPを固定化したほうが便利 (DCVを使う場合特に)

デフォルトだとインスタンスが停止する度にグローバルIPが解放されてしまうので、Elastic IPで固定したほうが便利です。
(いちいちIP確認しなくてよくなるので)

ドライバーダウンロードに使ったIAMユーザーを消しましょう

使わないなら消す、このために作ったならもう使わないので消しましょう。

最後に

これで「GPUリソースが足んなくて~」みたいな言い訳はできなくなりましたね
安心してGPUを使いまくりましょう (インスタンス停止し忘れると財布は安心しないかも)

GPU使いまくる人のためのイベント「SESSIONS」にも作品作って出してくださいー

SESSIONS 2025
SESSIONS 2025 | SESSIONSは技術ベース創作に関わる人達が集まるイベントです SESSIONSは技術ベース創作に関わる人達が集まるイベントです

以上

おまけ. GPU仮想化の裏側について (別記事にします)

GPU仮想化の歴史は2013年くらいまで遡ります。 (ちょうど自分がGPUに興味を持ち始めた時)
当時は今のようにAI/機械学習に代表されるGPGPU(General-purpose computing on graphics processing units / GPUをゲーム以外の汎用計算に流用する技術)利用もありましたが、まだまだゲームがGPUの利用ケースとしてメインでした。

当時VMwareやCitrix XenServerなどの仮想化技術もすでにだいぶ普及していましたが、課題となっていたのが仮想マシンの中でAutodesk社のAutoCADやMaya, 3ds Maxなどの3Dソフトウェアなどを利用すると動作が重いという問題でした。

というのも当時はCPU・メモリなどを複数の仮想マシンにて利用するという考えがすでに普及していましたが、GPUに関してはまだまだで1つのGPUを共有して使うという考えがなかったのです。そのためハードウェアアクセラレーションのほとんどはCPUによるソフトウェアレンダリングが中心となっていました。

そんな中NVIDIAがクラウドゲーミングのためのGPU仮想化技術として「NVIDIA GeForce GRID」、企業向けGPU仮想化技術として「NVIDIA VGX」を2012年ごろに発表しました。この二つはやがて「NVIDIA GRID」に改称され、「NVIDIA vGPU」に改称されました。

(ここまで書いたタイミングで長くなりそうなので、別記事にしようと思いました。気分が乗ったら投稿します)
(投稿されなかったらめんどくさくなったってことです、読みたい方がいたらXや問い合わせで記事書いてって言ってください)

  • URLをコピーしました!