0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

EC2でDocker対応GPU環境を構築|リミット上限緩和申請+NVIDIAドライバ・Container Toolkitのインストール

Last updated at Posted at 2025-03-07

はじめに

EC2 の GPU 環境で Docker を利用できるようにする手順をまとめました。

リミット上限緩和申請 → EC2 インスタンス作成 → Docker & NVIDIA ドライバ & Nvidia Container Toolkit のセットアップ の流れを紹介します。

目次

  1. リミット上限緩和申請
  2. EC2でGPUインスタンス作成
  3. Dockerインストール
  4. NVIDIAドライバインストール
  5. NVIDIA Container Toolkitインストール

1. リミット上限緩和申請

EC2 ではデフォルトで GPU インスタンスが使用できないため、リミットの引き上げ申請 が必要です。
手続き自体は簡単ですが、AWS の UI は変更されることがあり、古い記事の手順ではうまくいかないことがあります。
ここでは、2025年3月7日現在の最新の手順 を紹介します。

リミット申請の詳細は、AWS 公式ドキュメントも参考にしてください。

今回は g4dn.xlarge インスタンスを利用できるように申請を行います。

リミット申請の手順

  1. AWSコンソールでService Quotas を開く
  2. 画面右上のナビゲーションバーから、使用する リージョンを選択(例: Oregon)
  3. 検索窓に Running On-Demand G and VT instances と入力し、検索結果をクリック
    • g4dn.xlarge を利用する場合はこれを選択
    • 他のインスタンスを使う場合は、それに合った「Running On-Demand 〇〇」を選択
  4. 右上の 「Request increase at account level」 をクリック
  5. 「Increase quota value」必要な vCPU 数を入力 して申請
    • g4dn.xlarge は 1 インスタンスあたり vCPU を 4 個使用する4 を入力
  6. 承認のメールを待つ
    • 私の場合、申請から約 30 分後に承認メールが届きました。

これで、AWS EC2 で GPU インスタンスを使用する準備が整いました。


2. EC2でGPUインスタンス作成

AWS EC2 で GPU インスタンスを利用するための手順を説明します。
ここでは g4dn.xlarge インスタンスを例に、セットアップを進めます。


  1. AWS EC2 コンソールを開く
  2. 画面右上のナビゲーションバーから、リミット申請時に選択したリージョンを選択(例: Oregon)
  3. 「Launch instance」 をクリック
  4. インスタンスの設定を行う(必要に応じて変更可能)
    • Name and tags(インスタンスの名前)
      • 任意の名前を入力(例: gpu-instance
    • Application and OS Images(Amazon Machine Image, AMI)
      • 「Quick Start」から Ubuntu を選択
    • Instance type(インスタンスタイプ)
      • 検索窓で g4dn.xlarge と入力して選択
    • Key pair(SSH キーペアの作成)
      • 「Create key pair」 をクリック
      • 「Key pair name」 に任意の名前(例: gpukey)を入力
      • 自分の ~/.ssh に合わせた Key pair type を選択
      • .pem を選択し、「Create key pair」 をクリック
      • ダウンロードした .pem ファイルを ~/.ssh/ に保存し、適切な権限を設定
        chmod 400 ~/.ssh/gpukey.pem
        
    • Configure storage(ストレージ設定)
      • 30 GiBまで無料(変更しなくてもOK)
  5. 設定が完了したら、「Launch instance」 をクリック
    • ここから課金が開始されます(g4dn.xlarge の場合、約 0.5 ドル/時間)。

EC2 インスタンスへのSSH接続

インスタンスの作成が完了したら、以下の手順で SSH 接続を行います。

  1. Public IPv4 DNS をコピー
  • AWS EC2 コンソールの Instances に移動
  • 作成したインスタンスにチェックを入れる
  • Public IPv4 DNS をコピー(例: ec2-12-34-56-78.us-west-2.compute.amazonaws.com

2.ターミナルで SSH 接続
以下のコマンドを実行し、EC2 インスタンスに接続します。

ssh -i ~/.ssh/gpukey.pem ubuntu@ec2-12-34-56-78.us-west-2.compute.amazonaws.com

3.初回接続時の確認
最初の接続時に以下のようなメッセージが表示されます。

Are you sure you want to continue connecting (yes/no/[fingerprint])?  

yes と入力して Enter を押してください。

4.接続完了
ターミナルに以下のように表示されれば、SSH 接続が成功しています。

ubuntu@ip-192-168-1-100:~$  

これで、EC2 インスタンス内で操作が可能になります。

3. Dockerインストール

EC2 インスタンスに Docker をインストールします。
以下の手順でセットアップを進めます。

パッケージリストの更新

sudo apt-get update  

Docker のインストール

sudo apt-get install -y docker.io  

ユーザーを Docker グループに追加
通常、Docker は root 権限が必要ですが、非 root ユーザー(例: ubuntu)でも使用できるようにするために、docker グループに追加します。

sudo gpasswd -a ubuntu docker  

Docker のインストール確認
最後に、Docker が正しくインストールされたことを確認します。

docker --version  

実行すると、以下のように Docker のバージョンが表示されます。

Docker version 20.10.12, build e91ed57  

これで Docker のインストールは完了です。

4. Nvidiaドライバインストール

GPU を利用するために、NVIDIA ドライバをインストールします。
ubuntu-drivers devices で簡単にインストールすることができます。

ubuntu-drivers devicesのインストール

sudo apt install -y ubuntu-drivers-common  

推奨ドライバの確認

ubuntu-drivers devices  

このコマンドを実行すると、次のような結果が表示されます。

modalias : pci:v000010DEd00001EB8sv000010DEsd000012A2bc03sc02i00  
vendor   : NVIDIA Corporation  
model    : TU104GL [Tesla T4]  
driver   : nvidia-driver-535 - distro non-free recommended  
driver   : nvidia-driver-470-server - distro non-free  
driver   : nvidia-driver-570-server - distro non-free  
driver   : nvidia-driver-535-server - distro non-free  
driver   : nvidia-driver-470 - distro non-free  
driver   : xserver-xorg-video-nouveau - distro free builtin  

いくつかのドライバが表示されますが、recommendedのマークが付いているものをインストールします。

推奨ドライバのインストール
推奨ドライバ(nvidia-driver-535)をインストールします。

sudo apt install -y nvidia-driver-535  

インストール後の確認
ドライバのインストールが完了したら、サーバーを再起動します。

sudo reboot  

再起動したら、InstancesでPublic IPv4 DNS をコピーし直してもう一度ssh接続します。
以下のコマンドを実行し、ドライバが正しくインストールされたか確認します。

nvidia-smi  

5. NVIDIA Container Toolkitインストール

Docker で GPU を使用できるようにするために、NVIDIA Container Toolkit をインストールします。

「With apt: Ubuntu, Debian」 の項目に記載されている方法でインストールを行います。

curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
  && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
    sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list  
sudo apt-get update  
sudo apt-get install -y nvidia-container-toolkit  

Dockerを再起動

sudo systemctl restart docker

Docker で GPU が使えるか確認

docker run --gpus all nvidia/cuda:12.2.0-base-ubuntu22.04 nvidia-smi  

正常に動作していれば、GPU 情報が表示されます。

これで、Docker 上で GPU が利用可能になりました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?