반응형

IaC 60

GitLab Source Backup & Restore with rclone + Google Drive

OverviewGitLab 소스를 Google Drive 공유 드라이브에 자동 백업하고, 필요 시 리스토어하는 방법을 정리한다. `git clone --mirror` 를 사용하여 모든 브랜치, 태그, 커밋 히스토리를 포함한 완전한 백업을 생성하고, `rclone` 을 통해 Google Drive에 업로드한다. 리스토어 시에는 `git push --mirror` 로 원본과 동일한 상태를 복원할 수 있다.[Backup Flow]GitLab CI Pipeline (push / manual trigger) → git clone --mirror (all branches + tags + history) → tar compress → rclone copy → Google Drive (Shared Drive)[R..

IaC/CI CD Tool 2026.03.26

GitLab CI/CD YAML 파일 최적화: 중복 제거와 재사용성 향상

OverviewGitLab CI/CD 파이프라인이 복잡해질수록 YAML 설정 파일에서 중복된 코드와 복잡한 구성이 늘어난다. 이는 유지보수를 어렵게 만들고 실수 가능성을 높입니다. GitLab은 이러한 문제를 해결하기 위해 YAML 재사용 기능들을 제공한다. 이번 글에서는 GitLab CI/CD YAML 파일을 최적화하는 세 가지 핵심 방법을 살펴보겠다. GitLab CI/CD에서 제공하는 YAML 최적화 도구들은 크게 세 가지로 나눌 수 있다.YAML 앵커(Anchors): 전통적인 YAML 문법을 활용한 재사용extends 키워드: GitLab에서 권장하는 구성 상속 방식!reference 태그: 선택적 참조를 통한 유연한 재사용 각각의 특징과 사용법을 자세히 알아보겠다. 1. YAML 앵..

IaC/CI CD Tool 2026.03.17

Docker 이미지 최적화 실전 가이드

Overview개인적으로 이 주제를 깊이 파보고 싶었다. DevOps 엔지니어로 일하면서 비대한 Docker 이미지가 늘 골칫거리였기 때문이다. 특히 Python의 머신러닝 스택이나 Go의 개발 도구들이 포함된 이미지들은 종종 1GB를 넘어가곤 한다. 최근 개인 프로젝트로 다양한 최적화 기법들을 실험해 봤는데, 초기 이미지 크기가 너무 커서 로컬 개발 환경의 디스크 공간을 많이 차지하는 문제가 있었다.배포 시간: 긴 이미지 빌드 및 전송 시간개발 환경: 로컬 디스크 공간 부족보안 취약점: 불필요한 패키지로 인한 잠재적 위험 몇 주간 다양한 최적화 기법을 실험한 결과, 개인 프로젝트의 Python FastAPI 서비스를 1.96GB에서 305MB로, Go API 서버를 1.54GB에서 30MB로 줄이는 데..

IaC/Container 2026.02.10

GitLab CI로 Google Drive에 자동 업로드하기

Overview지속적인 통합(Continuous Integration, CI)은 단순한 빌드와 테스트를 넘어, 다양한 업무를 자동화하는 강력한 도구이다. 그 중 하나가 바로 GitLab CI를 활용해 Google Drive에 파일을 자동 업로드하는 작업이다. 이 방법은 다음과 같은 상황에서 유용하다.빌드 결과물을 팀 공유용 Google Drive에 자동 저장테스트 리포트나 로그 파일을 백업 용도로 업로드특정 시점의 아티팩트를 수동 없이 전달하고 보관 이 글에서는 GitLab CI에서 rclone을 활용하여 회사의 Google Workspace 공유 계정의 Google Drive에 파일을 업로드하는 방법을 소개한다. 특히 디자인 문서나 산출물을 팀 Drive에 자동으로 올려야 하는 프로젝트에 매우 적..

IaC/CI CD Tool 2025.11.12

GitLab 18.0 업그레이드 시 git_data_dirs 설정 변경 가이드

OverviewGitLab 18.0부터는 기존의 `git_data_dirs` 설정이 완전히 제거되었다. 이로 인해 GitLab 17.x 버전에서 18.0 이상으로 업그레이드할 때 설정 파일을 수정하지 않으면 업그레이드가 실패하게 된다. 이 글에서는 GitLab 17.11.5에서 18.1로 업그레이드하면서 발생한 `git_data_dirs` 관련 오류를 해결하는 방법을 다루겠다. 문제 상황 GitLab 18.1 업그레이드 과정에서 다음과 같은 오류가 발생했다.* git_data_dirs has been deprecated since 17.8 and was removed in 18.0. See https://docs.gitlab.com/omnibus/settings/configuration.ht..

IaC/CI CD Tool 2025.11.05

도커 이미지 복사 자동화: buildx imagetools vs skopeo 실전 비교

OverviewCI/CD 환경이나 사내 레지스트리를 운영하다 보면, 외부 Docker Hub, GCR, ghcr.io 등에서 사용하는 이미지를 내부 레지스트리(Harbor, Nexus 등)로 복사해 관리할 필요가 생긴다. 특히 다음과 같은 상황에서 유용하다.외부 이미지의 pull 제한 우회 (Docker Hub Rate Limit)인터넷이 제한된 환경(사내망)에서 외부 의존성 제거이미지 신뢰도 확보 및 보안 감사 용이성 이런 목적에 사용되는 대표적인 툴은 다음 두 가지이다.docker buildx imagetoolsskopeo copy `docker buildx imagetools create` 예시docker buildx imagetools create \ --tag harbor...

IaC/Container 2025.10.01

Git 레포지토리 GitLab 마이그레이션 가이드

Overview이 가이드는 기존 Git 레포지토리(GitHub, Bitbucket 등)를 GitLab으로 안전하게 마이그레이션하는 방법을 제공한다. 특히 대용량 LFS 파일이 포함된 레포지토리나 네트워크 안정성이 중요한 환경에서 사용하기 적합하다. Mirroring 방법은 아래의 글을 참고하길 바란다.2025.01.09 - [IaC/CI CD Tool] - 8. Gitlab Repository Mirroring 방법 Github → Gitlab Mirroring 방법은 아래와 같다.Mirroring Workflow 실행 전에 Gitlab에 설정을 해야한다.Gitlab 계정 생성 및 Group , Project 생성Gitlab Token 생성name: Backup GitHub to GitLabon:..

IaC/CI CD Tool 2025.08.05

gRPC란 무엇인가 — 빠르고 신뢰성 있는 현대적 RPC 프레임워크

Overview서비스 간 통신은 현대 소프트웨어 아키텍처에서 매우 중요한 요소이다. RESTful API는 여전히 널리 쓰이고 있지만, 더 높은 성능과 명확한 인터페이스 정의가 필요한 마이크로서비스 환경에서는 gRPC가 점점 각광받고 있다. 이 글에서는 gRPC의 기본 개념부터 REST와의 차이, 실전 예제, Kubernetes 배포, gRPC-Web 활용, 실제 사용 사례와 장단점까지 정리해보며, gRPC가 어떤 상황에서 효과적인 선택이 될 수 있는지 살펴본다. gRPC란 무엇인가?gRPC는 Google에서 개발한 오픈소스 RPC (Remote Procedure Call) 프레임워크로, 다음 특징을 가진다.HTTP/2 기반 통신Protocol Buffers(protobuf)를 사용한 인..

IaC/Service Mesh 2025.07.17

대형 Git 리포지터리에서 CI/CD 시간을 절반으로 줄이는 법: Git Sparse Checkout 실전 적용기

Overview대규모 Git 리포지터리를 다루는 개발자라면 누구나 겪는 공통적인 문제 중 하나는 느린 git clone 속도와 불필요한 데이터 다운로드이다.특히 GitLab CI/CD 환경에서는 매번 새로운 환경에서 작업이 시작되기 때문에, 전체 프로젝트를 모두 clone하는 과정 자체가 병목이 되곤 한다. 이 글에서는 Git의 `sparse-checkout` 과 `--filter=blob:limit` 기능을 활용해,필요한 폴더만 빠르게 clone하고 불필요한 파일 다운로드를 최소화하는 방법을 소개한다.GitLab CI/CD 환경에서 직접 적용한 실전 YAML 예시도 함께 제공하니, 대용량 프로젝트를 운영 중인 팀이라면 반드시 참고해볼 만한 내용이다. 1. 문제 상황CI/CD 파이프라인을 구성..

IaC/CI CD Tool 2025.06.09

ArgoCD Slack Notification 설정 방법

OverviewArgoCD는 GitOps 기반 Kubernetes 배포 자동화 도구로, 애플리케이션의 배포 상태를 지속적으로 모니터링하고 관리해준다.특히 배포 실패(Sync Failed), 애플리케이션 비정상(Health Degraded) 같은 상황에서는 빠르게 알람을 받을 수 있어야 장애 대응이 쉬워진다/오늘은 ArgoCD의 Notification 기능을 이용해, 특정 이벤트 발생 시 Slack 알람을 받는 방법을 정리해보겠다. 📅 관련 글2023.05.16 - [IaC/CI CD Tool] - ArgoCD란?2023.08.09 - [IaC/CI CD Tool] - ArgoCD 설치 AWS & GCP2023.10.02 - [IaC/CI CD Tool] - ArgoCD ApplicationSet..

IaC/CI CD Tool 2025.05.08
반응형