오늘날 클라우드 컴퓨팅은 대기업이건, 스타트업이건, 상당수의 회사에서 채택하고 있다. 운영비용 절감, 유지보수 절감을 비롯하여, 클라우드 공급자의 도움으로 데이터 용량이 늘어나기 때문에 많은 회사들이 계속해서 클라우드 컴퓨팅으로 이동하고 있다. 기업의 온프레미스 서버에서 클라우드 공급자로 말이다. 이처럼 급격하게 변화하는 또 다른 이유는 Pay as you go 원칙 기반 서비스, 즉 사용 중인 서비스에 대한 비용만 지불하면 된다는 것이다. 온프레미스 서버가 가지고 있는 최대 단점 중 하나는 서버를 사용하지 않는 경우에도 회사가 비용을 지불해야 한다는 것인데, 이걸 해결해주는 것이 클라우드인 것이다. 기존에 클라우드가 등장하지 않았을 때의 상식이 클라우드 이후로 깨졌으니, 온프레미스에서 돈을 지불하는 것에 아까워하는 것은 당연지사이다.
1. 클라우드 컴퓨팅의 개념
클라우드 컴퓨팅은 컴퓨터의 하드 드라이브나 로컬 서버 대신 인터넷으로 호스팅되는 원격 서버에 데이터와 프로그램을 저장하고 액세스하는 것을 의미한다. 클라우드 컴퓨팅은 인터넷 기반 컴퓨팅이라고도 불리며, 사용자에게 인터넷을 통해 서비스로 자원이 제공되는 기술이다. 저장되는 데이터는 파일, 이미지, 문서 또는 기타 저장 가능한 문서일 수 있다. 결국 우리가 다루는 사실상의 모든 것이라고 생각하면 된다.
2. 클라우드에서의 가상화
가상화는 물리적 리소스의 논리적 분리를 제공하는 데 도움이 되는 소프트웨어 기술이다. 클라우드 컴퓨팅에서 RAM, CPU 및 스토리지와 같은 물리적 리소스를 논리적으로 분리하는 것을 가상화라고 한다. 간단히 말하면, 클라우드를 통해 컴퓨팅 리소스의 가상 인스턴스 유형을 생성하는 것이라고 할 수 있다. 논리적 분리를 통해 하드웨어 리소스를 더 잘 관리하고 활용할 수 있으므로 애플리케이션이 다른 것과 독립적이다. 단일 물리적 소스 내의 여러 가상 컴퓨터에 대한 리소스 할당을 간소화하고 확장성을 향상시키면 리소스의 최적화를 향상할 수 있을 것이다.
3. 클라우드 컴퓨팅의 아키텍처
클라우드 컴퓨팅 아키텍처는 클라우드 컴퓨팅에 필요한 구성 요소 및 하위 구성 요소를 말한다. 이러한 구성 요소는 일반적으로 다음을 나타낸다.
① 프론트 엔드(팻 클라이언트, 씬 클라이언트)
② 백엔드 플랫폼(서버, 스토리지)
③ 클라우드 기반 전달 및 네트워크(인터넷, 인트라넷, 인터클라우드)
① 프론트 엔드
클라우드 컴퓨팅의 사용자 인터페이스는 클라이언트의 2개 섹션으로 구성된다. Thin 클라이언트는 휴대용 및 경량 액세스를 용이하게 하는 웹 브라우저를 사용하는 클라이언트이며, 다른 클라이언트는 강력한 사용자 경험을 제공하기 위해 많은 기능을 사용하는 Fat Client로 알려져 있다.
② 백엔드 플랫폼
클라우드 컴퓨팅의 핵심은 저장 및 처리 컴퓨팅을 위해 여러 서버가 있는 백엔드 플랫폼에서 만들어진다. 애플리케이션 로직의 관리는 서버를 통해 관리되고 스토리지는 효과적인 데이터 처리를 제공한다. 백엔드에서 이러한 플랫폼을 결합하면 클라우드 뒤에서 데이터를 관리하고 저장할 수 있는 처리 능력과 용량을 제공한다.
③ 클라우드 기반 전달 및 네트워크
컴퓨터 및 리소스에 대한 주문형 액세스는 인터넷, 인트라넷 및 인터클라우드를 통해 제공된다. 인터넷은 글로벌 액세스 가능성을 제공하며, 인트라넷은 조직 내 서비스의 내부 커뮤니케이션을 돕고, 인터클라우드는 다양한 클라우드 서비스 간의 상호 운용성을 가능하게 한다. 이러한 동적 네트워크 연결은 쉬운 액세스 및 데이터 전송을 보장하는 클라우드 컴퓨팅 아키텍처의 필수 구성 요소를 보장한다.
4. 클라우드 컴퓨팅의 타입
Infrastructure as a Service (IaaS)
Platform as a Service (PaaS)
Software as a Service (SaaS)
IT를 공부했다면 너무나도 친숙한 저 세 친구가 클라우드 컴퓨팅의 기본적인 타입이라고 할 수 있겠다. 여기에 추가로 더해지는 것이 FaaS(Function as a Service)가 있다.
① IaaS
유연성 및 제어: IaaS는 VM, 스토리지 및 네트워크와 같은 가상화된 컴퓨팅 리소스를 제공하여 사용자가 운영 체제 및 애플리케이션을 쉽게 제어할 수 있도록 지원g한다.
하드웨어 비용 절감: IaaS는 물리적 인프라 투자를 제거하여 비용 효율적인 비즈니스 비용 절감을 제공한다.
리소스 확장성: 클라우드는 요구에 따라 하드웨어 리소스를 확장하거나 축소하여 비용 효율성과 함께 최적의 성능을 제공한다.
② PaaS
개발 단순화: 서비스형 플랫폼은 기반 인프라를 추상화로 유지하여 애플리케이션 개발을 제공한다. 개발자가 애플리케이션 로직(=코드)에 완전히 집중할 수 있도록 돕고 백그라운드 운영은 플랫폼에서 완전히 관리한다.
효율성 및 생산성 향상: PaaS는 인프라 복잡성 관리를 줄여 실행 시간을 단축하고 개발 프로세스를 간소화하여 업데이트를 신속하게 시장에 출시한다.
확장 자동화: 리소스 확장 관리, 프로그램의 워크로드 효율성 보장은 PaaS를 통해 보장된다.
③ SaaS
협업과 접근성: SaaS는 사용자가 로컬 설치 없이 응용 프로그램에 쉽게 액세스할 수 있도록 도와준다. 인터넷을 통해 서비스로 작동하는 소프트웨어가 손쉬운 협력과 접근성을 장려하여 완전히 관리한다.
업데이트 자동화: SaaS 공급자는 사용자가 최신 기능 및 보안 패치에 대한 경험을 쌓을 수 있도록 자동 업데이트를 통해 소프트웨어를 유지 관리한다.
비용 효율성: SaaS는 개별 소프트웨어 라이센스의 필요성을 제거함으로써 IT 지원의 오버헤드를 줄여 비용 효율적인 솔루션 역할을 수행한다.
④ FaaS
이벤트 중심 실행: FaaS는 서버와 인프라를 유지 관리하여 사용자가 걱정할 수 있도록 도와준다. FaaS는 개발자가 이벤트에 대한 응답으로 코드를 실행할 수 있도록 도와준다.
비용 효율성: FaaS는 사용되는 컴퓨팅 리소스에 대해 Pay as you go 원칙을 제시함으로써 비용 효율성을 촉진한다.
확장성 및 민첩성: 서버리스 아키텍처는 개발 및 구축 시 민첩성을 촉진하는 워크로드를 처리하는 데 있어 손쉽게 확장할 수 있다.
5. 클라우드 배포 모델
① 프라이빗 모델: 개인적인 모델인 만큼, 특정 요구 사항에 따라 클라우드 리소스를 활용하여 보호 및 사용자 지정 기능을 향상시킨다. 보안 및 규정 준수 요구 사항을 원하는 기업에 특히나 적합하다고 할 수 있다.
② 퍼블릭 모델: 다양한 사용자에게 클라우드 리소스의 확장성과 접근성을 제공하는 종량제 원칙을 제공한다. 엔터프라이즈에 필요한 서비스를 제공하여 비용 효율성을 보장한다.
어느 모델이 더 낫다고는 당연히 말할 수 없다. 각 조직과 그 조직이 원하는 니즈에 따라 적합한 모델이 있을 것이다. IT에서는 언제나 그렇듯, 정답은 없고, 가치 판단만 있을 뿐이다.
그리고 IT를 공부하다 보면, A와 B를 공부한 다음 반드시 A와 B를 섞은 하이브리드가 등장하기 마련이다. 그리고 클라우드도 하이브리드 모델이 존재한다.
③ 하이브리드 모델: 프라이빗 클라우드와 퍼블릭 클라우드의 요소 조합을 통해 환경 간에 원활한 데이터 및 애플리케이션 처리를 제공한다. 민감한 데이터는 프라이빗 클라우드를 통해 해결하고, 나머지는 퍼블릭 클라우드를 통해 리소스 최적화를 시도하는 것이다.
6. 클라우드 호스팅
인프라는 사람들이 처음부터 처음부터 구축하기 시작하는 곳이다. 그리고 이곳이 클라우드 호스팅이 존재하는 계층이다. 특정 회사에 웹사이트가 있고 웹사이트에서는 회사원들 간의 활발한 의사소통이 있다고 가정하자. 처음엔 몇 명의 구성원이 서로 이야기하는 것으로 시작하고 점차 구성원의 수가 증가한다. 시간이 지남에 따라 구성원의 수가 계속 증가하면 네트워크에 더 많은 트래픽이 발생하고 서버 속도가 느려질 것이다. 그리고 이것은 필연적으로 문제를 일으킬 것이다. 몇 년 전에는 웹사이트가 서버에 설치되었기 때문에 우리는 앞선 문제를 해결하기 위해 서버를 계속 구매해야 했다. 실제 과거에 여러 커뮤니티에서 서버 관리가 잘 안되면 운영자들이 입에 달고 살던 말이 '서버 확충하겠습니다..' 였으니 말이다. 이런 해결버븐 돈도 많이 들고 시간도 많이 든다. 그리고 여기서 떠올려야 하는 건 '온프레미스'의 단점이다. 서버를 사용 하건, 사용하지 않건, 비용도 지불한다. 이것을 호스팅이라고 한다. 이 문제는 클라우드 호스팅을 통해 극복된다. 클라우드 컴퓨팅을 사용하면 필요할 때 컴퓨팅 성능에 액세스할 수 있다. 이제 전용 서버에 웹사이트를 설치하면 웹사이트가 클라우드 서버에 저장된다. 사람들이 웹사이트를 방문하기 시작하고 갑자기 컴퓨팅 성능이 더 필요하면 필요에 따라 확장하면 그만이다.
7. 클라우드 컴퓨팅의 특징 및 이점
① 확장성: 클라우드 호스팅을 사용하면 필요에 따라 서버 수와 규모를 쉽게 늘리고 줄일 수 있다. 이는 클라우드의 리소스를 늘리거나 줄임으로써 수행된다. 비즈니스 규모와 요구 사항의 변동에 따라 계획을 변경할 수 있는 이러한 기능은 특히 수요가 갑자기 증가하는 경우 엄청난 이점으로 작용한다.
② 비용 절감: 클라우드 컴퓨팅의 장점은 하드웨어 비용 절감이다. 사내 장비를 구매하는 대신, 하드웨어 요구 사항은 공급업체에 맡기는 것이다. 빠르게 성장하는 기업에게는 새로운 하드웨어가 크고, 비싸고, 불편할 수 있다. 클라우드 컴퓨팅은 자원을 빠르고 쉽게 획득할 수 있기 때문에 이러한 문제를 완화해줄 수 있다. 더 좋은 것은 장비를 수리하거나 교체하는 비용이 공급업체에 전달된다는 것이다. 구매 비용과 함께 오프사이트 하드웨어는 내부 전력 비용을 절감하고 공간을 절약한다. 보통의 데이터 센터는 소중한 사무 공간을 차지하고 많은 양의 열을 생산하기 마련이다. 때로는 시끄럽기도 하다. 그러나 클라우드 애플리케이션이나 스토리지로 이동하면 공간을 극대화하고 에너지 비용을 크게 절감할 수 있다.
③ 신뢰성: 호스팅은 물리적 서버의 단일 인스턴스에서 호스팅되는 것이 아니라 기본 물리적 서버의 광범위한 네트워크에서 디스크 공간과 같은 리소스를 가져오는 가상 파티션에서 제공된다. 한 서버가 오프라인 상태가 되면 가상 서버가 나머지 서버 네트워크에서 리소스를 계속 끌어오기 때문에 가용성에 영향을 미치지 않는다.
④ 물리적 보안: 기본 물리적 서버는 여전히 데이터 센터 내에 보관되어 있으므로 현장에서 액세스하거나 운영을 중단하는 것을 방지하기 위해 이러한 시설에서 구현하는 보안 조치의 이점을 누릴 수 있다. 소위 말해, 보안 문제의 일부를 전가하는 것이다.
⑤ 아웃소싱 관리: 비즈니스를 관리할 때 다른 사용자가 컴퓨팅 인프라를 관리한다. 그래서 관리 저하뿐만 아니라 관리에 대해 걱정할 필요가 없다.
8. 클라우드 컴퓨팅의 불안요소
① 보안 우려: 민감한 데이터를 외부 서버에 저장하면 클라우드 컴퓨팅의 주요 단점 중 하나인 보안 우려가 더 커지게 된다. 비단 클라우드 뿐만 아니라, 내가 어떤 글을 작성하건 장단점에 보안을 적게 된다. 이것은 어떤 시스템도 완벽하지 않으며, 보안에 있어서는 강점과 약점을 모두 지닌다는 말이 된다. 그렇기에 우리는 어느 분야의 어느 시스템을 선택하건 약점을 보완하는 데에 집중해야 한다.
② 다운타임 및 안정성: 클라우드 서비스는 일반적으로 신뢰할 수 있지만 예상치 못한 중단 및 다운타임이 발생할 수도 있다. 이러한 문제는 서버 문제, 네트워크 문제 또는 클라우드 공급업체의 유지보수 중단으로 인해 발생하며, 이는 비즈니스 운영에 부정적인 영향을 미치므로 앱에 액세스하는 사용자에게 문제가 발생할 수 있다.
③ 인터넷 연결에 대한 의존성: 클라우드 컴퓨팅 서비스는 인터넷 연결에 크게 의존한다. 클라우드 리소스에 액세스하기 위해 사용자는 클라우드 리소스에 액세스하고 사용하기 위해 안정적이고 고속 인터넷 연결을 가져야 한다. 제한된 인터넷 연결이 있는 지역에서는 사용자가 데이터와 애플리케이션에 액세스하는 데 어려움을 겪을 수 있다.
④ 비용 관리 복잡성: 리소스 최적화에 대한 적절한 모니터링과 활용이 없다면 조직은 사용 규모에 따라 예상치 못한 비용을 초래할 수 있다. 클라우드 서비스의 사용을 이해하고 통제하려면 지속적인 주의가 필요하다. 클라우드라고 해서 그냥 무작정 안심하고 사용하다간 큰코 다칠 수 있다는 말이다. 클라우드 빌링 같은 개념이 괜히 존재하는 것이 아니고, 모니터링을 계속 해야하는 이유가 괜히 있는 게 아니다. 계속해서 조직의 예산이 제대로 쓰이고 있는지에 대한 모니터링 및 최적화는 언제나 진행 상태여야 한다.
'보안 > 개념' 카테고리의 다른 글
국정원 관리실태 평가 (1) | 2024.04.01 |
---|---|
쿠버네티스(Kubernetes) 총정리 (1) | 2024.02.28 |
구글 클라우드 빅테이블 총정리 (0) | 2024.02.23 |
구글 클라우드 플랫폼(GCP) 총정리 (0) | 2024.02.22 |
구글 클라우드 스토리지를 이용한 데이터 저장 (1) | 2024.02.19 |