본문으로 건너뛰기

[EC2] GPU 인스턴스 기초 프로비저닝 가이드

Prerequisite

  • AWS 계정 및 권한: EC2 인스턴스 생성 및 관리 권한이 필요합니다.

  • GPU 인스턴스 타입 이해: 용도에 맞는 인스턴스 패밀리를 선택해야 합니다.

    • P 시리즈 (P3, P4, P5): 머신러닝 학습 및 고성능 컴퓨팅
    • G 시리즈 (G4dn, G5, G6): 그래픽 렌더링, 게임 스트리밍, ML 추론
    • Inf 시리즈: ML 추론 최적화 (Amazon 자체 칩 사용)
  • 리전별 가용성 확인: 모든 리전에서 GPU 인스턴스를 사용할 수 없으므로 사전 확인이 필요합니다.

    • 예) ap-northeast-2(서울) 리전에서는 H100 1EA인스턴스 (p5.4xlarge) 사용이 불가능합니다.

Process

1. 인스턴스 타입 및 AMI 선택

GPU 인스턴스는 적절한 드라이버와 런타임이 포함된 AMI를 사용해야 합니다.

권장하는 AMI:

  • Deep Learning AMI (Ubuntu/Amazon Linux): NVIDIA 드라이버, CUDA, cuDNN이 사전 설치됨
  • AWS Marketplace의 GPU 최적화 AMI: 특정 프레임워크(PyTorch, TensorFlow)가 포함된 이미지

AWS Console에서 EC2 서비스로 이동합니다.

인스턴스 시작(Launch Instance) 버튼을 클릭합니다.

애플리케이션 및 OS 이미지에서 적절한 AMI를 선택합니다.

(Notice: 일반 AMI를 선택하면 NVIDIA 드라이버를 수동으로 설치해야 합니다. 제공되는 이미지는 amazon linux, ubuntu가 있습니다.)

인스턴스 유형에서 GPU 인스턴스를 선택합니다.

  • 예: g4dn.xlarge (1개 NVIDIA T4 GPU), p3.2xlarge (1개 NVIDIA V100 GPU)

주의 : GPU 경쟁 과열로 인해, 예약으로 권장되는 GPU 인스턴스의 경우 캐퍼시티 블록 구매옵션에 주의해야합니다. 다음은 H200 * 8EA구성을 지원하는 p5en.48xlarge의 예시입니다.

용량 블록 구매옵션으로 캐퍼시티 블록을 구매하는경우 1시간단위로 즉시 예약되며, 환불이 불가능합니다.

2. 키페어

새로운 키페어 혹은 기존의 키페어를 사용할 수 있습니다.

키페어가 존재하지 않는경우 생성합니다.

SSH 접속가이드는 다음을 확인합니다.
[EC2] SSH 접속 가이드

3. 네트워크 구성

GPU인스턴스가 위치하게될 AWS의 논리적 네트워크망인 VPC를 선택하는 항목입니다.

편집을 선택합니다.

네트워크 세부설정을 진행합니다.

  • VPC : 생성하였던 VPC를 선택합니다.

  • 서브넷 : 인스턴스가 위치할 서브넷을 선택합니다.

    • 일반적으로 인터넷을 통해 외부에 노출되는 경우 Public Subnet에 위치합니다.
    • 외부에 노출하지 않고 내부망에서 사용하는경우 Private Subnet에 위치합니다.
  • 퍼블릭 IP 자동할당 : 인터넷을 통해 외부에서 접근할 수 있는 IP를 부여합니다.

    • 서브넷 지정 단계에서 Private Subnet을 지정한 경우에는 퍼블릭 IP를 부여해도 접근할 수 없습니다.
  • 보안그룹 : AWS에서 지원되는 접근제어 방식입니다. 자세한 내용은 다음을 참고합니다.

    [VPC] 보안그룹 설정 가이드

4. 스토리지 구성

GPU 워크로드는 대량의 데이터를 처리하므로 충분한 스토리지가 필요합니다.

  • 스토리지 구성(Configure storage) 섹션에서 용량을 설정합니다. 용량은 이후 확장이 가능하므로 적절한 용량을 입력합니다.

    (주의 : 이후 확장은 가능하나 축소는 불가능합니다.)

[EC2] EBS 볼륨확장 가이드

  • 볼륨 유형은 gp3 또는 io2를 권장합니다.
    • gp3: 비용 대비 우수한 성능 (기본 권장)
    • io2: 고성능 I/O가 필요한 경우

(Notice: GPU 인스턴스는 인스턴스 스토어를 제공하지만, 인스턴스 중지 시 데이터가 손실되므로 중요 데이터는 EBS에 저장해야 합니다.)

인스턴스 스토어(Nvme)는 EC2 인스턴스에 임시 블록 스토리지를 제공합니다. 이 스토리지는 호스트 컴퓨터에 물리적으로 연결된 디스크에서 제공합니다.

