바닥코딩

클라우드 컴퓨팅 본문

방법론과 DevOps/AWS

클라우드 컴퓨팅

개발공부개발공부 2022. 9. 27. 23:12

클라우드 컴퓨팅?

  개발자는 개발하고 있는 자신의 프로그램을 자신의 로컬 환경에서 개발을 하게됩니다. 물론 본인만이 사용하는 프로그램이거나, 본인의 역량을 키우기 위한 프로젝트라면 고려해야할 부분은 아니지만, 일반적으로  it 회사에서 개발자로서 일한다는 것은 조직이 만들어 내는 프로그램을 다른 여러 사람들도 접속 할 수 있도록 서버를 구축하는 것이 필요로합니다.(웹사이트& 앱 등을 서비스 한다거나 등등...)

 서버를 구축하고 서비스 하며 배포하는 방법에는 여러 방법이 있습니다. IDC(데이터센터)를 두는 전통적인 방법이라면 기업의 장비를 IDC 서버실에 입주를 하여 장비를 임대 및 관리해주는 서비스를 받는 방법이 있고, 기업 자체내에서 서버장비를 운용하는 경우도 있을 수 있습니다. 

 여러방법들 사이에서 최근 가장 핫한 방식은 클라우드 컴퓨팅 방식 입니다. 

 클라우드 컴퓨팅은 IT리소스를 인터넷을 통해 제공하고 사용한 만큼 비용을 지불하는 서비스를 의미합니다. 다시말해 실제 프로그램을 서비스 하기 위한 서버, 스토리지(저장공간), 데이터베이스, 네트워킹, 소트트웨어, 분석, 인텔리전스 등의 서비스를 지원해주는 것을 의미합니다.

 클라우드 컴퓨팅을 사용하면 내가 직접 서버를 구축하기 위해 기존의 전통적인 IDC 방식 처럼 하드웨어를 구축할 필요가 없고 유지관리에 대한 비용 소비가 없고, 추후 서버의 흥망성쇠에 따라 추가적인 확장이나 축소를 해야하는 결정에 리스크 를 감소시킵니다.

 

클라우드 컴퓨팅의 3가지 종류

 

클라우드 컴퓨팅 서비스에는 크게 3가지 종류가 있습니다. 위 내용에서 클라우드 서비스에 대한 소개에서 클라우드 서비스는 서버, 스토리지(저장공간), 데이터베이스, 네트워킹, 소트트웨어, 분석, 인텔리전스 등의 서비스 등등의 여러  서비스를 비용을 지불하고 받는 것이라는 설명을 해드렸습니다. 

 물론 이 서비스들을 모두 다 받을 수 있다면 개발자 입장에서는 가장 좋은 환경이겠지만,  기업에 입장에서 생각해 볼 때 막대한 운영자금이 발생할 것입니다. 또한 개발한 프로그램이 특정 소프트웨어를 써야하는 경우거나 , 특정 OS 환경을 생각해야하는 경우라면 이런 모든 서비스를 제공받는 것이 불필요한 선택일 수 있습니다. 또한 서버를 클라우드 서비스에 너무 많이 의존하게 된다면 유연한 개발과는 거리가 멀어질 수 있기에 서버를 운영하다는 것은 많은 것을 고려해야합니다.

 정리하자면 기업은 클라우드 컴퓨팅이 제공하는 서비스를 상황에 맞게 적절하게 필요한 만큼만 사용하는 것이 중요합니다. 그 종류로는 3가지(Iaas, Paas, Saas)가 있습니다. Iaas -> Paas -> Saas 순으로  가격이 비싸고 그 만큼 더욱더 많은 서비를 제공합니다.

  • Iaas(Infrastructure as a Service)  : 서버, 네트워크 , 스토리지 , 메모리, cpu 등 가상 인프라를 빌려주는 서비스 입니다  가장 적은 서비스를 제공받고, OS,미들웨어 등은 사용자가 직접 설치하고 관리하게 때문에 가장 덜 의존적인 서비스 입니다. 
  • Paas(Platform as a Service) : 애플리케이션 설계, 개발, 테스트, 배포 , 호스팅을 포함하며, 어플리케이션, 서비스를 제공하기 위한 필요한 모든 자원을 빌려주는 것을 의미합니다.
  • Saas(Software as a Service) : 클라우드를 통해 제공되는 소프트웨어로 별도의 설치나 전환 과정 없이 퍼블릭 클라우드에 설치되어 있는 애플리케이션, 서비스를 인터넷을 통해 제공받는 것

 

'방법론과 DevOps > AWS' 카테고리의 다른 글

Route 53  (1) 2022.10.18
EC2, EBS, ELB  (1) 2022.10.12
정책 시뮬레이터  (0) 2022.10.07
IAM  (0) 2022.10.05
AWS  (1) 2022.09.30