분류 전체보기

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이 설치된 ..

Linux/Ubuntu

사용자와 그룹

사용자와 그룹 리눅스는 다중 사용자 시스템(Multi-user system)이다. 즉 1대의 리눅스에 사용자가 여러 명 동시에 접속해 사용할 수 있는 시스템이다. 리눅스를 설치하면 기본적으로 root라는 슈퍼 유저가 있다. 이 root 사용자는 시스템의 모든 작업을 실행 할 수 있는 권한이 있다. 사용자는 하나 이상의 그룹에 소속되어 있어야한다. /etc/passwd 파일에 아래의 규칙으로 사용자 정보가 저장되어 있다. 사용자 이름:암호:사용자 ID:사용자가 소속된 그룹 ID:추가 정보:홈 디렉터리:기본 셸 /etc/group 파일에 아래의 규칙으로 그룹 정보가 저장되어 있다. 그룹 이름:비밀번호:그룹 id:그룹에 속한 사용자 이름 사용자, 그룹 관련 명령어 adduser : 새로운 사용자를 추가한다. ..

Linux/Ubuntu

파일, 디렉터리의 소유권과 허가권

소유권과 허가권 리눅스는 각각의 파일과 디렉터리마다 소유권과 허가권이라는 속성이 있다. 소유권이란 파일/디렉터리를 소유한 사용자와 그룹을 말한다. 또한 허가권이란 사용자 유형 별로 파일을 r(read), w(write), x(execute) 할 수 있는 권한을 말한다. 파일의 모든 속성은 아래와 같이 나타난다. 파일 유형 : 파일이 어떤 유형인지 나타낸다. 파일 허가권 : 사용자 유형 별로 파일을 r(read), w(write), x(execute) 할 수 있는 권한을 말함. rw-, r--, r-- 3개씩 끊어서 인식하면 된다. 즉 rw-는 읽거나 쓸 수 있지만 실행할 수 없다는 의미이며 rwx는 읽기,쓰기,실행이 가능하다. 참고로 해당 디렉터리로 이동하려면 사용자는 반드시 실행(x) 권한이 있어야한다..

Linux/Ubuntu

Ubuntu 기본 명령어

Ubuntu 기본 명령어 우분투를 사용하기 위한 기본 명령어를 알아보자. ls : List의 약자로 해당 디렉터리(리눅스에서는 보통 폴더를 디렉터리라 칭함)의 파일 목록 나열 ls 현재 디렉터리의 파일 목록 ls /etc/systemd /etc/systemd 디렉터리의 파일 목록 ls -a 현재 디렉터리의 파일 목록(숨김 파일 포함) ls -l 현재 디렉터리의 파일 목록을 자세히 보여줌 ls *.conf 현재 디렉터리에서 확장자가 conf인 파일 목록을 보여줌 ls -l /etc/systemd/b* /etc/systemd 디렉터리에 있는 파일 목록 중 앞 글자가 ‘b’인것 의 목록을 자세히 보여줌 *참고 : 리눅스는 파일 이름이나 디렉터리 제일 앞 글자를 ‘.’으로 하면 자동으로 숨김 파일이 됨 cd :..

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이나 ..

Computer Science/DataBase

Mysql 서브 쿼리

서브 쿼리 쿼리 내부에 포함된 select 쿼리를 서브 쿼리(Sub Query)라 부른다. select 쿼리에 들어가는 서브 쿼리 종류에는 인라인 뷰, 스칼라 서브쿼리, 중첩 서브쿼리가 있다. 이때 서브 쿼리를 포함한 select 쿼리를 메인 쿼리라 하며 서브 쿼리가 실행 된 후 메인 쿼리가 실행된다. 1. 인라인 뷰 from 절에 들어가는 서브 쿼리 서브 쿼리의 조회 결과를 테이블 처럼 사용할 때 씀 alias 지정 필수 select * from ( select l.common, l.col_l, r.col_r from table_l l left join table_r r #on table_l.common = table_r.common; using(common) union select r.common, ..

gunjoon98
'분류 전체보기' 카테고리의 글 목록 (2 Page)