포럼

살펴보면 살펴볼 수록, AWS(Amazon Web Services)는 재미있는 서비스인 것 같습니다.

 

특히 올해 3/4분기(빠르면 8월경)에 한국에도 리전을 추가한다더군요. 4월에는 대규모 서밋도 한다던데, 잠재 유저로써 한번 가보고 싶을 정도입니다. (아무나 갈 순 없겠죠?)

 

여하튼 최근 며칠동안 AWS에 대한 여러 인터뷰나 자료들을 서칭하면서 생각한 것들입니다.

 

 

1. 글로벌 타겟 서비스로는 무조건 AWS가 유리

 

아무래도 국내 IDC들은 해외 트래픽 자체에 대해 상한선을 걸기도 하고, 높은 수준의 과금을 거는 경우도 많기때문에 비용면에서도 그렇고 레이턴시 면에서도 불리하다는건 당연합니다.

 

이런 단점을 cloudflare같은 매력적인 CDN을 사용해 보완할 수도 있겠지만 cloudflare를 사용하는 국내 서비스들의 대부분이 서울이 아닌 홍콩이나 도쿄엣지로 연결시키는걸 보면 이건 좀 아니다 싶을 때가 많습니다.

 

따라서 타겟이 글로벌이라면 유료이긴 해도 저렴한 비용으로 글로벌 CDN을 구축할 수 있는 AWS가 굉장히 유리할 것 같습니다.

 

 

2. 오토 스케일링을 통한 확장성은 매력적

 

클라우드 자체가 하드웨어를 요구되는 수준 만큼만 리소스를 투입할 수 있다는 데에 장점이 있고, 트래픽 변동폭이 큰 서비스에는 특히 이런 부분이 매력적인 것 같습니다.

 

예를 들어 Lezhin의 사례처럼 특정 시간대에만 방문자가 폭증하는 서비스는 일반적인 하드웨어 자원만 갖춘 뒤에 피크 타임때만 클라우드로 추가 자원을 빠르게 투입함으로써 비용 절감과 사용자 만족 동시에 해결이 가능하겠죠.

 

다만 이 경우 스냅샷과 로드밸런서 사용이 필수적이고, VM(인스턴스 서버)을 추가하고 다시 축소시키는 과정에서 CPU 로드나 RAM 점유율이 아니라 쓰레드 유닛 수 등 좀 더 정교한 컨트롤을 적용해야 효과적으로 자원을 배치하고 관리하는 것이 가능할 것 같습니다.

 

특히 몇 분 간격으로 vm들의 health를 파악하고 적절하게 분산하도록 도와주는 구성체계가 완성되어 있는 것이 중요하겠죠.

 

(개인적으론 스케일링 업을 VM을 추가하는게 아니라, VM의 자원을 늘려주면 더 좋지 않나 싶은데 기술적으로 불가능한지 잘 모르겠습니다. 예를 들어 1CORE를 사용하다 부하가 발생하면 2CORE, 4CORE로 VM의 성능을 올리면 좋을탠데 말이에요.)

 

 

 

3. AWS의 다양한 요금 옵션 계약은 만족스러운 부분

 

AWS는 크게 세 종류의 과금 체계가 있는데 실시간으로 하드웨어 자원을 구입해 사용할 수 있는 온 디멘드 인스턴스, 약정 할인 프로그램인 예약 인스턴스, 아마존이 가지고 있는 잉여 자원을 입찰해 사용할 수 있는 스팟 인스턴스가 그것입니다.

 

특히 온 디멘드 인스턴스에 비하면 국내 클라우드에 비해 AWS가 비용적인 면에서 매력적이지는 않다고 판단합니다.

 

다만 상시로 구동시켜야 하는 최소한의 자원은 예약 인스턴스를 계약해서 적용하고, 로드밸런서와 오토 스케일링을 결합해 필요한 만큼의 추가 자원을 스팟 인스턴스를 활용하면 가격적인 면에서 매력이 있지 않나 싶습니다.

 

예를 들어, 1vCPU와 1GiB의 메모리를 제공하는 아마존 t2.micro 인스턴스의 경우 도쿄 리전을 기준으로 시간당 $0.02, 월간 14.4USD가 필요합니다. 하지만 1년 약정의 예약 인스턴스를 사용하면 선결제 금액 없이 시간당 $0.015, 월간 10.95USD로 25% 절감한 금액에 동일한 자원을 예약할 수 있습니다. 여기에 소정의 금액을 선결제하거나, 약정을 3년으로 늘리면 할인 폭은 더 커집니다.

 

