'어플리케이션 서버'에 해당되는 글 1건

  1. 2007.05.31 거대 용량 아키덱처 설계 시의 데이터베이스의 역할 (6)
KAISTIZEN님의 블로그에 재미있는 글이 올라와서 해당 글에 대해서 제 개인적인 의견을 몇 자 적어봅니다.

대용량도 아닌 거대 용량 아키텍처

저의 경우 말씀하신 사양 정도의 크기는 아니더라도 어느 정도 규모의 시스템을 SE(System Engineer)로서 프로젝트 기간 동안 설계 및 운영을 해본 적이 있습니다. 제가 설계를 담당했던 영역은 기간계 시스템이 아닌 정보계 시스템이므로 상황은 많이 다를 것으로 판단되지만 그래도 제 짧은 지식을 동원해서 이야기 해보자고 합니다.

말씀하신 내용이 맞다면 이베이의 설계자는 MVC 모델에 철저하게 입각해서 설계한 것으로 생각됩니다. 다시 말해 Logic 부분은 절대로 데이터 영역에서 처리하지 않는다는 것이죠. 전 개인적으로 이 대목이 중요하다고 생각하는데, 그렇게 생각하는 이유는 회사의 사정이나 기타 이유로 인해 데이터베이스를 전환할 경우 데이터 영역을 단순 마이그레이션만으로도 전환할 수 있는 장점이 존재하기 때문입니다.

일반적으로 웹사이트는 작은 규모로 시작하여 큰 규모로 확대되는 경우가 많습니다. 사용자가 증가해서 일정 규모를 넘어서게 되면 갑자기 데이터베이스 용량이 폭주해서 엄청난 규모의 데이터를 처리해야 하는데, 이럴 경우 대용량 기반의 데이터베이스 - 혹은 분산파일 시스템 - 설계와 전환이 필요하게 됩니다. 하지만, 초기 단계에서 데이터베이스에 핵심적인 코딩을 해놓은 경우라면 데이터베이스 전환 시 코드 컨버젼 등으로 인해 상당한 어려움이 발생할 가능성이 있습니다. 초기 설계가 잘못되어 있는 경우에는 심지어 새롭게 시스템을 구축할 수도 있기에 초기 설계는 매우 중요하다고 생각합니다.

이러한 문제가 발생하는 배경에는 미들웨어의 경우 초기 개발 시부터 확장성을 고려해서 설계할 경우, 추가적인 어플리케이션 서버 증설 등을 통해 병렬처리를 할 수 있지만, 데이터베이스의 경우에는 현재의 기술로는 복수의 서버 증설 등을 통해 데이터베이스를 운영하기 어렵기 때문입니다. (최근 일부 데이터베이스의 경우 여러 대의 서버를 이용해서 하나의 데이터베이스처럼 운영할 수 있다고 하는데 대규모 시스템의 경우 검증되지 않은 최신의 기술을 함부로 적용하는 것은 매우 위험하다고 생각합니다. 게다가 아직까지 적용된 사이트가 적어서 실제적으로 어느 정도까지 지원이 가능할지에 대해 확신이 잘 서지 않는 것 같습니다.)

따라서, 추가적인 증설이 가능한 미들웨어나 어플리케이션 서버에 로직을 설계하고 용량에 제한이 있는 데이터베이스 서버는 최대한 부하가 걸리지 않는 방식으로 처리를 해야만 대용량 처리가 가능하게 됩니다. 이렇게 설계된 경우 데이터베이스는 단순한 파일저장소 정도의 역할만 수행하게 되고, 거의 대부분의 처리는 어플리케이션 서버에서 수행되어 데이터베이스의 부하가 상대적으로 적어지게 되며 개별 데이터베이스가 가지고 있는 기본기능 이외에 기능은 거의 사용되지 않는 방식으로 운영되게 됩니다.

보통 정보계에서 Sorting 기술을 사용하는 것은 병렬처리를 보다 효율적으로 진행하기 위한 방안인데, 대규모 데이터를 정렬시켜 적당한 중간 단위로 분할하는 것이 병렬처리에는 효과적이기에 이러한 작업이 필수적으로 일어날 가능성이 높습니다. 기간계는 정보계와는 다른 방식으로 설계와 운영되지만 아마도 대용량 데이터 처리를 위한 방안으로 병렬처리를 선택한 경우 데이터 Sorting을 통해 분산작업을 처리하지 않았나 추정해봅니다.

