페이스북 초당 5만건 메시지 처리 비결은?

일반입력 :2011/07/01 09:36    수정: 2011/07/01 16:06

페이스북이 분산처리 기술 하둡과 대용량 파일 저장기술 H베이스를 활용한 자사 시스템의 구축 노하우를 전격 공개했다. 지난달말 열린 '서울 데이터 엔지니어링 캠프(SDEC)'에 참석해 자사 클라우드 기반 메시징 환경과 이를 분석하는 데이터웨어하우스(DW)와 실시간 최적화 기술을 구현한 사례를 소개한 것이다.

페이스북에서 데이터인프라스트럭처 및 오픈소스 에반젤리스트로 활동중인 엔지니어 조나단 그레이는 최근 페이스북은 아파치 하둡 기술로 빅데이터를 처리하는 세계적 규모의 DW라며 일반 사용자들이 서비스를 이용하는 동안 실시간 분석이 요구돼 아파치 'H베이스(Hbase)'를 응용한 시스템을 만들어야 했다고 밝혔다.

페이스북은 하둡과 H베이스 등을 기반으로 데이터서버 '퓨마(Puma)', 메시징 플랫폼 '타이탄(Titan)', 분석애플리케이션 '오퍼레이셔널 데이터 스토어(ODS)', 3개 시스템을 만들었다.

그레이 에반젤리스트는 페이스북의 실시간 분석 시스템 환경에서 하둡과 H베이스에 대한 투자는 수많은 개발자들이 대규모 팀을 짜서 오픈소스 개발자들과 긴밀히 협력해 수행한 것이었다며 아파치 하둡에 대한 기술적 도전과제나 운영경험에 대한 상세 소개는 'SIGMOD 2011'에서도 다뤄졌다고 덧붙였다. SIGMOD는 글로벌 DB학술대회 '데이터관리에 대한 특별관심그룹'의 약자로 지난달 그리스 아테네서 열렸다.

■H베이스=하둡 분산 환경을 위한 컬럼DB, 마이SQL의 대안

그에 따르면 H베이스는 빅데이터를 실시간으로 처리하기 위한 하둡 분산 환경에서 돌아가는 컬럼 방식 데이터베이스(DB) 기술이다. 구글 정형 데이터용 분산 스토리지 시스템 '빅테이블'에서 파생됐다.

그레이 에반젤리스트는 구글 파일시스템이 빅테이블 분산데이터 스토리지를 위한 수단이듯, H베이스는 하둡 위에 빅테이블같은 기능을 제공하는 것이라며 수십억행, 수백만열짜리 규모의 '매우 커다란 테이블'을 평범한 하드웨어로 조립한 클러스터 서버에서 운영케 하는 것이 목표라고 설명했다.

이날 그레이 에반젤리스트는 리눅스 운영체제(OS)와 아파치 웹서버, 마이SQL DB와 PHP언어로 구성됐던 기존 페이스북 시스템을 개선해낸 사례와 기술을 소개했다.

그는 마이SQL이 안정적이긴 했지만 테이블 크기가 2테라바이트(TB)로 제한돼 있었고, 데이터 구조가 유연하지 못했으며, 본질적으로 분산 환경에 최적화되지 않은 게 문제였다며 당시 오프라인 DW 시스템에만 부분적으로 쓰던 하둡은 확장성이 컸지만 '랜덤 쓰기'를 못하고 '랜덤 읽기' 성능도 나빴기에 페이스북을 위한 솔루션이 필요했다고 말했다.

페이스북은 현재 엄밀한 DB 트랜잭션의 요건인 '원자성, 일관성, 독립성, 지속성(ACID)'이 필요한 경우에만 마이SQL을 쓴다. 향후 H베이스 환경에 알맞게 변형한 마이SQL 기술을 만드는 방향으로 연구중이다.

■페이스북 실시간 ETL 시스템 '퓨마'

퓨마는 데이터 추출, 변환, 기록(ETL) 기능을 담당하는 하둡 기반 실시간 데이터 처리 시스템으로 페이스북이 자사 용도에 맞게 자체 개발한 것이다. 기존 하둡 기반 ETL 환경에서는 웹 환경에서 발생한 변화를 데이터베이스(DB)에 반영하기까지 걸리는 시간이 지나치게 길었기 때문에 직접 만들어 버린 것이다.

그레이 에반젤리스트는 퓨마는 실시간 ETL 시스템으로 웹단에서 하둡 파일 시스템(HDFS)으로 전달되는 변화를 즉시 감지해 H베이스에 기록하고 다시 웹에 표출되기까지 10~30초 가량 걸리도록 했다며 마이SQL(MySQL)을 썼던 기존 방식이라면 짧게 15분, 길면 24시간까지 지연되는 과정이라고 밝혔다.

