일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- mysql
- Scheduling
- Task
- dagrun
- Concept
- celery
- RDS
- kinesis
- Git
- AWS
- SecretsManager
- XCOM
- authoring
- executor
- dynamic task mapping
- sqs
- Operator
- ci/cd
- testing
- TaskFlow
- pipeline
- S3
- boto3
- github actions
- lambda
- DAG
- git book
- credentials
- Data Firehose
- airflow
- Today
- Total
목록lambda (6)
CS
이전에는 Data Firehose를 대기열로 사용하여 S3로 데이터를 보내고 Lambda를 트리거하였는데, 이번에는 SQS를 대기열로 사용하여 바로 Lambda를 트리거하는 아키텍처를 만들었습니다. Firehose는 스트리밍 데이터를 ETL하는 플랫폼으로 만들어졌기 때문에, RDB에 입력할 데이터를 전달하는 용도로 사용하기에는 버퍼나 Lambda를 직접 트리거하지 못하는 등 부적합한 부분이 있다고 생각합니다. 그래서 이름 그대로 간단한 대기열인 SQS를 사용하기로 하였습니다. SQS에 데이터 전송 import boto3 import json from createLog import random_log sqs = boto3.client('sqs') for _ in range(3000): response = ..
AWS 서비스를 학습하기 위하여 간단한 파이프라인을 만들어 보았습니다.Firehose에 데이터를 전송하여 S3에 저장하도록 하고, S3 트리거로 Lambda를 작동시켜 데이터를 RDS에 입력하는 아키텍처입니다.Python만 사용하였습니다. 데이터보낼 데이터는 관계형 데이터베이스에 저장할 만한 유저 데이터 형식을 따릅니다.from faker import Fakerdef random_log(): fake = Faker('ko-KR') # (이름, 주소, 우편번호, 전화번호('-' 미포함), 이메일, 타임스탬프('2008-04-09 05:23:30'), 랜덤 텍스트) raw_data = {'name': fake.name(), 'address': fake.addres..
서비스를 학습하기 위하여 간단한 파이프라인을 만들어 보았습니다. Github Actions에서 AWS SQS로 이미지 URL 전달 SQS는 AWS Lambda 함수를 트리거하여 이미지 URL에서 이미지를 받고 축소한 후 S3에 저장 Github Actions ▶ SQS 주기적으로 작업을 실행할 수 있는 서비스인 Github Actions를 사용하여 매일 0시(UTC)에 이미지 URL 20개를 SQS 대기열에 보내도록 하였습니다. SQS에 접근한 후 이미지 URL을 SQS 대기열에 보내는 파이썬 파일과, 이를 Actions로 실행하기 위해 워크플로 파일을 만들었습니다. Github Actions 환경이기 때문에, SQS 클라이언트 객체를 생성할 때 공유 자격 증명 등 파일이 아닌 방법으로 자격 증명을 해야..
(python3 기준입니다.) AWS Lambda에 사용할 코드를 작성할 때 웬만하면 라이브러리를 사용할 것입니다. 그런데 Lambda에서 모든 라이브러리를 지원하지는 않습니다. 따라서 미지원 라이브러리를 사용하는 함수는 실패하게 됩니다. Lambda 함수에 라이브러리를 패키징할 수도 있는 것 같지만, Lambda에서는 따로 '계층(Layer)'이라는 것을 제공하고 있습니다. 계층은 라이브러리 같은 종속 항목을 따로 저장해 둘 수 있는 기능입니다. 자주 쓰는 라이브러리로 계층을 만들어 놓으면 다른 Lambda에도 재사용할 수 있어 편한 것 같습니다. 사용 방법 콘솔에서 계층이 필요한 Lambda 함수의 코드 탭 ▷ 계층 ▷ [Add a Layer] 버튼을 클릭하여 계층을 선택하면 됩니다. 아키텍처는 보통..

Serverless는 서버리스 함수(AWS에서는 Lambda)를 인프라 구성 없이 배포할 수 있도록 하는 프레임워크입니다. 학습자 입장에서 Serverless를 써보면서 알게 된 점을 정리하고 공유하는 의미에서 글을 써보겠습니다. 설명 사용 방법 기타 1. 설명 Serverless는 터미널에서 사용할 수 있는 프레임워크입니다. Lambda를 쓸 때 코드 템플릿을 정하거나 파일을 패키징하는 등 구성할 게 많은데, Serverless를 쓰면 yml 파일을 사용하여 설정을 한 공간에서 할 수 있고, AWS CloudFormation을 통하여 인프라를 자동으로 만들어 줍니다(CloudFormation은 코드형 인프라 서비스로 인프라를 코드로 작성할 수 있도록 합니다.). 특히 기본 인프라를 만들어 주는 점 덕분..
학습자 입장에서 사용하면서 알게 된 점을 정리하고, 혹시 필요한 사람들에게 도움이 되길 바라면서 글을 써보겠습니다. 설명 사용 방법 모니터링 기타 1. 설명 Lambda(설명서)는 AWS를 사용하면 자주 다루게 되는 서비스입니다. 보통 서버리스 함수라고 하는데 말 그대로 서버(컴퓨터) 없이 사용할 수 있는 함수입니다. 이름처럼 Lambda 1개가 하나의 함수로 기능하는 꼴입니다. 여타 서버리스 서비스처럼 사용할 때만 비용이 부과되어 비용 효율적입니다. 주로 트리거 기능을 사용하여 AWS상 서비스에서 독자적 코드가 필요한 부분(데이터 변환 등)에 사용되는 등 중간 다리 역할을 맡는 것 같습니다. 2. 사용 방법 생성할 때 특별히 신경 쓸 건 없습니다. 서버리스고 사용자가 직접 코드를 작성하는 걸 상정하기 ..