일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- AZURE
- POD
- terraform
- AZ-104
- leetcode
- AZ-900
- EC2
- IAC
- docker
- DevOps
- asgi
- EKS
- ebs
- Network
- dockerfile
- IAM
- RBAC
- elasticsearch
- Django
- K8S
- Kubernetes
- asyncio
- Deployment
- AWS
- Service
- Role
- FastAPI
- Python
- 자바스크립트
- ansible
- Today
- Total
목록전체 글 (175)
궁금한게 많은 개발자 노트
Python으로 AWS와 연동할 때, boto3라이브러리를 사용하여 애플리케이션이나 스크립트를 Amazon S3, EC2, DynamoDB등의 서비스와 쉽게 연결하여 사용할 수 있습니다.그 중 비동기적으로 파이썬 애플리케이션과 AWS 서비스를 연동하기 위해 asyncio 패키지와 boto3를 사용하여 패키징한 aiobotocore를 사용하여 비동기적으로 FastAPI와 AWS S3를 연동해보려 합니다. 이 때, aiobotocore를 사용할 수도 있지만, aioboto3를 사용할 수도 있습니다. 두 라이브러리의 차이점은 무엇일까요? 두 라이브러리의 공통점은 모두 Python에서 AWS 서비스에 접근할 수 있도록 해주는 비동기 라이브러리입니다.하지만, aiobotocore는 비교적 저수준 라이브러리로 기본..
쿠버네티스 Pod는 하나 이상의 컨테이너를 포함할 수 있습니다. Pod를 구성하는 Container가 실행되기 전에 사전 작업이 필요한 경우, 해당 Container들이 정상동작하기 위해 미리 필요한 작업을 수행하는 Container가 있는데 이를 Init Container라고 부릅니다. Init Container가 성공적으로 수행되어야 Pod를 구성하는 컨테이너들의 동작, 즉 Pod가 목적으로 하는 작업을 수행할 수 있습니다. 앱 컨테이너 실행 전에 미리 동작시킬 컨테이너 본 컨테이너가 실행되기 전에 사전 작업이 필요할 경우 사용 초기화 컨테이너가 모두 실행된 후에 앱 컨테이너를 실행 https://kubernetes.io/ko/docs/concepts/workloads/pods/init-contain..

쿠버네티스상에 서버나 앱서비스를 배포할 때, Persistent Volume을 마운트해야 하는 경우가 종종 있습니다. 이전에 쿠버네티스에서 Persistent Volume사용하기라는 글을 게시한 적이 있는데, 해당 게시글에서는 Persistent Volume으로 AWS EBS(Elastic Block Store)를 사용하였습니다. 이처럼 컨테이너화된 애플리케이션이 동작할 때 데이터 지속성을 위해 외부 Storage에 대한 액세스가 필요할 수 있습니다. 고가용성과 확장성을 보장하기 위해 EKS를 사용하고 S3를 외부 Storage로 사용한다면 다양한 환경에서도 원활하게 서비스를 제공할 수 있을 것입니다. 특히 MLOps환경에서 GenAI의 경우에는 매우 큰 LLM Model을 Container내부에 가져가..

쿠버네티스는 크게 Control Plane(Master node)과 Data plane에 속하는 Worker Node로 구성되어 있습니다. Pod가 생성되는 과정을 통해 전반적인 구조를 살펴보면, kubectl을 통해 Master Node에 존재하는 kube-api server에게 Pod생성 요청을 보내고, api-server는 해당 요청이 타당한지 검증하게 됩니다. 검증 후 etcd에게 node들에 대한 정보를 요청하게 되고, 전달 받은 정보를 바탕으로 scheduler에게 생성하려는 Pod가 어떤 Workder 노드에 할당되면 좋을 지에 대해 선택을 요청합니다. 그러고 난 후 적절한 Worker Node의 kubelet에 해당 Pod 생성 명령을 내리게 되고, kubelet은 해당 Worker Nod..

Dockerfile 작성 시 작성 된 Dockerfile에 의해 생성되는 Docker Image가 컨테이너에서 실행 될 때 수행되는 명령어를 정의하기 위해 ENTRYPOINT, CMD를 사용하곤 합니다. 이 때, ENTRYPOINT와 CMD의 차이점은 이전에 작성한 블로그에서 확인할 수 있듯 항상 수행되어야만 하는 명령어는 ENTRYPOINT에 작성하고 해당 명령어의 인자 또는 docker run명령에 의해 컨테이너가 실행될 때 인자로 주어지는 값에 의해 대체 될 수 있는 값은 CMD로 작성합니다. 하지만, Dockerfile작성 시에 ENTRYPOINT로 지정한 명령어도 대체될 수 있습니다. k8s환경에서 해당 Docker Image를 통해 Pod내부에서 동작하는 Container들을 정의할 때, co..