서버리스란? 간단한 사례를 섞어 알기 쉽게 해설해봤습니다.
서버리스란 서버의 구축이나 유지 보수 등의 번거로운 관리를 하지 않고 서버상에서 프로그램을 실행할 수 있는 구조입니다. 서버리스 컴퓨팅이나 서버리스 아키텍처라고도 합니다.
당연한 이야기 입니다만, 지금까지는 약간의 프로그램에서도 서버로 움직이려면 서버를 구축해야 했습니다. 그러나 이 서버리스의 구조를 사용하면 프로그램만 작성해버리면 곧바로 서버로 실행할 수가 있습니다. 그래서 이번에는 서버리스에 대한 간단한 사례를 섞어서 알기 쉽게 해설해 봅시다.
서버리스란?
서버 "레스"라고는 해도 서두에 그림과 같이 서바가 없다(레스)라고 하는 것이 아니라 실제로 서버는 존재합니다. 다만, 그 서버의 구축이나 보수는 서버리스의 제공회사가 모두 해 주는 데다가 부하 대책까지 번거로움을 봐 주는 것입니다. 그 때문에 이용자는 서버의 관리가 일절 불필요(서버 관리 리스)가 되기 때문에 서버리스 라고 불리고 있는 것입니다.
예를 들어 프로그램 개발자가 서버리스를 이용하는 경우, 서버를 전혀 생각하지 않아도 되기 때문에 좋은 프로그램을 쓰는 것에만 집중할 수 있습니다. 이것이 서버리스의 가장 큰 장점입니다.
Function as a Service
서버리스에서는 몇 가지 종류가 있습니다. 이번에는 그 중에서도 대표적인 Function as a Service(펑션 아즈 아 서비스)를 사용할 사례를 소개합니다.
아무것도 볼 수 없는 긴 가로 문자가 나왔지만 안심하시길 바랍니다. 프로그램의 함수 (예를 들어 엑셀의 함수입니다)를 영어로 Function(펑션)이라고 합니다. 이 Function를 실행할 수 있는 서비스를, Function as a Service라고 부르고 있을 뿐입니다. (길기 때문에 자주 "FaaS"로 약칭 됩니다)
개발자는 유용한 프로그램 함수(Function)를 만든 후에는 이 Function as a Service에 업로드 하기만 하면 프로그램 함수를 실행할 수 있습니다.
서버리스 사용 방법
서버리스(Function as a Service)는, 대기업 클라우드 각 회사로부터 다음의 서비스가 제공되고 있습니다.
각 회사의 서비스명에 함수 Function가 붙어있는 것이 특징입니다. AWS의 Lambda(람다)의 서비스명의 확실한 유래는 모르지만, 람다 계산 (함수를 사용한 계산 방법)에서 어쨌든 함수 "Functions"가 떠오릅니다.
이번에는 이 AWS Lambda(람다)를 사용하여 간단한 프로그램을 만들어 봅시다.
AWS Lambda(람다) 사용 방법
간단한 사례로서, 당사 큐비스트의 코퍼레이트 사이트의 HTML 파일을, 매일 정해진 시간에 보존하기 위한 프로그램을, AWS Lambda(람다)로 작성해 보겠습니다. Lambda 외에도 CloudWatch Events(스케줄링 등), Amazon S3(스토리지)라는 AWS 서비스도 사용합니다. 서버리스는 프로그램 함수의 실행뿐만 아니라 다양한 서비스와 연계할 수 있기 때문에 실현하고 싶은 기능을 빠르게 만들 수 있는 것도 매력 중 하나입니다.
AWS Lambda와 같은 Function as a Service의 서버리스는 웹사이트처럼 항상 액세스되는 서버에는 적합하지 않지만 서버리스는 사용한 시간과 메모리에 따라 요금이 부과되므로 이번에 의 사례와 같이 하루 1회만 실행되는 함수 코드라면 거의 요금은 들지 않습니다.
적재 적소에서 서버리스를 잘 사용하면 서버 관리에서 해방될 뿐만 아니라 비용도 절약할 수 있을 것 같습니다.