물리 서버는 기업이 직접 소유하고 운영하는 데이터센터를 구축하는 방법으로, 서버 하드웨어부터 네트워크 장비 등 모든 인프라를 기업이 자체적으로 관리한다. 예전에는 AWS와 같은 클라우드 서비스가 없었기 때문에 많은 기업들이 '카페24'와 같은 물리 서버 호스팅 업체를 사용하였다. 매달 서버 비용을 지원하여 서비스 유저들에게 제공하였었지만, 매번 트래픽 초과시 에러가 발생하였다.
💡 물리 서버 단점
고정 비용 : 서버를 구축하고 유지하는데 드는 초기 투자와 지속적인 운영비가 발생
유연성 부족 : 서버 한 번 구축하면 수요에 상관없이 계속 관리해야 하는 부담 발생
02. 가상 서버(클라우드 서버)
가상 서버(클라우드 서버)는 이미 구축된 대규모 데이터센터에서 필요한 만큼의 자원을 임대해서 사용하는 방식이다.
필요한 만큼의 자원만 사용하고, 그 사용량에 따라 비용을 지불하는 방식(온디맨드 비용)과 AWS와 같은 클라우드 서비스 제공자가 서버의 운영 및 관리를 대신(AWS가 대신 운영 및 관리)한다.
💡 가상 서버(클라우드 서버) 장점
매우 간편한 설정
고정되지 않은 유동적인 비용
03. 서버리스 Serverless
서버리스는 서버를 직접 구매하거나 조립하지 않아도 작업을 수행할 수 있는 방식으로, 서버가 구동되고 있는 시간에 따른 과금이 아닌 요청 횟수에 따라 과금되는 방식이다. 서버리스에서는 요청이 있을 때 서버가 생성되고 작업을 수행한 후 서버가 종료된다.
기존 서버(물리, 가상)에서는 서버가 항상 구동되어 있어야 하므로, 서버 운영시간에 따라 비용이 발생한다. 서버리스에서는 서버가 항상 켜져 있는 것이 아니기 때문에 요청이 있을때만 서버가 실행되고 그에 따른 비용이 발생한다. 서버리스는 과금이 요청 횟수에 따라 발생하므로, 잘못 관리하면 비용이 많이 발생할 수 있다. 따라서 서버리스 사용 시에는 경제성 계산이 필요하다.
#1. 서버리스 사용 예시
Vercel에서 Next.js 어플리케이션을 배포할 때 모든 것이 서비리스로 동작한다.
또 다른 예시로는 백엔드 서버 로직 중 호출 횟수는 적지만, 자원이 많이 필요한 작업을 서버리스로 처리하는 경우가 있다. 예를 들어, 대부분의 웹 서버 작업에는 적은 메모리(100MB)만 필요하지만, 이미지 처리와 같은 특정 작업에는 큰 메모리가 필요하다. 이럴 때, 모든 작업을 큰 메모리로 운영하는 대신, 이미지 처리와 같은 작업만 서버리스 함수로 처리하여 효율적으로 자원을 관리할 수 있다.
Infrastructure : 물리서버 vs 클라우드서버
01. 물리 서버
물리 서버는 기업이 직접 소유하고 운영하는 데이터센터를 구축하는 방법으로, 서버 하드웨어부터 네트워크 장비 등 모든 인프라를 기업이 자체적으로 관리한다. 예전에는 AWS와 같은 클라우드 서비스가 없었기 때문에 많은 기업들이 '카페24'와 같은 물리 서버 호스팅 업체를 사용하였다. 매달 서버 비용을 지원하여 서비스 유저들에게 제공하였었지만, 매번 트래픽 초과시 에러가 발생하였다.
💡 물리 서버 단점
02. 가상 서버(클라우드 서버)
가상 서버(클라우드 서버)는 이미 구축된 대규모 데이터센터에서 필요한 만큼의 자원을 임대해서 사용하는 방식이다.
필요한 만큼의 자원만 사용하고, 그 사용량에 따라 비용을 지불하는 방식(온디맨드 비용)과 AWS와 같은 클라우드 서비스 제공자가 서버의 운영 및 관리를 대신(AWS가 대신 운영 및 관리)한다.
💡 가상 서버(클라우드 서버) 장점
03. 서버리스 Serverless
서버리스는 서버를 직접 구매하거나 조립하지 않아도 작업을 수행할 수 있는 방식으로, 서버가 구동되고 있는 시간에 따른 과금이 아닌 요청 횟수에 따라 과금되는 방식이다. 서버리스에서는 요청이 있을 때 서버가 생성되고 작업을 수행한 후 서버가 종료된다.
기존 서버(물리, 가상)에서는 서버가 항상 구동되어 있어야 하므로, 서버 운영시간에 따라 비용이 발생한다. 서버리스에서는 서버가 항상 켜져 있는 것이 아니기 때문에 요청이 있을때만 서버가 실행되고 그에 따른 비용이 발생한다. 서버리스는 과금이 요청 횟수에 따라 발생하므로, 잘못 관리하면 비용이 많이 발생할 수 있다. 따라서 서버리스 사용 시에는 경제성 계산이 필요하다.
#1. 서버리스 사용 예시
Vercel에서 Next.js 어플리케이션을 배포할 때 모든 것이 서비리스로 동작한다.
또 다른 예시로는 백엔드 서버 로직 중 호출 횟수는 적지만, 자원이 많이 필요한 작업을 서버리스로 처리하는 경우가 있다. 예를 들어, 대부분의 웹 서버 작업에는 적은 메모리(100MB)만 필요하지만, 이미지 처리와 같은 특정 작업에는 큰 메모리가 필요하다. 이럴 때, 모든 작업을 큰 메모리로 운영하는 대신, 이미지 처리와 같은 작업만 서버리스 함수로 처리하여 효율적으로 자원을 관리할 수 있다.
'ASAC > 웹 기초 프로그래밍' 카테고리의 다른 글