유전자정보분석

Genomics & Cloud (3) - Amazon 클라우드 서비스 둘러보기

hongiiv 2010. 12. 14. 21:00
반응형
Amazon의 web services 중 Galaxy를 사용하기 위해 필요한 서비스는 Compute와 Storage 서비스로 Compute 서비스는 Amazon Elastic Compute Cloud (EC2)와 Amazon Elastic MapReduce가 존재하며, Storage 서비스는
Amazon Simple Storage Service (S3)와 Amazon Elastic Block Store (EBS)가 존재한다. 간단히 Compute 서비스의 EC2와 Storage 서비스의 EBS에 대해서 살펴본 후 다음편에서 실제 Galaxy를 아마존의 클라우드 서비스에 연결하도록 하겠다.

Amazon Elastic Compute Cloud (EC2)

Amazon Instance
EC2는 Amazon의 핵심 클라우드 서비스로서 가상화 기술을 기반으로 다양한 종류의 컴퓨팅 리소스를 제공하고 있다. 한마디로 다양한 스펙의 하드웨어를 제공하는데 이를 Instance (인스턴스)라고 부르며 기본 인스턴스 (Standard Instances)로 Small/Large/Extra large Instance가 존재한다. 이 중에서 Extra large Instance는 15GB  메모리, 4개의 가상 코어와 함께 1,690GB의 스토리지를 제공하는 64-bit 플랫폼을 제공한다. 각각의 인스턴스는 Amazon의 데이터센터가 위치하는 지역별로 제공되는 인스턴스도 있고, 제공되지 않는 인스턴스도 있다. 이 외에도 최대 68GB의 높은 메모리를 제공하는 High-Memory 인스턴스/ 높은 CPU를 제공하는 High-CPU Instances 및 GPU를 제공하는 인스턴스등 자신이 원하는 작업에 맞는 인스턴스를 선택해서 사용이 가능하다. Galaxy의 경우 large (m1.large) 인스턴스 3개를 클러스터로 묶어서 사용할 것으로, 각각의 인스턴스는 그 하드웨어가 선택되었기 때문에 이제는 인스턴스에 올릴 OS를 선택할 것이다.



Amazon AMI (Amazon Machine Images)
Amazon에서는 OS와 그에 따른 각종 설정을 묶어서 하나의 Images로 제공하는데 이를 AMI (Amazon Machine Images)라고 부른다. 즉 Amazon의 클라우드 컴퓨팅 서비스인 EC2는 Instance안에 AMI를 올려서 사용하게 되는것이다. 이러한 AMI는 Amazon에서 기본으로 제공하는 것외에도 사용이 가능한데, Galaxy 또한 Galaxy 서비스 (Bio관련 소프트웨어+각종 스크립트+SGE (Sun Grid Engine) 스케줄러+Amazon의 EC2관리프로그램 등등) 를 미리 설치해 놓은 AMI를 제공하기 때문에 간단히 Instance에 Galaxy의 Cloud (GC) AMI를 얻기만 하면 간단히 Galaxy를 Amazon 클라우드에서 사용이 가능하게 된다.

아래 그림은 최종적으로 Galaxy Cloud (GC) AMI를 올린 3개의 인스턴스가 실행되고 있는 AWS Management Console의 모습이다. AWS Management Console은 Amazon의 서비스들을 관리하는 웹 인터페이스로 각종 설정이 가능하다.


Amazon Elastic Block Store (EBS)

인스턴스에 따라서 로컬 하드디스크를 제공하지만, 제공되는 디스크 용량이 부족한 경우가 발생할 수 있다. 이러한 경우 Amazon의 스토리지 서비스를 통해 원하는 용량 만큼 인스턴스에 추가하여 사용할 수 있다. 다음은 Galaxy를 Amazon 클라우드에 설치한 경우 사용되는 EBS 스토리지들을 보여주고 있다.


EC2 서비스에서 원하는 OS에 대한 이미지를 제공하는 것과 마찬가지로 스토리지도 비어있는 깡통만 제공하는 것이 아니라 미리 공개되어 있는 데이터를 하나의 이미지 형태로 제공하는데 이를 Public Data Sets on AWS 페이지를 통해서 확인할 수 있다. 이렇게 함으로써 공개된 데이터를 또다시 다운로드하는 번거로움 없이 바로 Amazon 서비스와 연동하여 사용이 가능하게 된다.

