저렴한 비용으로 GCP에서 터보 모드 시스템을 수행한 방법

2293 단어
클라우드 인스턴스는 컴퓨팅 성능이 필요하지만 기계를 구입하고 싶지 않고 물리적 기계를 유지 관리하는 유지 관리 부담을 처리하고 싶지 않거나 하드웨어를 구입할 가치가 있을 정도로 오래 필요하지 않은 경우에 매우 유용합니다. 아이디어는 기본적으로 필요한 시간 동안 원격 머신을 임대하고 사용한 만큼만 지불하는 것입니다.

이것은 매우 간단한 개념일 수 있지만 구현하기는 매우 어려울 수 있습니다. 클라우드 공급자가 지원하는 조합과 사용 사례는 문자 그대로 수백 또는 수천 가지가 있습니다. 이 문서에서 우리의 초점은 지금까지 가장 기본적인 사용 사례입니다. VM을 임대하고 사용하는 시간과 공간에 대해 비용을 지불합니다.

이 기사는 Google Cloud Platform의 단점에 초점을 맞추고 있으며 제 구체적인 프로젝트는 저렴한 비용으로 클라우드에서 GPU를 사용하는 NixOS VPS입니다.

전략



이제(2022년 6월 7일) 다음과 같이 영원히 무료인 일부 리소스가 있습니다.
  • 총 30GB의 균형 잡힌 스토리지
  • 한 달 내내 e2-micro(0.5VCPU에서 2VCPU로 버스트 가능) 인스턴스
  • 거의 모든 대륙에서 1GB의 이그레스 네트워크
  • Google 서비스용 무료 이그레스 네트워크

  • 아이디어는 Terraform을 사용하여 하나의 인스턴스를 TURBO MODE로 마이그레이션하여 강력한 작업을 수행하고 구성, 준비, 업로드, 유지 관리 등을 위해 e2-micro에서 동일한 시스템을 사용하는 것입니다.

    터보 인스턴스는 더 저렴한 스팟 인스턴스가 될 수 있습니다. 스팟 인스턴스는 언제든지 중단될 수 있기 때문에 더 저렴합니다.

    내가 선택한 OS는 코드 기반 구성 때문에 NixOS이며 설정 및 복제가 더 편리하다고 생각합니다. 원하는 경우 하나의 특정 배포에 대해 특정 사용자 지정을 원하는 만큼 동일한 설정을 복제할 수 있습니다.

    코드



    이 실험에서 사용한 코드는 내dotfiles repo에 저장되어 있습니다.

    이 실험에 사용하는 Terraform 파일은 infra/gcp.tf에 저장되어 있습니다. Terraform 상태는 Terraform 클라우드에 저장됩니다.

    GCP에서 실행하는 NixOS 머신은 nodes/vps에 정의되어 있습니다.

    파일nvidia.nix에 CUDA 관련 항목이 있습니다. Tesla K80은 최신 드라이버를 지원하지 않으므로 레거시 470을 사용해야 했습니다. 일부 Blender 렌더링으로 테스트했으며 CUDA와 잘 작동하고 필요한 항목에 올바르게 작동합니다.

    배포 방법



    일반 모드에서 인스턴스를 배포하려면 infra 폴더에서 다음 명령을 실행합니다.

    terraform apply
    


    터보 인스턴스로 마이그레이션하려면 infra 폴더에서 다음 명령을 실행합니다.

    terraform apply -var 'modo_turbo=true'
    


    마지막 생각들



    그것은 꽤 도전적인 프로젝트였고, 나는 이것에 훨씬 더 많은 돈을 쓸 것이라고 생각했습니다. 이 계층화 작업을 이틀 만에 했습니다. CUDA를 구성하는 방법을 파악하는 데 많은 시간을 들인 후 소프트웨어가 CUDA 드라이버 🤡를 찾을 수 있도록 하려면 hardware.opengl.enable를 활성화해야 한다는 것을 깨달았습니다.

    미래의 일



    작업이 끝나면 자동으로 터보 기계를 끄는 방법을 찾아야 합니다. systemd 단위로 약간의 마법을 할 수 있습니다. 이 게시물을 업데이트하지 않을 것입니다. 해당 프로젝트에 대해 변경될 코드는 VPS 폴더 또는 모든 컴퓨터에서 사용할 수 있는 공통 모듈에 있습니다.

    좋은 웹페이지 즐겨찾기