2024년 6월 25일 (화) 9:00 AM – 12:00 PM
서버리스(ServerLess)
개념
차별화되지 않은 운영 작업을 클라우드 공급자에게 이전함으로써
클라우드 애플리케이션의 관리 및 확장을 단순화.
이로써, 개발 팀이 비즈니스 문제를 해결하는 코드 작성에 집중할 수 있음.
패러다임의 전환
클라우드가 도입되면서 CSP에서 감당, 가상머신에서 사용,
쿠버네티스 등을 클라우드 위에 올림, 이러한 인프라 구축 기술들이 발달 중.
장점
서버 관리 필요 x, 사용한 만큼만 지불(서버리스는 요청에 의해 구동되는 만큼 지불하는 구조가 일반적),
요청에 맞게 스케일링(요청에 맞게 처리량 제공할 수 있음), 높은 보안 수준.
AWS에서 제공되는 서버리스 서비스
- COMPUTE : AWS Lambda, AWS Fargate
- DATA STORES : Amazon S3, Amazon Aurora Serverless, Amazon DynamoDB
- INTEGRATION : Amazon EventBridge, Amazon API GateWay, Amazon SQS 등
AWS Lambda, Amazon S3, Amazon DynamoDB, Amazon API GateWay
네 가지를 통해 3-Tier 서버리스 아키텍처를 구성해 볼 것.
Web Application with Serverless
Dynamodb Table 생성하기
Dynamodb Table이란 AWS의 NoSQL 데이터서비스.
기존에 흔히 사용하는 Oracle이나 Mysq와는 달리 스키마 없이 데이터를 원하는 형태로 자유롭게 저장할 수 있다.
즉, 기존 데이터베이스 확장과는 달리 수평 확장을 사용하며, 서버리스, 보안 및 액세스, 높은 성능을 제공한다.
기존에는 어느 정도 서버의 크기를 사용할지 고민해야 하지만,
서버리스 형태로 제공되는 DynamoDB는 해당 부분이 자동화로 설계되어 있다.
이는 테이블에 대한 설계가 중요하다. Primary Key인 Partition Key, Sort Key를 사용한다.
Lambda로 앱서버 생성하기
AWS의 대표적인 서버리스 서비스로 서버에 대해 고민하지 않고, 서비스에만 집중할 수 있도록 도움을 준다.
많은 요청이 발생해도 자동으로 확장되며, 고가용성 및 보안, 사용한 만큼만 지불하는 등의 특징이 존재한다.
이 Lambda는 간단한 데이터 분석, 사진 이미지의 썸네일 버전을 만드는 등의 기능 또한 제공한다.
API Gateway 구성하기
AWS의 API 관리 서비스, 대표적으로 RESTful: HTTP APIs & REST APIs를 사용한다(+WebSocket APIs).
API Gateway 서비스를 생성하고, Lambda와 연결해서 좀 더 완성도 높은 서비스를 만들 수 있다.
S3로 웹서버 기능 사용하기
어디서나 원하는 양의 데이터를 저장하고 검색할 수 있도록 구축된 객체 스토리지이다.
확장성(대용량 데이터 처리 가능), 데이터 가용성, 보안 및 성능을 제공한다.
정적 웹사이트 호스팅을 사용하여 실습한다(서버 측 스크립팅은 지원하지 않음).
이 과정을 거치고 정적 웹사이팅 호스트 주소를 브라우저에 붙여 넣으면, 아래와 같은 화면이 생성된다.
최종적으로. 아래와 같은 서버리스 아키텍처를 모두 완성한 것이다.
즉, 운영에 대한 최적화의 관점이 모두 서버리스 형태로 제공되는 것이다.
Amazon Web Servives, "AWS Workshop Studio Join hands-on events and workshops",
AWS Workshop Studio, 2008 - 2024, https://catalog.workshops.aws/
Amazon Web Servives, "AWS Builders Korea Program 클라우드 실습 A to Z",
AWS Builders Korea Program, 2024, https://kr-resources.awscloud.com/aws-builders-korea-program