🌐 5장. 인터넷 서비스의 기반

5.1. 클라우드와 네트워크의 관계

5.1.1. 클라우드와 네트워크

클라우드(클라우드 컴퓨팅)는 컴퓨터를 이용하는 형태 중 하나로, 인터넷 등 네트워크를 통해 서버가 제공하는 서비스를 주의 기기(컴퓨터, 휴대전화 등)를 통해 이용하는 것을 의미한다.

컴퓨터 세계에서 클라우드라는 단어는 복잡하게 연결되는 인터넷을 구름에 비유하여 표현하는데에서 시작되었다.

 

5.1.2. 클라우드의 종류

클라우드는 제공 범위에 따라 몇 가지로 분류된다. IaaS(Infrastructure as a Service)는 컴퓨터나 네트워크를 가상으로 만들어서 이용하는 형태이다. PaaS(Platform as a Service)는 데이터베이스나 애플리케이션을 실행할 수 있는 환경 등을 서비스로 제공하는 형태이다. IaaS와 조합해서 이용하는 경우도 많다. 

한 권으로 끝내는 네트워크 기초 113p

SaaS(Software as a Service)는 완제품 소프트웨어를 네트워크로 서비스하는 형태이다.

한 권으로 끝내는 네트워크 기초 114p

소프트웨어를 구입해서 이요할 때와 차이점은 아래 표와 같다.

구분 요금 체계 제공 범위 이용 방법 버전 업
패키지 소프트웨어 제품 구매 소프트웨어 사용권 컴퓨터에 소프트웨어 설치 새 버전 구매
SaaS 월 또는 연간 요금 소프트웨어 및 서비스 인터넷을 경유해서 이용 자동으로 업데이트

 

IaaS, Paas, Saas 차이점

5.1.3. 클라우드의 편의성

클라우드가 없던 시절에는 새로운 인터넷 서비스를 시작하려면 우선 서버로 사용할 컴퓨터를 사거나 빌려야만 했다. 그렇기에 초기 투자가 필요했고, 실제로 사용하기까지 시간이 걸렸다. 또한, 서비스가 확대되면 이에 맞춰 컴퓨터 자원을 확장시켜야 했으며 즉각적으로 늘릴 수도 없었다. 그리고 서비스를 중단하면 소유하던 컴퓨터가 남게된다. 

클라우드는 이러한 문제를 해결한다.

- 곧바로 사용한다 : 웹 브라우저에서 서버를 생성할 수 있고, 명령어로 자동화할 수도 있다.

- 사용한 만큼만 돈이 든다 : 초기 비용이 들지 않고 시간 단위로 과금된다.

- 쉽게 늘리고 줄일 수 있다 : 소유하지 않고 사용한다.

 

이처럼 '소유'에서 '이용'으로 변화함에 따라 편리함을 누릴 수 있게 되었다. 

 

5.2. 클라우드 서비스와 호스팅 하우징

5.2.1. 대표적인 클라우드 서비스

Amazon Web Services

아마존 웹 서비스(AWS, Amazon Web Service)는 아마존이 제공하는 클라우드 플랫폼(IaaS, PaaS)이다. 아마존은 매우 많은 서비스를 제공하는 것으로 유명하며, 그중에서도 대표적인 것은 EC2(가상 서버), S3(오브젝트 스토리지), RDS(관계형 데이터베이스 서비스) 등이다. 

 

Microsoft Azure/Microsoft 365

마이크로소프트 애저(Microsoft Azure)는 마이크로소프트가 제공하는 클라우드 플랫폼(IaaS, PaaS)이다. 또한 마이크로소프트는 애저 외에도 Microsoft 365라는 오피스 제품의 구독 서비스(SaaS)를 제공한다. 

마이크로소프트는 전통적으로 오피스 스위츠나 기업용 서버에 강하며, 애저와 Microsoft 365의 매출을 합산하면 클라우드 서비스의 매출이 세계 1위이다. 

 

Google Cloud Platform

구글 클라우드 플랫폼(GCP, Google Cloud Platform)은 구글이 제공하는 클라우드 플랫폼(IaaS, PaaS)이다. 구글 내부에서 사용하는 것과 동일한 서비스 플랫폼을 제공하는 것이 특징이다. 다른 클라우드 플래솦ㅁ과 마찬가지로 가상 서버나 객체 스토리지, 관계형 데이터베이스 서비스를 제공하는 한편, 쿠버네티스(Kubernetes)의 개발원이라는 점에서 컨테이너용 플랫폼 서비스에 강하다.

 