추신: 제가 이베이 정도의 시스템 사이징(System Sizing)을 해 본 적이 없다는 점을 미리 밝혀둡니다. 제가 말씀드린 내용이 틀릴 수도 있으므로 잘못된 내용에 대해서는 코멘트나 트랙백을 달아주시면 감사하겠습니다.

신고

댓글을 달아 주세요

  1. Favicon of http://kaistizen.net BlogIcon 최재훈  수정/삭제  댓글쓰기

    답글 써주셔서 감사합니다. 덕분에 저도 생각을 다듬어 볼 기회가 생겼습니다. 미흡하지만 글을 하나 더 썼습니다. (트랙백이 깨져서 링크 답니다. ^^)

    http://kaistizen.net/EE/index.php/weblog/comments/design_issues_of_super_big_size_system/

    2007.05.31 20:31 신고
    • Favicon of http://mbastory.tistory.com BlogIcon 5throck  수정/삭제

      제 글에 오타가 있어서 댓글에 수정을 부탁드렸습니다. 그런데, 트랙백이 왜 깨졌는지 잘 모르겠습니다... ㅠㅠ

      시간되시면 다시 한번 걸어주시면 감사하겠습니다.

      2007.06.01 08:14 신고
  2. Favicon of http://kldp.org/~kss BlogIcon kss  수정/삭제  댓글쓰기

    http://kldp.org/node/82799 에 관련해서 몇 자 적었는데 저희는 트랙백을 지원하지 않으므로 수동으로 남깁니다... :-)

    2007.05.31 21:19 신고
    • Favicon of http://mbastory.tistory.com BlogIcon 5throck  수정/삭제

      글을 읽어보니 운영상의 고민이 많으신 것 같습니다. 해결하실 수 있는 좋은 방안을 찾으시면 추후라도 저에게 알려주시면 감사하겠습니다... ^^

      추신: 권순선님의 글을 읽다가 갑자기 생각이 난 것인데, 사이트를 운영하시면서 튜닝을 하신 결과를 공개하시면 어떨까 생각을 해 봅니다. 일반적으로 기업은 튜닝결과를 공개하지 않기 때문에 튜닝에 대해서 많은 분들이 배우기가 어려운 것 같습니다. 어떤 문제점이 있을 때 그 문제를 해결하신 결과를 같이 공유를 한다면 오픈소스로 사이트를 운영하시고 있는 분들에게 많은 도움이 될 것이라고 생각합니다.

      2007.06.01 08:29 신고
  3. Favicon of http://credit.cashdata.com BlogIcon 현대카드 영업사원  수정/삭제  댓글쓰기

    대용량 데이타 관리는 구글을 따라갈 수 없다고 생각합니다.
    검색엔진 베이스로 쌓아온 그들의 데이타 관리 능력을 국내 업체는 따라잡을 수 있을까요 ?

    2007.10.29 13:51 신고
    • Favicon of http://mbastory.tistory.com BlogIcon 5throck  수정/삭제

      제 생각엔 꼭 불가능하지는 않을 것이라고 생각합니다. 물론, 쉽지는 않겠지만 한국 사람들만큼 위기상황에 대해 문제를 해결하는 능력이 뛰어난 사람들이 없으니까요... ^^

      2007.10.29 14:13 신고

카테고리

나누어보기 (617)
스타트업 & 벤처 (15)
컨설팅이야기 (239)
MBA이야기 (39)
CC Korea 이야기 (36)
문화 이야기 (92)
세상사는 이야기 (188)
IT 이야기 (8)
Statistics Graph
BLOG main image
세상을 보는 또 다른 시선
때로는 '사실'보다 '희망'이 더 절박할 때가 있습니다. 적절한 희망이야말로 사람을 움직이는 원동력이 되고, 사람이 움직이면 희망은 곧 사실로 바뀌게 됩니다.
by 5throck

세상을 보는 또 다른 시선

5throck's Blog is powered by Tattertools / Supported by TNM Media
Copyright by 5throck [ http://mbastory.tistory.com/ ]. All rights reserved.

Tattertools TNM Media DesignMyself!