서버 모니터링과 애플리케이션 모니터링

서버 모니터링과 애플리케이션 모니터링

웹 애플리케이션을 사용자(브라우저)의 요청을 처리한다고 해서 웹 서비스 라고도 부릅니다. 웹 서비스는 점점더 컴퓨팅 시스템이 중심이 되어가고 있습니다. 그에 따라 성능을 관리하기 위해 성능 모니터링 영역또한 중요해지고 있습니다. 얼마나 많은 사용자의 요청을 얼마나 빨리 처리할 수 있는가가 서비스의 성능이라 할 수 있습니다.  서비스 성능을 모니터링 할 때 기초적으로 고려해야할 문제에 대해서 이야기하고자 합니다.

웹 서비스 시스템의 기본적인 특성은

사용자는 서비스를 호출하고 서비스는 자원을 사용합니다. 

웹서비스는 사용자의 요청을  처리하기 위해 CPU, 메모리 디스크 혹은 네트웍 같은 물리 자원들을 사용합tech_1니다. 사용자는 구글이나 네이버의 서버 사양이나 CPU, 메모리에 관심이 없습니다. 사용자는 구글이나 네이버의 검색이나 메일 서비스를 사용할 뿐입니다. 이때 그 메일이나 검색 서비스들이 컴퓨팅 시스템의 내부/외부의 자원들을 사용합니다.(내부의 자원은 CPU,Memory같은 물리 자원을 말하고 외부 자원은 DB와 같이 연결된 서버들을 외부 자원이라고 합니다.)

따라서 웹서비스의 성능 모니터링은 자원의 사용량 보다는 서비스의 처리 성능을 먼저 모니터링해야합니다.

그래서 얼마나 많은 사용자가 요청하는지 그리고 얼마나 많은 서비스가 어떤 속도로 처리되었는지는 추적해야 합니다. 그리고 나서 서비스들이 필요로 하는 자원이 충분한지를 추적하는 것이 필요합니다.

이때 서비스의 처리 현황을 모니터링하는 것은 애플리케이션 혹은 서비스 모니터링이라고 하고 자원의 현황을 모니터링 하는 것을 서버 혹은 자원 모니터링이라고 합니다.

서비스 튜닝과 서버 용량관리를 위해 모니터링 합니다.

사용자는 서비스를 호출하기 때문에 성능의 이슈는 서비스에서 먼저 나타납니다. 자원의 부족할때도 로직이 잘못되었을때도 모든 문제는 서비스의 처리 지연으로 나타납니다. 따라서 서비스 처리 성능을 개선하기 위해서는 서비스 모니터링을 잘해야 합니다.

그런데 서비스 모니터링은 객관적인 관점을 갖기 어려운 문제가 있습니다. 예를 들어서 서비스 모니터링의 가장 중요한 지표는 TPS(초당 처리건수)와 응답시간입니다. 그런데 이것은 동일 애플리케이션에서만 의미를 갖기 때문에 다른 시스템과 절대적인 비교를 할 수없습니다. 이런 이유로 여러 애플리케이션의 성능을 비교할때  서비스에 대한 성능 지표를 절대값으로 사용하지 않습니다. 단순히 튜닝 전과 후을 상대비교하는 목적으로 사용합니다.

반면 자원을 중심으로한 서버 모니터링은 객관적인 성능 기준으로 활용됩니다. 어떤 시스템이든지 CPU  와 메모리 네트웍 사용tech_2량등을 가지고 성능을 이야기 할 수 있습니다.그래서 S/W라이센스 판매나 클라우드 과금시 자원 규모가 기준으로 활용되고 있는 것입니다.

시스템 오픈 초기에는 애플리케이션 내부에 잘못된 코드들이 존재할 가능성이 많기 때문에 서비스 모니터링이 중요합니다. 반면에 시간이 지날 수록 응용프로그램들의 버그들은 수정될 것이고 잘 튜닝된 응용 프로그램에서는 모든 문제는 자원 사용량으로 드러나게 됩니다. 따라서 시스템이 시간이 지나 안정화되면 서비스 모니터링을 하지 않고 서버 자원 만을 모니터링 해도 서비스의 성능 문제를 판별 할 수 있게 됩니다.

목적에 맞게 도구를 활용해야 합니다.

간혹 반대 목적으로 모니터링을 적용하려는 경우가 있습니다. 자원모니터링으로 서비스 튜닝을 하려 한다든지 혹은 반대로 서비스 성능 지표를 기준으로 증설계획을 수립하려는 경우들이 있습니다.  예를 들어 CPU 사용량이 증가하지 않으면서 서비스가 느려지는 현상이 얼마든지 있을 수 있습니다. 반대로 TPS(분당 처리건수)는 애플리케이션 리뉴얼 후에는 완전히 달라질 수 있습니다. 절대적인 서비스 관련 성능 지표를 가지고 용량 산정이나 예산 계획을 세울 수 없습니다.

서비스 모니터링은 튜닝을 목적으로 하기 때문에 실시간 모니터링을 중요시하고 적은 대상에서 집중적인 모니터링을 수행합니다. 가급적 많은 정보를 수집하는 경향이 있습니다. 반면에 각 지표가 다른 애플리케이션 간에 절대 비교가 안되기 때문에 정확한 수치보다는 튜닝에 필요한 인사이트를 얻기 위한 목적으로 데이터를 재가공하여 차트에 표현합니다.. 그리고 과거 데이터를 중요시 하지 않고 삭제하는 것이 보통입니다.

대신 서버(자원) 모니터링에서는 실시간보다는 조금 지연되더라도 장기간의 데이터를 수집하고 관리합니다. 그리고 주요 자원 사용량에 대해서는 가급적 정확한 값을 추출하고 관리합니다.  가급적 적은데이터를 수집하고 다수의 서버를 통합 관리하려는 경향이 강합니다.

그래서 서비스 모니터링 툴에게 장시간 데이터 보관을 요구한다든지 서버 모니터링 툴에세 상세한 정보 수집을 요구하는 것은 상당히 어려운 요구가 될 수 있습니다.

시점에 맞는 도구들을 활용해야합니다.

모든 시스템은 동일한 상태로 존재하지 않습니다. 일반적으로 시간이 지날 수록 안정화 됩니다. 그것은 성능 모니터링의 중심이 시간이 지날 수록 달라진다는 것입니다.

서비스 오픈 초기에는 튜닝을 위한 모니터링 툴을 적용하고 안정화된 이후에는 자원 모니터링을 중심으로 시스템의 성능을 관리한다면 효과적입니다.

따라서 시점에 따른 유연한 모니터링 적용 전략이 필요합니다.

스타트업의 마케팅은 고객의 충성도를 높이는 것이다. (NPS 설문조사하기)

고객 지향적인 조직으로 전환하는데 있어 가장 큰 장벽
‘우리 회사는 현재에도 충분히 고객을 최우선 순위에 놓고
고객 중심적으로 운영하고 있다’
라는 잘못 된 믿음이다.
– John Kenneth Galbraith 교수 / 경제학자

서비스를 세상에 내놓은 모든 스타트업들은 고객들이 자사의 서비스나 제품에 대해 어떻게 생각하는지 알고 싶어 합니다. 이런 경우 고객 만족도 조사를 통해 결과를 도출하려면 많은 노력을 기울여야 합니다. (일반적으로 고객 만족도 조사는 질문이 추상적인 경우 무의미한 데이타가 도출되는 경우가 많기 때문에 자세한 문항으로 나눠서 질의해야 합니다.)

