Chris Choi

Cloud에 관한 비트의 선택, Amazon Web Services

with 3 comments

음악 스트리밍 서비스인 비트는 AWS Amazon Web Services 를 기반으로 600만이 넘는 고객에게 서비스를 제공하고 있습니다. 비트의 CTO인 정민영님에게 AWS의 선택과 쓰임, 장점 등에 대해 들어봤습니다.

 

20세기의 관점과 21세기의 관점

Startup의 큰 고민 중 하나는 초기 투자 비용입니다. 서비스의 성장을 예측하기가 어렵기 때문에 시스템 관점에서도 어느 규모의 시스템 자원을 준비하고 운영해야 할지 결정하기가 쉽지 않습니다. 음악 스트리밍은 컨텐츠 저장을 위한 대규모 Storage가 필요합니다. TB 수준으로 증가하는 Storage를 기존의 방식으로 관리하기는 쉽지 않습니다.

20세기의 관점은 성장치를 예상하고, Peak가 Capacity의 X% (예를 들면 70%) 수준이 되도록 시스템 자원을 준비합니다. 그러나 21세기의 관점은 다릅니다. Cloud의 관점입니다. 다양한 서비스와 사용 패턴 – 예를 들면 On and Off, Fast Growth, Predictive Path, Variable Path 등 – 에 맞게 최적화된 리소스를 필요에 맞게 사용할 수 있도록 합니다.

20세기의 관점은 미리 투자하는 인프라입니다. 정적인 자원입니다. 21세기의 관점은 수요에 유연하게 대응하는 인프라입니다. 동적인 자원입니다.

사람이 가장 비싼 자원입니다. 운영에 많은 시간을 빼앗기지 않고 개발에 집중할 수 있도록 하고 싶었습니다. 그런 측면에서 요즘은 No Ops가 관심을 받고 있습니다. 루틴한 운영은 개발자가 개입하지 않아도 되고, 개발자 한 두 명이 API를 이용해 전체 인프라를 관리하도록 하고 싶었습니다. 이런 점에서 AWS는 필연적인 선택입니다.

 

Cloud.png

[Image 1. AWS Service Catalog 출처: Amazon Web Services]

 

AWS는 다양한 종류의 서비스들을 제공합니다. Microsoft Azure, Google Cloud 등 여러 종류의 Cloud 서비스들이 있지만, Catalog의 풍부함이 선택의 기준 중 하나가 되었습니다. 노력할수록 효율성을 끌어낼 수 있다는 점도 영향을 미쳤습니다.

AWS의 장점 중 하나는 기능들이 API로 연결된다는 점입니다. (단, API 호출 실패에 대한 고려가 필요합니다.

 

CloudFormation

소프트웨어와 달리 인프라는 버전 관리가 힘들었습니다. AWS의 ‘CloudFormation’은 JSON 기반의 언어를 이용해 인프라를 구현하는 기술입니다. 버전 관리는 물론, 수정 사항만을 별도로 반영 가능한 소프트웨어적 접근법이라 할 수 있습니다. CloudFormation을 이용하면 어느 Region에서나 동일한 구조를 구현하고 배포할 수 있습니다.

 

Auto Scaling

CPU나 시간 스케줄 등의 특정 조건에 따라 Instance의 개수를 자동적으로 조절하는 것이 ‘Auto Scaling’입니다. AWS의 매우 중요한 기능 중 하나입니다. Traffic에 따라 Instance의 개수를 조절함으로써 탄력적인 서버 운영이 가능하게 하며, 운영 비용의 감소로 이어질 수 있습니다. AWS로 인해 서버는 더 이상 영속적인 리소스가 아닌, 일시적으로 운영하는 자원이 되었습니다.

 

과금 모델

AWS는 다양한 과금 모델을 제공합니다. 그 중 하나가 ‘Spot Instance’입니다. AWS가 판매를 위한 Resource Pool을 구성하는데, 고객이 구매하지 않은 유휴 자원이 발생하게 됩니다. 그 여유 자원을 경매로 판매하는 것이 Spot Instance입니다. 가격 측면에서는 최대 80%까지 저렴할 수 있습니다.

단, Spot Instance는 언제 사용을 시작할 수 있을지, 언제까지 사용할 수 있을지 모르는 단점이 있습니다. AWS 사용 시 유연한 설계를 염두에 두어야 Spot Instance의 장점을 누릴 수 있습니다. 예를 들어 Auto Scaling 조건을 설정해서 Spot Instance의 임계치를 상회할 때 Sacle-out 해 On-Demand를 사용하도록 하는 식으로 말입니다. 그러다 다시 Spot Instance가 생기면 Scale-in 합니다. 서비스마다 Auto Scaling의 조건이 다릅니다. Group 별로 CPU 사용량 등의 조건을 달리 설정하고, 이벤트 발생 시 Slack으로 Notification을 받습니다. 기준 변경이 필요한지 수시로 Monitoring 하고 있습니다.

 

DynamoDB

AWS는 NoSQL DB의 일종인 DynamoDB를 제공합니다. 분산키 / 정렬키 기반의 DB로, MongoDB, Cassandra와 유사합니다. Table 당 처리량을 지정할 수 있습니다.

DynamoDB를 이용하면 필요 처리량으로 성능과 비용을 결정할 수 있습니다. Read와 Write의 초 당 처리 건수를 동적으로 조절할 수도 있습니다.

 

Region and AZ

하나의 Region에는 두 개 이상의 AZ Availability Zone 이 존재합니다. 하나의 AZ가 Down 되더라도 다른 AZ를 사용할 수 있습니다. 사용자 입장에서는 좀 더 손 쉽게 Disaster recovery를 할 수 있습니다.

 

Cloud 2.png

[Image 2. AWS Global Infrastructure 출처: Amazon Web Services]

 

비트는 Tokyo Region을 사용하고 있습니다. Latency 측면에서는 일본과 한국 간의 해저망이 세계에서 가장 안정적인 망 중 하나로, 40~60 millisecond 수준입니다. Google과 Facebook 등의 글로벌 기업들도 서비스 거점을 일본에 두고 있습니다. , 게임 Latency 굉장히 민감한 서비스는 Region 서울에 두는 것도 고려해 보는 것이 좋습니다.

 

규모의 경제

Cloud는 한 편으로는 경쟁이 치열해지고 있고, 다른 한 편으로는 규모의 경제를 실현하고 있습니다. 그래서인지 가격이 오른 적이 없습니다. 초기에 비해 Storage가 40% 이상 증가했음에도 지불 비용은 오히려 줄어들었습니다. 그럼에도AWS의 수익률은 여전히 높아서 가격 하락, Resource 증설 등의 요구를 받고 있습니다.

Written by Chris Choi

March 25, 2016 at 9:28 am

Posted in Tech

3 Responses

Subscribe to comments with RSS.

  1. […] [Link 2. “Cloud에 관한 비트의 선택, Amazon Web Services”] […]

  2. […] [Link 2. “Cloud에 관한 비트의 선택, Amazon Web Services”] […]

  3. […] ‘Cloud에 관한 비트의 선택, Amazon Web Services’ […]


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: