2020.02.13

‘달콤한 약속 이면에는…’ 클라우드 이용 시 주의점 10가지

Peter Wayner | CIO
IT 리더라면 클라우드의 가치 제안에 익숙할 것이다. 클라우드는 자원을 쉽게 공유하고 변화하는 부하와 요구에 신속하게 적응하도록 돕는 한편, 독자적인 장비 구매 및 관리 필요성을 제거함으로써 시간과 비용을 절약할 수 있게 해준다. 그러나 각종 단점과 함정 또한 존재한다. 특히 클라우드에서만 나타나는 고유한 문제들도 있다. 주의를 기울여야 할 10가지를 정리했다. 
 
ⓒ Image Credit : Getty Images Bank

고삐 풀린 비용
수요가 늘어나면 클라우드는 자동으로 새로운 시스템을 스핀 업 할 수 있다. 단, 그럴 경우, 보이지 않는 곳에서 요금이 빠르게 올라갈 수 있다는 점에 유의해야 한다.

작업량에 유연하게 대처하는 것이 과부하로 인해 벽장 안 구형 서버가 힘들어하는 사태보다는 낫다고 할 수 있다. 정보가 필요한 곳에 전달되고 업무는 완수된다. 하지만 비용 문제가 예상을 넘어설 수 있다. 과부하에 걸린 로컬 서버의 문제는 전체적으로 작업 속도가 느려지거나 404 오류가 발생하는 것에 그치는 반면, 클라우드에서는 청구 비용이 급등하여 순식간에 한달 예산이 날아가기도 한다.

지금까지 많은 사람들이 이러한 문제를 겪었다. 개발자가 자신의 부업을 위해 기업 클라우드를 이용하다가 요금 폭탄이 터진 사례도 있었다. 이러한 이유로 클라우드 제공업체들은 사용자가 예산을 설정하고 비용 초과 알림을 요청할 수 있는 통제장치를 마련했지만, 근본적인 아키텍처 상의 문제는 해결되지 않는다. 클라우드의 관대한 확장성을 활용하려고 앱을 재설계했다면 청구 비용 역시 한없이 늘어날 수 있다는 뜻이다. 세상에 공짜는 없는 법이다.

쓸데없는 데이터 모아두기
백업본 저장은 데이터 보호 측면에서 좋은 습관이다. 직접 소유한 RAID 어레이에 기업 데이터가 저장되어 있으면 해당 데이터의 비용과 용량은 커지지 않고 통제된다. 반면, 클라우드 내 어딘가의 버킷 콜렉션에 데이터가 저장되어 있는 경우라면 중요한 로그 파일이나 정보를 파악하기가 훨씬 더 어려워진다.

클라우드 서비스 배치에 나선 조직들은 대부분 모든 것을 보관하는 습관에 빠지곤 한다. 혹시 모르니까 데이터를 모조리 보관하는 편이 더 쉬워 보이기 때문이다. 그러나 푼돈도 계속 쌓이면 커지게 되고 데이터 삭제는 어려운 결정으로 변모한다. 클라우드에 저장된 데이터를 뒤져 중요한 부분을 찾아내는 일은 엄청나게 수고스러울 수 있다. 개인정보보호 규정의 도입과 보안 해커들의 등장으로 상황은 더 심각해졌다. 하기 쉽다는 이유로 무제한 용량의 클라우드에 고객 정보를 ‘혹시 모르니까’ 모조리 저장하다 보면 나중에 큰 코 다칠 수 있기 때문이다.

즉 저장 버킷을 새로 만들기 쉽다면 나중에 이를 뒤지고 안전을 유지해야 할 번거로움이 생기기도 쉽다.

과다한 프로비저닝
시스템 용량이 부족하거나 RAM이 부족해서 제대로 작동하지 않으면 당장 소프트웨어 속도가 느려지거나 갑자기 꺼지기 때문에 금방 알 수 있다. 반면, RAM이 지나치게 많은 경우에는 아무도 불만을 제기하지 않는다. 이러한 이유로 클라우드 시스템은 점점 늘어나고 낭비되는 경향이 있다. 주말에 일이 많아서 누군가가 RAM 할당을 올려 놓았는데 나중에 나사를 다시 조이는 사람이 아무도 없다면, 앞으로 전혀 필요 없을지도 모르는 간접비를 지불하는 셈이 된다.

어떤 팀은 한도 모니터링 업무를 전담할 사람을 1명 두기도 하는데 팀이 비대해질 뿐이다. 프로비저닝이 과도한 몇 개의 시스템과 이러한 시스템을 제어할 신규 팀원 중에서 어느 쪽이 싸게 먹힐까?

간단하게 클릭만으로 가동되는 점
클라우드 제공업체 대시보드를 활용하면 개발자나 기업 사용자 할 것 없이 아주 쉽게 클릭 몇 번만으로 새로운 컴퓨터를 가동시킬 수 있다. 게다가, 비용은 시간 당 몇 원에 불과하다. 이왕이면 깨끗한 컴퓨터 클러스터에서 코드를 시험해 보는 것이 낫지 않을까? 

누구나 하드웨어 매입의 번거로움을 잘 알고 있다. 그러나 클라우드 비용을 낮게 유지하는 것도 쉽지 않다. 그러나 공짜 음식이나 과자가 순식간에 사라지는 것처럼 빠른 클릭 몇 번만으로 월간 클라우드 청구 비용이 2~3배 늘어날 수도 있다.
  유령 업무
클라우드 회사들 입장에서는 대부분 잠자듯 조용히 있는 시스템이 반가울 수 있다. 사용되지 않은 사이클을 다른 인스턴스들에게 넘겨줌으로써 추가 수익을 올릴 수 있기 때문이다. 다른 고객을 만족시킬 수 있는데 굳이 사용되지 않은 상태로 내버려 둘 필요는 없는 것이다.

그런데 이렇게 잠자던 시스템이 깨어나면 자기 몫의 하드웨어가 다시 필요해진다. 다른 시스템들이 누리던 쾌적한 자원 상태에 변화가 생긴다. 어제까지만 해도 빠르게 실행되던 코드가 느려지는 식이다. 작업이 느려진 사용자에게 어제 누렸던 빠른 속도가 은밀한 선물이었다고 말해봤자 원성만 들을 것이다. 

정보 이동 비용
모든 클라우드 계약에서 가장 간과되는 부분 가운데 하나는 데이터 이동 비용이다. 컴퓨터에만 집중하고 정보의 이동에 대해서는 잊어버린다. 

대부분의 경우에 잊어버릴 수는 있다. 보통의 인스턴스는 데이터 이동이라는 문턱을 넘지 않기 때문에 많은 개발자들이 전달 비용에 대해 생각조차 하지 않는다. 그러나 해당 웹사이트에 방문자가 폭주하기라도 하면 한 달 후에 깜짝 놀랄 청구서가 날아들고 만다. 설계를 제대로 했다면 막대한 작업량도 캐시에서 잘 처리되므로 시스템은 문제없이 동작한다. 그러나 해당 시스템에서 흘러나가는 정보의 바이트 수에 따라 비용이 청구되는 경우 재난이 터진다.

터무니없는 요금 폭탄은 예상하기 어렵다. 똑똑한 개발자들이라면 여러 로컬 시험용 봇을 가동해 시스템에 가차없이 신호를 보내는 방식으로 시험해 볼 것이다. 해당 코드의 품질을 시험하되 높은 정보 이동 비용은 일으키지 않는 방법이다.

모호한 물리적 위치
자체 데이터센터를 사무실 복도에 설치하는 회사가 있는가 하면 건물을 통째로 사들이는 회사도 있다. 어쨌든 서버의 실제 위치를 확인할 수 있다. 반면, 클라우드 시스템이 임대된 장소에 대한 정보는 어느 주 또는 국가인지 정도에 그친다. 프로그래머들 입장에서는 네트워크 연결 속도가 빠르기만 하다면 상관하지 않을지 있다. 그러나 변호사들은 어떤 주체의 관리 범위에 해당하는지를 두고 수년간 논쟁을 벌일 수 있다.

클라우드 내 데이터와 애플리케이션의 위치는 놓치기 쉽다. 대부분의 사람들은 신경 쓰지 않으며 클라우드 제공업체는 보안상의 이유로 일부러 모호하게 하는 경우가 많다. 그런데 혹시 팀에 법적인 문제를 신경 쓰는 사람이 있다면 적절한 규제 범위하에서 인스턴스를 활성화하기를 원할 것이다.

