Serverless란?
- 클라우드 서비스 공급자가 서버를 실행하고 머신의 리소스를 동적으로 관리하는 클라우드 컴퓨팅 실행 모델
- 용량 단위 구매가 아닌 소비 단위 구매
- 일반적으로 실행 횟수, 실행 시간( CPU), 실행 용량(Memory)을 기반으로 과금 됨
- like 서비스를 제공하기 위해 대기하는 웨이터
Azure Serverless 서비스

- Azure Functions: 기본 플랫폼이나 인프라를 구성하지 않고 소스 코드를 실행할 수 있는 서비스. 이벤트 기반으로 동작
- Azure Logic App: 앱, 데이터, 시스템, 서비스를 통합하여 작업 또는 비즈니스 프로세스 및 워크플로를 자동화할 수 있는 서비스
- Azure Event Grid: 균일한 이벤트 소비를 위해 발행-구독 모델을 사용하는 완전 관리형 지능형 이벤트 라우팅 서비스
Azure Functions 만들기

- Azure portal에서 함수앱을 검색한다.

- 만들기를 클릭한다.

- 나는 함수가 실행중일때 비용을 지불하는 사용량 계획을 선택했다.

- 리소스 그룹을 새로 만들고 .NET 스택과 windows 운영체제를 선택하고 검토 + 만들기를 한다.

- 리소스가 생성되면 함수앱으로 들어온다.
- 함수를 만드려면 Visual Studio, VS Code, CLI를 사용하라고 하는데, 나는 VS Code환경에서 작업했다.
VS Code가 설치되어 있어야하고 VS Code 확장에서 Azure Functions를 설치하고 로그인했다.

- 프로젝트를 담을 폴더하나를 생성하고 폴더에서 VS Code를 실행한다.

- 아래 폴더 버튼을 누르면 위에 생성 옵션이 생긴다.





- 순서대로 따라하면 샘플 코드가 생기고 F5를 눌러 코드를 실행 할 수 있다.
- http url이 하나 생기는데 이 url로 접속하면,

- 함수가 잘 실행되고 있다는 텍스트를 확인할 수 있다.
Azure App Service Plan
- Web App, API App, Moblie App, Logic App, Functions가 실행되기 위해 생성되는 리소스
- 실제 과금 단위
- App Service plan (Windows): Windows IIS 기반의 Plan. 용량단위 구매로 최대 10대까지 확장 가능.
- App Service plan (Linux): Linux 기반의 Plan. 용량단위 구매로 최대 10대까지 확장 가능
- Consumption Plan: Windows 또는 Linux를 기반으로 사용한 만큼 지불하는 Plan
Web App
- 웹 어플리케이션을 호스팅하는 완전 관리형 서비스
- 사용자는 운영체제의 Type을 선택할 수 있으나 운영체제를 조작할 수 없음
- Code만 업로드 하거나 Container를 이용하여 운영 가능
- Slot을 만들어 서로 Swap을 할 수 있으며 이로 DevOps를 가속화 가능
- 여러 언어 및 프레임워크 지원
- SaaS 플랫폼과 On-premise 데이터 연결
- 보안과 규정 준수
- Visual Studio와 통합 됨
Azure Web App 만들기

- Azure portal에서 App Services를 검색한다.

- 웹앱을 만든다.

- 리소스 그룹을 생성하고 게시를 컨테이너로 설정한다.
문제

- 여기서 문제가 발생하였다.
- microsoft/aci-helloworld 이미지가 존재하지 않는 상태라서
- 배포하였더니

- Application Error가 발생하였다.
- 그래서 이미지를 nginx:latest 로 생성하였다.

- 리소스로 이동하여

- 도메인으로 접속하면

- 정상적으로 배포가 된것을 확인할 수 있다.
이런식으로 컨테이너에 웹앱을 올리면 정상적으로 실행되는것을 확인할 수 있다.
Function과 Web App 둘 다 App Service에서 동작을 하고, Function은 소비기반 모델으로 동작한다.
코딩한 것을 올려서 사용만 하면 되는 엄청 편리한 플랫폼을 사용해보았다.
웹앱을 이용해서 간편하게 배포하자!