Application Infrastructure - Cloud (1)

Violet_Evgadn·2023년 4월 24일
0

Cloud Native Architecture

목록 보기
13/16

Cloud

Cloud란?

Cloud Computing은 인터넷 기반의 컴퓨팅으로써 인터넷을 통해 돈을 지불하여 필요한 만큼의 IT 자원을 제공받는 것을 말한다.

Cloud를 직역하면 "구름"이라는 의미를 가지는데, 마치 구름에 가린 것처럼 실제로는 보이지 않는 컴퓨팅 자원(CPU, 메모리, 디스크 등)이지만 구름 너머에는 실제로 존재하기 때문에 필요할 때마다 가져다 쓸 수 있는 서비스라는 의미를 가진다.

1965년 미국의 컴퓨터학자 존 맥카시가 "미래의 컴퓨팅 환경은 공공시설을 사용하는 것과도 같을 것"이라는 말을 했었는데, 이 말에서 공공시설(IT 자원)을 활용하는 것이 바로 Cloud Computing이라고 이해하면 될 것이다.

Cloud Computing을 활용할 경우 물리적 Data Center나 서버를 구입 및 유지보수 필요성이 없어지며 AWS와 같은 클라우드 공급자에게 필요한 만큼의 비용만 지불하면 서버를 즉시 활용할 수 있다.

인터넷이 연결되어 있다면 적은 비용으로도 언제 어디서든 컴퓨팅 자원을 활용할 수 있고 IT 자원을 클라우드 공급자 측에서 알아서 관리해주기 때문에 Data Center를 직접 운영하는 데에 있어 드는 비용 및 관리 문제에 대해 고민할 필요가 없기 때문에 큰 인기를 끌고 있다.

Cloud Computing의 확산 이유

비용 절감의 필요성

1997년 아시아 외한 위기를 시작으로 2008년 세계 금융위기까지 불황과 저성장으로 인하여 기업 측면에서 비용 절감의 필요성이 커졌다.

특히 Data Center를 운영하는 데에 많은 비용이 소모되기 때문에 데이터 센터나 전산실을 직접 운영하는 것에 대한 비용 절감이 매우 필요해진 상황이 되었다.

거기에다가 스마트폰이 보급되면서 Data Center가 저장해야 하는 데이터의 양이 기하급수적으로 늘어났고, Data Center의 운영 난이도가 더욱 올라갔다.

즉 Cloud Computing이라는 유연한 확장성을 가지며 Data Center를 직접 운영하는 것에 대한 부담을 없앨 수 있는 대안이 유명해진 것이다.

인식의 전환

예전에는 Data Center를 통해 내가 운영하는 서버를 "소유"해야 한다고 생각했다.

따라서 모든 기업에서 돈이 들더라도 Data Center를 직접 운영함으로써 HW 및 서버에 대해 최상위 권한을 가지고 직접 관리를 해야 한다는 생각이 강했으며, 이에 따라 Cloud라는 "대여" 개념이 잘 받아들여지지 않았다.

하지만 시간이 지나고 IT 자원을 "대여"하여 활용한다는 인식으로 기업들의 생각이 전환되었다.

IT 자원을 직접 관리하니 너무 많은 비용이 들고, 난이도도 높았으며, 직접 관리하는 것이 곧 안정성이 높다는 의미가 아니라는 것을 알게 되었다.

기업들은 다른 업체에서 잘 관리되고 있는 IT 자원을 대여하는 것이 더 좋다는 생각으로 인식의 전환이 발생하였으며 이때부터 IT 자원을 대여하는 Cloud 시스템이 각광을 받기 시작했다.

기술의 발전

HW 및 SW 기술이 급속히 발전하면서 Cloud 기술 자체가 증가한 것도 Cloud Computing이 각광을 받은 이유 중 하나이다.

클라우드 컴퓨팅에 꼭 필요한 가상화 기술과 분산처리 기술, 사용자 목적에 맞는 다양한 DB 기술이 발전하면서 이전에는 이론적으로만 존재했던 Cloud Computing을 실현할 수 있게 된 것이다.

또한 빅데이터 처리 기술 및 인공지능 기술의 발전으로 IT 업계의 Trend가 진화하였으며, 인공지능과 빅데이터 처리에 필요한 유연한 확장성의 특징을 가장 잘 지니고 있는 Cloud Computing이 인기를 끌게 된 것이다.


Cloud의 장점

줄어드는 Data Center 운영 부담