궁극적인 통제권
서버실이나 코로케이션의 랙에 열쇠를 갖고 있다면 서버는 사용자의 소유이다. 사용자가 곧 책임자인 것이다. 반면, 클라우드의 인스턴스들은 다른 사람의 소유이며 호스팅 된 대상의 운명은 그들 마음대로 결정할 것이다. 물론, 만사가 원활히 진행되고 있을 때는 문제가 없다. 그러나 자연 재해나 법적 분쟁과 같은 압박 상황에서 이야기가 달라진다. 정부 소속 수사관이 사용 기업의 데이터를 요구하는 경우에 사용 기업과 기업의 변호사는 통보조차 받지 않을 수 있다.

사용자에게 불리한 서비스 약관
서비스 약관은 클라우드 회사들이 작성하며, 사용 기업은 큰 비용을 지불하는 것이 아닌 이상 협상의 여지가 없다. 문제는 약관 작성자들이 자신에게 유리하게 약관을 작성한다는 점이다.

일례로 AWS 서비스 약관에는 다음과 같은 조항이 있다. 

“31.3. 사용자의 메일 도메인과 최종사용자 계정들은 도착 이메일 서버에 의해, 그리고 사용자가 통제할 수 없는 기타 사유로 인해, 전달이 차단되거나 지연 또는 중단될 수 있다. 사용자 이메일의 전달이 중단되거나 지연 또는 차단되더라도 사용자의 비용 지불 의무는 계속된다.”

물론 회사 복도에 설치된 이메일 서버의 경우에도 비슷한 문제가 생긴다. 서버가 작동하지 않아도 요금은 내야 한다. 그래도 차단된 서비스에 요금이 청구된다는 것은 분통터지는 일이다.

예상치 못한 정리
모든 클라우드 서비스는 먼지 쌓이고 곰팡이가 핀 프로젝트를 싹 정리해주곤 한다. 그렇게 해야만 하는 이유는 사람들이 늘 클라우드 인스턴트로 실험을 하고는 실험 자체나 장소를 잊어버리기 때문이다. 그런데 문제는 클라우드 제공업체들이 이 정리 서비스를 사용자의 일정이 아닌 자체 일정에 따라 수행한다는 점이다.

예를 들어 AWS는 지난 3개월동안 호출되지 않은 람다 함수를 전부 삭제해 준다고 약속한다. AWS 람다 함수를 구축해 놓고 모종의 이유로 보류해 둔 팀이라면 반드시 이 기한을 기억해야한다.
  ciokr@idg.co.kr
 



2020.02.13

‘달콤한 약속 이면에는…’ 클라우드 이용 시 주의점 10가지

Peter Wayner | CIO
IT 리더라면 클라우드의 가치 제안에 익숙할 것이다. 클라우드는 자원을 쉽게 공유하고 변화하는 부하와 요구에 신속하게 적응하도록 돕는 한편, 독자적인 장비 구매 및 관리 필요성을 제거함으로써 시간과 비용을 절약할 수 있게 해준다. 그러나 각종 단점과 함정 또한 존재한다. 특히 클라우드에서만 나타나는 고유한 문제들도 있다. 주의를 기울여야 할 10가지를 정리했다. 
 
ⓒ Image Credit : Getty Images Bank

고삐 풀린 비용
수요가 늘어나면 클라우드는 자동으로 새로운 시스템을 스핀 업 할 수 있다. 단, 그럴 경우, 보이지 않는 곳에서 요금이 빠르게 올라갈 수 있다는 점에 유의해야 한다.

작업량에 유연하게 대처하는 것이 과부하로 인해 벽장 안 구형 서버가 힘들어하는 사태보다는 낫다고 할 수 있다. 정보가 필요한 곳에 전달되고 업무는 완수된다. 하지만 비용 문제가 예상을 넘어설 수 있다. 과부하에 걸린 로컬 서버의 문제는 전체적으로 작업 속도가 느려지거나 404 오류가 발생하는 것에 그치는 반면, 클라우드에서는 청구 비용이 급등하여 순식간에 한달 예산이 날아가기도 한다.

지금까지 많은 사람들이 이러한 문제를 겪었다. 개발자가 자신의 부업을 위해 기업 클라우드를 이용하다가 요금 폭탄이 터진 사례도 있었다. 이러한 이유로 클라우드 제공업체들은 사용자가 예산을 설정하고 비용 초과 알림을 요청할 수 있는 통제장치를 마련했지만, 근본적인 아키텍처 상의 문제는 해결되지 않는다. 클라우드의 관대한 확장성을 활용하려고 앱을 재설계했다면 청구 비용 역시 한없이 늘어날 수 있다는 뜻이다. 세상에 공짜는 없는 법이다.

