Amazon EC2의 GPU 개발환경 한 번에 확인하는 쉘 스크립트
안녕하세요 클래스메소드 김재욱(Kim Jaewook) 입니다. 이번 글에서는 Amazon EC2의 GPU 개발 환경을 한 번에 확인할 수 있는 쉘 스크립트를 통해 딥러닝 환경 점검을 보다 효율적으로 수행하는 방법을 소개합니다.
EC2 OS 정보
EC2의 운영체제는 Ubuntu 24.04 버전을 사용하고 있으며, 해당 인스턴스는 GPU 기반 딥러닝 환경을 빠르게 구성할 수 있도록 Deep Learning Base OSS Nvidia Driver GPU AMI (Ubuntu 24.04) 이미지를 기반으로 생성했습니다.
이 AMI는 GPU 워크로드 실행에 필요한 기본 구성 요소들이 미리 포함되어 있어, 딥러닝 및 머신러닝 환경을 보다 쉽게 구축할 수 있습니다.
예를 들어 다음과 같은 구성 요소들이 포함되어 있습니다.
- NVIDIA GPU Driver
- CUDA
- GPU 연산을 위한 기본 라이브러리 및 개발 환경
- Docker
- Python
스크립트 준비
NVIDIA Driver부터 시작해서 GPU까지 확인하는 코드입니다.
#!/bin/bash
echo ""
echo "【1. NVIDIA Driver】"
nvidia-smi
echo ""
nvidia-smi --query-gpu=name,driver_version --format=csv
echo ""
echo "======================================"
echo "【2. Docker】"
docker --version
docker info | grep -E "Server Version|Storage Driver"
echo ""
echo "======================================"
echo "【3. Docker Compose】"
docker compose version
# 오래된 버전의 경우
docker-compose --version 2>/dev/null || echo "docker-compose (standalone) not found"
echo ""
echo "======================================"
echo "【4. AWS CLI】"
aws --version
echo ""
echo "======================================"
echo "【5. NVIDIA Container Toolkit】"
nvidia-ctk --version
# 또는
dpkg -l | grep -i nvidia-container
echo ""
echo "======================================"
echo "【6. CUDA】"
nvcc --version 2>/dev/null || echo "nvcc not found"
cat /usr/local/cuda/version.txt 2>/dev/null || \
cat /usr/local/cuda/version.json 2>/dev/null || \
ls /usr/local/ | grep cuda
echo ""
echo "======================================"
echo "【7. Python】"
python3 --version
which python3
echo ""
echo "======================================"
echo "【8. sqlite3】"
sqlite3 --version 2>/dev/null || echo "sqlite3 not found"
echo ""
echo "======================================"
echo "【9. OS 확인】"
lsb_release -a
uname -r
echo ""
echo "======================================"
echo "【10. GPU 확인】"
lspci | grep -i nvidia
echo ""
echo "======================================"
echo "확인 완료"
echo "======================================"
스크립트 실행
vi 명령어로 sh 파일을 생성하고 권한을 할당한 다음 실행합니다.
sudo vi check_requirements.sh
sudo chmod +x check_requirements.sh
sudo ./check_requirements.sh
스크립트를 실행하면 다음과 같은 결과를 확인할 수 있습니다.
【1. NVIDIA Driver】
Wed Mar 11 01:27:06 2026
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 580.126.09 Driver Version: 580.126.09 CUDA Version: 13.0 |
+-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA L40S On | 00000000:30:00.0 Off | 0 |
| N/A 31C P8 23W / 350W | 0MiB / 46068MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| No running processes found |
+-----------------------------------------------------------------------------------------+
name, driver_version
NVIDIA L40S, 580.126.09
======================================
【2. Docker】
Docker version 29.2.1, build a5c7197
Server Version: 29.2.1
Storage Driver: overlayfs
======================================
【3. Docker Compose】
Docker Compose version v5.1.0
docker-compose (standalone) not found
======================================
【4. AWS CLI】
aws-cli/2.33.31 Python/3.13.11 Linux/6.17.0-1007-aws exe/x86_64.ubuntu.24
======================================
【5. NVIDIA Container Toolkit】
NVIDIA Container Toolkit CLI version 1.18.2
commit: 9e88ed39710fd94c7e49fbb26d96492c45e574fb
ii libnvidia-container-tools 1.18.2-1 amd64 NVIDIA container runtime library (command-line tools)
ii libnvidia-container1:amd64 1.18.2-1 amd64 NVIDIA container runtime library
ii nvidia-container-toolkit 1.18.2-1 amd64 NVIDIA Container toolkit
ii nvidia-container-toolkit-base 1.18.2-1 amd64 NVIDIA Container Toolkit Base
======================================
【6. CUDA】
nvcc not found
{
"cuda" : {
"name" : "CUDA SDK",
"version" : "12.9.20250531"
},
"cuda_cccl" : {
"name" : "CUDA C++ Core Compute Libraries",
"version" : "12.9.27"
},
"cuda_cudart" : {
"name" : "CUDA Runtime (cudart)",
"version" : "12.9.79"
},
"cuda_cuobjdump" : {
"name" : "cuobjdump",
"version" : "12.9.82"
},
"cuda_cupti" : {
"name" : "CUPTI",
"version" : "12.9.79"
},
"cuda_cuxxfilt" : {
"name" : "CUDA cu++ filt",
"version" : "12.9.82"
},
"cuda_demo_suite" : {
"name" : "CUDA Demo Suite",
"version" : "12.9.79"
},
"cuda_gdb" : {
"name" : "CUDA GDB",
"version" : "12.9.79"
},
"cuda_nsight" : {
"name" : "Nsight Eclipse Plugins",
"version" : "12.9.79"
},
"cuda_nvcc" : {
"name" : "CUDA NVCC",
"version" : "12.9.86"
},
"cuda_nvdisasm" : {
"name" : "CUDA nvdisasm",
"version" : "12.9.88"
},
"cuda_nvml_dev" : {
"name" : "CUDA NVML Headers",
"version" : "12.9.79"
},
"cuda_nvprof" : {
"name" : "CUDA nvprof",
"version" : "12.9.79"
},
"cuda_nvprune" : {
"name" : "CUDA nvprune",
"version" : "12.9.82"
},
"cuda_nvrtc" : {
"name" : "CUDA NVRTC",
"version" : "12.9.86"
},
"cuda_nvtx" : {
"name" : "CUDA NVTX",
"version" : "12.9.79"
},
"cuda_nvvp" : {
"name" : "CUDA NVVP",
"version" : "12.9.79"
},
"cuda_opencl" : {
"name" : "CUDA OpenCL",
"version" : "12.9.19"
},
"cuda_sanitizer_api" : {
"name" : "CUDA Compute Sanitizer API",
"version" : "12.9.79"
},
"libcublas" : {
"name" : "CUDA cuBLAS",
"version" : "12.9.1.4"
},
"libcufft" : {
"name" : "CUDA cuFFT",
"version" : "11.4.1.4"
},
"libcufile" : {
"name" : "GPUDirect Storage (cufile)",
"version" : "1.14.1.1"
},
"libcurand" : {
"name" : "CUDA cuRAND",
"version" : "10.3.10.19"
},
"libcusolver" : {
"name" : "CUDA cuSOLVER",
"version" : "11.7.5.82"
},
"libcusparse" : {
"name" : "CUDA cuSPARSE",
"version" : "12.5.10.65"
},
"libnpp" : {
"name" : "CUDA NPP",
"version" : "12.4.1.87"
},
"libnvfatbin" : {
"name" : "Fatbin interaction library",
"version" : "12.9.82"
},
"libnvjitlink" : {
"name" : "JIT Linker Library",
"version" : "12.9.86"
},
"libnvjpeg" : {
"name" : "CUDA nvJPEG",
"version" : "12.4.0.76"
},
"nsight_compute" : {
"name" : "Nsight Compute",
"version" : "2025.2.1.3"
},
"nsight_systems" : {
"name" : "Nsight Systems",
"version" : "2025.1.3.140"
},
"nvidia_driver" : {
"name" : "NVIDIA Linux Driver",
"version" : "575.57.08"
},
"nvidia_fs" : {
"name" : "NVIDIA file-system",
"version" : "2.25.7"
}
}
======================================
【7. Python】
Python 3.12.3
/usr/bin/python3
======================================
【8. sqlite3】
sqlite3 not found
======================================
【9. OS 확인】
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 24.04.4 LTS
Release: 24.04
Codename: noble
6.17.0-1007-aws
======================================
【10. GPU 확인】
30:00.0 3D controller: NVIDIA Corporation AD102GL [L40S] (rev a1)
======================================
확인 완료
======================================
마무리
GPU 기반 개발 환경을 구성하다 보면 드라이버, CUDA, Docker, Python 등 여러 구성 요소가 서로 정상적으로 설치되어 있는지 확인해야 하는 경우가 많습니다.
하지만 이러한 항목들을 하나씩 확인하다 보면 시간이 많이 소요되고, 환경이 여러 대의 서버로 늘어날수록 관리가 번거로워질 수 있습니다.
이번 글에서 소개한 쉘 스크립트를 활용하면 GPU 드라이버, CUDA, Docker, Python, OS 정보 등을 한 번에 확인할 수 있기 때문에 환경 점검을 보다 빠르고 효율적으로 수행할 수 있습니다. 특히 새로운 GPU 인스턴스를 생성했을 때나, 딥러닝 개발 환경을 구축한 직후 기본 환경이 정상적으로 구성되어 있는지 검증하는 용도로 유용하게 사용할 수 있습니다.
또한 이러한 방식은 단순한 확인용 스크립트를 넘어 초기 환경 검증(Health Check) 스크립트로도 활용할 수 있기 때문에, 팀 단위 개발 환경이나 운영 환경에서도 도움이 될 수 있습니다.
GPU 인스턴스를 활용한 딥러닝 환경을 구성할 때 이번 스크립트를 참고하여 보다 빠르게 환경을 점검하고 안정적인 개발 환경을 구축해 보시기 바랍니다.






