게을러지지마 / AWS Lambda로 시작하는 서비스

책 요약

book : aws algorithm

서버(Server) + 리스(Less)의 합성어라 간혹 ‘서버가 없다’라고 문자 그대로 이해할 수 있지만, 절대 그렇지 않다.

서버리스(Serverless)는 클라우드 컴퓨팅의 모델 중 하나로 개발자가 서버를 직접 관리할 필요가 없는 아키텍처를 의미한다.

하지만 서버리스는 동적으로 서버의 자원을 할당한다.

사용자가 없다면 자원을 할당하지 않고 대기하다 요청이 들어오면 그 때 자원을 할당해서 요청을 처리하고 다시 대기 상태로 들어가게 된다. 즉, 자원을 효율적으로 사용할 수 있는 것이다. 비용 또한 대기상태를 제외한 실제 사용 자원에 대해서만 청구되기 때문에 굉장히 경제적이며, 해당 서버는 클라우드 제공 기업에서 전적으로 관리하기 때문에 개발자는 스케일링, 업데이트, 백업, 보안 등 서버에 대해 일절 관리하거나 신경 쓸 필요가 없어 비즈니스 로직에 집중하여 개발을 할 수 있다.

FaaS가 등장하면서 비용을 줄일 수 있었다. <- 서버리스 플랫폼 단위(PaaS)가아닌 함수단위로 제공하여 관리할 서버가 없어졌다

서버리스의 형태 BaaS(Backend as a Service) FaaS(Function as a Service)

FaaS는 함수를 서비스로 이용. 개발자가 환경을 구성하고 서버코드를 작성하는 것이 아닌 FaaS를 이용함으로써 함수만 구현하면 된다. 서버코드를 실행하기 위해 서버를 구성하고 코드를 배포하는 형식을 줄이고, 원하는 로직만 함수를 기반으로 구현.

FaaS의 단점

상태유지가 되지 않는다.

실행시 약간의 지연시간 발생 → 콜드스타트

VPN(Virtual Private Network)은 가상 사설망

VPC(Virtual Private Cloud는 클라우드 환경에서 구성하는 VPN이라고 생각하면 된다.

Subnet

VPC가 논리적인 범위를 의미한다면, 서브넷은 VPC안에서 실제로 리소스가 생성되는 네트워크, 인터넷과 연결이 필요하면 public subnet, 인터넷 연결이 필요없으면 private subnet

라우팅 테이블

라우팅 테이블은 서브넷과 연결되어있는 리소스.

서브넷에서 네트워크 요청이 있을 때 라우팅 테이블로 접근. 라우팅 테이블은 목적지에 대한 이정표.

외부로 통하는 길이 없다. 인터넷 망과 연결하기 위해서는 인터넷 게이트웨이가 필요하다.

인터넷 게이트웨이

인터넷 게이트웨이는 인터넷을 연결해주는 관문. AWS VPC는 격리된 네트워크 환경이기 떄문에 VPC에서 생성된 리소스들은 인터넷 연결이 불가능하다.

인터넷 게이트웨이를 통해 외부와 연결한다.

네트워크 ACL

네트워크 요청을 정해진 규칙에 따라 주고받는 트래픽을 제어하는 가상 방화벽이다.

네트워크 ACL은 다수의 서브넷에서 재사용할 수 있다.

보안그룹

가상방화벽 역활을 한다.

네트워크 ACL과의 차이점

보안그룹 : 인스턴스 앞에서 트래픽을 제어하는 가상 방화벽

네트워크ACL : 서브넷 앞에서 트래픽을 제어하는 역할