일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- Service
- 쿠버네티스
- EKS
- docker
- dockerfile
- POD
- intervals
- elasticsearch
- IAM
- Django
- FastAPI
- Kubernetes
- Python
- github
- K8S
- IAC
- WSGI
- event loop
- ebs
- EC2
- AWS
- Deployment
- YAML
- asyncio
- asgi
- leetcode
- ansible
- DevOps
- 자바스크립트
- terraform
- Today
- Total
목록DevOps (64)
궁금한게 많은 개발자 노트
Elasticsearch(ES)는 JAVA기반으로 실행되기 때문에 Heap 메모리를 얼마나 설정하느냐에 따라 성능에 큰 차이를 가지게 됩니다. 이에 따라 ES에서는 적절한 Heap size를 어떻게 판단하여 설정하는지에 대해 글을 작성해보고자 합니다. 너무 큰 Heap size는 GC(Garbage Collection)이 발생할 경우 성능에 부하를 줄 수 있고, 너무 작은 경우는 Out-of-Memory가 발생할 수 있습니다. ES에서 가이드하는 적절한 Heap Size는 어느 정도인지 알아보고자 합니다. https://www.elastic.co/guide/en/elasticsearch/reference/7.17/advanced-configuration.html Advanced configuration ..
Elasticsearch에 대해서는 한번 정리한 적이 있으며 RDBMS와의 차이점과 필요성에 대해 정리하였습니다. 다시 한번 Elasticsearch에 대해 간략히 알아보면 Elasticsearch는 Apache Lucene(아파치 루씬: 정보 검색 라이브러리) 기반 java 오픈 소스 분산 검색 엔진입니다. HTTP 웹 인터페이스와 스키마에서 자유로운 JSON 문서와 함께 분산 멀티테넌트(하나의 소프트웨어 인스턴스로 여러 사용자에게 서비스를 제공) 지원 전문 검색 엔진을 제공합니다. Elasticsearch의 구성 요소로는 크게 Cluster와 Node로 구분지을 수 있습니다. Cluster는 하나 이상의 노드의 집합으로 모든 노드를 포괄하는 통합 색인화 및 검색 기능을 제공합니다. (Elasticse..
클라우드를 이용하여 서버나 애플리케이션을 배포하는 것은 일상적인 일이 되었습니다. 하지만 이런 배포를 매번 개발자가 직접 수동으로 명령어를 스크립트나 순서대로 타이핑하며 배포하기에는 번거로움이 있고 일관성을 유지하기도 힘들다고 생각됩니다. 또한, 인프라를 구축하고 유지하기 위해 다양한 설정들을 해주어야 하는데, 이러한 과정에서 사람이 직접 수동 설정하게 되면 휴먼 에러가 발생하기 쉽고, 이러한 설정 상황을 팀원들에게 공유하기가 쉽지 않습니다. 또한, CLI등을 통해 설정 값 변경시 상태 관리도 어렵다는 여러 단점이 존재합니다. 물론, 능숙한 개발자에 의해 쉽고 빠르게 설정하여 테스트해볼 수 있다는 장점은 있을 수 있습니다. 이러한 인프라를 유지하기 위한 지속적인 배포와 오류를 줄이기 위해 자동화를 도와주..
kubernetes에서 pod를 배포하는 방법으로 statefulset과 deployment가 있습니다. 각각은 어떤 목적으로 사용되며 어떤 상황에서 어떤 자원을 사용하는 것이 더 효율적인지 알아보기 위해 각 특징에 대해 정리해보려 합니다. 이름에서 확인할 수 있는 특징으로는 stateful이라는 단어가 눈에 들어옵니다. state는 상태를 뜻하며 쉽게 유추할 수 있는 내용으로는 상태를 가지는 것과 그렇지 않은 것으로 나눌 수 있을 것 같습니다. stateless인 경우에는 상태를 저장할 필요가 없다는 의미로, 해당 어플리케이션이 종료되거나 재 생성되더라도 이전에 상태를 알 필요가 없고, 각 어플리케이션의 상태가 다른 어플리케이션과 의존성이 약한 경우 사용할 수 있을 것 같습니다. 반면, stateful..
Dockerfile을 작성하는 목적으로는 Docker에서 사용할 Image를 생성하기 위함입니다. 이 때 사용하는 아래 세가지 RUN, CMD, ENTRYPOINT 명령어는 이미지 생성 시에 실행과 관련된 명령어입니다. 각각의 세부적인 차이점을 정리하고자 합니다. RUN RUN 명령어는 Docker Image를 생성할 때 실행되는 명령어입니다. 즉, 이미지를 작성하기 위해 사용하는 명령어로 이미지 생성 시에 필요한 라이브러리를 설치할 때 주로 사용됩니다. (FROM으로 지정한 이미지 위에서 새로운 Docker 이미지를 생성할 때 실행되는 명령어) CMD CMD와 ENTRYPOINT는 기본적으로 생성된 이미지가 컨테이너에서 실행될 때 수행할 명령을 정의하는 문법입니다. 생성된 이미지가 컨테이너에서 실행될 ..