사람이 항시 부족한 스타트업 같은 경우 고객의 만족도를 조사를 직접 진행하는 일은 매우 어려운 일입니다. 그렇다고 돈을 들여서 설문을 진행하는 것도 부담스럽죠. 하지만 마케팅 전문가가 없는 조직에서도 NPS(Net Promoter Score) 를 사용한다면 고객이 서비스를 얼마나 가치있게 생각하는지 확인 해 볼 수 있습니다.

NPS에 대해.

NPS는 우리말로 “순수 추천 지수” 라고 부릅니다. NPS를 통한 질문의 내용은 “지인에게 추천할 의향이 얼마나 있으신가요?” 입니다. 이렇게 질의하는 것은 고객 만족도에서 “서비스에 만족하십니까?” 라는 질문과 비슷해 보이지만 지인에게 사람에게 추천할 정도로 만족하는지 한번 더 생각해 보게 합니다.

NPS는 0에서 10까지 선택할 수 있으며 해당 점수는 매우 보수적으로 정의되어 집니다. 예를 들어 0에서 6까지의 선택한 고객은 서비스에 불만이 있는 집단이라고 분류합니다. 6단계를 선택한 고객은 지인에게 서비스를 추천하고 싶지 않을 뿐 아니라 부정적인 입소문을 통해 브랜드에 손상을 줄 수 있는 고객이라고 보는 것입니다.

7이나 8을 선택한 고객 또한 보수적으로 판단하여 중립 집단으로 분류합니다. 이들은 지인에게 추천 할 수도 있지만 다른 서비스로 넘어갈 수도 있는 고객 군 입니다. 바이럴 마케팅에 도움이 되는 분들은 아니지만 고객 유지에는 매우 효과적인 집단으로 분류합니다.

마지막으로 9와 10은 추천 집단입니다. “친구에게 반드시 추천할 것이다.”라고 외치는 팬에 가까운 집단입니다.

정리하면 다음과 같습니다.

  • 0~ 6: 서비스나 제품에 대해 부정적인 사람. 부정적인 입소문을 통해 제품에 브렌드에 손상이 생길 수 있는 고객 군입니다.
  • 7~ 8: 서비스나 제품에 대해 소극적인 사람.  만족하지만 언제든 다른 제품으로 옮겨 갈 수 있는 고객 군입니다.
  • 9~10: 서비스나 제품에 대해 추천하는 사람. 지속적으로 서비스를 사용하며 적극적으로 소개하는 고객 군입니다.

이렇게 분류된 자료를 통해 NPS 값을 도출해 냅니다. NPS를 도출하는 공식은 간단합니다.

  • NPS = (PROMOTORS – DETRACTORS) / RESPONDENT x 100

NPS의 결과 범위는 -100에서 +100까지 나올 수 있습니다. 만일 음의 값으로 나온다면 고객들은 서비스에 매우 불만족스러운 상태라고 생각해 볼 수 있습니다. 적어도 0의 값을 넘겨야 하며 지속적으로 값을 키워갈 수 있어야 합니다.

 

시장과 제품 충성도의 관계

제프리 무어는 기술 기반의 스타트업이 가지고 있는 시장에 대한 정의를 아래와 같이 내렸습니다.

  • 주어진 제품이나 서비스에 대해
  • 공통된 수요나 욕구를 지니고 있고
  • 구매 결정을 내릴 경우에 서로 참고하는
  • 실제 고객이나 잠재 고객의 집합

여기서 가장 중요한 부분은 “구매 결정을 내릴 경우에 서로 참고하는” 이 부분입니다. 서로의 의견을 참조하는 고객의 집단에서 캐즘을 극복하기 위해서는 충성도가 높은 고객들을 통한 확산이 필수 입니다. 마케팅에 많은 돈을 쓰지 못하는 스타트업은 고객 충성도를 올리는 것이 가장 좋은 마케팅이라 할 수 있습니다.

 

그럼 실천을 해보자.