가장 매력있는 스팟 인스턴스를 사용하면 같은 사양의 비용은 시간당 $0.003, 월간 2.16USD의 굉장히 합리적인 금액이 계산됩니다. 물론 스팟 인스턴스는 아마존이 보유하고 있는 리소스의 상황에 따라 금액이 달라지고, 잔여 자원이 없으면 높은 시간당 금액을 '입찰'해도 인스턴스를 배분받지 못할 수도 있다고 합니다.

 

하지만 아무리 높은 금액을 입찰해도 스팟 인스턴스를 받지 못하는 상황이 오더라도, 이 땐 온 디멘드 인스턴스를 활용하는 식으로 서비스 중단이나 심각한 과부하라는 최악의 시나리오는 피할 수 있지 않나 싶습니다.

 

 

4. AWS의 지나치게 복잡한 과금 체계는 난감

 

지금까지 AWS의 여러 장점들을 거론했다면, 지금부터는 단점들 위주로 느낀 바를 적겠습니다.

 

가장 큰 문제는 지나칠 정도로 복잡한 과금 체계입니다. AWS는 CPU와 RAM자원인 '인스턴스'와 인스턴스가 기본 저장 공간을 가지고 있지 않을 경우 스토리지(SSD or HDD)인 EBS 또는 S3를 사용해야 합니다.

 

여기에 AWS의 강점인 오토 스케일링과 CDN을 활용하기 위해 필요한 몇 가지의 부가 서비스 요금까지 계산하면 IDC나 현재의 클라우드 비용에 비해 AWS 계약시 어느 정도의 예산이 필요한지에 대한 시뮬레이션이 참 복잡합니다.

 

AWS에서도 여러가지 요금 계산기나 요금 절감 페이지를 안내하고 있기는 하지만, 서버 자원과 대역폭만 결정해서 계산하면 되는 국내 클라우드나 IDC 입주에 비해서 신경써야 할 점이 늘어난 것은 사실입니다.

 

 

5-1. 클라우드는 정말 IDC에 비해 저렴할까?

 

많은 스타트업이나 소규모 퍼블리셔의 공통된 고민은 비용 절감입니다. 클라우드가 하드웨어를 구성할 필요가 없으니 초기 비용이 절감된다는 사실 자체는 인지하고 있지만, 우리나라에서도 IDC에 입주시킨 물리 서버를 사용하더라도 '영구 임대형'이나 '분납 구매형'을 활용하면 엔트리급 서버 정도는 선납금 없이도 충분히 구성이 가능합니다.

 

결국 초기 비용이 아닌 지속적으로 발생할 유지비용이 관건입니다. 여기서 간단한 시뮬레이션을 해보겠습니다.

 

일 평균 방문자수 4천명, 일 평균 PV 15만 건의 사진 커뮤니티가 있다고 가정합시다. 스토리지는 OS레벨과 HTML 등 공통 파일에서 30GB, DB에서 10GB, 일반 첨부파일들에서 200GB를 사용한다고 하겠습니다. 매일 평균 25GB의 트래픽이 발생한다고 보겠습니다.

 

위에서 언급한 수준의 서비스를 처리하려면 제온 1230수준의 8CORE CPU, 8GB 정도의 램을 갖춘 하나의 블레이드 서버가 적당합니다. 물론 최적화에 따라 차이가 있습니다. cafe24에서 비슷한 수준의 스펙을 가진 서버호스팅을 보니, 월 8만 5천원(VAT 별도)의 요금이 발생합니다. 트래픽은 10Mbps급의 밴드 계약이므로, 25GB/day의 전송량은 무난히 처리하고, 500GB의 듀얼 HDD가 적용되어 백업까지 여유롭습니다.

 

클라우드를 사용해보겠습니다. 클라우드의 장점은 서버 분산이 용이하다는 점이니 WEB와 DB를 분리해보죠. 국내 호스팅업체 중 하나인 cloudv의 2core, 2GB 메모리 상품 두 개를 계약한 다음, DB용 서버에 메모리를 2GB 추가하겠습니다. 7.6만원 + 1만원이네요. 100GB의 기본 스토리지를 제공하므로 추가 스토리지 100GB를 추가로 계약하면 2만원. 합쳐서 9만 6천원의 월간 비용이 발생합니다. 트래픽은 월간 국내 700GB, 해외 30GB를 기본으로 제공합니다.

 