쓸데없는 데이터 모아두기
백업본 저장은 데이터 보호 측면에서 좋은 습관이다. 직접 소유한 RAID 어레이에 기업 데이터가 저장되어 있으면 해당 데이터의 비용과 용량은 커지지 않고 통제된다. 반면, 클라우드 내 어딘가의 버킷 콜렉션에 데이터가 저장되어 있는 경우라면 중요한 로그 파일이나 정보를 파악하기가 훨씬 더 어려워진다.

클라우드 서비스 배치에 나선 조직들은 대부분 모든 것을 보관하는 습관에 빠지곤 한다. 혹시 모르니까 데이터를 모조리 보관하는 편이 더 쉬워 보이기 때문이다. 그러나 푼돈도 계속 쌓이면 커지게 되고 데이터 삭제는 어려운 결정으로 변모한다. 클라우드에 저장된 데이터를 뒤져 중요한 부분을 찾아내는 일은 엄청나게 수고스러울 수 있다. 개인정보보호 규정의 도입과 보안 해커들의 등장으로 상황은 더 심각해졌다. 하기 쉽다는 이유로 무제한 용량의 클라우드에 고객 정보를 ‘혹시 모르니까’ 모조리 저장하다 보면 나중에 큰 코 다칠 수 있기 때문이다.

즉 저장 버킷을 새로 만들기 쉽다면 나중에 이를 뒤지고 안전을 유지해야 할 번거로움이 생기기도 쉽다.

과다한 프로비저닝
시스템 용량이 부족하거나 RAM이 부족해서 제대로 작동하지 않으면 당장 소프트웨어 속도가 느려지거나 갑자기 꺼지기 때문에 금방 알 수 있다. 반면, RAM이 지나치게 많은 경우에는 아무도 불만을 제기하지 않는다. 이러한 이유로 클라우드 시스템은 점점 늘어나고 낭비되는 경향이 있다. 주말에 일이 많아서 누군가가 RAM 할당을 올려 놓았는데 나중에 나사를 다시 조이는 사람이 아무도 없다면, 앞으로 전혀 필요 없을지도 모르는 간접비를 지불하는 셈이 된다.

어떤 팀은 한도 모니터링 업무를 전담할 사람을 1명 두기도 하는데 팀이 비대해질 뿐이다. 프로비저닝이 과도한 몇 개의 시스템과 이러한 시스템을 제어할 신규 팀원 중에서 어느 쪽이 싸게 먹힐까?

간단하게 클릭만으로 가동되는 점
클라우드 제공업체 대시보드를 활용하면 개발자나 기업 사용자 할 것 없이 아주 쉽게 클릭 몇 번만으로 새로운 컴퓨터를 가동시킬 수 있다. 게다가, 비용은 시간 당 몇 원에 불과하다. 이왕이면 깨끗한 컴퓨터 클러스터에서 코드를 시험해 보는 것이 낫지 않을까? 

누구나 하드웨어 매입의 번거로움을 잘 알고 있다. 그러나 클라우드 비용을 낮게 유지하는 것도 쉽지 않다. 그러나 공짜 음식이나 과자가 순식간에 사라지는 것처럼 빠른 클릭 몇 번만으로 월간 클라우드 청구 비용이 2~3배 늘어날 수도 있다.
  유령 업무
클라우드 회사들 입장에서는 대부분 잠자듯 조용히 있는 시스템이 반가울 수 있다. 사용되지 않은 사이클을 다른 인스턴스들에게 넘겨줌으로써 추가 수익을 올릴 수 있기 때문이다. 다른 고객을 만족시킬 수 있는데 굳이 사용되지 않은 상태로 내버려 둘 필요는 없는 것이다.

그런데 이렇게 잠자던 시스템이 깨어나면 자기 몫의 하드웨어가 다시 필요해진다. 다른 시스템들이 누리던 쾌적한 자원 상태에 변화가 생긴다. 어제까지만 해도 빠르게 실행되던 코드가 느려지는 식이다. 작업이 느려진 사용자에게 어제 누렸던 빠른 속도가 은밀한 선물이었다고 말해봤자 원성만 들을 것이다. 

정보 이동 비용
모든 클라우드 계약에서 가장 간과되는 부분 가운데 하나는 데이터 이동 비용이다. 컴퓨터에만 집중하고 정보의 이동에 대해서는 잊어버린다. 