인스턴스 스토어(Nvme)는 버퍼, 캐시, 스크래치 데이터, 기타 임시 콘텐츠와 같이 자주 변경되는 정보의 임시 저장에 적합합니다. 또한 로드 밸런싱된 웹 서버 풀과 같은 인스턴스 플릿 전체에 복제하는 임시 데이터를 저장하는 데 사용할 수도 있습니다.

  • 인스턴스 스토어 볼륨은 인스턴스 시작 시에만 연결됩니다. 시작 후에는 인스턴스 스토어 볼륨을 연결할 수 없습니다.
  • 하나의 인스턴스에서 인스턴스 스토어 볼륨을 분리하고 다른 인스턴스에 연결할 수 없습니다.
  • 인스턴스 스토어 볼륨은 연결된 인스턴스의 수명 기간 동안에만 존재합니다. 연결된 인스턴스의 수명 기간이 지난 후에도 유지되도록 인스턴스 스토어 볼륨을 구성할 수 없습니다.
  • 인스턴스를 재부팅해도 인스턴스 스토어 볼륨의 데이터는 유지됩니다. 그러나 인스턴스가 중지 또는 종료되거나 최대 절전 모드로 전환된 경우에는 데이터가 유지되지 않습니다.
  • 인스턴스가 중지 또는 종료되거나 최대 절전 모드로 전환되면 인스턴스 스토어 볼륨의 모든 블록이 암호화된 방식으로 지워집니다.

그러므로 중요한 장기 데이터의 경우 인스턴스 스토어 볼륨에 의존하지 마세요. 인스턴스 수명 기간이 지난 후에도 인스턴스 스토어 볼륨에 저장된 데이터를 유지해야 하는 경우 Amazon EBS 볼륨, Amazon S3 버킷 또는 Amazon EFS 파일 시스템과 같은 보다 영구적인 스토리지에 해당 데이터를 수동으로 복사해야 합니다.

이벤트 범주이벤트데이터 지속성
사용자 시작 인스턴스 수명 주기 이벤트  
 인스턴스가 재부팅됨데이터 유지됨
 인스턴스가 중지됨데이터 유지되지 않음
 인스턴스가 최대 절전 모드로 전환됨데이터 유지되지 않음
 인스턴스가 종료됨데이터 유지되지 않음
 인스턴스 유형이 변경됨데이터 유지되지 않음 *
 인스턴스에서 EBS 지원 AMI가 생성됨생성된 AMI에 데이터 유지되지 않음 **
 인스턴스에서 Amazon S3 지원 AMI가 생성됨 (Linux 인스턴스)Amazon S3에 업로드된 AMI 번들에 데이터 유지됨 ***
사용자가 시작한 OS 이벤트  
 종료(shutdown)가 시작됨데이터 유지되지 않음 †
 재시작(restart)이 시작됨데이터 유지됨
AWS 예약된 이벤트  
 인스턴스 중지데이터 유지되지 않음
 인스턴스 재부팅데이터 유지됨
 시스템 재부팅데이터 유지됨
 인스턴스 만료데이터 유지되지 않음
계획되지 않은 이벤트  
 간소화된 자동 복구데이터 유지되지 않음
 CloudWatch 작업 기반 복구데이터 유지되지 않음
 기본 디스크 장애장애가 발생한 디스크의 데이터는 유지되지 않음
 전원 장애재부팅 시 데이터 유지됨
  • * 인스턴스 유형 변경 시 인스턴스 스토어 볼륨이 변경되거나 제거될 수 있음
  • ** EBS 지원 AMI는 인스턴스 스토어 데이터를 포함하지 않음
  • *** S3 지원 AMI는 인스턴스 스토어 데이터를 AMI 번들에 포함함
  • OS 수준 shutdown은 인스턴스를 중지시킬 수 있으며, 이 경우 데이터가 손실됨

4. GPU 드라이버 확인 (Deep Learning AMI가 아닌 경우)

일반 AMI를 사용한 경우 NVIDIA 드라이버를 수동으로 설치해야 합니다.

인스턴스에 SSH 접속합니다. [EC2] SSH 접속 가이드

GPU 인식 여부를 확인합니다. nvidia-smi 명령어로 설치를 확인합니다.

nvidia-smi

GPU 정보와 드라이버 버전이 출력되면 설치 성공입니다.

5. (번외) vLLM 테스트

uv 설치

curl -LsSf https://astral.sh/uv/install.sh | sh echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc && source ~/.bashrc

vLLM설치

uv venv --python 3.11 --seed source .venv/bin/activate uv pip install vllm --torch-backend=auto

트랜스포머 최신화, 쿠다툴킷 설치

pip install --upgrade transformers sudo apt install nvidia-cuda-toolkit

테스트 모델 서브

vllm serve cyankiwi/GLM-4.7-Flash-AWQ-4bit --gpu-memory-utilization 0.9 --host 0.0.0.0 --port 8000

리퀘스트 테스트

외부 접속 허용 포트 8000, 보안그룹 설정 필요
[VPC] 보안그룹 설정 가이드


또 다른 질문이 있으십니까? 문의 등록