티스토리 뷰
1. Server + less ?
1-1. Server
- 언어적 의미
- 특정 역할에 특화된 것을 의미합니다.
- Physical Server / Logical Server
- 서버의 의미는 컴퓨터 자체 하드웨어를 가리키는 경우도 있고 : Physical Server
- 컴퓨터에서 동작하고 있는 소프트웨어를 가리키는 경우가 있습니다 : Logical Server
일반적으로 분할형 아키텍처에서 이용되는 컴퓨터를 서버라고 합니다.
서버를 소유하는 경우라면 아래와 같은 사항을 고려해야합니다.
- 서버의 물리적인 측면 관리
- 서버의 구매, 설치, 전원 관리, 온도 조절을 해야합니다.
- 서버에 운영체제 OS를 설치 및 관리
- 운영체제의 설치, 패치, 보안 패치, 구성관리에 신경써야합니다.
- 서버의 네트워크 관리
- IP 주소 할당, 네트워크 구성, 방화벽 설정, 라우팅 구성을 필요로 합니다.
- 서버의 보안 유지 및 관리
- 악성 코드 및 침입 방지 시스템 설치, 모니터링, 보안 패치을 필요로 합니다.
- 서버 장애시 신속하게 대응 및 복구
이 외에도 서버 유지 보수, 하드웨어 및 소프트웨어 업그레이드, 라이선스 관리, 비용 관리 등 다양한 관리 작업이 필요할 수 있습니다. 이러한 관리 작업은 전문적인 IT 관리자 혹은 다른 서비스 업체에 의해 수행되어야하는 간단하지 않은 작업입니다.
1-2. Cloud Server
Cloud 에서 제공하는 Server클라우드는 인터넷을 통해서 사용자에게 서버, 소프트웨어 그리고 데이터베이스를 제공합니다.
클라우드의 물리적 서버는 전 세계 데이터센터에 위치하고 있고 사용자는 직접 물리적 서버를 관리하거나 소유하지 않고 인터넷을 통해서 접근할 수 있습니다.
1-3. Serverless
- 클라우드 서버리스(Cloud Serverless)는 애플리케이션을 개발하고 배포하는 방식 중 하나로
- 서버 인프라를 관리(인프라 설정, 확장성 및 가용성과 같은 서버 관리 작업)할 필요 없이 클라우드 환경에서 실행할 수 있는 컴퓨팅 모델을 의미합니다.
네이버 클라우드에서 제공하는 Serverless 서비스 이름은 Cloud Functions이며 AWS에서는 Lambda 서비스를 제공하며 이후 두 가지 서비스를 비교해볼 예정입니다.
그 밖에 Microsoft Azure의 Azure Functions, Google Cloud Platform의 Cloud Functions로 클라우드 제공업체에서 제공합니다.
2. 클라우드에서 제공하는 서버와 서버리스의 차이
- 클라우드 서버는 일반적으로 가상 머신(VM) 또는 컨테이너 형태로 실행되는 서버입니다.
- 사용자가 서버 인스턴스의 크기, 운영 체제, 네트워크 구성 등을 구성할 수 있으며 관리, 유지 보수 및 확장에 대한 책임은 사용자에게 있습니다.
- 클라우드 서버리스는 서버 인프라를 직접 관리할 필요 없이 애플리케이션 코드의 실행에 집중할 수 있는 클라우드 환경입니다.
- 사용자는 작성한 애플리케이션 코드가 실행되기 위해 필요한 리소스만 할당으며 클라우드 제공업체는 리소스 할당, 확장, 관리 및 과금에 대한 책임을 진다.
3. Serverless의 특징
- 이벤트 기반 실행 서버리스 애플리케이션은 특정 이벤트(예: HTTP 요청, 데이터베이스 업데이트, 메시지 큐 등)에 의해 호출됩니다.
- 개발자는 이벤트에 대한 응답으로 실행될 함수를 작성하면 됩니다.
- 기본적으로 서버리스는 트리거를 통해 함수가 호출됩니다.
- 서버리스 애플리케이션은 요청이 증가할 때 자동으로 확장됩니다. 서버리스 플랫폼이 애플리케이션의 요구에 따라 자원을 동적으로 조정하여 효율적으로 처리할 수 있도록 합니다.
- 서버리스는 실행한 함수의 작업량에 따라 과금됩니다. 함수가 실행되는 시간과 사용한 리소스에 따라 비용이 청구되며 사용한 만큼만 비용을 지불하게 되므로 효율적인 비용 관리가 가능합니다.
세 줄 요약하자면..
- 사용자는 애플리케이션 코드를 함수(Function) 단위로 작성하고, 이벤트가 발생할 때마다 해당 함수가 실행됩니다.
- 클라우드 서버리스는 이벤트 중심 애플리케이션, 마이크로서비스, 배치 작업 등을 실행하는 데 적합하며 개발자는 서버를 프로비저닝하고 구성하는 인프라 작업에서 벗어나 애플리케이션 개발에 더욱 집중할 수 있는 환경을 만들 수 있습니다.
- 서버리스의 장점이자 특징을 잘 활용하면 비용효율적으로 개발/운영할 수 있습니다.
Reference
Cloud : https://www.cloudflare.com/ko-kr/learning/cloud/what-is-the-cloud/