DevOps (6) 썸네일형 리스트형 Blue-Green Deployment와 Rolling Update 차이: 배포 전략 선택 기준 신규 버전을 배포할 때 "서비스 중단 없이 안전하게"는 기본 요구사항입니다. 문제는 어떤 방식으로 무중단을 달성할지입니다. 리소스를 2배 확보해서 한 번에 전환할지, 점진적으로 교체하면서 리소스를 절약할지. 이 선택이 롤백 속도, 비용, 운영 복잡도를 결정합니다.핵심 요약Blue-Green Deployment는 동일한 환경 2세트를 운영하고, 트래픽을 한 번에 전환하는 방식입니다. 롤백이 빠르지만 리소스가 2배 필요합니다.Rolling Update는 기존 인스턴스를 하나씩(또는 일정 비율씩) 새 버전으로 교체하는 방식입니다. 리소스 효율이 높지만 배포 중 두 버전이 공존합니다.Kubernetes에서 Rolling Update는 Deployment의 기본 전략이고, Blue-Green은 Argo Rollo.. GitHub Actions로 Docker 이미지를 빌드하고 배포하기: CI/CD 파이프라인 실습 코드를 Push하면 Docker 이미지가 자동으로 빌드되고, 테스트를 통과한 뒤 프로덕션에 배포됩니다. 이 흐름을 GitHub Actions로 구성하는 방법을 단계별로 설명합니다. 단순히 "돌아가는" 파이프라인이 아니라, 캐싱으로 빌드 시간을 줄이고, OIDC로 보안을 강화하고, 이미지 스캔으로 취약점을 차단하는 운영 수준의 워크플로우를 만듭니다.핵심 요약GitHub Actions에서 Docker 이미지를 빌드하려면 docker/build-push-action을 사용합니다. BuildKit 기반으로 Multi-platform 빌드와 레이어 캐싱을 지원합니다.AWS ECR에 Push할 때는 OIDC 인증을 사용하면 장기 Access Key 없이 임시 자격 증명으로 접근할 수 있습니다.레이어 캐싱(cache.. GitHub Actions와 Jenkins 차이: CI/CD 도구 선택 기준 CI/CD 도구를 선택할 때 "Jenkins가 레거시니까 GitHub Actions로 가자"라는 판단은 위험합니다. 팀 규모, 빌드 볼륨, 보안 요구사항, 운영 역량에 따라 적합한 도구가 다릅니다. 이 글에서는 두 도구의 구조적 차이를 분석하고, 상황별 선택 기준을 정리합니다.핵심 요약GitHub Actions는 GitHub과 통합된 SaaS CI/CD 서비스로, 별도 인프라 운영 없이 시작할 수 있습니다.Jenkins는 자체 호스팅 오픈소스 CI/CD 서버로, 높은 유연성과 커스터마이징이 가능하지만 운영 부담이 있습니다.소규모 팀이 GitHub을 사용하고 있다면 GitHub Actions가 대부분 적합합니다.빌드 볼륨이 크거나 네트워크 격리 요구사항이 있다면 Jenkins가 비용/보안 측면에서 유리할 .. Terraform S3 Backend와 State Lock 구성하기: 팀 협업을 위한 원격 상태 관리 팀원 3명이 같은 인프라를 Terraform으로 관리할 때, Local State로는 충돌을 피할 수 없습니다. S3 Backend와 DynamoDB Lock을 구성하면 이 문제를 구조적으로 해결할 수 있습니다.핵심 요약S3 Backend는 Terraform State를 팀 전체가 공유할 수 있는 원격 저장소에 보관합니다.DynamoDB를 사용한 State Locking은 동시 작업으로 인한 State 충돌을 방지합니다.Backend 리소스(S3 버킷, DynamoDB 테이블)는 Terraform이 아닌 별도 방법으로 먼저 생성하는 것이 일반적입니다.State 파일에는 민감 정보가 포함될 수 있으므로 암호화와 접근 제어가 필수입니다.환경별(dev/staging/prod) State를 분리하면 blast .. CI/CD 파이프라인 기본 구조: 코드 커밋부터 프로덕션 배포까지 CI/CD 파이프라인은 코드 변경이 발생했을 때 빌드, 테스트, 배포를 자동으로 실행하는 워크플로우입니다. 수동 배포의 실수와 지연을 줄이고, 코드 품질을 일관되게 유지하는 것이 핵심 목적입니다.핵심 요약CI(Continuous Integration)는 코드 변경을 자주 통합하고, 빌드와 테스트를 자동 실행하는 프로세스입니다.CD는 Continuous Delivery(수동 승인 후 배포)와 Continuous Deployment(자동 배포)로 구분됩니다.파이프라인의 기본 단계는 Source → Build → Test → Deploy이며, 조직에 따라 보안 스캔, 승인 게이트 등이 추가됩니다.도구 선택보다 "어떤 단계에서 무엇을 검증할 것인가"를 먼저 설계하는 것이 중요합니다.파이프라인 실패 시 빠른 피드.. Terraform State란 무엇인가: 상태 관리의 개념과 실무 운영 전략 Terraform State는 Terraform이 관리하는 인프라의 현재 상태를 기록하는 파일입니다. 이 파일이 없으면 Terraform은 어떤 리소스를 만들었는지, 무엇을 변경해야 하는지 판단할 수 없습니다.핵심 요약Terraform State는 코드(.tf)와 실제 인프라 사이의 매핑 정보를 저장하는 JSON 파일입니다.State가 없으면 Terraform은 매번 모든 리소스를 새로 생성하려고 시도합니다.팀 환경에서는 Local State 대신 Remote Backend(S3 + DynamoDB 등)를 사용해야 합니다.State Locking은 동시 작업으로 인한 충돌을 방지하는 필수 메커니즘입니다.State 파일에는 민감 정보가 포함될 수 있으므로 접근 제어와 암호화가 필요합니다.1. 왜 State.. 이전 1 다음