EC2. Vercel Gmail
RDS Lamda. Slack
Saas - Gmail
Lambda
-> Serverless 컴퓨팅
=> 서버가 없는 컴퓨팅 서비스
우리가 서버를 직접 관리할 필요가 없다
클라우드서비스 유형
간단한 작업 처리할 때
디스코드로 로그인
AWS Lamda
IAM Role
—
>
AWS CloudWatch Logs. 로그추가 API
import time
def lambda_handler(event, context):
print("Lambda function ARN:", context.invoked_function_arn)
print("CloudWatch log stream name:", context.log_stream_name)
print("CloudWatch log group name:", context.log_group_name)
print("Lambda Request ID:", context.aws_request_id)
print("Lambda function memory limits in MB:", context.memory_limit_in_mb)
# We have added a 1 second delay so you can see the time remaining in get_remaining_time_in_millis.
time.sleep(1)
print("Lambda time remaining in MS:", context.get_remaining_time_in_millis())
ramda함수에서 api 추가하여 함수를 호출하는 HTTP 엔드포인생성
import json
def lambda_handler(event, context):
return {
"statusCode": 200,
"body": json.dumps("Hello, API GW!"),
}
import json
def lambda_handler(event, context):
query_params = event.get("queryStringParameters", {})
name = query_params.get("name", "Unknown")
job = query_params.get("job", "Rich")
return {
"statusCode": 200,
"body": json.dumps(f"{name} is {job}"),
}
query_params = event.get("queryStringParameters") or {}
ls
Mkdir lamda
Ls -al
..
.idea
Index.html
Index.php
lamda
—
pip install requests beautifulsoup4
Def lamda_handler(event, context):
Return
Pip install request
pip install -t ./crawling/package requests beautifulsoup4
라이브러리를 설치한다.
=파이썬 가상환경에 다운로드받아서 코드 사용
AWS Lamda에 올릴 ( 코드+라이브러리).zip upload
가상환경이나 패키지에 설치해야 하나
로컬 가상환경 상에서 실행하기 위해선 install 1회 해도 상관X → AWS 상에서 실행하기 위해선 패키지 필요 → 그래서 package 폴더에 다운로드 해 줌 → AWS 업로드 후, 해당 환경에서 실행 시 해당 패키지 사용 예저ㅏㅇ
Import requests
Aws 제어방법
- 콘솔로그인 -> UL
- AWS CLI 명령어
- 프로그래밍 언어 (boto3)
image_upload.py
brew install awscli
aws-cli/2.31.21 Python/3.13.9 Darwin/25.0.0 source/arm64
-
-create-bucket-configuration LocationConstraint=ap-northeast-2
--create-bucket-configuration LocationConstraint=ap-northeast-2
https://github.com/mentorships/invite-guide 접속
가이드에 따라 repo 초대 API 실행하기
Response가 200이 나왔을 시 이메일을 확인 후 Accept 클릭하기
초대완료
GitHub Username 본인의 Github 프로필에 있는 사용자명
Repository 이름 OZ-coding-14-Flask
X-API-KEY oz-be14-250922
Pyrhon3 -m venv vent
——
이번 메모는 AWS Lambda를 활용한 서버리스(Serverless) 아키텍처와 파이썬을 이용한 자동화에 대한 핵심 내용들이 담겨 있네요.
특히 서버를 직접 관리하지 않고 코드만 실행하는 방식과, 외부 라이브러리(requests, bs4)를 Lambda에 올리기 위해 패키징하는 과정이 매우 중요한 포인트입니다.
1. AWS Lambda: 서버 없는 컴퓨팅 (Serverless)
서버의 사양을 고민하거나 운영체제를 업데이트할 필요 없이, 코드만 작성하면 실행되는 서비스입니다.
- 특징: 코드가 실행될 때만 비용이 발생하며, 간단한 작업(데이터 처리, 알림 발송 등)에 최적화되어 있습니다.
- API Gateway 연결: Lambda 자체는 주소가 없지만, API Gateway를 앞에 두면 http://.../name=hanyul 같은 **URL 주소(엔드포인트)**를 가질 수 있게 됩니다.
- queryStringParameters: URL 뒤에 붙는 파라미터(?name=Rich)를 인식해서 코드 안에서 변수로 사용하는 핵심 기술입니다.
- Shutterstock
2. 외부 라이브러리 사용 및 패키징 (중요!)
Lambda는 기본적으로 requests나 BeautifulSoup 같은 외부 라이브러리가 깔려 있지 않습니다. 그래서 **"내 코드 + 라이브러리 파일"**을 하나로 묶어서 올려야 합니다.
- 패키지 설치 명령어: pip install -t ./package [라이브러리명]
- 배포 과정:
3. AWS 제어 방법 3가지
AWS를 다루는 방법은 크게 세 가지로 나뉘며, 메모에는 이 모든 과정이 포함되어 있습니다.
- AWS 콘솔: 웹사이트에 로그인해서 마우스로 클릭 (UI).
- AWS CLI: 터미널에서 명령어로 제어 (aws s3 mb ...).
- SDK (Boto3): 파이썬 같은 프로그래밍 언어 코드로 AWS 자원을 생성/수정.
4. GitHub API 연동 및 자동화 과제
메모 하단부는 실제 API를 호출해서 특정 작업을 자동화하는 실습 내용입니다.
- X-API-KEY: 보안을 위해 사용하는 인증 키입니다.
- GitHub 초대 API: 수동으로 초대 메일을 보내는 대신, 파이썬의 requests 라이브러리를 사용해 API로 초대장을 발송하는 연습을 하신 것으로 보입니다.
- 결과 확인: Response 200(성공)이 뜨면 이메일에서 수락 버튼을 누르는 흐름입니다.
💡 정리 및 다음 단계
메모의 흐름을 보니 **"파이썬으로 크롤링 코드를 짜서, 이를 Lambda에 올려 자동화하고, API Gateway로 외부에서 호출하는 구조"**를 공부하신 것 같습니다.
혹시 다음 단계로 아래 내용 중 궁금한 것이 있으신가요?
- Lambda에 올릴 .zip 파일을 터미널에서 한 번에 만드는 명령어가 궁금하신가요?
- 파이썬으로 AWS를 조작하는 boto3 라이브러리의 기본 사용법을 알려드릴까요?