서버리스(Serverless) 는 일반적인 웹서버나 WAS(Web Application Server) 또는 Database 같은 백엔드를 구성할 때 직접 물리적인 서버 구축부터 설치, 운영까지 담당하지 않고, 클라우드 환경에서 제공하는 관리형 서비스를 이용하거나 함수(Function, 기능 로직) 단위로 실행할 수 있는 서비스형 환경을 의미한다.
대표적인 예로 AWS Lambda는 FaaS(Function as a Service) 형태의 서버리스에 속하고, AWS S3 나 DynamoDB 도 서버리스라고 할 수 있다.
개인적인 생각으로 서버리스는 변화가 빠른 시대에 사용자들의 여러가지 요구사항을 빠르게 반영하고, 새로운 시도할 때 모든 것을 A부터 Z까지 만들수 없기 때문이지 않을까 생각한다. 따라서 기본적인 개념과 활용 능력은 필수로 익혀두는게 좋지 되지 않을까 생각한다.
현재 재직중인 회사는 초기부터 프라이빗 클라우드 환경에서 온프레미스 형태로 서비스를 운영하고 있었다. 하지만 얼마전부터 작은 비율로라도 클라우드 환경에 이중화를 진행하고 있다. 그리고 최근 데이터 수집과 적재 업무를 진행 했었는데 AWS S3 → Glue → Athena를 이용해 간단한 데이터 처리 파이프라인을 구축 해보면서 클라우드 환경의 서버리스에 맛을 봤었다.
그러던 중 페이스북을 통해 “ AWS Fundamentals: Building Serverless Applications ” 코세라 강좌를 알게 되면서 다양한 서버리스를 체험하고 학습할 수 있을 것 같아서 시작하게 되었다.
이 포스트는 위에서 소개한 코세라 강좌의 1주차에 나오는 AWS Lex에 대한 개념과 주요 구성 요소에 대한 설명이다.
챗봇이 사람의 질문(요청)에 응답하는 과정에는 3가지 과정이 반드시 필요하다.
Lex는 쉽게 챗봇을 개발하기 위해 음성을 텍스트로 변환하는 자동 음성 인식(ASR)과 텍스트의 의도를 파악하는 자연어 처리(NLU)를 제공하는 관리형 서버리스이다.
아쉽게도 아직까지는 4개 리전에서만 사용 가능하고, 언어는 영어만 지원한다.
Expand Values
사용자로부터 전달받은 실제 값이 학습 데이터로 사용되고, 사용된 값으로 슬롯이 채워진다.Restrict to Slot values and Synonyms
나열된 슬롯 값과 일치하는 사용자 데이터만 슬롯으로 사용된다. 동의어(synonyms)와 일치하는 경우에도 해당 슬롯으로 결정된다.prod
)