Cloud는 개발 환경 구성에 필요한 IT 자원들을 대여하기 때문에 HW, SW의 구매 및 유지보수에 필요한 비용 및 자원을 많이 절약할 수 있다. 따라서 Data Center 운영에 대한 부담이 적으며 동시에 Server 관리를 직접 해줄 필요성이 없으므로 서비스 운영에 자원을 더 투자할 수 있게 된다.

또한 Cloud 제공 업체는 DB 및 빌드/배포 서비스 같은 운영에 필요한 설정들을 적용시킨 완성형 서버를 제공하기 때문에 서버에 대한 어려운 설정 과정이 필요 없어 신속하게 개발 및 운영 시스템을 구성할 수 있으며 자연스럽게 서비스를 제공하는 시기를 앞당길 수 있다.

장소의 제약이 적음

Data Center의 큰 단점 중 하나는 아마 장소의 제약일 것이다. 자연재해가 거의 발생하지 않아야 하고, 발생하더라도 안전이 보장되야한다. 너무 높거나 낮은 곳에 있어도 문제가 생길 수 있고, 습도나 온도에도 큰 영향을 받는다.

하지만 Cloud는 이런 장소의 제약이 거의 없다.

IT 장비들을 인터넷을 통해 빌리는 형식이므로 인터넷만 되는 곳이라면 Cloud 서비스를 활용할 수 있게 되는 것이다.

인터넷만 되면 장소뿐만 아닌 기기도 제한되지 않기 때문에 다양한 단말기를 통해 어디서든 접근이 가능해지며, 이는 생산성 향상에 큰 도움을 준다.

이런 장소의 제약은 글로벌 서비스가 쉬워진다는 장점 또한 가지고 온다.

Data Center의 경우 서비스 대상으로 하는 국가에 건설되어야 한다는 장소적 제한점이 너무 컸다. 따라서 한국에서 미국인을 대상으로 하는 SW를 개발하고 싶을 경우 직접 미국에 Data Center를 구축하여 SW를 배포시켜야 했다.

하지만 클라우드 제공 업체는 전 세계에 데이터 센터를 갖추고 있기 때문에 사용자는 서비스를 제공하고 싶은 국가와 가장 가까운 데이터 센터를 활용해 즉시 글로벌 서비스를 제공할 수 있다.

따라서 규모가 큰 기업뿐만이 아닌 규모가 작은 스타트업도 Data Center를 외국에 설치하는 시간과 비용을 줄일 수 있어 더욱 원활한 글로벌 서비스 제공이 가능해진 것이다.

유동적인 확장성

Cloud는 데이터 사용량이나 Traffic이 많아질 경우 단시간에 서버를 증설할 수 있는 시스템이다.

빠른 서버 증설이 가져다주는 좋은 확장성과 탄력성은 안정적인 서비스를 운영할 수 있게 해 준다.

이런 유동적인 확장성은 과거에 비교했을 때 매우 매력적인 장점이다.

과거에는 Infra를 도입하기에 앞서 어느 정도 Traffic이 예상되는지, 그리고 어느 정도의 데이터가 쌓일지를 예측하여 Data Center를 구축하였다. 문제는 이렇게 예측한 정보가 꼭 정답은 아니라는 것이다.

Traffic이나 데이터의 생성량이 예측보다 적을 경우 그나마 돈 낭비했다 정도로만 끝나지만(사실 이것도 문제다...) 만약 예측보다 많이 발생할 경우 문제가 커진다. 서비스 제공자는 안정적인 서비스를 제공해야 할 의무가 있기 때문에 과도한 Traffic 및 데이터에 대응하기 위하여 빠르게 서버를 증설해야 한다.

문제는 전통적인 Data Center를 활용할 경우 서버를 증설하기 위해서는 먼저 HW를 사야 하고, HW를 산 이후 필요한 SW를 설치해야 하며, 보안 설정도 수행해야 하는 등 확장에 난점이 매우 많았다. 심지어 확장한 서버에서 Application이 정상적으로 작동되지 않을 가능성도 존재했다. 이런 낮은 확장성은 꽤나 심각한 문제였는데, 최근에는 SW를 활용할 수 있는 단말기가 많아졌고 데이터의 생성양 자체도 급격히 증가하였기 때문에 Traffic 및 데이터 생성량 예측이 더욱 어려워졌으며 이는 안정적인 서비스 제공을 힘들게 하는 요인이 되었다.

하지만 Cloud는 이런 단점을 해결할 수 있다.

만약 서버의 Infra가 부족하다면 부족한 Infra만큼 클라우드 제공 업체에서 돈을 주고 빌려오기만 하면 바로 해결된다. 또한 Infra가 처음 예상한 것보다 남는다면 남는 만큼의 Infra를 반납함으로써 경제적 손실을 최소화시킬 수 있다