자, 그럼 어떻게 NPS 데이터를 가지고 올까요? NPS 설문조사를 원한다는 것은 최소한의 고객군을 가지고 있다는 의미입니다. 그렇다면 고객에게 메일을 통해 설문을 받아 볼 수 있을 것입니다. 와탭과 같이 뉴스레터를 발송하는 스타트업들은 뉴스레터를 통해 NPS 설문 조사를 진행하셔도 됩니다. 설문 조사는 Google Forms 를 사용하시는 것도 좋은 방법입니다.

또는 B2B 영업 망을 가지고 있다면 영업에서 직접 설문을 받을 수도 있습니다. 질문이 워낙 단순하기 때문에 고객분들도 크게 부담되지는 않을 것입니다. 아마도 많은 서비스 회사들이 결과에 충격 받을 수도 있을 거라 생각 합니다. 영업에서 직접 방문하여 받는 경우 9점 이상을 받기 위해 어떤 점을 개선했으면 하는지 적어 달라고 하는 것도 많은 도움이 됩니다.

 

마무리.

스타트업에게 마케팅이란 고객에 마음을 빼앗는 것 그 자체입니다. 스타트업은 작은 시장에 들어가서 고객의 마음을 완벽하게 빼앗아 나와야 합니다. 그렇게 작은 시장을 반복해서 점령하는 것이 기술 기반 스타트업들이 기존 사업자들을 넘어 설 수 있는 기본 전략입니다. 이 기본 적략의 핵심은 고객의 충성도이며 이 충성도를 측정하는 것은 꼭 필요한 작업입니다. 만일 NPS 결과가 0보다 작다면 지금은 확장이 아니라 고객에게 더 집중해야 하는 상황이라는 의미입니다. 아직 NPS 설문을 통해 서비스의 충성도 지표를 수집하지 않고 있다면 지금이라도 준비하시기 바랍니다.

 

참고 자료

  • http://www.medallia.com/net-promoter-score/
  • http://terms.naver.com/entry.nhn?docId=18775&cid=43659&categoryId=43659
  • 제프리무어의 캐즘 마케팅
  • http://bigdoor.com/blog/2014/04/22/customer-focused-vs-customer-centric-which-are-you/
  • https://www.netpromoter.com/know/
  • http://netpromotersystem.com/about/index.aspx
  • https://ko.surveymonkey.com/mp/net-promoter-score/?repeat=w3tc

2016 UI Trend

안녕하세요! 2016년 병신년을 맞이하여 원숭이띠 와탭의 UI 디자이너가 2016년도에 UI가 어떤것이 대세일지 정리하였습니다.

2015과 많이 달라지지 않겠지만, 모바일 브라우징 사용이 점점 증가하면서 아무래도 모바일 관련 디자인이 많이 변화가 되지 않을까 싶네요.

1. 특이하고 독특한 방식의 레이아웃과 일러스트.

한국에서 만들어지는 웹사이트들은 전반적으로 레이아웃들이 비슷합니다. 왜냐하면 웹에서 제공하는 프레임워크를 많이 사용하기도 하고, 이미지/텍스트를 바꾸면 시간을 절약하고 편하게 웹사이트를 만들수 있기 때문입니다.

그래서 다른웹사이트와 차별을 주기 위해 더 특이하고 독특한 레이아웃이 나오지 않을까 합니다.

스타벅스를 보면 패럴랙스 스크롤링을 이용한 반응형 웹페이지입니다.

20160104_001

또한 몇년간 배경화면으로 큰 이미지로 장식되었던 홈페이지 배경화면이 일러스트나 패턴을 이용한 배경이미지로 바뀔것으로 보입니다. 이것또한 현재 웹사이트와 차별화를 주기 위한걸로 예측됩니다. 이러한 배경이미지는 텍스트를 좀더 보완하고 시각적으로 매력적이고 사용자들에게 더 오랜기억으로 남게 되는 웹사이트가 될수 있을것입니다.

20160104_002

20160104_003

2. 스토리텔링.