그가 설명한 퓨마의 작동 원리는 일종의 '실시간 데이터 파이프라인' 설계구조로 요약된다. 싱크 기술과 'p테일(pTail)'이라는 HDFS 데이터 기록 시스템을 통해 전체 데이터 저장, 불러내기에 드는 지연 시간을 상당히 줄일 수 있었다는 설명이다. p테일이 지연 시간을 줄이는 요령은 여러 곳에 분산된 로그 파일에서 바뀐 데이터만 찾아 읽어내는 방식이다.

■통합 메시징 플랫폼 '타이탄'

그는 앞서 페이스북 메시징 시스템 타이탄 프로젝트를 직접 만들기까지의 과정도 소개했다. 타이탄은 페이스북 안에서 일반 메시지, 인스턴트메시징(IM) 문자, 채팅 대화 내용, 메일, 휴대폰 단문메시지(SMS)를 통합한 메시징 플랫폼이다.

그레이 에반젤리스트는 타이탄을 만드는데 페이스북 엔지니어 15명이 달려들어 1년 이상 걸렸고 투입된 인프라 요소 기술도 하둡, H베이스뿐 아니라 '헤이스택(Haystack)', '주키퍼(Zookeeper)', '피그(Pig)' 등 20가지가 넘는다고 전했다.

하둡의 서브프로젝트 중 하나인 ‘피그’는 야후 랩이 대규모 데이터세트 분석을 위해 만든 관계형 대수 쿼리 언어 인터페이스다. 주키퍼는 분산 환경에서 그룹화된 서버(클러스터)의 성능과 작업을 관리하는 서비스 기술이고 헤이스택은 페이스북이 만든 대용량 사진 저장 시스템이다.

타이탄이 처리하는 데이터 규모는 예를 들어 IM 메시지가 초당 5만건, 일반 쪽지는 6천개 등에 이른다. 전체 처리량은 달마다 300테라바이트(TB)씩 늘고 있어 매일 발생하는 메시지 데이터를 감당하려면 높은 기록, 검색 성능이 요구된다.

그레이 에반젤리스트는 표준화되지 않은 스키마로 저장되는 자료를 모두 검색할 수 있도록 인덱스를 생성하고 높은 처리 성능을 충족해야 했다며 이를 위한 대규모 클러스터 시스템과 다중 (클러스터) 셀이 필요했다고 덧붙였다.

■'페이스북 ODS'는 실시간 데이터 저장 분석 플랫폼

일반적인 ODS는 온라인 운영 시스템에서 중앙집중식으로 데이터를 기록해 보관하는 저장소를 가리킨다. 실시간 최신화 기능은 보통 요구되지 않는다. 그러나 페이스북 ODS는 초단위로 TB단위 정보가 발생하기 때문에 일정한 단위 시간별 보관 작업을 할 수 없다. 또한 서비스 운영에 필요한 분석 작업도 실시간으로 수행해야 했다. 페이스북 전체 시스템을 빅데이터 DW라고 표현한 이유다.

페이스북ODS는 이와 함께 데이터 쓰기(Write) 작업에 뛰어난 성능을 발휘한다고 알려진 H베이스를 도입, 미세한 수준까지 시스템을 안정시킬 수 있도록 변경점을 실시간으로 한데 모아 거두는 기능 '리얼타임 애그리게이션'을 지원한다고 덧붙였다.

그레이 에반젤리스트는 이는 H베이스의 데이터 구조에 대응하며 페이스북의 순방문자를 추적해 분석하고 발생하는 정보의 URL과 도메인에 대한 심층 분석을 얻고 사용자 클릭, 좋아요(Like), 공유, 코멘트, 감성 정보를 추적할 수 있게 해준다며 매일 수십억개 URL에서 들어오는 정보를 분석하는데 처리량은 초단위로 늘고 있다고 말했다.

관련기사

하둡을 도입한 환경에서 데이터가 오가는데 걸리는 시간과 자원 효율을 관찰하는 클러스터 모니터링 시스템을 포함한다. 중앙처리장치(CPU), 메모리 데이터 입출력(IO), 네트워크 점유량 등 '시스템메트릭'과 웹, DB, 캐시 등 '애플리케이션메트릭'과 전체 시스템 사용량 등 '페이스북메트릭'을 측정한다. 페이스북 클러스터 셀은 서버랙 5개 이상으로 구성되며 랙에는 서버가 20대씩 들어간다.

그레이 에반젤리스트는 수십억개 관찰지점에 대한 각 측정값을 수백만종의 시계열 방식으로 매시간별로 수집, 통합해 그래프화한다며 운영자 입장에서 데이터량 증가 양상에 대응할 수 있도록 복잡한 정보를 한눈에 보여준다고 설명했다.