마지막으로 AWS입니다. 지금부터 가격은 모두 도쿄 리전 기준입니다. 1코어와 2GB의 메모리를 제공하는 WEB용 상품 하나를 1년 계약으로 결제하면 매월 10.95USD의 비용입니다. 이 정도 성능으로는 부족하겠죠. 1코어의 CPU와 1GB의 메모리를 제공하는 t1 인스턴스를 '혼잡 시간'에 매일 6시간씩 추가한다고 가정하고, '최고 혼잡 시간'에는 t1 인스턴스를 2개씩 6시간 추가한다고 가정하겠습니다. 요금은 당연히 저렴한 스팟 인스턴스입니다. 시간당 0.0031USD, 1.674USD군요. 웹 서버용 자원 비용은 총 13USD 내외입니다. (스팟 인스턴스는 상황에 따라 가격에 차이가 있어 약간 반올림하였습니다) 

 

다음은 스토리지 공간입니다. AWS의 t 시리즈 인스턴스는 기본 용량을 제공하지 않으므로 EBS라는 별도의 블록을 구입해 마운트시켜야 합니다. SSD는 GB당 0.12, HDD는 GB당 0.08로 계산되네요. SSD는 3.6USD, HDD는 16USD입니다.

 

마지막으로 DB입니다. 2개의 CORE와 4GB의 메모리를 지원하는 상품을 1년 계약하면 $340의 선납 비용, 시간당 $0.038이 적용됩니다. 월간 27.36USD + 선납 금액의 월 평균 환산액을 추가하면 55.69USD입니다. 여기에 10GB의 DB 스토리지 사용료 $1.38을 더하면 총액 57.07 USD입니다.

 

여기까지의 비용을 합치면 89.67USD입니다. 이정도면 괜찮다고 생각할 수도 있지만, 문제는 트래픽 요금입니다. 적어도 수백기가에서 많게는 TB단위까지 '무료 전송량'을 제공하는 국내 클라우드와는 달리, AWS는 무료 전송량이 없습니다. 초과분은 10TB/월까지 GB당 0.14USD가 적용됩니다. 일 25GB는 월간 750GB, 전송 요금은 105USD입니다.

 

이렇게 계산해보니 총 194.67USD가 적용됩니다. 기준환율 1,106.8/USD를 적용하면 21만 5460원입니다. 여기에 CDN 적용을 위한 비용, 로드밸런서 사용 비용, EBS(스토리지)의 속도 향상을 위한 비용 등..을 더해야겠죠. 매력있는 금액은 아닙니다.

 

 

5-2. 클라우드는 단순한 호스팅이 아니다

 

'간략한 시뮬레이션' 이라고 전재한 것처럼, 위 자료는 아주 단편적인 사례를 기준으로 시뮬레이션된 것이므로 설득력있는 근거는 아닙니다.

 

그럼에도 불구하고 알 수 있었던 것은, 물리 서버 자원을 벗어날 수록(IDC -> 클라우드), 한국 클라우드가 아닌 AWS를 선택할 수록 요금이 절약되는 것이 아니라 오히려 더 많은 요금이 발생한다는 것입니다. 여기에는 더 많은 RAM을 필요하거나, 더 많은 스토리지가 필요할 때 확연하게 느껴집니다.

 

클라우드의 장점은 비용의 절감이 아닙니다. 물론 앞서 언급한 Lezhin처럼 짧은 몇 시간대에만 트래픽이 집중적으로 몰려드는 경우는 상황에 따라 예외가 있겠지만, 하루 종일 대체로 비슷한 수준의 부하가 발생하고, 장기간 지속적으로 유지할 서비스라면 하드웨어를 구입하거나 임대해서 IDC에 입주시켜 사용하는 것이 저렴합니다.

 

그럼에도 불구하고 클라우드를 주목해야 하는 것은 무엇보다 유연한 확장성입니다. 필요한 시기에 필요한 만큼 아주 빠르게 자원을 배치하고, 수요가 줄어들면 삭감하는 것이 자유롭습니다. 늘리기는 쉬워도 줄이기는 어려운 하드웨어(서버) 운영에 비해 매력적이지요.

 

가장 중요한 것은 서버를 IDC에 입주시키는 것과 클라우드를 이용하는 것 중 어떤 것도 우월한 것은 없으며, 서비스의 특성에 따라 활용해야 한다는 것입니다. (둘 다 활용하는 것도 가능합니다.)

 

 

6. 스타트업에게 과연 클라우드가 매력적일까?

 

지난 2011년 페이스북의 브렛 테일러 CTO는 인터뷰에서 사업을 하면서 했던 가장 큰 실수로 서버를 직접 구매했다는 것을 꼽았습니다. 이유는 간단합니다. 비용을 줄일 수 있긴 해도, 시스템을 직접 유지하는 데에 너무 큰 '품'을 들여야 했다는 것입니다. 차라리 그 시간에 개발에 전념하는 것이 더 좋았다는 것이죠. 아마 한번쯤 들어보셨을 이야기라고 생각합니다.