2016년도 UX를 경험으로 한 스토리는 사용자의 소통을 브랜드 이미지로 개선하거나, 고급효과에 전략적으로 이용되고, 마케팅에 크게 사용되고 있습니다.일상적으로 찍는 동영상이나 손으로 그린듯한 자연스러운 드로잉 일러스트등이 여러기법을 통해 스토리텔링이 계속 될것으로 보입니다.

20160104_004

20160104_005

Source:http://34.ge/en

3. UI 애니메이션.

2015년보다 더 유행할것으로 보여지는 애니메이션은 Google Material Design과 플랫 디자인에서 오는 심플함을 보완하기 위해서 웹페이지와 모바일 어플리케이션에 다양한 애니메이션이 보여질것으로 보여집니다. 통해서 다양하게 재미있는 애니메이션을 볼수 있을것입니다.

모바일의 경우는 터치한 후에 어플리케이션 페이지 이동 할때 나오는 애니메이션, 버튼 애니메이션, 로딩 애니메이션이 있을수 있겠습니다.

20160104_006

4. 그라데이션 백그라운드배경 활용.

1번에서 말한것과 같이 백그라운드 이미지를 패턴이나 일러스트를 이용할것으로 보는것을 언급하였습니다. 플랫 디자인할때 깔끔한 단색 컬러를 이용하여 백그라운드 배경을 만들었지만, 그라데이션 컬러를 통하여 감성적이고 깊고 화려한한 웹사이트가 유행할것으로 예상됩니다.

모바일 경우는 그라데이션을 사용하여 아이콘이나 텍스트에 더 집중이 될수 있도록 도와줄것으로 보입니다.

Source:https://yearinmusic.spotify.com/en-GB

20160104_010

20160104_011

Source:https://dribbble.com/shots/1718042-Weather-App

 

 

5. 시네마그래픽.

시네마그래프(Cinemagraph)란 시네마와 포토그래프의 합성어입니다. 움직이는 이미지를 만드는 사진 예술입니다. 애플 아이폰의 라이브 포토가 나오면서 일명 움짤이라고 있습니다.이 움짤(라이브포토)들로 광고주들과 콘텐츠 제작자들은 시네마 그래프의 힘을 알게 되었습니다.

멈춰있는 사진보다 강조될수있고, 고객에게 인상이 더 오래 남겨진다는것을 알았습니다. 앞으로 아이폰 움짤 사진으로 재미있고 독특하여 더 많이 사용하게 될것으로 보입니다.

20160104_012

20160104_013

 

 

6. Texture(질감).

백그라운드 컬러나 사진, 일러스트, 버튼 등에 텍스쳐(질감)를 활용하여 디테일한 표현을 할수 있으며, 플랫한 웹사이트나, 모바일 어플리케이션에 질감등을 넣어서 더욱더 느낌을 갖게하여 풍부한 경험을 갖게 할 수 있을것입니다.

20160104_014

Source:http://www.because-recollection.com

 

7. 타이포그래피. 많은 요소중에 가장 많은 변화를 보이는 요소는 타이포그래피인것 같습니다. 웹폰트가 모든 사람들에게 접근이 쉬워지면서 온라인 타이포그래피는 엄청난 변화를 맞이하였습니다. 2015년에는 단색과 얇고 간단한 폰트를 사용했다면, 2016년도에는 여러색상 조합과 굵고 강한 타이포그래피들이 유행할것으로 보입니다.

20160104_015

Source:http://tennentbrown.co.nz

 

20160104_016

Source:http://worldseasiestdecision.org/en-us

2016년 UI트렌드를 조사하면서 많은 요소들을 조사하였지만, 간추려서 몇개를 추려서 정리하였습니다. 2015년에 유행하였던 플랫한 디자인과 머터리얼 디자인은 계속 강조될것으로 보입니다.

