본문 바로가기

반응형

AWS Lambda ƛ

(17)
SpringBoot 프로젝트를 AWS Lambda로 실행하기 (1) # SprinbBoot 프로젝트를 AWS Lambda로 실행하기 1. 스프링 이니셜라이저를 통한 프로젝트 생성 https://start.spring.io/ AWS Lambda 같은 경우는 SpringBoot 2.x.x 버전과 java 11 까지 지원한다. 아래와 같은 옵션을 선택 후 진행한다. GENERATE 버튼을 클릭하면 위의 설정한 옵션을 기반으로 .zip 파일로 프로젝트를 다운로드 할 수 있다. 압축을 해제 후 인텔리J나 VS코드로 폴더를 오픈한다. 2. build.gradle 설정 가장 처음 해야할일은 build.gradle 파일에 라이브러리를 추가해 줘야한다. - 아래의 코드는 현재 설정된 build.gradle 내용이다. (참고만 하기) plugins { id 'java' id 'org.sp..
Lambda Layers 를 활용해 공통 라이브러리 관리하기 # 기존 방식처럼 lambda 라이브러리를 zip 파일로 생성하여 AWS Lambda에 업로드 하게 되면 함수를 매번 생성할 때마다 업로드를 라이브러리를 업로드 해야하는 불편함이 있다. AWS Lambda의 새롭게 추가된 기능을 보면 Layers 계층이라는 기능이 있다. 해당 Layers를 신규로 추가하여 공통된 라이브러리를 올릴수 있다. 1. 레이어 생성 계층을 클릭하여 하나의 레이어를 생성한다. 2. 계층 생성 옵션에서 아래와 같이 구성내용을 입력하여 구성을 진행한다. 여기서 주의할 점은 파이썬 라이브러리 파일의 이름이 이전에는 bs4.zip으로 저장 되었지만, AWS Lambda에서 라이브러리를 인식 하는 위치 조건에는 최상위 폴더가 Library가 되어야 하고, 해당 폴더안에 python이라는 폴..
AWS Lambda를 활용하여 크롤링 봇 만들기 파이참에서 bs4 라이브러리의 BeautifulSoup 을 통해 구글의 메인 페이지의 a 태그값들을 모두 가져온다. 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') request_list = [] for i in a_tags: request_list.append((i.get_text())) print(request_list) 그렇다면 파이참에서 실행하는것과 같이 AWS 람다에서도 실행이 가능할까? AWS 람다에서 실행하기 위해서는..
AWS Lambda에 API Gateway를 연결하여 간단한 웹 서버 만들기 Lambda란 무엇인가? # AWS Lambda를 사용하면 별도의 프로그램을 설치할 필요 없이 바로 사용이 가능하다는 장점이 있다. 손쉽게 서버를 구축하여 데이터를 입력으로 받고 처리하고 전달하는 기능을 수행한다. 별도의 서버나 인프라 환경을 항상 구비해두고 실행 시킬 필요 없이 필요할 때에만 실행 시켜 연산을 수행하고, 수행이 필요 없을때에는 리소스 자원을 내려놓는 역할을 하는게 AWS Lambda의 역할이다. 한마디로 AWS 람다는 함수라고 생각하는게 편하다. 여기서 함수를 작성해서 자동으로 동작하도록 한다 라는 의미로 생각하면 쉽다. 그리고 작성한 함수를 언제 동작시킬지에 대한 조건도 정할 수 있다. 특정 이벤트가 발생했을때 우리가 작성한 AWS Lambda 함수가 동작하도록 설정할 수 있고, 코드..
S3 버킷의 폴더를 삭제 후 새폴더를 생성 및 파일을 업로드 하는 방법 # 작업 구성도 # 람다 코드 #--------------------------------------------------------------------------------- # 특정 S3 버킷의 폴더를 삭제 후 특정 폴더를 생성과 동시에 파일을 업로드 하는 방법 # 해당 버킷의 Prefix에 1개의 파일만 존재하도록 유지하기 위함 # → 아테나나 퀵사이트에서 1개의 파일을 읽어야만 하는 경우가 생기는 경우 # → → S3 버킷에 1개의 파일만 존재해야 하는 경우...!! #--------------------------------------------------------------------------------- import time import boto3 # query = 'SELECT * F..
AWS API Gateway - RESTful API 생성하기 with Lambda # AWS API Gateway RESTful 관련 구성도 (현재는 9번까지 작성함) # RESTful API 란? REST API(RESTful API, 레스트풀 API)란 REST 아키텍처의 제약 조건을 준수하는 애플리케이션 프로그래밍 인터페이스이다. REST는 웹의 창시자(HTTP) 중의 한 사람인 Roy Fielding의 2000년 논문에 의해서 소개되었다. 현재의 아키텍쳐가 웹의 본래 설계의 우수성을 많이 사용하지 못하고 있다고 판단했기 때문에, 웹의 장점을 최대한 활용할 수 있는 네트워크 기반의 아키텍쳐를 소개했는데 그것이 바로 Representational safe transfer (REST)이다. # AWS의 API Gateway 서비스를 활용하여 RESTful API를 생성해 보자. # ..
AWS Lambda에서 특정 문장을 출력하기 # AWS Lambda에서 특정 문장를 출력하는 함수를 생성해보자. 1. 일단 Lambda 서비스로 이동하고, 함수 생성을 클릭하여 함수를 생성합니다. 2. 함수 생성 시 옵션에 새로운 함수 생성과 블루프린트 사용 등 다양한 옵션이 있습니다. - 새로 작성은 백지에서 새로운 함수를 작성하고 실행하는 개념으로 이해가 가능하고, 블루프린트 사용은 다른 누군가가 만들어 놓은 함수를 가져다가 사용할 수 있는 옵션이라고 볼 수 있습니다. - 새로 작성을 선택하고 다음으로 넘어갑니다. 3. 함수명과 런타임 할 언어를 선택 후 함수 생성을 클릭하여 생성을 합니다. 4. 함수가 정상적으로 생성이 되면 아래와 같은 화면으로 출력이 됩니다. 테스트를 하면 코드를 실행 후 결괏값을 반환합니다. 람다 함수를 Lambda fu..
람다란? 람다란? 람다는 기본적으로 이벤트 드라이븐 방식으로 동작합니다. API 게이트웨이API Gateway와 엘라스틱 로드 밸런서Elastic Load Balancer의 HTTP 요청을 처리할 수 있으며, S3 객체, 다이나모DB DynamoDB, 키네시스 Kinesis 등에서 발생하는 이벤트를 트리거로 실행하는 것도 가능합니다. AWS 람다는 컨테이너를 지원하지 않지만, AWS에서는 람다와 별개로 컨테이너 기반의 서비리스 서비스 AWS 파게이트AWS Fargate를 제공하고 있습니다. AWS 람다와 유사한 컴퓨팅 서비스로는 마이크로소프트 애저 Microsoft Azure의 애저 펑션Azure Functions, 구글 클라우드 플랫폼Google Cloud Platform의 클라우드 펑션Cloud Functio..

728x90
반응형