3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Amazon ECS で NVIDIA GPU を使用するための AMI 作成方法

Posted at

以前の記事(Docker コンテナで NVIDIA GPU によるハードウェアエンコードを動かす)でビルドしたコンテナを、Amazon ECS や AWS Batch などの基盤上で動作させるためには、Amazon ECS で通常提供される Amazon ECS-optimized AMI ではなく、GPU ドライバなどをインストールした独自の AMI を用意する必要がある。その作成方法を以下に記した。

AMI 作成手順

  1. Amazon EC2 G3 インスタンスを起動

    • AMI (Amazon Machine Image) は Amazon Linux 2 AMI ami-0a2de1c3b415889d2 を選択
    • インスタンスタイプは G3 インスタンスの中では比較的安価な g3.4xlargeg3s.xlarge を推奨
    • EBS ルートボリュームは 8 GB だと空き容量が不足する可能性があるため注意
  2. 起動した EC2 インスタンスに SSH 接続

  3. 最初にタイムゾーンを設定

    sudo timedatectl set-timezone Asia/Tokyo
    
  4. Docker のインストール
    Amazon Linux 2 では Extras Library を使用することで Docker を簡単にインストールすることができる。

    sudo amazon-linux-extras install docker
    
  5. ecs-init のインストール
    これにより Amazon ECS エージェントがインストールされ、ECS のコンテナ実行環境として使用できるようになる。

    sudo amazon-linux-extras install ecs
    sudo systemctl enable ecs
    
  6. NVIDIA Graphics Driver のインストール
    最新のドライバは https://www.nvidia.com/Download/index.aspx で Tesla M60 を検索することで取得可能。
    なお、NVIDIA Graphics Driver の使用には NVIDIA Software License Agreement への同意が必要である。

    sudo yum install gcc kernel-devel-$(uname -r)
    wget http://us.download.nvidia.com/tesla/410.72/NVIDIA-Linux-x86_64-410.72.run
    sudo bash NVIDIA-Linux-x86_64-410.72.run --ui=none --no-questions --accept-license
    
  7. nvidia-docker2 のインストール
    nvidia-docker2 は Docker コンテナで NVIDIA GPU を使用するために必要なランタイムである。

    distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
    curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | sudo tee /etc/yum.repos.d/nvidia-docker.repo
    sudo yum install nvidia-docker2
    
  8. デフォルトランタイムの設定
    docker コマンドをオプションなしで実行した場合でも上記でインストールした nvidia-docker2 ランタイムが使用されるよう、 /etc/docker/daemon.json を以下のように編集する(ファイルがない場合は新規に作成する)。

    /etc/docker/daemon.json
    {
        "runtimes": {
            "nvidia": {
                "path": "nvidia-container-runtime",
                "runtimeArgs": []
            }
        },
        "default-runtime": "nvidia"
    }
    
  9. シャットダウン

    sudo shutdown -h now
    
  10. EC2 マネジメントコンソールから AMI を作成

3
4
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
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?