728x90

분류 전체보기 105

Airflow dag 인자 받기와 병렬처리법

Airflow 에서 실행하는 task에 인자를 받는 함수가 있을 경우에 해당 방법을 사용하면 된다. def call_api(category, **kwargs): import json import req import requests url = f'http://test/{category}' category 값을 넘겨받아 사용하고싶은 경우 call_api_task1 = PythonOperator( task_id = 'call_api_task1', python_callable = call_api, op_kwargs = {'category': '카테고리 값'}, dag = dag ) 병렬 처리로 수행을 하고 싶은 경우 하단 처리 pipeline에서 [] 로 묶어서 실행하면 병렬처리가 가능하다. start_task..

Airflow정의와 설치 과정

에어플로우는 워크플로우 관리 플랫폼이며, 2014년에, 숙박 공유 서비스인 Airbnb에서 회사가 성장하면서, 점점 복잡해지는 워크플로우를 관리하기 위해서 개발되었다. 그 후에 지금까지 발전되어 많은 회사에서 사용되고 있고, 지금은 Apache 재단에서 최상위 프로젝트로 관리되고있다. 1. 워크플로우 순서가 있는 과정을 의미한다. ex ) 로그를 활용하기 위해 로그의 전처리, 가공 및 분석을 진행하고 처리한 결과를 확인하는 그 모든 과정들을 워크플로우라고 한다. 사용성 측면에서 루이지는 복잡한 API를 가지고 있어서 잘 알고 있으면 에어플로우보다 좀 더 유연하게 사용할 수 있지만 cron을 사용하기 때문에 때문에 확장성이 낮음. 반면, 에어플로우는 사이즈에 따라 로컬에서도 실행할 수 있지만 Kuberne..

AWS - RDS

Relation DB Service (관계형 데이터베이스) 데이터베이스 테이블 데이터 필드 AWS RDS에서 사용 가능한 DB 종류 MS-SQL, Oracle, MySQL, Postgre, Aurora, Maria DB Aurora - AWS 자체에서 운영중이고 프리티어에서 제공하지 않음 Data Warehousing Business Intelligence 리포트 작성, 데이터분석시 사용(Production Database → Data Warehousing) 매우 방대한 분량의 데이터 로드시 사용 → 빅데이터 분석에 사용이 많이된다. 보통 서로 다른 데이터들이 합쳐지며, 유사시 우리가 필요한 데이터를 불러온다. OLAP vs OLTP (차이점 숙지) OLTP : insert와 같이 종종 사용되어지는, 혹..

Kubernetes, AKS 기본

컨테이너를 쉽고 빠르게 배포/확장하고 관리를 자동화해주는 오픈소스 플랫폼 서버리스, CI/CD, 머신러닝 등 다양한 기능이 쿠버 플랫폼 위에서 동작 Deployment, StatefulSets, DaemonSet, Job, CronJob등 다양한 배포방식 지원 Deployment : 새로운 버전의 애플리케이션을 다양한 전략으로 무중단 배포 가능 StatefulSets : 실행순서를 보장하고 호스트 이름과 볼륨을 징정하게 사용할 수 있어 순서나 데이터가 중요한 경우에 사용 가능 DaemonSet : log, monitoring등 모든 노드에 설치가 필요한 경우에 사용 Job, CronJob : 배치성 작업이 필요할 때 사용 Azure Kubernetes Service에 컨테이너화된 애플리케이션 배포 AKS..

카테고리 없음 2022.02.04

Minikube CLI

# minikube 상태확인 $minikube status # minikube 실행 $minikube start # 특정 k8s 버전 실행 $minikube start --kubernetes-version=v1.20.0 # 특정 driver 실행 $minikube start --driver=virtualbox --kubernetes-version=v1.20.0 # minikube ip 확인 (접속테스트시 필요) $minikube ip # minikube 종료 $minikube stop # minikube 제거 $minikube delete # run image $kubectl run hello-node --image=hello-node:v1 --port=8080 --image-pull-policy=Nev..

Kubernetes 대화형 튜토리얼

컨테이너화된 애플리케이션을 클러스터에 배포하기. 디플로이먼트를 스케일링하기. 컨테이너화된 애플리케이션을 새로운 소프트웨어 버전으로 업데이트하기. 컨테이너화된 애플리케이션을 디버그하기. → 쿠버네티스는 컴퓨터들을 연결하여 단일 형상으로 동작하도록 컴퓨팅 클러스터를 구성하고 높은 가용성을 제공하도록 조율한다. → 쿠버네티스는 컴퓨터 클러스터에 애플리케이션 컨테이너의 배치(스케줄링) 및 실행을 오케스트레이션하는 운영 수준의 오픈소스 플랫폼이다. → 쿠버네티스는 이러한 애플리케이션 컨테이너를 클러스터에 분산시키고 스케줄링하는 일을 더욱 효율적으로 자동화한다. 마스터는 클러스터를 조율한다. 마스터는 실행 중인 애플리케이션을 호스팅하기 위해 사용되는 노드와 클러스터를 관리한다. 노드는 애플리케이션을 구동하는 작업자..

Docker, Kube 등 명령어 조금..

MiniKube Init choco install minikube minikube start kubectl get po -A minikube dashboard kubectl create deployment hello-minikube --image=k8s.gcr.io/echoserver:1.4 Docker FROM ubuntu:16.04 #운영체제 정의 COPY helloworld /usr/local/bin #helloworld 파일을 도커 컨테이너 내부 경로에 저장 RUN chmod +x /usr/local/helloworld #COPY에서 저장한 파일에 대한 실행 권한 부여 CMD ["helloworld"] # 완성된 이미지를 도커컨테이너로 실행전 먼저 실행할 명령 정의 $ docker image bu..

AWS - EC2 instance 생성

VPC - 가상의 클라우드 컴퓨팅 다른사람이 접근 하기 위해서는 port 80번을 열어주어야한다. 소스의 위치는 위치무관을 선택할 시에는 어떤 곳에서도 접근이 가능하기에 보안성이 많이 떨어져 prod환경에서는 권장하지 않음 EC2 instance 생성 완료 후에 ssh로 접근하기 key pair를 저장하고, keypair가 있는 위치에서 terminal을 실행시킨다. 1. 접근 후에는 yum update -y 를 이용하여 운영체제 업데이트 및 패키지들을 설치 및 업데이트 해준다. 2. apache를 설치해줘서 웹서버 처럼 사용할 수 있게 해준다. 3. yum install httpd -y 4. service httpd start 5. chkconfig httpd on

AWS - ELB

ELB(Elastic Load Balancers) 수많은 서버의 흐름을 균형있게 흘려보내는데 중추적인 역할 하나의 서버로 traffic이 몰리는 병목현상 (bottleneck) 방지 Traffic의 흐름을 Unhealthy instance → healthy instance로 EC2인스턴스가 건강하지 못하지만 이걸 건강한 인스턴스로 보내주기 위한 작업을 수행함 application load balancer : osi layer7에서 작동됨 → http, https 와 같은 traffic의 load balancing에 가장 적합함 → 고급 request 라우팅 설정을 통하여 특정 서버로 request를 보낼 수 있음 network load balancer : osi layer4에서 작동됨, 매우 빠른 속도를..

728x90
반응형