Firebase

파이어베이스(Firebase)는 2011년에 파이어베이스사가 개발한 서비스로, 2014년에 구글에 인수되어 현재 GCP 기능 중 하나로 자리잡았다. Mobile Backend as a Service(mBaaS)로 부르는 서비스로 데이터베이스, 스토리지, 메시징 등 모바일 애플리케이션에 필요한 기능을 서버로 의식하지 않고 사용할 수 있는 것이 특징이다.

 

Heroku

헤로쿠(Heroku)는 Platform as a Service(PaaS)로 웹 서버나 데이터베이스 같은 웹 서비스를 공개하는 데 필요한 모든 것을 미리 준비해 주는 서비스이다. 서버, OS, 데이터베이스, 프로그램 실행 환경 등 웹 애플리케이션을 공개하는 데 필요한 기능을 세트로 제공하는 것이 특징이다.

 

KT 클라우드

통신 사업자이자 데이터 센터 사업자인 KT의 클라우드 인프라 서비스는 가격면에서 경쟁력이 있다. 국내 클라우드 제공사 중 매출 규모가 가장 크고, 공공 기관 전용 클라우드 서비스인 G-클라우드를 출시하고 헌법 재판소 등 다수 공공 기관에 클라우드 서비스를 제공하며 사업 영역을 확대하고 있다.

 

네이버 클라우드 플랫폼

라인, 네이버 웹툰 등 자회사들이 네이버 클라우드 플랫폼을 이용하고 있고, SK텔레콤, LG U+등 대기업도 네이버 클라우드 플랫폼 서비스를 도입했다. 국내 사업자 중 최대 보안 인증을 확보하여 공공 기관 전용 서비스를 출시하는 등 일반 기업 이외에도 공공, 금융, 의료 분야로도 사업 영역을 확대하고 있다.

 

5.2.2. 호스팅, 하우징

호스팅은 호스팅 사업자가 서버를 보유하고 사용자에게 대여하는 서비스를 총칭한다. 호스팅에는 렌탈 서버, 전용 서버, VPS(Virtual Private Server)등이 있다. 

 

렌탈 서버는 물리 서버 한 대를 여러 사용자가 함께 사용하는 형태이다. 사용자들은 서버의 하드웨어 리소스뿐만 아니라 OS도 함께 사용한다. 이 때문에 렌탈 서버에서는 애플리케이션을 직접 설치할 수 없고, 렌탈 서버에서 제공하는 웹 서버나 애플리케이션이 동작할 수 있는 환경 및 데이터베이스를 이용한다. 각 사용자의 데이터는 논리적으로 분리되어 있어 다른 사용자의 데이터는 볼 수 없다.

 

전용 서버는 물리 서버 한 대를 점유할 수 있는 서비스이다. 한 대를 통째로 자신의 서버로 사용할 수 있으므로 다른 사용자의 부하 영향을 받지 않고 OS나 애플리케이션도 자유롭게 설치할 수 있다. 

 

VPS는 렌탈 서버와 전용 서버의 장점을 취한 서비스로, 물리 서버 한 대를 여러 사용자가 공용하지만 가상화 기술을 이용해서 가상 서버를 물리 서버 안에 많이 만들 수 있다. VPS에서 제공되는 환경은 전용 서버와 동일하고, OS 및 애플리케이션을 자유롭게 설치할 수 있다.

 

호스팅 서비스는 서비스 제공 사업자가 물리 서버의 하드웨어 유지 보수 및 운용을 한다. 

 

하우징은 데이터 센터 사업자가 랙(전용 선반)을 대여해 주고, 랙 안에 사용자가 직접 구매한 네트워크 기기나 서버 등을 탑재한다. 경우에 다라서는 사용자가 네트워크 회선을 끌어올수 있는 서비스도 있다.

 

5.3. 네트워크와 애플리케이션

5.3.1. 일반적인 웹 DB 시스템

대표적인 콘텐츠 관리 시스템(CMS, Content Management System)인 워드프레스 환경을 예로 들어 네트워크 애플리케이션이 어떻게 구성되는지 살펴보자.

워드프레스를 동작시키려면 웹 서버와 DB서버가 필요하다. 그리고 워드프레스는 PHP로 만들어졌기 때문에 PHP 실행 환경도 필요하다.

 

5.3.2. 구성하는 소프트웨어