또한 Traffic이 폭주할 경우 즉시 Infra를 늘릴 수 있어 최대한 빠르게 Infra 확장이 가능해지며, 이는 빠른 Traffic 폭주 문제의 해결을 가지고 온다. 최근 기업들은 Cloud와 함께 "오트 스케일링"이라는 기법을 활용해 트래픽의 양에 따라 자동으로 인프라를 조절하는 기술을 활용하여 Traffic 문제를 수월하게 처리할 수 있게 되었다.


Cloud 서비스 단점

클라우드 서비스 제공 업체에 대한 의존성

Cloud 서비스는 IT 장비를 빌려오는 개념이므로 당연히 빌려주는 업체의 기술력에 의존도가 커질 수밖에 없다.

Cloud 제공 업체가 가격을 올리더라도 쉽게 다른 대안책을 고려하는 것이 힘들어지고, Cloud 업체가 보안적으로 뚫렸을 경우에는 해당 Cloud를 사용하는 모든 업체가 위험해지는 것이다.

특히 Cloud 서비스 업체가 확실하게 안정적인 서비스 제공을 보장하는 것이 아니라는 사실이 중요하다.

아마존·CNN·르몽드 등 수십개 웹사이트 '먹통' 원인은? - 뉴스로드

실제로 위 기사처럼 클라우드 서비스 제공에 관련된 업체 중 문제가 발생할 경우 서비스 제공 업체에서는 잘못한 것이 아무것도 없지만 문제를 실제로 해결할 수 없게 되고, 이는 큰 경제적 손실로 이어지게 된다.

이런 의존성은 클라우드 서비스를 한 번 활용하면 벗어나기가 쉽지 않다는 단점도 가져온다.

클라우드를 이용할 경우 Infra 관리가 필요하지 않다는 장점이 존재한다.

당연히 이윤을 추구하는 기업 입장에서는 Infra 관리자를 최소화하거나 심지어는 아예 고용하지 않을 것이다. 그리고 이런 기업들은 나중에 클라우드를 사용하지 않으려 해도 Infra 인력이 없으므로 탈출이 어려워진다. 또한 서비스를 제공할 때 Cloud 업체가 제공하는 기술을 많이 활용할수록 대체해야 하는 기술도 많아지기 때문에 클라우드 서비스 사용 중단이 어려워지는 것이다.

Blackbox 문제

클라우드 서비스 제공자 입장에서는 보안적인 이슈로 인해 사용자에게 접근 범위를 제한할 수밖에 없다.

즉, 클라우드 서비스를 사용하는 사람들은 권한 부족으로 인해 사용하는 서버의 모든 장소에는 접근할 수가 없다.

그런데 만약 권한 부족으로 인해 접근하지 못하는 부분에 의해서 서버 문제가 발생하였을 경우 어떻게 해야 할까?

이렇듯 장애가 발생하였지만 클라우드 서비스 제공자가 준 권한으로는 접근할 수 없어 직접적인 해결이나 문제 원인 분석이 불가능한 문제를 Blackbox(블랙박스) 문제라고 하는데, Cloud는 이런 문제가 발생할 가능성이 존재한다.


Cloud 쟁점

Cloud는 다른 점들과는 다르게 "쟁점"이라는 Section을 준비했다.

Cloud는 장점이 매우 많은 기술이지만, 모든 기술이 그렇듯 단점 또한 존재한다.

그런데 Cloud는 다른 기술과는 다르게 장점임과 동시에 단점이 되는 부분이 많이 존재한다. 따라서 이런 장점이자 단점이 되는 부분들을 "쟁점"이라는 Section으로 정리해보았다.

보안

클라우드는 가상화 기분을 통해 IT 자원을 사용자에게 제공한다.

이는 물리적으로 IT 자원을 분리한 것이 아니기 때문에 가상화 기술의 취약점이 곧 보안 취약점으로 확산될 수 있으며 보안 문제가 발생한 기기뿐만이 아닌 연결된 다른 기기까지 위험해진다는 보안적 위험성을 가져오게 된다.

또한 데이터에 대한 보안적 우려도 존재한다.

클라우드를 이용할 경우 많은 기업의 비즈니스 정보가 클라우드에 보관될 수밖에 없다. 물론 클라우드 사업자들은 고객의 데이터를 안전히 보관하고 있으며 내부에서도 보지 않고 외부에 제공하지 않는다고 하지만 기업 입장에서는 데이터 관리에 외부적 요인이 추가된 것이므로 데이터의 외부 유출에 대해서 불안할 수 있다.

