Study 185

[Kubernetes]Elasticsearch, Kibana를 Docker로 띄우기 & Fluentd는 Pod로 띄우기

현재 프로젝트를 진행하며 서비스할 Web과 API Server의 log를 모니터링하기 위해 EFK는 구축하고자 했다. EKF Elasticsearch + Fluentd + Kibana Fluentd: 로그 수집 Elasticsearch: 수집된 로그를 검색 및 분석하여 저장 Kibana: ES를 통해 데이터 시각화 https://peterica.tistory.com/210 환경 구성 AWS 위 bastion에 ES와 Kibana를 docker로 띄워서 구성한 다음, eks worker node에 fluentd를 daemonset으로 배포하여 log를 수집해 올 예정이다. web과 api는 현재 node 위 pod로 배포되어 있는 상황이다. 추후 가능하다면 publice에 있는 bastion에서 priva..

Study/Kubernetes 2023.11.04

[AWS]EKS 샘플 애플리케이션 배포

현재 프로젝트를 진행하며 EKS 위에서 Node에 배포를 진행하고 있다. 그 과정에서 PoC로 진행한 샘플 애플리케이션 배포에 대해 기록한다. 앞서 EKS를 구축했다. [AWS]EKS 개념 및 구축 현재 프로젝트를 진행하며 EKS 위에서 Node에 배포를 진행하고 있다. 그 과정에서 학습했던 EKS에 대해 정리하고자 한다. Amazon EKS 컨트롤 플레인을 직접 구성하지 않고서 k8s를 손쉽게 사용할 수 있 seomj74.tistory.com 이처럼 구축된 EKS 위에 샘플 애플리케이션을 배포해보는 실습을 진행한다. 샘플 애플리케이션을 배포하는 실습 순서 필요한 도구 설치 - kubectl, aws-cli, eksctl, helm 등 kubeconfig 설정 AWS LBC 설치 및 배포 NS 생성 se..

Study/Cloud 2023.10.29

[AWS]EKS 개념 및 구축

현재 프로젝트를 진행하며 EKS 위에서 Node에 배포를 진행하고 있다. 그 과정에서 학습했던 EKS에 대해 정리하고자 한다. Amazon EKS 컨트롤 플레인을 직접 구성하지 않고서 k8s를 손쉽게 사용할 수 있도록 편리함을 제공 EKS Control Plane = k8s master control plane을 aws가 직접 관리 → 사용자가 세부 파라미터 설정 불가능 VPC, ELB, IAM 등 특정 기능들을 같이 활용하고자 할 때 유용 클러스터 생성 시 하나의 단위 엔드 포인트 즉, 마스터 엔드 포인트가 생성된다. 마스터 엔드 포인트는 3개의 가용 영역이 펼쳐지고, 이 가용 영역에 워커 노드들이 분산되어 배포된다. 사용자는 kubectl을 통해 컨테이너들을 운영 및 관리할 수 있다. EKS는 쿠버네..

Study/Cloud 2023.10.22

[Git] 하나의 컴퓨터에서 여러 계정의 Git 사용 & Private repository와 Jenkins 연동

현재 진행 중인 프로젝트에서 사용할 CI라인을 구축하였다. 현재 내가 담당한 파트는 배포로, 쉘 스크립트를 포함한 이미지를 베이스로 job을 실행하여 svc와 deployment를 배포한다. 매번 쉘을 수정하고 이미지를 빌드하고 push하는 과정이 귀찮고 힘들어서 CI라인으로 구축하게 되었다. 현재 bastion host에서 팀원들이 함께 작업을 하고 있기에 여러 계정의 git을 사용할 수 있는 환경이 필요했다. 그렇기에 여기서 여러 git 계정 설정도 다룬다. git repo를 처음엔 public으로 했으나 보안적인 측면으로 인해 private로 구성했다. 하나의 컴퓨터에서 여러 계정의 Git 사용하기 Github의 여러 계정을 사용하기 위해서는 ssh로 설정한다. 보통 "git config --glo..

