전체 글 18

[CI/CD] Jenkins 시작하기 - 1-1. 초기 세팅과 플러그인 설치

이번엔 CI/CD 도구 중 하나인 젠킨스에 대해 설명하고 초기 세팅을 하는 것을 설명하겠다. 젠킨스는 오픈소스 기반의 자동화 서버로, 지속적 통합(Continuous Integration, CI)과 지속적 배포(Continuous Deployment, CD)를 효율적으로 관리하는 데 사용한다.Java로 작성된 툴이지만 해당 언어를 잘 알지 못해도 금방 쓸 수 있고, 다양한 플러그인을 통해 확장성이 뛰어나다는 장점이 있다. 젠킨스의 주요 기능다양한 플러그인 지원: 젠킨스의 가장 큰 특징 중 하나가 다양한 플러그인을 사용 할 수 있다는 것이다. 이를 통해 젠킨스로 다양한 기능으로 활용 할 수 있어 확장성이 뛰어나다.분산 빌드:젠킨스는 하나의 서버에서만 빌드를 하는 것이 아니라, 여러 에이전트 노드와 마스터 ..

클라우드 2025.01.23

[CI/CD] CI/CD 알아보기

개발을 하다보면 CI/CD라는 말을 종종 듣게 된다. 한번 경험해보기 전까진 평소에도 잘하고 있었는데,굳이해야 되나 싶을 생각도 들 것이다. 하지만 "한번도 안해본 사람은 있어도 한번만 한 사람은 없다"라고, 생각할만큼 한번 설정해두면 정말 편리하고 좋다. 그래서 이번글은 이 CI/CD의 개념과 흐름에 대해서만 설명하겠다.CI/CD란?CI는 Continuous Intergration 지속적인 통합이란 뜻을 가지고 있고,CD는 Continuous Delivery 지속적 전달, Continuous Deployment 지속적 배포라는 뜻을 의미한다. 소프트웨어 개발 프로세스의 자동화와 지속적인 개선을 목적으로 하는 방법론이다. CI/CD 파이프라인을 통해 소프트웨어 주기(개발, 테스트, 배포)의 자동화 및 효..

클라우드 2024.09.23

[클라우드] basic. 클라우드 인프라 구성해보기

[주의사항]이 글은 간단한 프론트엔드와 백엔드를 구성하여 인프라 구축을 하는 실습을 진행합니다.사전 준비 지식으로는 AWS의 VPC, EC2 사용법과 Docker 이미지와 컨테이너를 생성하는 방법이 필요합니다.따라서 만약 위 지식을 아예 모른다면 다른 글을 읽고오는 것을 추천 드립니다. Introduce. 클라우드 인프라 시작하기 Introduce. 클라우드 인프라 시작하기클라우드??  뭐부터 시작해야 하나요?클라우드를 시작하면 AWS, Docker.. 등등을 공부하고,만약 팀에서 역할이 개발(프론트엔드, 백엔드, 인공지능) / 클라우드 인프라 관리로 나뉘었다면?"어? 인프sz-tech.tistory.com이번 글은 배운 것들을 토대로 AWS 인프라를 구축하고, 도커를 설치하여 애플리케이션을 띄운 뒤 엔..

AWS 서비스 2024.09.19

[Docker] 6. Docker-Compose

