Pods란
2024. 4. 12. 21:36
TIL/개념정리
개요 쿠버네티스는 작업자 노드에 직접 컨테이너를 배포하지 않습니다. 컨테이너는 쿠버네티스 객체라고 불리는 Pod라는 형태로 포장되어 제공됩니다. Pod는 애플리케이션의 단일 인스턴스로 쿠버네티스에서 만들 수 있는 가장 작은 물체입니다. 만약 단일 노드 쿠버네티스 클러스터와 단일 인스턴스 포드 형태의 애플리케이션을 실행 중일 때, 엑세스하는 사용자 수가 증가해 앱 규모를 늘려야합니다. 이런 상황에서 스핀업할 때 같은 애플리케이션의 새로운 인스턴스로 완전히 새로운 pod를 만들어냅니다. 만약 유저가 더 증가해 현재 노드가 충분한 용량을 확보하지 못할 경우, 클러스터의 새 노드에 추가 배포를 할 수 있습니다. 클러스터의 물리적인 용량을 확장할 수 있습니다. 따라서 정리해보면 다음과 같습니다. Pod는 애플리케..
Kubernetes overview
2024. 4. 12. 21:33
TIL/개념정리
개요 컨테이너와 오케스트레이션을 이해해야합니다. Container 기존 환경에선 호환성 메트릭스가 생겨 새로운 환경 구측이 매우 어렵습니다. 개발, 테스트, 제작 환경도 전부 달랐습니다. 호환성 문제를 해결할 수 있는 무언가가 필요했습니다. 컨테이너는 자신만의 프로세스나 서비스, 네트워크, 인터페이스 마운트를 가상 머신과 동일하게 가질 수 있으며, 동시에 커널이라는 운영체제를 공유합니다. 운영체제는 두 가지로 구성(OS 커널과 소프트웨어 세트) 커널은 하드웨어와 상호작용 소프트웨어가 운영 체제를 다르게 만듭니다.(드라이버, 컴파일러, 파일관리자, 개발자 도구 등등..) 운영체제 구조 안에서 커널을 공유합니다. 만약 다른 커널(윈도우)을 공유할 필요가 생기게 된다면 윈도우 서버의 Docker를 사용해야합니..
Docker 배포 최적화
2024. 4. 10. 14:39
TIL/개념정리
개요 배포환경을 단순히 npm start 를 통한 개발 서버로 시작하기에는 프로덕션 환경에서 최적화 되지않아 너무 느리게 동작합니다. 따라서 프로덕션을 위해 자체 빌드 스크립트를 통해 가져와 코드 컴파일 및 최적화를 수행하고 최적화된 파일만 전달하여 실제로 더 효율적으로 사용할 수 있게 해야합니다. 빌드전용 컨테이너 만들기 React로 개발한 프로젝트에서 기본적으로 개발과 프로덕션 환경은 서로 다르게 실행되어야 합니다. 다시말해, 두 가지의 다른 환경을 설정해야하며 어떠한 환경을 구축해야하는지를 이해해야합니다. 특히 React를 사용하는 프로젝트를 배포하고자 빌드했을 때의 결과물은 nodejs가 필요없는 파일들을 생성하게 되며, 이는 사용자 환경에서 실행되는 것이지 서버의 Node.js 환경에서 실행되..
Docker 배포
2024. 4. 3. 21:46
TIL/개념정리
도커를 수동으로 설치하고 배포하는 방식 호스트머신(EC2)에 처음부터 모든 것을 설치하게 되면 높은 자유도를 갖지만 그만큼의 단점을 얻게 됩니다. 보안부터 네트워크, 운영까지 리모트 머신의 구성에 대한 모든 책임을 가지게 됩니다. 충분한 컴퓨팅 파워, 트래픽 모니터링, 시스템 버전 업데이트까지 항상 최신 상태로 유지해야하며 관리 책임의 의무가 있습니다. 여러가지 기본 환경을 익혀야할 필요가 있으며, 배포 워크플로를 구성하는 명령어를 만들어야합니다. 완전히 다른 기술이 필요합니다. 애플리케이션 자체, 다중 컨테이너 애플리케이션, 규모가 큰 애플리케이션 등등 해야할 작업을 실제로 파악하고 행동해야한다는 점이 있습니다. 이러한 부분을 해결하기 위해 우리는 관리형 서비스를 이용하게 됩니다. 수동배포에서 관..
PyTorch 튜토리얼
2024. 4. 1. 20:28
TIL/개념정리
PyTorch 튜토리얼 https://pytorch.org/tutorials/beginner/blitz/tensor_tutorial.html https://tutorials.pytorch.kr/beginner/basics/intro.html 텐서는 배열 및 행렬과 매우 유사한 특수한 데이터 구조입니다. PyTorch에서는 텐서를 사용하여 모델의 입력과 출력은 물론 모델의 매개변수도 인코딩합니다. 텐서는 GPU나 기타 특수 하드웨어에서 실행되어 컴퓨팅을 가속화할 수 있다는 점을 제외하면 NumPy의 ndarray와 유사합니다. Python 기반의 패키지로 다음과 같은 두 가지를 대상으로 합니다: NumPy를 대체하고 GPU의 연산력을 사용 최대한의 유연성과 속도를 제공하는 딥러닝 연구 플랫폼 Pytorch..
Docker Compose
2024. 3. 21. 22:21
TIL/개념정리
다수의 docker build와 docker run 명령을 대체할 수 있는 단 하나의 구성으로 가지며 모든 컨테이너를 즉시 시작할 수 있습니다. 필요하다면 모든 이미지를 빌드하는 오케스트레이션 명령 도구 중 하나입니다. 하나의 명령을 사용하여 모든 컨테이너를 중지하고, 시작할 수 있습니다. Docker Compose가 안되는 것 Dockerfile을 대체할 수 없습니다. 이미지나 컨테이너를 대체할 수 없습니다 다수의 호스트에서 컨테이너를 관리할 수 없습니다. Docker Compose Files 작성하기 컴포즈 파일에서 중요한 요스는 Service(컨테이너)입니다. 포트 오픈 환경 변수 볼륨 네트워크 ... 기본적으로 터미널을 통해 도커 명령으로 할 수 있는 모든 것을 정의할 수 있습니다. 컴포즈 ..
Amazon Bedrock과 Langchain Workshop
2024. 3. 21. 20:21
TIL/개념정리
Generative AI on AWS Bedrock의 기능적 특징 함수 하나로 여러 개의 모델을 호출하고 다양한 결과없을 얻을 수 있습니다. LangChain과 통합 고객 데이터는 사용지않고 보안을 유지 가능 Private Link 지원 → TLS, 암호화, 보안까지 모두 지원합니다. 프롬프트 엔지니어링 기법 AI가 수행해야하는 작업을 설명하는 자연어 텍스트를 프롬프트라고 합니다. 프롬프트에 따라 성능이 달라지며, 경험적 과학입니다. 프롬프트를 계속 훈련하고 살을 붙여야합니다. Prompt Engineering을 사용하여 개선 가능 Human Assistant 명확하고 구체적인 작업 지시가 필요 XML 태그를 자주 사용할 것 예제 사용 단계별로 생각하기 역할 할당하기 데이터와 지시 분리하기 RAG 학습 ..
Docker network
2024. 3. 20. 22:05
TIL/개념정리
컨테이너 내부에서 네트워크를 사용하여 다수의 컨테이너를 연결하고 실행 중인 애플리케이션을 로컬 호스트 머신에 연결해야합니다. Containers & Network Requests 컨테이너가 통신하는 대상은 여러 종류의 대상이 있을 수 있습니다. 컨테이너 내부에서 외부 인터넷으로 요청을 전송하는 경우 특별한 설정없이 바로 작동할 수 있습니다. 컨테이너와 로컬 호스트 머신 간 통신하는 경우 mongodb://host.docker.internal:27017/swfavorites 위 도메인을 통해 도커 컨테이너 내부에서 알 수 있는 방식으로 호스트 머신의 IP주소로 변환됩니다. 도메인을 작성하면 도커가 알아서 변환해줍니다. host.docker.internal을 URL, 즉 도메인으로 사용해야합니다. 컨테..
Docker ARG / ENV Variables(인수와 환경변수)
2024. 3. 18. 21:28
TIL/개념정리
ARG Dockerfile에서 특정 Dockerfile 명령으로 다른 값을 추출하는데 사용할 수 있는 유연한 데이터 비트, 인수를 설정할 수 있습니다. ENV Dockerfile 내부의 ENV옵션으로 설정할 수 있습니다. 이러한 방식을 통해 하드 코딩할 필요 없이 유연한 이미지와 컨테이너를 만들 수 있습니다. ENV PORT 80 # docker에게 $ 뒤에 있는 변수가 환경 변수임을 알려야합니다. # 그래야만 PORT 환경 변수를 찾고 거기에 저장된 값을 호출합니다. EXPORT $PORT docker run --env PORT=8000 # or docker run ... --env-file ./.env 환경 변수(ENV) 및 보안에 대한 한 가지 중요한 참고사항 환경 변수에 저장하는 데이터의 종류에..
이미지와 컨테이너
2024. 2. 3. 19:42
TIL/개념정리
이미지와 컨테이너란 컨테이너 애플리케이션을 실행하는 전체 환경 등 무엇이든 포함하는 작은 패키지 결국 컨테이너에는 소프트웨어 실행 유닛이 존재하고 우리는 그것을 단순히 실행시키는 것 이미지 dissolver로써 템플릿으로써 컨테이너의 블루 프린트로 활용 코드와 코드를 실행하는데 필요한 도구를 포함 그런 다음 컨테이너가 실행되어 코드를 실행시킨다. 한 번만 정의하면 다른 시스템과 다른 서버에서 여러번 실행 가능 즉 이미지는 모든 설정 명령과 모든 코드가 포함된 공유 가능한 패키지이며 컨테이너는 그러한 이미지의 구체적인 실행 인스턴스이다. 이미지를 기반으로 컨테이너를 실행하는게 핵심 이미지를 생성하고 가져오는 방법 이미 존재하는 이미지를 가져와서 실행하는 방식 Docker Hub 혹은 커뮤니티에서 만든 이미..