하지만 이 점에 대해서는 보안 문제가 클라우드 만의 문제라고 볼 수 없다는 주장이 나온다.

클라우드 서비스 제공 업체가 보안 공격을 당해서 손해가 발생했을 때, 과연 직접 Data Center를 운영했을 때는 보안 공격을 막아낼 수 있을 것이라고 확신할 수 있을까?

클라우드 서비스 제공 업체는 자신들의 보안이 곧 수많은 고객들의 보안 문제와 연결될 수 있음을 인지하고 더욱 전문적인 보안 전문가를 채용하고 보안에 큰돈을 쏟는다.

그렇기 때문에 Cloud 사용자는 항상 최신 보안 기술을 활용할 수 있으며 보안에 큰돈을 쏟지 않아도 Cloud 제공 업체에서 제공하는 보안에 의하여 어느 정도의 보안성을 가질 수 있게 되는 것이다.

즉, 직접 Data Center를 운영할 때 클라우드 서비스 제공 업체보다 더 뛰어난 보안 안정성을 가진다는 것을 보장할 수 없는 것이다. 오히려 클라우드 서비스 제공 업체라는 거대하고 다수의 사용자에게 돈을 받는 대기업이 큰돈을 투자하여 구축한 보안만큼의 보안 시스템을 구축하지 못할 가능성이 훨씬 높다.

이런 이유에서 기업들 또한 클라우드 관련 보안 사고가 발생하더라도 클라우드 서비스를 이탈하는 경우가 드물다.

기업들도 자신이 직접 서버를 운영한다 하더라도 클라우드 제공 업체만큼의 보안을 구축할 수 없음을 인지하고 있기 때문에 어느 정도 타협하며, 보안 문제가 발생했을 때도 클라우드 제공 업체에게 책임을 떠넘길 수 있다는 점도 사용 이유 중 하나라고 생각할 수 있다.

비용

클라우드 서비스는 비용적으로 효율적인 기술이라고 생각하는 사람이 많다.

실제로 위에서 말했듯 Cloud는 유연한 확장성과 탄력성을 가지고 있기 때문에 사용하지 않는 Infra에 투자되는 돈을 줄임으로써 비용 낭비를 최소화시킬 수 있다는 장점을 가진다. 또한 Data Center 같은 Infra를 직접 구축하지 않아도 되기 때문에 구축에 드는 비용을 절감할 수 있으며 Infra 기술자가 없어도 서비스를 운영할 수 있으므로 인적 자원에 드는 비용도 줄일 수 있는 장점을 가진다.

하지만 Cloud는 결코 저렴한 서비스가 아니라는 점을 인지해야 한다.

Cloud를 활용하면 구축 비용 자체는 줄어들 수 있지만 서비스 운영 비용을 줄여주지는 않는다. 클라우드 서비스는 구독형 서비스인 경우가 많기 때문에 주기적으로 서버 사용에 대한 비용을 지출해야 한다.

실제로 클라우드 서비스 이용료보다는 Hosting 업체 이용료가 더 저렴한 경우도 많다.

플랫폼 서비스나 클라우드가 제공하는 기술을 많이 활용할수록 클라우드 이용 비용이 더욱 커진다는 점도 간과해서는 안된다.

또한 이미 Hosting 업체나 직접 Data Center를 활용하고 있는 기업 입장에서는 추가적인 비용이 소모된다.

리너 기업들은 막대한 비용과 시간을 들여 미리 구축해있던 서비스를 클라우드 기반으로 전환해야 한다. 이 과정에서 데이터도 이동시켜야 하고 관련된 부서와 조직 자체를 모두 변경시켜야 하기 때문에 비용이 추가적으로 소모된다.

실제로 Netflix 같은 경우 2008년부터 7년에 걸쳐 Cloud로 전환하며 이런 비용을 모두 감수하였다.

즉, 클라우드 서비스는 비용의 효율성을 따지자면 높은 것은 맞지만 결코 가격이 저렴한 서비스 방법은 아니라는 것을 알아야 하며, 이 때문에 비용적으로 무조건 이득인 기술이라고 말할 수 없는 것이다.

(사용량 비례로 돈을 지불하는 클라우드 서버 비용을 조금이라도 줄이기 위해 1개 서비스의 크기가 크지 않아 사용량이 적어 조금이라도 클라우드 사용비를 줄일 수 있는 MSA가 유명해지게 된 것이다)

profile
혹시 틀린 내용이 있다면 언제든 말씀해주세요!

0개의 댓글