* 브렛 테일러는 페이스북의 CTO이기 전에 프렌드피드라는 스타트업을 운영하던 CEO였습니다.

 

충분히 설득력있는 이야기라고 생각하지만, 이 이야기는 어디까지나 미국인이 자신의 경험을 설명했다는 점에 주목해야 합니다.

 

우리나라는 엔트리급 서비스의 인프라 구축에 많은 비용과 시간이 필요하지 않습니다. 하드웨어는 임대해서 사용해 초기 비용이 발생하지도 않고, 임대 기간 동안의 A/S는 호스팅 업체가 보증하며 장애가 발생하면 아주 빠른 시간 내에 대응하는 곳들이 많습니다. 게다가 기술 지원도 굉장히 저렴한 비용으로 가능합니다. 시스템을 직접 유지할 필요도 없고, 새벽에 장애가 생겨서 IDC까지 차를 몰고 가야할 필요도 없다는 것입니다.

 

거듭 말하고 싶은 것은 클라우드의 장점은 상시 운용되는 서비스의 비용 절감이 아니라 유연한 확장성이라는 것입니다. 따라서 대규모 이벤트 등으로 짧은 시간에 순식간에 트래픽이 증가하거나, 놀랍도록 빠르게 성장하는 서비스에는 클라우드가 매력적입니다. 하지만 일정한 궤도에 도달한 이후 큰 추이 변동이 없다면 차라리 IDC에 직접 입주시키는 것이 더 매력있는 선택이 될 수 있습니다.

 

 

0. 용어 설명과 보충

 

* 리전: AWS에서 장비가 위치한 IDC를 의미합니다. 아시아에는 도쿄와 싱가포르에 있고 미국과 EU의 몇몇 지역에 리전이 있습니다.

 

* 엣지: CDN에서 '오리지널 데이터'를 받아와 보관하고 있는 장소입니다. 서울을 비롯해 전 세계 여러 지역에 퍼져있고, 사용자(USER)에서 가장 가까운 곳에 위치한 엣지에서 데이터를 받아옴으로써 반응 속도를 개선합니다.

 

* 인스턴스: AWS에서 말하는 VM입니다. '가상화 서버(유닛)' 정도로 번역할 수 있습니다.

글쓴이 제목 최종 글
다크진 XE 에 꼭 필요한 모듈 또는 애드온 개발 요청 드립니다 (공개설정기능) [23] file 2015.04.08 by 키스미베이베
misol 공모전 스킨 부문 출품했습니다. [9] file 2015.04.07 by DJKain
푸른쉼터 모듈 제작 중 MVC 패턴에 대한 의문... [6] file 2015.04.07 by 푸른쉼터
뮤르시엘라고 xe도 어플로 만들수 있는거죠? [2] 2015.04.07 by 뮤르시엘라고
고종훈 다들 광고는 어떻게 다시나요? [1] 2015.04.06 by 몽실아빠
XE XE 공모전 2014 : 웹템플릿 3종과 XEIcon font를 공개합니다 [3] file 2015.04.06 by IOZ
지드래고 여러분 새로고침 없이 댓글,추천 하시나요? [9] 2015.04.06 by 지드래고
졸라맨 핫이슈 엄청난 버그 발견함. [24] 2015.04.04 by ひりゅう.
Devel0per 구글 통계 대시보드 애드온 [37] file 2015.04.04 by Devel0per
시니시즘 개인적으로 XE에 꼭 붙여보고 싶은 텍스트 에디터 [8] file 2015.04.03 by 시니시즘
푸른쉼터 XE 연동 안드로이드 앱 개발 프로젝트에 대한 조언을 구합니다. [5] file 2015.04.03 by GG
socialskyo XE 비밀 글(댓글)에 대해서 [37] 2015.04.02 by socialskyo
하늘희 손쉽게 알림창을 띄울 수 있는 알림창(showindow) 애드온 입니다. [30] file 2015.04.01 by 하늘희
이온디 일기장 게시판 스킨 제작기(4) [4] 2015.04.01 by 키스미베이베
socialskyo 이걸 어디다 말해야 할지.. [3] 2015.04.01 by YJSoft
DING_ xe 위젯이나 모듈에 conf [1] 2015.04.06 by DING_
숭숭군 아... XE버그때문에 멘붕.. [5] 2015.03.31 by 하늘희
키스미베이베 흠 프로파일러 모듈은 진행이없나용?? [3] 2015.03.30 by 숭숭군
socialskyo lune 게시판 스킨 참 좋다고 생각 합니다. [2] 2015.03.29 by socialskyo
체피 AWS를 중심으로 한 클라우드와 IDC의 비교에 대한 소고 [4] 2015.03.29 by NOVCUBE