Chapter 01. 클라우드 컴퓨팅(Cloud Computing)
클라우드 컴퓨팅의 등장 이전 기존 서버의 방식은 개인 혹은 각 기관이 물리적인 서버를 구입해 서버실 같은 별도의 물리적 공간에 배치하고 인터넷을 연결해 이용자들에게 서비스를 제공하는 것이었다. 수백만원대의 개인용 서버부터 수천, 수억원에 달하는 전문적인 서버를 실제로 구매하는 것은 비용적인 부담이 될 뿐만 아니라 구매한다고 끝나는 문제도 아니었다. 물리적 공간에 설치하고 난 이후에 서버가 자동적으로 가동되는 것도 아니라 서버에 os도 별도로 설치해야 했으며 서비스를 원활히 공급하기 위한 복잡한 절차로 인해 서버를 가동, 유지, 보수하는 데 더 많은 인력들이 필요했다. 서버를 24시간 가동하는 데 필요한 서버와 냉방기, 공조장치들의 전기세 등의 비용들도 개인 혹은 기관에게는 큰 부담이었다.
일부 거대기업들에게도 위와 같은 문제는 마찬가지였다. 거대기업들의 서버가 터져나갈 때마다 더 좋은 성능, 작은 부피의 서버를 구매해 서버실에 추가로 증설했고 결국 물리적인 공간의 한계로 인해 더 이상의 증설이 어렵게 되자, 데이터센터라는 별도의 건물을 세우기에 이르렀다.
하지만 서버의 부하는 항상 일정하지 않았고, 특정 이슈나 이벤트에 몰리는 요청들을 감당하기 위해 비싼 돈을 들여 지은 데이터센터의 서버는 평시에는 남아돌았다. 거대기업에서 이 유휴 자원들을 대여하기 시작한 게 클라우드 컴퓨팅의 시작이라는 설이 있다. 어쨌든 이제 개인과 기관은 서버 구매라는 비싼 선택지 대신 클라우드 컴퓨팅 서비스라는 합리적이고 편리한 서비스를 새로운 선택지로 갖게 되었다.
위에서 설명한 전통적인 서버 운영 방식을 온프레미스(On-premise)라고 한다. 즉, 서비스를 운영하는 회사가 자체적으로 보유한 공간에 물리적으로 하드웨어 장비를 가지고 직접 운영하는 방식이다. 이와 반대로 가상화 기술을 이용해 가상의 공간에서 가상의 컴퓨터를 대여받아 사용하는 방식을 클라우드 컴퓨팅(or 클라우드 서비스)이라고 한다.
클라우드 컴퓨팅에는 여러 장점이 있는데, 첫째로 고정적인 비용이 들어가는 온프레미스와는 달리 우리가 대여하고 사용한 만큼의 요금만 지출하면 된다. 수강신청같은 짧은 기간에 서버의 많은 부하가 있을 것으로 예상되는 시점에는 서버를 추가적으로 대여해 사용량에 대비하고 평소에는 다시 서버를 줄여 비용을 절감하는 유연한 운영이 가능한 것이다. 두번째 장점으로는 서버 관리에 대한 책임에서 어느정도 자유로울 수 있다는 것이다. 기존의 온프레미스 방식에서는 나날이 발전하는 보안 위협으로부터 기업이 가진 자산 혹은 개인정보를 지키기 위해 끊임없이 유지보수를 해야만 했다. 하지만 클라우드 컴퓨팅 방식에서 서버의 보안은 서버를 공급하는 서비스 공급자와 사용자 간의 공동 책임이며 서비스 공급자는 보안 스택을 통해 여러 계층을 감독하고 사용자는 허용된 기준 아래 잘 관리만 하면 된다.
클라우드 컴퓨팅의 종류(Types of Cloud Computing)
클라우드 컴퓨팅으로 제공하는 서비스는 사용자의 제어 수준에 따라 IaaS(Infrastructure as a Service), PaaS(Platform as a Service), SaaS(Software as a Service)로 구분된다. SaaS는 소프트웨어 즉, 애플리케이션을 가상화해 개별 컴퓨터에 애플리케이션을 설치할 필요없이 웹 브라우저를 통해 실행할 수 있다. 데이터나 미들웨어, 서버와 같은 모든 잠재적인 기술적인 문제를 관리하기 때문에 사용자는 오로지 서비스에만 집중할 수 있다. Microsoft의 Office 365와 같은 서비스를 예로 들 수 있다. PaaS는 소프트웨어의 개발에 집중하기 위한 플랫폼을 제공한다. 즉, OS구축이나 미들웨어 런타임에 대한 관리 없이 사용자는 오로지 데이터와 애플리케이션 개발에만 집중할 수 있다. 예로는 Node.js나 Python, C#등을 지원하는 Google App Engine과 같은 서비스가 있다. 마지막으로 IaaS는 인터넷을 통해 서버와 스토리지 등의 인프라 만을 임대 받아 운영체제(OS)부터 입맛에 맞게 설치해 사용자가 원하는대로 서비스를 운영할 수 있다. AWS EC2, Microsoft Azure Virtual Machines등의 서비스가 있다.
Chapter 02. AWS (Amazon Web Services)
대표적인 클라우드 컴퓨팅 서비스인 AWS는 현재 전세계 31개 지역(Region)에 99개의 AZ를 구축해 운영하고 있다. AZ는 Availability Zone의 줄임말로 한개 이상의 데이터센터의 모음을 구성하는 단위이다. 각 지역의 AZ는 서로 100km 이내에 위치하며 서로 완전히 격리된 독립적인 자체 전원 공급 시스템을 가지고 있다. 따라서 한 곳의 AZ가 문제가 생기더라도 다른 AZ들을 통해 안정적인 서버 운영이 가능하다.
AWS가 제공하는 서비스는 대표적으로 EC2와 같은 컴퓨팅 서비스부터 데이터베이스, 머신러닝, 보안, IoT에 이르기까지 너무 방대하다. 다음 글부터는 대표적인 서비스를 하나씩 배워가면서 진행할 예정이다.
'프로그래밍 > Infra' 카테고리의 다른 글
[nginx] (2) nginx.conf (0) | 2024.06.30 |
---|---|
[nginx] (1) nginx 그리고 기본 역할 (0) | 2024.06.26 |
[AWS] Amazon Web Services - (4) Amazon VPC (0) | 2023.05.04 |
[AWS] Amazon Web Services - (3) EC2 (0) | 2023.05.03 |
[AWS] Amazon Web Services - (2) IAM (0) | 2023.05.02 |