참고 사이트

  • http://www.awwwards.com/
  • http://capptivate.co/
  • http://story.pxd.co.kr/865
  • https://dribbble.com
  • http://www.worldweb.co.kr/articles/articles_view.html?idno=16076
  • http://www.webdesign-inspiration.com/blog/5-web-design-predictions-for-2016

AWS RDS MySQL 모니터링

AWS RDS는 기술이 필요한 데이터베이스 설정 및 운영 업무를 편리하게 할 수 있는 서비스입니다. 서비스화 할때 성능 옵션이 적절하게 조절되었기 때문에 MySQL과 AWS의 부조화에 대한 걱정없이 데이터베이스를 생성하고 운영할 수 있습니다. MySQL을 모니터링 할 수 있는 와탭의 기능을 사용하여 RDS MySQL 이 처리하고 있는 쿼리의 수 및 종류/버퍼 사용량/데이터베이스 크기등을 편리하게 알 수 있습니다. Whatap Agent를 설치하여 MySQL type RDS를 모니터링 하는 법을 적어보겠습니다.
현재 와탭 MySQL모니터링은 MySQL 5.6 이하 및 MariaDB 10.0 이하 버전을 지원합니다.

1. AWS RDS 생성

MySQL 타입 RDS Instance를 하나 생성합니다. 생성 방법은 아래 링크를 참조합니다. https://docs.aws.amazon.com/kokr/AmazonRDS/latest/UserGuide/USERCreateInstance.html

20160102_AWS-RDS-INSTANCE

2. Linux Whatap Agent 설치

Whatap Agent MySQL 타입은 Linux에만 설치가능합니다. Amazon Linux VM을 하나 준비합니다. 생성하는 방법은 http://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html 를 참조합니다. 생성이 완료되면 Whatap Agent를 설치합니다. 설치방법은 whatap.io에 로그인 후 데이터베이스 -> 서버추가 -> MySQL을 클릭합니다. Amazon Linux VM을 생성한 경우 CentOS/RedHat을 클릭하면 아래와 설치 방법을 볼 수 있습니다. 이 경우 VM에 MySQL을 설치한 경우에는 모니터링이 가능하지만 RDS는 모니터링 할 수 없습니다. VM에 설치한 MySQL대신 원격지의 RDS를 모니터링 하도록 /etc/my.cnf에 설정을 추가하는것을 포함하여 Whatap Agent를 설치합니다.
sudo rpm -Uvh http://repo.whatap.io/centos/5/noarch/whatap-repo-1.0-1.noarch.rpm
sudo yum -y install whatap-agent mysql
sudo echo "[client]" >> /etc/my.cnf
sudo echo "host=RDS 엔드 포인트" >> /etc/my.cnf
sudo env PATH=$PATH whatap 라이센스키

whatap --install-plugin mysql
Enter the username of mysql:
rds 사용자 이름
Enter the password:
rds 패스워드

3. 목록 및 데이터 확인

정상적으로 설치한 경우 2분 정도 지나면 아래와 같이 목록을 확인할 수 있습니다.

20160102_AWS-RDS-PERFORMANCE-LIST

데이터 베이스 모니터링은 유료 서비스로 업그레이드를 하면 좀더 자세한 정보를 볼 수 있습니다.

20160102_AWS-RDS-PERFORMANCE1

20160102_AWS-RDS-PERFORMANCE2

20160102_AWS-RDS-PERFORMANCE3

20160102_AWS-RDS-PERFORMANCE4

 

마치면서

RDS는 편리한 서비스이기는 하지만 어플리케이션이 데이터베이스를 정상적으로 사용하고 있는지 파악하려면 SQL Query의 상세한 정보가 필요합니다. 클라우드 워치에서는 CPU/MEMORY/IO 성능을 중심으로 정보를 제공하기 때문에 모니터링에 별도의 수단이 필요합니다. Whatap Agent의 MySQL 모니터링 기능을 이용해서 RDS를 모니터링 편리하게 할 수 있었으면 좋겠습니다.