Study/Git 2023.10.21

[Web]Django 쿼리셋(QuerySet)

쿼리셋 QuerySet 전달받은 모델의 객체 목록 데이터베이스로부터 데이터를 읽고, 필터를 걸거나 정렬을 할 수 있다. Post 모델을 models.py파일에 post_list 모델은 views.py 파일에 HTML 템플릿에서 글 목록을 어떻게 보여줄까? post_list를 뷰에서 보여주고 이를 템플릿에 전달하기 위해서는 모델을 가져와야 함 뷰가 템플릿에서 모델을 선택하도록 만들어야 함 blog\views.py from django.shortcuts import render from django.utils import timezone from .models import Post def post_list(request): posts = Post.objects.filter(published_date__lte..

Study/Web 2023.07.04

[Web]Django urls.py 구성

URLConf URL Configuration 장고에서 URL과 일치하는 뷰를 찾기 위한 패턴들의 집합 http://127.0.0.1:8000/ 주소를 블로그 홈 페이지로 지정하고 blog 애플리케이션에서 메인 mysite\urls.py 파일로 url들을 가져오자 blog.urls를 가져오기 위해 include 함수를 사용 mysite\urls.py from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('', include('blog.urls')), ] include를 적용하기 전에는 URL을 요청하면 프로젝트(mysite)의 urls...

Study/Web 2023.07.04

[Web]Django 애플리케이션 생성 및 관리자 설정

애플리케이션 생성 python manage.py startapp blog blog라는 애플리케이션 생성 mysite\settings.py에 'blog'를 추가하여 해당 애플리케이션에 대한 내용을 등록 블로그 글 model 생성 from django.conf import settings from django.db import models from django.utils import timezone class Post(models.Model): author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE) title = models.CharField(max_length=200) text = models.TextField() cre..

Study/Web 2023.07.03

[Web]Django 가상환경 구성 및 설치

가상환경 mkdir djangogirls cd djangogirls python -m venv myvenv myvenv\Scripts\activate 장고설치 python -m pip install --upgrade pip pip3 install django~=2.0.0 python3 -m pip install django 위 명령을 통해서도 설치 가능 장고를 설치하고 나면 django-admin 명령을 사용할 수 있으며 startproject를 통해 프로젝트를 실행할 수 있다. django-admin startproject mysite . mysite라는 프로젝트를 시작하며 .(현재 디렉토리)에서 생성 manage.py - 스크립트, 사이트 관리를 도와주는 역할 settings.py - 웹사이트 설정이..

Study/Web 2023.07.02

[Web]Django MTV 패턴

Django MVC(Model - View - Controller)를 기반으로 한 프레임워크 MVC가 아닌 MTV를 사용 MVC Model - View - Controller 각가의 구성 요소가 서로 다른 요소들에게 영향을 미치지 않아야 한다 Model 데이터를 가지고 있으며, 데이터를 처리하는 로직 View 화면에 요청에 대한 결과물을 보여주는 역할 유저와 어플리케이션 간의 인터페이스 Controller 모델과 뷰를 이어주는 역할 요청에 따라 모델에게 적절한 로직을 가동하도록 알려주고 모델이 응답하면 그 응답을 뷰에 전달하는 역할 MTV Model - Template - View Model 데이터베이스에 저장되는 데이터 하나의 클래스가 하나의 DB Table ORM(Object Relational Ma..

Study/Web 2023.07.02

[Web]Django 설치 및 설정(sqlite version error)

0. python3 install python3가 기본적으로 설치되어 있어야 한다. 설치되어 있지 않다면 다음 명령을 이용하여 설치해주자. yum -y install python3 1. django install 이제 django를 설치한다. python3 -m pip install django 2. project create django-admin startproject myproject . .(현재 디렉토리)에 myproject라는 프로젝트가 생성된다. 3. django 실행 [root@localhost ~]# python3 manage.py runserver Watching for file changes with StatReloader Performing system checks... System ..

Study/Web 2023.06.24