Infra

Infra/쿠버네티스

쿠버네티스 클러스터 구축

사전 진행 필자는 AWS 계정에서 두 대의 EC2를 만들어 진행함 1. 전제 조건 최소 2개의 리눅스 머신 노드 (master 노드 1, worker 노드 1개)가 필요, 요구 사항에 따라 더 많은 작업자 노드가 필요할 수 있음 master 노드에는 최소 2개의 vCPU와 2GB RAM이 있어야하며, worker 노드는 최소 1vCPU 및 2GB RAM 권장 클러스터의 모든 노드는 서로 통신이 가능해야함 클러스터의 모든 노드는 스왑 비활성화 (활성화 되어 있으면 kubelet이 제대로 작동하지 않음) 클러스터의 모든 노드는 고유한 호스트 이름, MAC 주소 및 product_uuid 가져야함 2. 포트 허용 아래 그림을 참고해 마스터 노드(컨트롤 플레인) 및 워커 노드의 포트를 허용, 필자는 ec2간 방..

Infra/CI&CD

SpringBoot, Vue3 프로젝트 CI/CD (2)

이번 글에서는 이전 글에 이어서 젠킨스 설정(소나 큐브와 연동), Nginx Proxy Manager 설정을 진행한다. 진행하기 전 소나 큐브와 포테이너에 접속해 계정을 만들고, 어떤 기능이 있는지 한번 살펴보자. 포테이너의 웹 UI로 편하게 컨테이너를 관리하고 모니터링 할 수 있으며 소나 큐브의 웹 UI로 정적 분석 결과를 볼 수 있다. 젠킨스 시작 젠킨스란 빌드, 배포 과정을 자동화할 수 있는 소프트웨어이다. 설치형이기에 설치와 설정이 필요하다는 단점이 있지만 비용(돈)이 들지 않는다. 웹 브라우저 URL 검색 창에 호스트 서버 IP:9090을 검색했을 때 아래의 화면이 나오면 정상 설치 된 것이다. 젠킨스는 편리하게 사용할 수 있도록 웹 인터페이스를 제공한다. 처음 접속 시 계정을 설정해야한다. 젠..

Infra/CI&CD

SpringBoot, Vue3 프로젝트 CI/CD (1)

아키텍처 구조 본 글에서는 SpringBoot와 Vue3 사용한 '날숨' 프로젝트의 자동 빌드, 배포하는 과정을 설명한다. 아래는 필자가 진행한 '날숨' 프로젝트의 아키텍처 구조이다. Docker를 사용하며, Docker를 개념적으로 두 개의 영역으로 구분했다. 왼쪽은 배포한 웹 애플리케이션이 동작하는 영역이며, 클라이언트 요청에 대해 응답한다. 오른쪽은 그 외 컨테이너들이 있는 영역이다. 각 컨테이너의 역할은 아래와 같다. Nginx: Nginx 웹 서버가 동작하는 컨테이너. 리버스 프록시 역할을 수행한다. 빌드된 Vue3의 파일들을 갖고 있어 정적 파일 요청(HTML, JS, CSS)을 처리하며 백엔드 요청을 Spring Boot 컨테이너로 프록시한다. Spring Boot : jdk 21이 설치된 ..

Infra/Cloud

AWS S3

S3 (Simple Storage Service) AWS S3란 AWS에서 제공하는 객체 스토리지 서비스이다. 설명에 의하면 최고 수준의 확장성, 데이터 가용성, 보안 및 성능을 제공한다고 한다. 분석 데이터, 로그 데이터, 앱 데이터, 비디오 및 그림 등의 데이터를 S3에 쉽게 저장할 수 있다. AWS S3에는 단순히 데이터를 저장하는 서비스다. 이와 다른 저장 서비스로 EBS(Block storage Service)가 있다. EBS에서는 하드와 같이 프로그램을 저장하고 프로그램을 구동시킬 수 있다. S3의 특징 저장 용량이 무한대이고, 파일 저장에 최적화되어 있다. S3 자체가 수천 대 이상의 매우 성능이 좋은 웹 서버로 구성되어 있어서 EC2와 EBS로 구축했을 때 처럼 Auto Scaling이나 ..

Infra/CI&CD

Django Channels 배포

Deubot 프로젝트 Django와 Django Channels로 만든 앱을 배포하기 위해 검색을 한 결과 Nginx, Daphne, Gunicorn 세개의 서버로 구축하게 되었다. Deubot 프로젝트 구조를 간략하게 도식화하면 아래와 같다. 우선 Nginx 서버를 리버스 프록시 서버로 설정한 뒤 HTTP 요청은 Gunicorn 서버가 WS 요청은 Daphne 서버가 처리하도록 설정한다. Nginx 서버는 정적 컨텐츠를 제공하고 Gunicorn, Daphne 서버는 동적 컨텐츠를 제공한다. Gunicorn 설정 1. Gunicorn 설치 pip install gunicorn 2. gunicorn 서비스 파일 생성 (서비스로 만듬) sudo vi /etc/systemd/system/django-gunic..

gunjoon98
'Infra' 카테고리의 글 목록