OS

프로그램을 실행하려면 우선 기반이 되는 OS가 필요하다. OS에는 다음과 같은 것들이 존재한다.

 

윈도우(Windows)

마이크로소프트에서 개발한 OS로, 개인용 컴퓨터에서 압도적인 점유율 보유하며, 서버 용도로는 윈도 서버(Windows Server) 에디션이 있다.

 

리눅스(Linix)

리눅스는 주로 인터넷을 위한 서버 용도로 널리 사용되는 OS이다. 리눅스는 비영리 커뮤니티에서 개발한 것이 특징으로, 무료로 사용할 수 있는 배포판, 기업이 서비스를 제공하는 대신 라이선스를 사서 이용하는 배포판 등 여러 종류가 있다.

 

맥오에스(macOS)

애플에서 만드는 컴퓨터인 Mac 시리즈에 탑재되는 OS로 예전에는 서버 용도로 사용했지만, 현재는 일반 컴퓨터용으로만 사용한다.

 

웹 서버 소프트웨어

웹 서버는 OS에 웹 서버 소프트웨어를 설치하고 동작시켜 서버 기능을 한다. 웹 서버 소프트웨어로는 다음과 같은 것들이 있다.

 

아파치(Apache)

Apache의 정식 명칭은 Apache HTTP Server이지만, 보통 아파치라고 한다.

전 세계에서 가장 많이 사용하는 웹 서버 소프트웨어로, 대규모 상용 웹 사이트부터 개인용 서버까지 폭넓게 이용된다.

 

엔진엑스(Nginx)

아파치보다 나중에 생긴 웹 서버로, 동작이 빠르고 기능이 풍부하여 최근 들어 채요 사례가 증가하고 있다.

 

IIS(Internet Information Services)

마이크로소프트의 웹 서버 소프트웨어로, 윈도나 윈도 서버 위에서 동작한다.

 

DB 서버 소프트웨어

MySQL

MySQL은 세계에서 가장 널리 사용되는 오픈소스 RDBMS이다.

 

MariaDB

MySQL에서 파생된 소프트웨어로, MySQL과 독립적으로 계속 개발하고 있는 DB Server의 하나이다. 

 

오로라(Aurora)

AWS의 관계형 데이터베이스 서비스인 Amazon RDS 중에서 선택 가능한 RDBMS로, MySQL과 호환성을 강조하면서도 더 뛰어난 성능을 발휘하는 것이 특징이다.

 

PostgreSQL

오픈 소스 RDBMS이며, MySQL 다음으로 점유율이 높은 DB 서버 소프트웨어이다. PostgreSQL은 신뢰성을 중요시한다고 알려져 비웹 계열 시스템에서 채용하는 예도 많다.

 

Oracle

오픈 소스가 아닌 RDBMS로, RDBMS 시장 점유율이 가장 높은 상용 DB 서버 소프트웨어이다. 

 

프로그래밍 언어

PHP

동적 웹 페이지 생성 툴을 기원으로 한 프로그래밍 언어로 웹 애플리케이션 개발에 유용한 기능이 풍부하게 들어 있는 것이 특징이다.

 

Ruby

일본에서 개발된 프로그래밍 언어로, Ruby on Rails라는 웹 애플리케이션 프레임워크를 사용하여 복잡한 웹 애플리케이션을 개발한다.

 

ASP.NET

프로그래밍 언어가 아니라 웹 애플리케이션 프레임워크의 명칭이다. 비주얼 베이직(Visual Basic)이나 C# 등 주로 마이크로소프트가 제공하는 프로그래밍 언어를 사용할 수 있다.

 

어떤 OS, 어떤 웹 서버 소프트웨어, 어떤 DB 서버 소프트웨어, 어떤 프로그래밍 언어를 선택할지는 조건에 따라 달라진다. 

워드프레스는 DB서버 소프트웨어로 MySQL, 프로그래밍 언어로 PHP를 사용하므로 이 두가지는 고정되어 있다. 그러나 OS나 웹 서버 소프트웨어에 대해서는 특별히 정해진 바가 없다. 

시스템을 구축하고 운용하는 엔지니어가 보유한 스킬에 따라 선택하는 것이 일반적이다.

 

그 밖에 고려할 수 있는 요소는 비용이다. 상용 제품을 사용하는 WISA와 비교하면 LAMP, LEMP는 OSS를 사용하므로 비용을 절감할 수 있다. 

728x90

+ Recent posts