대부분의 경우에 잊어버릴 수는 있다. 보통의 인스턴스는 데이터 이동이라는 문턱을 넘지 않기 때문에 많은 개발자들이 전달 비용에 대해 생각조차 하지 않는다. 그러나 해당 웹사이트에 방문자가 폭주하기라도 하면 한 달 후에 깜짝 놀랄 청구서가 날아들고 만다. 설계를 제대로 했다면 막대한 작업량도 캐시에서 잘 처리되므로 시스템은 문제없이 동작한다. 그러나 해당 시스템에서 흘러나가는 정보의 바이트 수에 따라 비용이 청구되는 경우 재난이 터진다.

터무니없는 요금 폭탄은 예상하기 어렵다. 똑똑한 개발자들이라면 여러 로컬 시험용 봇을 가동해 시스템에 가차없이 신호를 보내는 방식으로 시험해 볼 것이다. 해당 코드의 품질을 시험하되 높은 정보 이동 비용은 일으키지 않는 방법이다.

모호한 물리적 위치
자체 데이터센터를 사무실 복도에 설치하는 회사가 있는가 하면 건물을 통째로 사들이는 회사도 있다. 어쨌든 서버의 실제 위치를 확인할 수 있다. 반면, 클라우드 시스템이 임대된 장소에 대한 정보는 어느 주 또는 국가인지 정도에 그친다. 프로그래머들 입장에서는 네트워크 연결 속도가 빠르기만 하다면 상관하지 않을지 있다. 그러나 변호사들은 어떤 주체의 관리 범위에 해당하는지를 두고 수년간 논쟁을 벌일 수 있다.

클라우드 내 데이터와 애플리케이션의 위치는 놓치기 쉽다. 대부분의 사람들은 신경 쓰지 않으며 클라우드 제공업체는 보안상의 이유로 일부러 모호하게 하는 경우가 많다. 그런데 혹시 팀에 법적인 문제를 신경 쓰는 사람이 있다면 적절한 규제 범위하에서 인스턴스를 활성화하기를 원할 것이다.

궁극적인 통제권
서버실이나 코로케이션의 랙에 열쇠를 갖고 있다면 서버는 사용자의 소유이다. 사용자가 곧 책임자인 것이다. 반면, 클라우드의 인스턴스들은 다른 사람의 소유이며 호스팅 된 대상의 운명은 그들 마음대로 결정할 것이다. 물론, 만사가 원활히 진행되고 있을 때는 문제가 없다. 그러나 자연 재해나 법적 분쟁과 같은 압박 상황에서 이야기가 달라진다. 정부 소속 수사관이 사용 기업의 데이터를 요구하는 경우에 사용 기업과 기업의 변호사는 통보조차 받지 않을 수 있다.

사용자에게 불리한 서비스 약관
서비스 약관은 클라우드 회사들이 작성하며, 사용 기업은 큰 비용을 지불하는 것이 아닌 이상 협상의 여지가 없다. 문제는 약관 작성자들이 자신에게 유리하게 약관을 작성한다는 점이다.

일례로 AWS 서비스 약관에는 다음과 같은 조항이 있다. 

“31.3. 사용자의 메일 도메인과 최종사용자 계정들은 도착 이메일 서버에 의해, 그리고 사용자가 통제할 수 없는 기타 사유로 인해, 전달이 차단되거나 지연 또는 중단될 수 있다. 사용자 이메일의 전달이 중단되거나 지연 또는 차단되더라도 사용자의 비용 지불 의무는 계속된다.”

물론 회사 복도에 설치된 이메일 서버의 경우에도 비슷한 문제가 생긴다. 서버가 작동하지 않아도 요금은 내야 한다. 그래도 차단된 서비스에 요금이 청구된다는 것은 분통터지는 일이다.

예상치 못한 정리
모든 클라우드 서비스는 먼지 쌓이고 곰팡이가 핀 프로젝트를 싹 정리해주곤 한다. 그렇게 해야만 하는 이유는 사람들이 늘 클라우드 인스턴트로 실험을 하고는 실험 자체나 장소를 잊어버리기 때문이다. 그런데 문제는 클라우드 제공업체들이 이 정리 서비스를 사용자의 일정이 아닌 자체 일정에 따라 수행한다는 점이다.

예를 들어 AWS는 지난 3개월동안 호출되지 않은 람다 함수를 전부 삭제해 준다고 약속한다. AWS 람다 함수를 구축해 놓고 모종의 이유로 보류해 둔 팀이라면 반드시 이 기한을 기억해야한다.
  ciokr@idg.co.kr
 

X