본문 바로가기

Backend/AWS

(6)
[AWS] EC2 vs Lambda 무엇을 이용할까 AWS로 인프라를 구성할 때 했던 고민이다. '백엔드 코드를 EC2에서 실행시킬까? Lambda에서 실행시킬까?' 결론적으로는 Lambda 를 사용하기로 하였는데 그 근거들을 정리해보았다. EC2 가상 서버(인스턴스)를 제공하는 서비스이다. 사용자는 운영 체제를 선책하고 어플리케이션 스택을 설치하고 구성할 수 있다. 수동으로 또는 Auto Scaling 과 같은 서비스를 사용하여 수평 및 수직 확장을 구성할 수 있다. 인스턴스의 용량과 사용 시간에 기반하여 요금이 부여된다. Lambda 서버리스 컴퓨팅 플랫폼이다. 사용자가 코드를 실행할 때만 비용이 발생하는 이벤트 기반의 컴퓨팅을 제공한다. 주로 작은 함수 또는 마이크로서비스를 실행하는 데 사용되며 다양한 런타임(Node.js, Python, Java,..
[AWS] Unable to import module 'lambda_function': No module named 'pydantic_core._pydantic_core' lambda함수에서 ChatOpenAI를 import 할 때 생기는 문제이다. lambda 의 layer 를 설정할 때, site-packages 를 mac에서 그대로 압축시켜서 올렸을 때 발생한다. 리눅스 기반 환경인 lambda 와 mac의 운영체제 상 호환성 문제인 듯 하다. from langchain_openai import ChatOpenAI https://www.reddit.com/r/OpenAI/comments/17umdmp/new_sdk_incompatible_with_aws_lambda/ From the OpenAI community on Reddit Explore this post and more from the OpenAI community www.reddit.com 위의 reddit..
[AWS] Batch job docker image 환경변수 AWS Batch 내에서 작업을 처리할 때, docker image를 사용하는 경우가 많다. docker image 의 환경 변수를 어떻게 설정할 수 있을까? 1. Docker 이미지 내에서 설정 (Build 시) Docker 이미지를 빌드할 때, 환경 변수를 이미지 내에 포함시키는 방법이다. Dockerfile에서 ENV 명령을 사용하여 환경 변수를 설정하고, 이미지를 빌드할 때 해당 환경 변수가 이미지에 포함된다. 예를 들어, Dockerfile 내에서 다음과 같이 환경 변수를 설정할 수 있다. ENV MY_VARIABLE=value 또한 .env 파일을 이용할 수 있다. 이 경우, 여러 환경변수를 한번에 주입할 수 있다. docker 이미지를 빌드할 때 .env 파일을 이용하여 일괄적으로 환경 변수..
[AWS] Batch (How to Submit Job) Batch (How to Submit Job) 클라이언트에서 어떻게 작업을 제출할 수 있을까? AWS 에서는 submit job 에 대한 API 명세를 제공하고 있다. https://docs.aws.amazon.com/ko_kr/batch/latest/APIReference/API_SubmitJob.html SubmitJob - AWS Batch Jobs that run on Fargate resources can't be guaranteed to run for more than 14 days. This is because, after 14 days, Fargate resources might become unavailable and job might be terminated. docs.aws.amazo..
[AWS] Batch (ECR docker image 사용) Batch Batch는 일련의 작업들을 한번에 하는 것을 의미한다. 많은 작업을 한 번에 처리하는 것은 리소스와 시간을 절약할 수 있다. 또한 클라이언트의 요청과 서버의 처리를 완전히 분리할 수 있다. 특정 시간대에 몰아서 작업을 처리하는 방식은 비동기적이며, 이는 클라이언트와 서버 간의 상호작용을 끊임없이 유지할 필요 없다. 해야할 작업(job)을 정의 실행된 작업은 작업 큐(job queue)안으로 AWS Batch에 의해 작업 스케줄링 및 관리 일반적인 Batch 사용 많은 경우에서는 Docker image 를 이용해서 Batch job을 정의한다. 만일 Batch를 이용해서 AI 이미지 생성 파이프라인을 구축하고 싶은 경우, AI 이미지 생성 파이썬 코드를 Docker image로 만든 후 Bat..
[AWS] VPC, Subnet 등 용어 정리 AWS 환경을 구축하다보면 VPC, subnet 과 같은 용어들을 많이 듣게 된다. 용어 개념 정리는 지금 시간이 걸리더라도 한번 알아두면, 후에 트러블 슈팅이나 개념 확장에도 용이할 것이다. 한번 알아봅시다. VPN Virtual Private Network (가상 사설 망) 논리적 분리 원격 위치나 다른 네트워크와 안전하게 연결 VPC Virtual Private Cloud (고객 전용 사설 클라우드) 논리적으로 완전히 분리된 네트워크 RFC1918라는 Private IP 대역에 맞추어 구축 Public IP 인터넷에서 직접 접근 가능 Private IP 내부 네트워크에서 사용되는 IP 주소 범위 인터넷에 공개적 노출 X 일반적으로 사용되는 IP 범위 10.0.0.0에서 10.255.255.255까..