안녕하세요 한주현입니다.
오늘은 생물정보학에서 사용하는 적당한 규모의 서버에 대해 포스팅해보겠습니다.
목차 |
- 들어가며 - 생물정보학에서 사용하는 서버 - 클라우드 vs. 온프레미스 - 클라우드와 온프레미스 가격 비교 - 클라우드 컴퓨팅을 사용해야 할 때 - 온프레미스를 사용해야 할 때 - 생물정보학에서 사용하는 (적당한) 사양의 서버 추천 - 서버실과 서버의 생김새 - 마치며 |
들어가며
생물정보학이란 학문은 (대부분) 필연적으로 큰 사이즈의 데이터들을 다루게 되고,
큰 사이즈의 데이터들은 일반 PC나 노트북에서 분석하기가 어렵기 때문에
CPU의 성능이 좋고 RAM도 꽤나 큰 서버를 사용하게 됩니다.
생물정보학 연구를 하시는 여러분들이 굳이 하드웨어적인 부분을 아실 필요는 없지만,,
내가 분석하는 데이터가 어떻게 생긴 장치에서 분석되는지 알면 좋을것 같아 포스팅을 준비해봤습니다.
생물정보학에서 사용하는 서버 - 클라우드 vs. 온프레미스
요새 AWS, Google Cloud Platform, Microsoft Azure 와 같은 클라우드 서버들이 인기가 많습니다. 셋팅이 간편하고 필요할때 규모를 늘리는 스케일 업(scale up), 필요 없을 때 규모를 줄이는 스케일 다운(scale down)이 용이하기에 규모가 작은 스타트업 뿐만 아니라 대규모 서비스를 하는 대기업에서도 즐겨 사용하고 있습니다.
그런데 꾸준히 고사양의 분석 작업을 수행해야 할 때는 의외로 값이 싸다고 생각되었던 클라우드보다 전통적인 온프레미스(on-premise), 즉 서버실에 물리적으로 서버를 두어 분석을 하는것이 가격이 더 쌉니다 ^^;;;; 아래에서 구체적으로 말씀드려보겠습니다.
(전기는 공짜가 아니다...) (인건비를 생각하자...)(공간 임대료도 생각하자...)
클라우드와 온프레미스 가격 비교
DNA 데이터 분석을 진행한다고 가정해봅시다.
DNA 데이터 분석에는 CPU 32-스레드에 RAM 250GB 정도는 되어야 WES (엑솜 시퀀싱) 데이터를 순조롭게 처리하고, WGS (전장 유전체 시퀀싱)도 처리할 수 있습니다.
평균적인 depth 30x의 WGS 데이터의 분석을 진행한다고 하면, rawdata인 FASTQ 부터 변이 데이터인 VCF 까지 추출해내는데 약 24시간 정도의 시간이 소요됩니다.
1시간 | 24시간 (=1샘플 처리 시간) | |
AWS (32-스레드, 256GB 램) | $1.952 | $46.848 |
이를 비슷한 사양인 32-스레드, 256GB 램의 온프레미스 서버는 약 200~300만원 선에서 맞출 수 있습니다.
그렇다면 300만원에서 $46.848 (약 56,000원) 을 나누면 몇 개 샘플부터 온프레미스가 클라우드보다 더 이익이 나는지 손익 분기점이 나오고 대략 54개의 샘플입니다. 즉, 54개 이상의 샘플을 처리해야한다면 서버를 사는 것이 더 이득일 수 있습니다.
아마도 읽으시면서 전기비도, 관리인도, 공간비도 넣지 않고 너무나도 대략적으로 계산해버려서 엉터리 계산이라고 생각하시겠지만...
"클라우드라고 엄청싼건 아니다.", "많은 수의 데이터를 분석한다면 (오랫동안 분석해야 한다면) 온프레미스가 쌀 수 있다." 를 말씀드리고 싶었습니다.
제가 너무 클라우드 단점을 부각시킨것 같은데, 온프레미스에는 장점만 있는것은 아닙니다.
일단 서버를 두어야 할 공간, 관리 및 유지 보수 할 수 있는 인력, 전기비 및 냉방 시설 감당 등의 골치아픈 일들이 많습니다. 그리고 스케일업이 상당히 불편합니다. 서버를 주문해서 공장에서 배달해서 설치하고 이러면 몇 달은 훌쩍 갑니다. 반면에 클라우드는 클릭 몇 번으로 100%에 가까운 신뢰도로 서버가 몇 분만에 뚝딱 나오죠.
클라우드 컴퓨팅을 사용해야 할 때
몇 번 하지 않는 분석을 수행해야 할 때.
업로드에 부담없이 크기가 작은 데이터를 분석 할 때.
빠른시간안에 다량의 데이터를 처리하고자 할 때. 다량의 계산 노드를 생성하여 많은 병렬 처리로 단시간에 많은 데이터를 처리. (돈으로 시간을 사는 개념)
온프레미스를 사용해야 할 때
기업과 같이 지속적으로 꾸준히 분석을 수행해야 할 때.
스케일업이 필요없이 비슷한 양의 데이터를 지속적으로 분석 해야할 때.
참고로 아래 그림은 AWS 에서 계산노드에 대해 계산한 예시입니다.
AWS에서 제공하는 계산기 - CPU 수와 RAM을 넣으면 1시간 당 가격이 나옵니다.
생물정보학에서 사용하는 (적당한) 사양의 서버 추천
생물정보학 분석이라고 하면 상당히 다양한 분야의 분석들이 존재할 텐데 아래 말씀드릴 내용은 DNA sequencing rawdata인 FASTQ -> BAM -> VCF 를 순조롭게 처리할 수 있는 정도의 규모에 대해 말씀드리겠습니다.
일반적으로 PC의 사양이 CPU 4-스레드에 8GB의 램, 좀 더 좋다고 하면 8-스레드에 16GB의 램 정도일텐데,
생물정보학에서 사용하는 서버의 사양은 적어도 32-스레드, 256GB의 램을 사용합니다.
이정도의 스펙이면 DNA 변이 분석정도는 rawdata FASTQ 에서 부터 변이 VCF 까지 추출하는데 무리 없이 충분히 해낼 수 있습니다.
만약 간단히 RNA transcriptome을 kallisto 와 같은 툴을 써서 알려진 transcript 들에 mapping 하여 발현량을 보는 정도의 분석이라면, 16-thread, 64GB 정도여도 충분히 진행이 가능했습니다.
또는 발현량 데이터를 가지고 DEG 분석, plotting 정도면 일반 PC급의 사양 (4-스레드, 8GB) 에서 진행하셔도 무방합니다.
고급 사양으로 꾸려본다면 (자원이 충분하다면) 288-스레드 4TB 램의 무지막지한 사양의 서버도 꾸릴 수 있겠죠.
그렇지만 언제나 주머니의 사정이 있는 법. 소 잡는 칼로 닭을 잡는 것은 지나친 값을 지불하는 것이기에,
우리는 언제나 비용대비 효율성을 최대화 할 수 있는 방향으로 생각해봐야합니다.
즉, 우리가 분석할 데이터들을 적당한 선에서 잘 처리할 만큼의 능력을 갖춘 서버를 파악하고 전체 계산량이 어느정도인지 감을 잡는 것이 무엇보다 중요합니다.
서버실과 서버의 생김새
아래 사진은 서버실의 예시 사진인데요, 랙과 같이 생긴 것에 판때기 같은 것이 하나씩 꼽혀있습니다.
이 판때기들은 뭐냐면 서버입니다.
판때기를 자세히 살펴보면 아래와 같습니다. 이게 서버인데요, 고성능의 CPU와 RAM이 많이 들어있습니다.
이러한 서버들이 랙에 수십개씩 꼽혀있는 것이지요.
여기에 대용량의 스토리지가 마운트 되어있고, 네트워크로 연결되어 분석을 하는 사람들은 원격으로 ssh 연결을 통해 접속하고 분석을 진행하게 되는것 입니다.
마치며
생물정보학을 한다고 해도 굳이 하드웨어적인 부분에 대해서 아실 필요는 없지만,
그래도 내가 분석하고 있는 데이터가 어디서 어떻게 돌아가고 있는지 알아보는 시간이었습니다.
생물정보학 데이터 분석 서버를 구축하는데 있어서 궁금하신점이 있다고 하시면 댓글이나 메일로 남겨주시면 제가 아는 선에서 성의껏 답변드리겠습니다~
그럼 다음 포스팅에서 만나요~
'생물정보학' 카테고리의 다른 글
[생물정보학 특허] VCF 파일 활용 :: 유전자 서열 변이 정보를 활용한 혈연관계 판단 방법 :: 특허 등록 후기 (0) | 2022.05.22 |
---|---|
[번역서 출간] 생물정보학 알고리듬 3rd edition, 번역 후기 (9) | 2022.03.01 |
[생물정보학] vcf 파일 chromosome, position 별로 정렬 sorting 하기 (0) | 2020.03.08 |
댓글