본문 바로가기
Cloud/AWS

[2021.06.09] 인턴 +100 AWS Lambda 정의 및 사용법(API Gateway)

by injekim97 2021. 6. 9.
반응형

[2021.06.09] 인턴 +100   AWS Lambda 정의 및 사용법(API Gateway)

 

 

 

https://ap-northeast-2.console.aws.amazon.com/lambda/home?region=ap-northeast-2#/functions 

 

https://ap-northeast-2.console.aws.amazon.com/lambda/home?region=ap-northeast-2#/functions

 

ap-northeast-2.console.aws.amazon.com

 

* Lambda

-> AWS 에서 제공하는 FaaS 서비스

-> AWS Lambda는 아마존 웹 서비스(Amazon Web Services)에서 제공하는 서비리스 컴퓨팅 서비스
-> 서버리스 컴퓨팅은 애플리케이션을 실행하기 위한 별도의 서버 셋업 없이 곧바로 코드를 실행해주는 서비스를 의미
-> 서버를 프로비저닝하거나 관리할 필요 없이 코드를 실행

 

 

 

 

* 프로비저닝이란?
-> 사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해 두었다가 필요 시 시스템을 즉시 사용할 수 있는 상태로 미리 준비해 두는 것

 

-> 서버 자원 프로비저닝, OS 프로비저닝, 소프트웨어 프로비저닝, 스토리지 프로비저닝, 계정 프로비저닝 등이 있고 수동으로 처리하는 '수동 프로비저닝'과 자동화 툴을 이용해 처리하는 '자동 프로비저닝'이 있습니다.

 

 

 

* 서버리스

-> 내가 요청받고 처리하는 서버가 없는 것을 뜻함

 


* 서버리스 아키텍쳐 (serverless architecture) 
-> 기존에 서버를 가지고 하던 서비스를 서버가 없이 동작하게 만드는 구조. (클라우드를 통해 서버가 없는 것처럼 사용)

 

 


* API 게이트웨이(API Gateway)
-> API 게이트웨이를 통해 HTTP 요청을 람다 함수를 사용해 처리

 

 

 

* Lambda 의 주요 장점
-> 인프라에 대한 걱정 없이 코드 실행 가능(NoOps 실현)

 

 

 

 

 

* Lambda 사용 사례
실시간 파일 처리
-> Lambda를 사용하여 실시간으로 이미지를 썸네일하고, 동영상을 트랜스코딩하고, 파일을 인덱싱하고, 로그를 처리하고, 콘텐츠를 검증하고, 데이터를 수집 및 필터링

 

 

실시간 스트림 처리

-> AWS Lambda 및 Amazon Kinesis를 사용하여 애플리케이션 활동 추적, 트랜잭션 주문 처리, 클릭 스트림 분석, 데이터 정리, 지표 생성, 로그 필터링, 인덱싱, 소셜 미디어 분석, IoT 디바이스 데이터 텔레메트리 및 측정을 위한 실시간 스트리밍 데이터 처리 가능

 

 

추출, 변환, 로드
-> AWS Lambda를 사용하여 DynamoDB 테이블의 모든 데이터 변경에 대한 데이터 검증, 필터링, 정렬 또는 기타 변환 작업을 수행하고 변환된 데이터를 다른 데이터 스토어로 로드

 


IoT 백엔드
-> AWS Lambda 및 Amazon Kinesis를 사용하여 사물 인터넷(IoT) 디바이스 데이터 텔레메트리 및 분석을 위한 백엔드를 구축 

 


모바일 백엔드
-> AWS Lambda 및 Amazon API Gateway를 사용하여 API 요청을 인증 및 처리하도록 백엔드를 구축

 

 

웹 애플리케이션

-> AWS Lambda를 다른 AWS 서비스와 결합하면, 확장성, 백업 또는 여러 데이터 센터 중복에 필요한 별도의 관리 작업 없이 개발자가 자동으로 확장 및 축소되고 여러 데이터 센터에 걸쳐 가용성이 높은 구성에서 실행되는 강력한 웹 애플리케이션을 구축

 

 

-----------------------------------------------------------------------------------------------------------------------------------

<lambda 생성 방법>

-> 함수 생성 버튼 클릭

 

 

 

-> 새로작성 클릭

-> 함수이름과 런타임(사용할 언어 선택)

-> 그런 후에, 함수 생성 클릭

 

 

<lambda가 생성된 모습>

* 트리거
-> 람다 함수를 언제 실행할 지에 대한 내용을 의미

* lambda_handler
-> 어떠한 이벤트(Event)를 처리하는 함수, 

* 이벤트(Event)
-> 클라이언트의 활동을 의미

* 이벤트(Event) 언제 발생되나?
-> 트리거를 통해 발생함 
-> 이벤트가 발생하면 lambda_handler 함수의 ‘Event’ 매개변수로 값이 들어옴

 

 

 

-> lambda를 만들면, sample code가 주어짐

-> 자, file을 눌러 Save를 클릭하여 저장

 

 

 

 

 

---------------------------------------------------------------------------------------------------------------------------

<트리거(Trigger)를 통한 클라이언트의 요청(Request) 데이터를 AWS 웹 서버로 전송방법>

-> API Gateway(웹 서버 처럼 동작하는 기능)

 

 

<트리거에 API Gateway(API 게이트웨이) 설정 방법>

-> 트리거 추가

 

 

 

 

 

 

 

 

-> API 게이트웨이

-> API : API 생성 

-> 보안: 열기

 

 

<HTTP API 와 REST API 차이를 그림으로 나타냄>

* HTTP API

-> HTTP를 사용해서 서로 정해둔 스펙으로 데이터를 주고 받으며 통신하는 것으로 이해(상당히 넓은 의미로 사용)

-> 단순하며, 저렴함

 

* REST API

-> HTTP API에 여러가지 제약 조건이 추가(4가지)

-> 복잡하며, 비쌈

 

 

REST API는 다음 4가지 제약조건을 만족해야함

- 자원의 식별

- 메시지를 통한 리소스 조작

- 자기서술적 메서지

- 애플리케이션의 상태에 대한 엔진으로서 하이퍼미디어

 

 

-> API 게이트웨이가 만들어졌다. 클릭해보자.

 

 

-> 세부 정보 클릭

 

 

* API 엔드포인트?

-> 웹 서버 경로

 

 

<API 엔드포인트>

https://rjcal5qy6e.execute-api.ap-northeast-2.amazonaws.com/default/myFunc0609

-> 위의 링크를 클릭하면 아래와 같은 사진처럼 출력

 

 

-------------------------------------------------------------------------------------------------------------

import urllib.request
from bs4 import BeautifulSoup

url = "https://www.google.com"
soup = BeautifulSoup(urllib.request.urlopen(url).read(), "html.parser")
a_tags = soup.find_all("a")
result_list = []


for i in a_tags:
    result_list.append(i.get_text())

print(result_list)

-> 위의 소스코드를 사용하려면, 람다에 라이브러리를 넣어줘야 한다. (아래 링크 참고)

 

 

 

https://injekim97.tistory.com/283?category=954321 

 

[2021.06.28] 인턴 +119 How to upload Library Module in AWS Lambda(selenium,pyautogui)

[2021.06.28]  인턴 +119  How to upload Library Module in AWS Lambda(selenium,pyautogui) 1. 로컬디스크에 새폴더를 만든다. 2. 만든 새폴더에 경로 부분에 cmd를 친다 3. pip3 install bs4 -t ...

injekim97.tistory.com

 

반응형

댓글