Public Data Sets on AWS - for Biology
공개된 데이터셋들 중에서 Biology에 관련한 데이터는 1000 Genomes Project를 비롯한 Ensembl 데이터 등 다양한 종류의 데이터셋들을 제공하고 있다. 이러한 데이터셋은 EBS와 S3의 두 가지 중 하나로 제공된다.

아래는 일루미나의 CEO인 Jay Flatley의 일루미나의 Genome Analyzer를 사용하여 Whole Genome Sequencing을 수행한 데이터를 EBS를 통해 제공하는 것으로 총 용량은 350GB이다. 이 데이터를 사용하기 위해서는 별도의 다운로드 과정없이 EC2에 바로 해당 EBS를 붙여서 분석이 가능하게 된다. Details 부분을 보면 Snapshot ID가 있는데, 이 ID를 EBS에 넣어 주면 바로 사용이 가능하게 된다.


해당 EBS중 Linux 버전을 찾아서 Create Volume 버튼을 클릭한 후 인스턴스에 추가해 주면 별도의 다운로드 과정없이 해당 인스턴스에 1초의 망설임없이 마운트하여 분석이 가능하게 된다. 정말 멋지지 않은가?


인스턴스가 존재하는 영역에 볼륨을 생성한다

EBS의 Volumes을 가보면 350GB의 일루미나 Whole Genome Sequence 데이터가 생성된 것을 확인할 수 있다. 이제 인스턴스에 SSH를 통해 로그인하여 해당 볼륨의 마운트하여 사용하면 된다.

4번 Zone 부분에서 인스턴스가 있는 영역과 볼륨이 생성된 영역을 일치시켜줘야 한다

AWS Management Console에서 350GB의 볼륨이 생성된것을 마우스 오른쪽 버튼을 클릭하여 Attach Volume을 선택하여 자신이 원하는 인스턴스의 디바이스 (/dev/sdf)에 넣어준다.

원하는 인스턴스에 디바이스를 생성한다

이제 자신의 인스턴스에 SSH를 통해 로그인하여 mount 명령 mount /dev/sdf /Illumina를 통해 Illumina 디렉토리에 마운트한다.

Illumina 폴더에 마운트된 모습

마운트된 Alignments 디렉토리에는 일루미나 CEO의 Whole Genome Sequencing의 FASTQ 포맷의 파일들이 들어있다. 이제 자신이 원하는 프로그램을 통해 alignment를 수행하고 SNP을 발굴하는 작업을 진행하면 되겠다. 뭐 다른 분석을 수행하든...


일루미나 CEO의 FASTQ 포맷의 whole genome data

지금까지 간단하게나마 아마존의 클라우드 서비스인 EC2와 스토리지 서비스인 EBS가 어떠한 역활을 하는지 잠깐 살펴보았다. 특히 EBS 부분은 공개된 데이터를 손쉽게 EC2의 인스턴스를 통해 가져오는 방법에 대해서 살펴보았다. 실제 인스턴스 부분은 galaxy 인스턴스를 설치하면서 살펴 볼것이기 때문에 자세한 언급은 하지 않았으며, 350GB의 데이터를 수십대의 컴퓨터를 가지고 언제/어디서든 분석이 가능한것이 바로 Amazon의 EC2 서비스이다.

예전같았으면, 수대의 컴퓨터를 구매하고, OS를 설치하고, 클러스터링하기 위한 셋팅 후 다시 FTP를 통해서 해당 공개 데이터를 다운로드하는 수고를 해야만 가능했던 일을 단지 몇 번의 클릭으로 자신이 원하는 시간에 원하는 만큼의 컴퓨팅 리소스를 언제 어디서든 활용 가능하게 되었다. 만약 이 글을 당신의 보스가 보게 된다면, 이제 더 이상 컴퓨터가 느려요. 네트워크가 느려서 다운로드가 자꾸 끊겨요. IT 관리자가 방화벽을 막아서 집에서는 접속이 안되요. 지금 IT 관리자가 휴가중이라 전 설정을 못하는데요. 이런식의 변명?들은 할 수 없게 되었다. -.-;;

다음 시간에는 Galaxy Cloud 인스턴스를 Amazon에서 구성해보도록 하겠다. 그리고 덧붙여 Elastic MapReduce와 S3서비스에 대해서도 다음 기회에 언급하도록 하겠다.


반응형