AWS_Serverless Computing

2021. 12. 30. 15:08Cloud

1. 개념

 : APP을 실행하고 서비스를 제공하거나 서버를 사용하는데도 불구하고 사용자가 관리하는 서버는 없는 환경.

 서버는 어딘가에 존재하나, 사용자가 관리를 하지 않는다는 의미이다. 그 결과 사용자는 장애 관리, 시스템 관리적인

부분으로부터 해방된다. 관리적인 부분은 모두 AWS에서 전담한다. 

 - S3, DynamoDB, SNS 모두 서버리스 서비스

2. AWS Lambda

 : 사용자가 실행을 원하는 코드를 원하는 시점에 실행 환경을 관리할 필요 없이 정확하게 실행시켜주는 서비스 

 - 완전 관리형 컴퓨팅 서비스 : 모든 관리적인 부분을 AWS가 전담하며 어딘가 존재하는 서버를 사용자가 사용

 - 실행 최대 실행시간 15분 : 그 이상은 실행되지 않으며 대부분 그전에 끝나도록 코드를 짠다.

 - 상태 비저장 코드 실행 : 코드가 실행될때 환경이 만들어지나, 끝나면 곧바로 사라진다. 그렇기 때문에 실행 내용이 남지 않는다. 

 *상태 저장을 원한다면 코드 끝에 저장할 곳을 적어두고(ex> S3), 실행 시 참조할 수 있도록 코드를 짜면 된다. 

 - 지원 언어 : Node.js, JAVA, Python, C#, Go, Rudy

 - 다른 언어도 사용은 가능하지만 실행 환경을 같이 업로드 해주어야 사용이 가능하다. 

 - 사용 방법 : 트리거, 이벤트에 대한 응답으로 코드를 실행한다.

 - 비용 : 트리거가 실행된 만큼 부과

 - 담당 : 서버, 용량, 배포, OS, 지표, 로그

 - 그 외 기능 : 코드 병렬 실행, 자체 코드 사용

 1) 트리거

 : Lambda 코드가 어떤 서비스에 어떤 이벤트가 발생했을때 작동하도록 만드는 기능. 

 ex> S3의 특정 버킷에서 파일이 업로드 될 때 Lambda 실행

 - 설정 : 코드에 함수, 언어, 실행 시 권한(역할)을 연결시켜 준 뒤 업로드. 그 후 코드를 실행하는 시점을 정해야 하는데 이를 '트리거'라고 한다. 

3. API Gateway

 : API 함수를 호출하는 관문. Lambda와 연계하여 특정 트리거가 발생 시 해당 함수를 맞는 목적에 배치하는 기능

4. Step Functions

 : 어떤 방식으로 Lambda가 실행될 지 지정하며 단계별로 확인 할 수 있는 기능

'Cloud' 카테고리의 다른 글

AWS_복구  (0) 2021.12.30
AWS_Micro Service  (0) 2021.12.29
AWS_결합 해제  (0) 2021.12.28
AWS_Caching  (0) 2021.12.27
AWS_Auto Scaling  (0) 2021.12.27