Tips

Docswave 개발팀은 어떻게 일하는가?(GCP 기본편)

how_work_dev
David Lee
Written by David Lee
qna_banner

*본 글은 Docswave 개발팀 김도원 연구원님이 작성한 글입니다.

소프트웨어인라이프에 입사하고 회사에 인프라팀(혹은 시스템팀)이 없는 것이 신기했습니다. 그리고 이런 생각도 들었습니다.

Docswave 서비스의 인프라자원은 누가 어디에서 관리하는 거지?

Docswave는 구글기반의 업무 서비스라는 특성과 함께 모든 인프라자원도 GCP(Google Cloud Platform)에서 관리되고 있었습니다.  처음에는 ‘굳이 해외 서비스를 이용할 필요가 있을까?’라는 생각도 들었지만 개발을 하다보니 GCP는 생각보다 많은 장점이 있었습니다. 이번 글에서는 Docswave를 개발하면서 알게 된 GCP의 장점을 설명드리고자 합니다.

1. 서비스의 자유로운 확장

대표님에게 듣기론 Docswave도 개발 초기에는 최소한의 인프라만가지고 시작했다고 합니다.(사실, 클라우드가 무조건 싼 것은 아닙니다. 자원을 많이 쓰면 생각보다 많은 비용이 나옵니다.) 그런데 몇 개월이 지나고 사용자가 늘어나면서 자원을 확장 할 수 밖에 없었습니다. 자원을 확장한다는 것이 처음에는 어렵게 느껴졌었으나 GCP에서는 생각보다 간단한 작업이었습니다.

 

0_re_수정

만약 메모리가 부족하면 메모리량을 설정으로 간단하게 늘려주고 재부팅해주면 끝입니다. 제가 전에 근무했었던 ㅇㅇ기업에서는 이런 경우 비싼돈을 주고 서버를 재구성하거나 실제 메모릴를 새로 장착해야만 했었습니다. 그에 비하면 GCP는……..사랑입니다.


2. 편리한 모니터링 StackDriver

GCP에서는 StackDriver라는 모니터링 툴을 기본으로 제공합니다. StackDriver는 GCP에서 운영되는 Docswave 서버들의 상태를 측정해서 위험이 감지될 경우 알림 메일을 발송해줍니다.  아래 이미지를 보면……음….제가 개발을 이상하게 해서 CPU가 괴로워하고 있네요.

1

하지만 아직까지 StackDriver는 detail한 부분에서 부족함이 있습니다. 서버의 상태에 대해서는 어느정도 만족스러운 모니터링이 가능하지만 서비스상에서의 에러들까지 모니터링을 해주진 않기 때문입니다. 그래서 서비스상에서의 에러부분들까지 체크를 하기 위해서는 New Relic 같은 서비스를 추가로 이용해야 합니다. Docswave는 현재 New Relic을 이용하고 있는데 개발자가 아주 무안할 정도로 디테일한 에러까지 잘 잡아줍니다.

7


3. Google Cloud SQL는 널리 데이터베이스를 이롭게 합니다.

GCP를 확인하고 난 뒤에 데이터베이스가 궁금해졌습니다. 아마 GCP의 서버중 하나에 있겠죠?

필자 : 팀장님, MYSQL 서버는 없나요?
팀장 : 응 없어

없다니… 저희 서비스는 데이터베이스가 없는걸까요? 그게 아니라 Cloud SQL이라는 데이터베이스를 사용합니다. MySql기반으로, 구글이 커스터마이징 하여 클라우드서비스로 손쉽게 사용할 수 있도록 제공해 줍니다.
2_re수정

 

Cloud SQL은 데이터베이스를 사용하면서 필요한 보안, 장애조치, 리플리케이션, 백업 모두를 제공해주는 서비스입니다. 데이터베이스관리도 구글이 해주니 안심이죠. 용량이 모자라면 그냥 늘려주고 재부팅하면 끝이에요. 리소스 모니터링도 자세하게 해줍니다. 모니터링 중 CPU 사용율이 아래 그림처럼 점점 높아지는 상황이 있었어요. 으악! CPU가 100프로가 넘다니!  Cloud SQL이 힘들다고 신음하는 그래프를 보고 바로 튜닝작업에 들어갈 수 있었고 문제를 빠르게 해결할 수 있었습니다.

 3


4. 이미지 저장은 Cloud Storage에서

웹서버를 운영하면서 필요한 이미지파일 또한 GCP에 저장 됩니다. 이를 위해 특화 된 서비스가 바로 Cloud Storage 입니다.

4_re수정

일반 컴퓨터의 하드디스크를 만드는 것 처럼 폴더 만들고, 파일 넣어서 편리하게 사용하실 수 있어요. 물론 API로 웹서버에서 파일을 제어하는것도 가능합니다.
보안도 간단히 해결하실수 있어요. 일반적으로 Cloud Storage에 저장 된 파일은 공개 되지 않지만, 웹서버에서 필요한 이미지를 공개하려면 ‘공개 링크’를 클릭하시면 됩니다. 그럼 외부에서도 접속가능한 URL이 공개 되고, 이를 통해 이미지 링크를 걸 수 있죠. 또한 사용자 별로 권한 제어가 가능하고, 비인가 사용자에게도 일정시간 사용할 수 있는 인증토큰을 부여해서 Cloud Storage의 접근제어가 가능합니다.


Prologue

GCP로 시작해서 GCP로 끝났네요. 사실 Docswave 개발팀에서 일을 하기 전까지 저는 Cloud에 관심만 있었지 실제로 Cloud를 사용해본 적이 없어서 구체적으로 Cloud의 장점을 잘 몰랐습니다. 제가 GCP를 이용하면서 가장 편리하다고 느낀점은  개발자가 개발에만 집중할 수 있는 환경이 마련된다는 것입니다. 개발자가 부가적인 삽질을 안 하고 코딩에 집중할 수 있을 때 개발능력도 빠르게 성장할 수 있다고 생각하기 때문입니다. 혹시 Cloud 서비스를 이용해보신적이 없으시다면 AWSGCP를 꼭 한 번 이용해보시기를 권해드립니다. AWSGCP 모두 Trial을 제공하고 있으니 비용적인 부담도 없습니다.(이메일이 여러개 있으시다면 Trial을 여러번 이용하실 수 있습니다.^^ )

 

다음편에서는 Front-end 개발자의 이야기를 들려드릴게요~

About the author

David Lee

David Lee

“가지지 못한 것에 아쉬워하기보단 가진것에 감사함을 느껴라.”