지금까지 도커 컨테이너를 많이 띄우다보면 드는 생각이 하나 있다."각각의 컨테이너가 서로 유기적으로 작동하게 만들 수는 없나?" 있다. 방법이.Docker Compose란?여러 도커 컨테이너를 정의하고 실행하기 위한 도구이다.YAML 파일을 사용하여 애플리케이션의 서비스, 네트워크, 볼륨 등을 구성하고,단일 명령어로 이 모든 서비스를 시작하거나 종료 할 수 있게 해준다. 도커 컴포즈의 장점1. 멀티 컨테이너 애플리케이션 정의 : 여러 컨테이너, 볼륨, 네트워크를 관리해야 하는 복잡한 애플리케이션을 쉽게 관리 할 수 있다. 각 컴포넌트를 모듈화하여 관리 할 수 있으며, 종속성과 실행 순서를 명확하게 정의 할 수 있다.2. 환경 일관성 보장: docker-compose.yml 파일을 통해 개발, 스테이징(테..

Docker 2024.09.16

[Docker] 5. Overlay FS & Storage

이번에 배울 것은 Union File System인 Overlay FS(file system)이다.사실 대부분의 도커를 배우게 된다면 해당 그림을 제일 접할 것이다. 가장 중요하면서도 어려운 부분이라고 생각한다. 근데 나 같은 경우엔, 맨 처음 이것에 대해 배우고 실습을 했지만 도커를 잘 사용할 수 있었음에도이것에 대한 개념을 제대로 파악하지 못했었다. 조금의 시간이 지나며 차차 도커의 이미지 레이어 개념을 파악하고, 떠올리며 차차 이해되기 시작했다.그래서 도커 레이어에 대한 글을 쓴 이후에서야 글을 작성하게 되었다.What is Overlay FS? 리눅스 파일 시스템의 한 유형으로, 두개의 디렉토리를 하나의 디렉토리처럼 겹쳐서 표현 할 수 있게 해주는 "유니온 파일 시스템(Union File Syst..

Docker 2024.09.14

[Docker] 4. 도커 이미지 레이어(Image Layer)

지금까지 도커 이미지를 빌드하는 과정을 겪으며 느끼지 않았는가?도커 파일을 작성하고 처음 빌드를 실행하면 시간이 엄청 오래 걸린다. 그러다 중간에 이미지 빌드 중 오류가 나거나 도커 이미지에 새로운 사항을 반영하려 새로 빌드를 할 때처음보다 빠르게 이미지가 빌드되고는 한다. 이것은 도커가 가지는 특성 중 하나인 이미지 레이어링(Docker Image Layering) 이다. 이미지 레이어링이란?도커 이미지는 통째로 하나가 아닌 여러 레이어로 구성되어 있다. Dockerfile에서 생각해보면 FROM, COPY, RUN 등 명령어 한 줄씩 있었지 않나?그 하나의 명령어 한줄이 하나의 레이어가 되어 한 겹씩 쌓이고 최종적으로 하나의 이미지라는 형태로 구성되게 된다.근데, 이러면 뭐가 좋은지 잘 모를 것이다...

Docker 2024.09.13

[Docker] 3. 도커 파일 멀티스테이지 빌드(Multi-stage build)

"지금까지 이미지를 잘 써왔는데 멀티 스테이지 빌드는 뭐에요?" 싶을 것이다.생각해보자, 우리가 간단히 실행해본 node.js 의 컨테이너의 동작은 매우 간단했다.하지만 해당 이미지의 크기를 보면 기능에 비해 터무니 없이 큰 용량을 차지하는 것을 보았을 것이다."그럼 용량을 줄일 수는 없을까? 필요한 것만 가져다 쓰게끔하면 어떨까?" 라는 생각이 들 것이다. 애플리케이션에서 필요한 것만 사용하여 용량을 최적화하는 방법도 있지만,이때 생각해볼 수 있는 것이 멀티 스테이지 빌드이다.멀티 스테이지 빌드란?도커 이미지를 더 효율적으로 구축할 수 있게 해주는 Dockerfile의 기능이다. 여러 단계에 걸쳐서 이미지를 빌드하고 최종 이미지에서는 필요한 파일만 포함시킬 수 있어서 결과적으로 이미지의 크기를 줄일 수..

Docker 2024.09.13

[Docker] 2.도커 허브

도커 허브란?도커 이미지를 공유하고 관리할 수 있는 클라우드 기반의 서비스이다. 도커 이미지를 검색하고, 공유하고, 관리하고, 다운로드할 수 있는 점에서소스 코드를 관리하고, 버전관리 하는 깃허브의 도커 버젼이라 생각하면 좋을 것이다. 주요 기능이미지 저장소(Repository): 사용자가 개인 또는 공개 이미지를 업로드 할 수 있다. 이 저장소에서 컨테이너화된 이미지에 대해 버젼 관리를 할 수 있고, 개인 저장소는 제한된 사용자만 접근 할 수 있지만공개 저장소는 누구나 이미지를 검색해서 다운로드 할 수 있다. 자동 빌드(Automated Builds): GitHub 또는 Bitbucket과 같은 소스 코드 저장소에 연결하여 소스 코드의 새로운 커밋이 발생할 때마다 자동으로 도커 이미지를 빌드하고 업데이..

Docker 2024.09.13

[Docker] 1. 도커 파일 작성 & 컨테이너 실행하기

도커 파일이란?도커 이미지를 빌드하기 위한 설정 파일이다. Dockerfile은 일련의 명령어로 구성되어 있으며, 이 명령어들을 사용해 컨테이너 환경을 정의한다.애플리케이션을 실행하는 데 필요한 모든 구성 요소(예: 베이스 이미지, 파일 복사, 패키지 설치, 명령 실행 등)를 포함하는 텍스트 파일이다. 도커 파일의 구성 요소FROM: Dockerfile에서 사용할 베이스 이미지를 지정한다.사용 예시: FROM ubuntu:20.04 - ubuntu:20.04 이미지를 베이스로 사용할 것을 지정 WORKDIR: 명령어가 실행될 작업 디렉토리를 설정사용 예시: WORKDIR /usr/src/appCOPY: 로컬 시스템에서 파일을 컨테이너로 복사사용 예시: COPY . /usr/src/app  - 현재 위치에..

Docker 2024.09.12

[Docker] 0. 도커 알아보기

우리가 새로운 컴퓨터를 사고나면컴퓨터에 운영체제(OS)를 설치한 뒤, 프로그램을 설치하고 필요한 환경 변수를 설정해주고 패키지를 설치하면드디어 코드를 돌릴 수 있는 환경 준비가 완성 된다. 어떤 코드를 열심히 작성해서 해당 애플리케이션이 작동이 완성되었다해보자.그럼 이제 애플리케이션을 다른 새로운 컴퓨터에 띄워야 한다면 어떻게 하겠는가?OS는 깔려있으니, 필요한 프로그램을 설치하고, 환경 변수를 설정하고, 패키지를 설치하여코드를 실행해야 할 것이다. 불편하지 않은가?나는 귀찮다.이게 컴퓨터 1대에서 2대가 되고 만약 10대가 된다면 정말정말 많이 귀찮아질 것이다. 그럼 어떻게 해야 할까? 이 내가 만든 이 환경을 그대로 감싸서 포장해버릴 수 있지 않을까?그러면 이 환경을 내가 별 수고가 안들어도 다른데 ..

Docker 2024.09.12