docker

9 개의 포스트

Building the agentic cloud: everything we launched during Agents Week 2026 (새 탭에서 열림)

Cloudflare는 인공지능 에이전트가 주요 워크로드로 자리 잡는 미래를 위해 기존의 클라우드 구조를 재정의한 'Cloud 2.0(에이전트 클라우드)' 비전을 제시했습니다. 수천만 개의 에이전트 세션이 동시에 실행될 수 있도록 연산 인프라부터 보안, 도구 모음까지 스택 전반에 걸친 대대적인 신규 기능들을 공개했습니다. 이를 통해 개발자들은 단순한 프로토타입을 넘어 확장성과 보안을 갖춘 에이전트 기반 애플리케이션을 생산 환경에서 구현할 수 있게 되었습니다. **에이전트 전용 연산 환경 및 워크플로우** * **Git 호환 저장소 'Artifacts':** 에이전트가 생성한 코드와 데이터를 관리하기 위해 수천만 개의 레포지토리를 생성할 수 있고, 표준 Git 클라이언트와 연동되는 버전 관리 저장소를 제공합니다. * **격리된 실행 환경 'Sandboxes' (GA):** 에이전트에게 셸, 파일 시스템, 백그라운드 프로세스를 갖춘 독립된 컴퓨터 환경을 제공하며, 작업 중단 지점부터 즉시 재개할 수 있는 영속성을 보장합니다. * **상태 저장 및 확장성:** 'Durable Object Facets'를 통해 에이전트가 생성한 앱마다 독립된 SQLite 데이터베이스를 할당하며, 개선된 워크플로우 엔진으로 최대 50,000개의 동시 실행을 지원합니다. **에이전트를 위한 보안 및 ID 관리** * **Cloudflare Mesh:** 에이전트가 프라이빗 네트워크 내의 데이터베이스나 API에 안전하게 접근할 수 있도록 제로 트러스트 기반의 비공개 네트워크 연결을 지원합니다. * **Managed OAuth:** 에이전트가 보안상 취약한 서비스 계정 대신, 사용자를 대행해 내부 애플리케이션에 안전하게 인증하고 탐색할 수 있는 체계를 구축했습니다. * **비인간 식별자(Non-human Identity) 보호:** 에이전트용 API 토큰의 권한 범위를 세밀하게 제어하고 자동 취소 기능을 도입하여 자격 증명 유출에 따른 리스크를 최소화했습니다. **에이전트의 사고와 소통을 돕는 툴박스** * **다중 채널 소통 지원:** 실시간 음성 상호작용(STT/TTS) 기능을 약 30줄의 코드로 구현할 수 있게 되었으며, 이메일을 직접 송수신하고 처리할 수 있는 'Cloudflare Email Service' 베타를 출시했습니다. * **추론 성능 및 효율 최적화:** LLM의 품질 저하 없이 모델 크기를 22% 압축하는 'Unweight' 기술을 도입하여 더 빠르고 경제적인 추론 인프라를 구축했습니다. * **통합 추론 및 기억:** 14개 이상의 모델 공급자를 연결하는 통합 추론 레이어와 함께, 에이전트가 과거의 맥락을 기억하고 지속적으로 학습할 수 있는 'Agent Memory' 서비스를 제공합니다. 이번 발표는 에이전트가 단순히 텍스트를 생성하는 도구를 넘어, 독립적인 실행 환경과 보안 권한을 가지고 업무를 수행하는 '실행 주체'로 거듭나도록 돕는 데 초점이 맞춰져 있습니다. 대규모 에이전트 시스템을 구축하려는 팀이라면 Cloudflare가 제공하는 Sandboxes와 Mesh 기반의 보안 아키텍처를 활용하여 인프라 구축 비용과 보안 리스크를 획기적으로 낮출 수 있을 것입니다.

AWS 클라우드와 함께한 20년 – 시간이 정말 빠르네요! | Amazon Web Services (새 탭에서 열림)

AWS는 지난 20년 동안 240개 이상의 클라우드 서비스를 구축하며 기술 혁신의 표준을 제시해 왔습니다. 단순한 인프라 제공을 넘어 딥러닝, 생성형 AI, 그리고 에이전트형 AI로 이어지는 기술 트렌드를 고객 중심의 관점에서 선도하고 있습니다. 특히 지난 10년은 컨테이너, 서버리스, 커스텀 실리콘, 그리고 AI 민주화를 통해 개발자와 기업이 이전에는 불가능했던 가치를 창출할 수 있도록 생태계를 확장해 온 과정이었습니다. ### 기술 트렌드에 대응하는 AWS의 혁신 철학 * 2006년 Amazon S3 출시 이후 AWS는 API 경제를 개척하며 개인 연구자와 기업 모두가 대규모 프로젝트를 수행할 수 있는 강력한 도구를 제공하기 시작했습니다. * AWS의 혁신은 단순히 화려한 유행을 쫓는 것이 아니라, 고객의 실제 목소리에 귀를 기울이고 가장 시급한 과제를 해결하는 '고객 중심'의 원칙을 따릅니다. * 기술 환경은 딥러닝의 등장에서 시작해 거대언어모델(LLM) 기반의 생성형 AI를 거쳐, 현재는 스스로 작업을 수행하는 에이전트형 AI(Agentic AI)로 빠르게 진화하고 있습니다. ### 클라우드 인프라와 데이터 아키텍처의 고도화 * **컨테이너 및 서버리스:** Amazon ECS와 EKS를 통해 대규모 컨테이너 관리를 단순화했으며, Fargate를 도입해 인프라 관리 부담 없이 서버리스 환경에서 컨테이너를 배포할 수 있게 했습니다. * **고성능 데이터베이스:** Amazon Aurora는 고가용성 관계형 DB의 표준을 세웠으며, 최근에는 0으로 스케일링이 가능한 Serverless v2와 초고속 분산 SQL 데이터베이스인 Aurora DSQL로 진화했습니다. * **하이브리드 클라우드:** AWS Outposts를 통해 저지연 데이터 처리가 필요한 온프레미스 환경에서도 AWS와 동일한 인프라 및 서비스를 사용할 수 있는 일관된 경험을 제공합니다. ### 커스텀 실리콘을 통한 성능 및 비용 최적화 * **AWS Graviton:** Arm 기반의 자체 프로세서를 개발하여 클라우드 워크로드에서 최고의 가격 대비 성능을 실현했으며, 현재 9만 명 이상의 고객이 이를 활용해 비용을 절감하고 있습니다. * **AI 전용 칩셋:** 추론용 Inferentia와 학습용 Trainium 칩을 통해 생성형 AI 애플리케이션 운영에 필요한 최적의 토큰 경제성을 제공하며, Anthropic과 같은 주요 AI 기업들의 워크로드를 지원합니다. ### AI 민주화와 에이전트 기술의 미래 * **Amazon Bedrock:** 다양한 업계 선도 모델을 안전하게 활용할 수 있는 플랫폼을 제공하며, 최근에는 'AgentCore'를 통해 복잡한 워크플로우를 자동화하는 에이전트 구축 기능을 강화했습니다. * **Amazon Nova 및 Titan:** 자체 모델인 Titan 시리즈에 이어 프론티어급 성능의 Nova 모델을 출시했으며, 특히 브라우저 UI 작업을 자동화하는 Nova Act 등 실질적인 업무 자동화 도구를 선보였습니다. * **차세대 AI 코딩:** Amazon Q Developer에서 한 단계 진화한 Kiro(에이전트형 AI 개발 도구)는 독립적인 개발 작업을 수행하는 자율 에이전트 기능을 통해 프로토타입부터 프로덕션까지의 개발 과정을 혁신하고 있습니다. AWS의 지난 20년은 기술이 소수의 전유물이 아닌 모두의 도구가 되는 과정이었습니다. 이제 기업들은 단순한 클라우드 전환을 넘어, SageMaker와 Bedrock 같은 플랫폼을 활용해 비즈니스 핵심에 AI를 내재화하고 에이전트 기술을 도입하여 운영 효율성을 극대화하는 'AI 퍼스트' 전략으로 나아가야 합니다.

Docker 보안 강화 이미지를 활용한 GitLab 컨테이너 가상 레지스트리 (새 탭에서 열림)

GitLab의 Container Virtual Registry는 분산된 여러 외부 레지스트리를 하나의 엔드포인트로 통합하여 관리 효율성과 보안을 동시에 해결하는 풀스루 캐시(pull-through cache) 솔루션입니다. 개발자는 개별 레지스트리의 인증 정보를 직접 관리할 필요 없이 단일 URL을 통해 이미지를 불러올 수 있으며, 첫 호출 시 캐싱된 이미지를 사용하여 빌드 속도를 획기적으로 개선합니다. 특히 보안이 강화된 Docker Hardened Images(DHI)를 도입할 때 발생하는 운영상의 복잡성을 제거하고 전사적인 보안 표준 준수를 용이하게 합니다. **멀티 레지스트리 환경의 운영 한계** * 플랫폼 팀은 일반적으로 Docker Hub, dhi.io(보안 이미지), MCR(.NET), Quay 등 3~5개의 레지스트리를 동시에 관리하며, 각기 다른 인증 방식과 네트워크 지연 문제를 겪습니다. * CI/CD 설정 내에 레지스트리별 로직이 파편화되어 자격 증명 관리가 복잡해지며, 동일한 이미지를 반복해서 외부망으로부터 다운로드하느라 빌드 시간이 늘어납니다. * 보안 강화를 위해 Docker Hardened Images와 같은 새로운 레지스트리를 도입하려 해도, 모든 팀의 파이프라인 설정을 변경해야 하는 운영적 마찰이 발생합니다. **가상 레지스트리의 작동 메커니즘** * 사용자가 GitLab의 가상 레지스트리 URL로 이미지를 요청하면 시스템은 우선 내부 캐시를 확인하고, 없을 경우 설정된 업스트림 레지스트리들을 순차적으로 검색합니다. * 업스트림에서 찾은 이미지는 자동으로 캐싱되며, 이후의 요청은 외부망을 거치지 않고 GitLab 인프라 내에서 즉시 제공됩니다. * 업스트림 레지스트리별로 우선순위를 지정할 수 있으며, 캐시 유효 기간(기본 24시간)을 설정하여 이미지의 최신성을 유지할 수 있습니다. **보안 이미지(DHI) 도입 가속화** * Docker Hardened Images는 CVE가 거의 없고 SBOM을 제공하는 등 보안상 우수하지만, 별도의 인증이 필요하여 전사 도입이 까다롭습니다. * 가상 레지스트리를 사용하면 관리자가 한 번만 dhi.io 자격 증명을 설정하면 되므로, 개발 팀은 개별 인증 없이 보안 이미지를 손쉽게 사용할 수 있습니다. * 가상 레지스트리의 캐시 기록을 통해 팀들이 실제로 어떤 이미지를 사용하고 있는지 모니터링할 수 있어, 일반 이미지에서 보안 이미지로의 전환 현황을 파악하는 감사 도구로 활용 가능합니다. **시스템 구성 및 설정 프로세스** * **레지스트리 생성**: Python 클라이언트 등을 이용해 특정 그룹 내에 가상 레지스트리를 생성하고 고유 ID를 할당받습니다. * **업스트림 등록**: Docker Hub(`registry-1.docker.io`), Microsoft MCR, Quay.io 등을 업스트림으로 등록하며, 각 업스트림별로 캐시 유지 시간을 개별 설정합니다. * **인증 통합**: dhi.io와 같이 유료나 보안이 필요한 레지스트리는 사용자 이름과 액세스 토큰을 가상 레지스트리 레벨에서 중앙 집중식으로 설정합니다. * **단일 엔드포인트 활용**: 모든 파이프라인에서 각기 다른 도메인 대신 `gitlab.com/virtual_registries/container/<ID>/<image>` 형태의 단일 주소를 사용하도록 통일합니다. 보안과 성능이라는 두 마리 토끼를 잡아야 하는 플랫폼 엔지니어에게 GitLab 가상 레지스트리는 필수적인 도구입니다. Docker Hardened Images를 최상위 업스트림으로 설정하여 가상 레지스트리를 구성하면, 개발자에게 추가적인 학습이나 설정의 부담을 주지 않으면서도 조직 전체의 컨테이너 보안 공급망을 자연스럽게 강화할 수 있습니다.

넷플릭스의 마운트 메 (새 탭에서 열림)

넷플릭스는 컨테이너 런타임을 현대화하는 과정에서 수백 개의 컨테이너가 동시에 부팅될 때 시스템이 멈추거나 헬스 체크가 실패하는 심각한 병목 현상에 직면했습니다. 조사 결과, 이는 컨테이너 보안을 위해 도입된 사용자 네임스페이스(User Namespace)의 `idmap` 마운트 작업이 리눅스 커널의 VFS(가상 파일 시스템) 전역 잠금 장치에서 경합을 일으키기 때문으로 밝혀졌습니다. 특히 이러한 현상은 구형 다중 소켓(NUMA) 하드웨어 아키텍처에서 더욱 두드러지게 나타났으며, 최신 단일 소켓 인스턴스로 전환함으로써 스케일링 성능을 크게 개선할 수 있었습니다. **컨테이너 보안 강화와 마운트 폭증의 관계** - 넷플릭스는 보안 강화를 위해 각 컨테이너에 고유한 사용자 범위를 할당하는 새로운 런타임(Kubelet + Containerd)으로 전환했습니다. - 파일 소유권을 실제로 변경하는 비용을 줄이기 위해 커널의 `idmap` 마운트 기능을 사용하는데, 이는 각 레이어마다 `open_tree`, `mount_setattr`, `move_mount` 등의 호출을 발생시킵니다. - 50개의 레이어를 가진 컨테이너 100개를 동시에 실행할 경우, 이론적으로 약 20,000번 이상의 마운트 관련 작업이 수행되며 이는 커널의 마운트 테이블 전역 락(Global Lock)에 엄청난 부하를 줍니다. **커널 및 하드웨어 수준의 병목 현상 진단** - 시스템 분석 결과, CPU는 커널의 `path_init()` 함수 내 시퀀스 락(Sequence Lock)을 기다리는 스핀 루프(Spin Loop)에서 대부분의 시간을 소비하며 'Pause' 명령어를 반복 실행했습니다. - TMA(Topdown Microarchitecture Analysis) 분석에 따르면 파이프라인 슬롯의 95.5%가 경합된 액세스로 인해 중단되었으며, 57%는 가짜 공유(False Sharing)로 인해 발생했습니다. - 여러 코어가 동일한 캐시 라인에 접근하려고 시도하면서 캐시 라인 바운싱(Cache Line Bouncing) 현상이 발생하여 시스템 성능이 급격히 저하되었습니다. **인스턴스 아키텍처에 따른 성능 차이** - 테스트 결과, 5세대 인텔 듀얼 소켓 인스턴스인 `r5.metal`은 100개 이상의 컨테이너가 동시에 실행될 때 성능이 급격히 저하되며 실패하는 모습을 보였습니다. - 반면, 단일 소켓 및 단일 NUMA 도메인을 사용하는 7세대 인스턴스(`m7i.metal-24xl`, `m7a.24xlarge`)는 높은 동시성 환경에서도 훨씬 낮은 지연 시간과 높은 성공률을 유지했습니다. - 이는 NUMA 아키텍처의 프로세서 간 상호 연결(Interconnect) 대기 시간이 전역 락 경합 상황에서 병목 현상을 수배로 증폭시키기 때문입니다. 대규모 컨테이너 환경을 운영한다면 컨테이너 이미지의 레이어 수를 최소화하여 마운트 발생 횟수를 줄여야 합니다. 또한, 컨테이너 생성 및 삭제가 빈번한 워크로드의 경우 다중 소켓 기반의 구형 인스턴스보다는 메모리 접근 대기 시간이 짧고 락 경합에 유리한 최신 단일 소켓 혹은 단일 NUMA 노드 아키텍처를 선택하는 것이 성능 안정성에 유리합니다.

클로드와 함께하는 GitLab Duo Agent 플랫폼이 개발을 가속화합니다 (새 탭에서 열림)

GitLab Duo Agent Platform은 Anthropic의 Claude와 같은 외부 AI 모델을 GitLab 워크플로우에 직접 통합하여 소프트웨어 개발 전 과정을 자동화합니다. 기존 AI 도구들이 개발 워크플로우와 분리되어 발생했던 맥락 단절 문제를 해결하고, 프로젝트의 요구사항을 깊이 이해하여 코드 생성부터 파이프라인 구축까지 복잡한 다단계 작업을 자율적으로 수행합니다. 이를 통해 팀은 개발 속도를 획기적으로 높이는 동시에 코드의 일관성과 보안을 유지할 수 있는 강력한 협업 환경을 구축하게 됩니다. ### 아이디어에서 코드로의 전환 (From Idea to Code) * 프로젝트 이슈에 기재된 사양과 설명을 기반으로 외부 에이전트가 애플리케이션 개발 전체 프로세스를 주도합니다. * 에이전트는 프로젝트의 맥락을 분석하여 풀스택 Java 웹 애플리케이션, 비즈니스 로직, UI 컴포넌트를 생성하고 리뷰 준비가 완료된 병합 요청(Merge Request)을 자동으로 생성합니다. * 백엔드 Java 클래스, 프론트엔드 HTML/CSS/JS, 빌드 구성 파일이 포함된 결과물을 제공하며, 개발자는 자연어 대화를 통해 이를 즉시 테스트하고 반복적으로 개선할 수 있습니다. ### 자동화된 지능형 코드 리뷰 (Code Review) * 병합 요청 단계에서 에이전트를 호출하여 코드의 강점, 취약점, 우선순위별 개선 사항을 포함한 종합적인 분석 보고서를 제공받을 수 있습니다. * 보안 평가, 테스트 노트, 코드 메트릭 및 승인 상태 권장 사항을 포함하여 시니어 개발자가 아키텍처 결정과 같은 고차원적인 작업에 집중할 수 있도록 돕습니다. * 일관된 리뷰 기준을 적용함으로써 운영 환경에 배포되기 전 잠재적인 오류를 선제적으로 차단합니다. ### CI/CD 파이프라인 및 컨테이너화 자동화 (Pipeline Creation) * 배포 자동화가 설정되지 않은 환경에서 에이전트에게 요청하여 완전한 형태의 CI/CD 파이프라인 구성을 생성할 수 있습니다. * 프로젝트의 Java 버전에 최적화된 Dockerfile을 생성하고, GitLab 컨테이너 레지스트리에 이미지를 빌드 및 배포하는 단계를 자동으로 구성합니다. * 수동 설정 없이도 빌드, 이미지 생성, 레지스트리 푸시 단계가 포함된 파이프라인이 즉시 가동되어 배포 효율성을 극대화합니다. GitLab Duo Agent Platform은 AI를 단순한 보조 도구가 아닌, 조직의 표준을 준수하고 자율적으로 업무를 완수하는 '신뢰할 수 있는 협업자'로 격상시킵니다. 반복적인 수동 작업을 줄이고 개발 사이클 전반의 지능형 자동화를 구현하고자 하는 팀에게 이 플랫폼은 생산성 혁신을 위한 핵심적인 솔루션이 될 것입니다.

GitLab 메트릭스 및 레지스트리 기능이 CI/CD 병목 현상을 줄이는 데 도움을 줍니다. (새 탭에서 열림)

GitLab이 새롭게 선보이는 CI/CD 작업 성능 메트릭과 컨테이너 가상 레지스트리 기능은 개발 및 운영 팀이 직면한 인프라 복잡성과 파이프라인 병목 현상을 직접 해결하는 데 중점을 둡니다. 별도의 타사 도구 없이도 GitLab 내부에서 작업별 성능 데이터를 분석하고 여러 외부 소스의 컨테이너 이미지를 통합 관리 및 캐싱함으로써, 전체적인 개발 워크플로우의 속도와 안정성을 동시에 개선할 수 있습니다. ## CI/CD 작업 성능 메트릭을 통한 병목 지점 시각화 그동안 파이프라인의 성능 저하나 실패 원인을 파악하기 위해 별도의 대시보드를 구축하거나 로그를 수동으로 분석해야 했던 번거로움이 해결되었습니다. * **성능 지표 제공**: 각 작업(Job)별로 중앙값(P50) 및 최악의 케이스(P95) 실행 시간을 제공하여, 평상시 속도와 비정상적으로 느려진 시점을 명확히 구분할 수 있습니다. * **실패율 추적**: 특정 작업의 실패 빈도를 파악하여 불안정한(flaky) 작업을 식별하고 파이프라인의 신뢰도를 높일 수 있습니다. * **통합 분석 대시보드**: 프로젝트 수준의 CI/CD 분석 페이지에서 지난 30일간의 데이터를 기반으로 작업 이름, 단계(Stage)별 정렬 및 검색이 가능합니다. * **기술적 요구사항**: GitLab Premium 및 Ultimate 티어에서 사용 가능하며, 셀프 호스팅 환경의 경우 ClickHouse가 구성되어 있어야 합니다. 향후 빌드, 테스트, 배포 단계별 그룹화 기능이 추가될 예정입니다. ## 컨테이너 가상 레지스트리를 활용한 이미지 관리 최적화 Docker Hub, Harbor, Quay 등 여러 레지스트리에 흩어져 있는 이미지를 개별적으로 관리하며 발생하는 인증 및 대역폭 비용 문제를 단일 엔드포인트를 통해 해결합니다. * **단일 엔드포인트 통합**: 여러 업스트림 레지스트리를 하나의 GitLab 가상 레지스트리 주소로 통합하여, 파이프라인 설정에서 번거로운 개별 인증 과정을 줄일 수 있습니다. * **풀스루 캐싱(Pull-through Caching)**: 첫 번째 호출 이후 이미지를 GitLab 내부에 캐싱하여 외부 네트워크 대역폭 비용을 절감하고 이미지 풀 속도를 향상합니다. * **지원 범위**: 현재 Docker Hub, Harbor, Quay 등 장기 토큰 인증을 사용하는 레지스트리를 지원하며, 향후 AWS ECR이나 Google Artifact Registry 같은 클라우드 기반 레지스트리로 확장될 계획입니다. * **운영 방식**: GitLab 18.9 버전부터 API를 통해 설정 가능하며, SaaS 사용자는 기능 플래그 활성화를 통해 베타 버전에 참여할 수 있습니다. 성능 저하로 고민하는 플랫폼 팀이라면 이번 베타 기능을 통해 파이프라인의 병목 구간을 우선적으로 점검해 보길 권장합니다. 특히 여러 외부 레지스트리를 혼용하는 환경에서는 가상 레지스트리를 도입함으로써 관리 포인트를 일원화하고 대역폭 비용을 효과적으로 줄일 수 있습니다. 해당 기능들은 커뮤니티 피드백을 바탕으로 개선되고 있으므로, 실제 도입 후 개선 제안을 공유하는 것도 좋은 방법입니다.

GitLab Duo Agentic Chat 시작하기 (새 탭에서 열림)

GitLab Duo Agentic Chat은 단순한 질의응답을 넘어 소프트웨어 개발 수명 주기(SDLC) 전반에서 능동적으로 작업을 수행하는 자율형 AI 협업 파트너입니다. 이 플랫폼은 코드 수정, 병합 요청(MR) 생성, 보안 취약점 해결 등 실질적인 액션을 실행하며, 프로젝트의 컨텍스트를 완벽히 이해하여 개발자의 생산성을 극대화합니다. 사용자는 웹 UI와 IDE 내에서 최적화된 모델과 전용 에이전트를 선택함으로써 복잡한 워크플로우를 자동화하고 고품질의 소프트웨어를 빠르게 배포할 수 있습니다. **자율적인 AI 협업 파트너의 핵심 역량** * **능동적 작업 수행:** 질문에 답하는 수준을 넘어 파일을 생성 및 수정하고, 이슈를 트리아지(Triage)하거나 CI/CD 파이프라인의 오류를 직접 해결합니다. * **맥락 인식 능력:** 대화 기록은 물론 프로젝트 아키텍처, 코드베이스, 위키, GitLab 문서 및 보안 스캔 결과까지 광범위한 컨텍스트를 활용합니다. * **확장성 및 통합:** Model Context Protocol(MCP)을 통해 외부 서비스와 통합할 수 있으며, 목적에 따라 전문화된 멀티 에이전트 시스템을 지원합니다. **작업별 최적화를 위한 모델 및 에이전트 선택** * **유연한 모델 구성:** 대규모 언어 모델(LLM)마다 강점이 다르므로 작업 요구사항에 따라 적절한 모델을 선택할 수 있으며, 이는 그룹 또는 사용자 단위로 설정 가능합니다. * **전용 에이전트 활용:** 제품 관리를 위한 'Planner Agent', 보안 분석을 위한 'Security Analyst Agent' 등 특정 도메인에 특화된 에이전트로 전환하여 전문적인 도움을 받을 수 있습니다. * **간편한 접근성:** 웹 UI의 사이드바나 IDE 내의 드롭다운 메뉴를 통해 작업 흐름을 끊지 않고 에이전트와 모델을 즉시 변경할 수 있습니다. **실무 생산성 향상을 위한 주요 활용 사례** * **이슈 및 보안 관리:** 특정 라벨이 지정된 이슈 목록 추출, 에픽(Epic)의 세부 작업 분할, 보안 취약점 분석 및 이를 해결하기 위한 자동 수정 MR 생성이 가능합니다. * **코드 이해 및 온보딩:** 복잡한 코드베이스의 아키텍처 개요 파악, 특정 함수의 호출 위치 검색, 신규 팀원을 위한 로컬 개발 환경 설정 안내 등을 수행합니다. * **디버깅 및 품질 개선:** 실패한 파이프라인 로그를 분석해 원인을 진단하고, 기존 코드를 SOLID 원칙에 맞춰 리팩토링하거나 최신 프로그래밍 언어 버전으로 변환하는 작업을 지원합니다. * **기능 구현 및 테스트:** REST API 엔드포인트 생성, 유닛 테스트 코드 자동 생성, UI 구성 요소의 접근성 검토 등 개발 전 과정을 보조합니다. GitLab Duo Agentic Chat의 잠재력을 최대한 끌어내기 위해서는 작업의 성격에 맞는 전용 에이전트를 선택하는 것이 가장 중요합니다. 보안 분석이나 기획 단계 등 정밀한 컨텍스트가 필요한 작업일수록 일반 채팅보다는 특화된 에이전트를 활용할 것을 권장하며, 향후 출시될 CLI 지원을 통해 터미널 환경에서도 동일한 AI 협업 경험을 확장해 나갈 수 있습니다.

2023-03-08 사건: 플랫폼 수준의 영향 깊이 살펴보기 | Datadog (새 탭에서 열림)

2023년 3월 8일 발생한 Datadog의 전사적 서비스 장애는 시스템 관리 데몬인 systemd의 동작 변경과 자동 보안 업데이트 설정이 결합되어 발생한 이례적인 사건입니다. Ubuntu 22.04 환경에서 systemd-networkd가 재시작될 때 기존 IP 라우팅 규칙을 모두 삭제하는 새로운 기본 동작이 활성화되었고, 이것이 전 지역 노드에 동시다발적인 자동 패치로 실행되면서 대규모 네트워크 중단으로 이어졌습니다. 이 사고는 인프라 전반에 걸친 자동화된 변경 관리와 점진적 배포 원칙이 보안 패치라는 예외 상황에서 어떻게 무력화될 수 있는지를 보여줍니다. **systemd-networkd의 IP 규칙 삭제 동작** * 2020년 12월 배포된 systemd v248부터 `systemd-networkd`는 시작 시 자신이 파악하지 못한 모든 IP 규칙(IP rules)을 삭제(flush)하는 동작을 도입했습니다. * 이후 v249에서 `ManageForeignRoutingPolicyRules` 설정을 통해 이 동작을 거부할 수 있는 옵션이 추가되었으나, 기본값은 여전히 기존 규칙을 삭제하는 방식이었습니다. * Datadog이 마이그레이션 중이던 Ubuntu 22.04는 이 위험한 기본 설정이 포함된 systemd v249를 사용하고 있었습니다. **보안 패치와 자동 업데이트의 결합** * 2023년 3월 7일, systemd의 CVE 취약점을 해결하기 위한 보안 패치가 Ubuntu 저장소에 업데이트되었습니다. * Datadog의 서버들은 Ubuntu의 기본 설정인 `unattended-upgrades`를 사용하고 있었으며, 이는 매일 특정 시간(06:00 UTC)에 보안 업데이트를 자동으로 수행하도록 설정되어 있었습니다. * 이 보안 패치가 설치되면서 `systemd-networkd` 서비스가 재시작되었고, 그 즉시 노드의 핵심적인 네트워크 라우팅 규칙들이 모두 삭제되었습니다. **점진적 배포 전략의 무력화** * Datadog은 평소 새로운 OS나 설정을 도입할 때 실험용 클러스터부터 시작해 스테이징, 소규모 리전, 대규모 리전 순으로 수주에 걸쳐 점진적으로 배포하는 엄격한 프로세스를 따릅니다. * 하지만 시스템 레벨의 자동 업데이트(unattended-upgrades)는 이러한 점진적 배포 통제를 우회하여 전 세계 모든 리전의 노드에 거의 동시에 적용되었습니다. * 결과적으로 전체 서버의 90% 이상을 차지하던 Ubuntu 22.04 노드들이 동시다발적으로 네트워크 불능 상태에 빠지게 되었습니다. **실용적인 교훈과 권장사항** 운영 환경에서 OS 배포판을 업그레이드할 때는 시스템 구성 요소(특히 systemd와 같은 핵심 데몬)의 기본 동작 변경 사항을 상세히 검토해야 합니다. 또한, 보안을 위한 자동 업데이트라 할지라도 인프라 전체에 동시에 적용되는 방식은 위험할 수 있으므로, 업데이트 주기를 리전별로 분산하거나 자체적인 패키지 미러를 통해 보안 패치 역시 점진적 배포 파이프라인의 통제하에 두는 것이 권장됩니다.

Dirty Pipe 취약점을 이용한 컨 (새 탭에서 열림)

리눅스 커널에서 발견된 Dirty Pipe 취약점은 권한이 없는 프로세스가 읽기 권한만 가진 파일에 데이터를 쓸 수 있게 허용하며, 이를 통해 컨테이너 환경에서 호스트 시스템의 루트 권한을 탈취할 수 있는 심각한 위협을 초래합니다. 특히 Kubernetes 환경에서 널리 쓰이는 컨테이너 런타임인 runC의 실행 바이너리를 페이지 캐시 수준에서 변조함으로써, 격리된 컨테이너를 탈출하여 호스트 시스템을 완전히 장악하는 시나리오가 가능합니다. 본 글에서는 이 취약점의 기술적 배경과 함께 실제 컨테이너 탈출이 이루어지는 공격 메커니즘을 상세히 설명합니다. **컨테이너 런타임과 runC의 구조적 취약성** - Kubernetes는 containerd나 CRI-O 같은 런타임을 통해 컨테이너를 관리하며, 실제 프로세스 생성은 OCI 규격을 준수하는 하위 레벨 런타임인 runC가 담당합니다. - runC는 컨테이너 내부 프로세스를 실행할 때 자신을 포크(fork)한 뒤 `execve` 시스템 콜을 호출하는데, 이때 `/proc/self/exe` 경로를 통해 호스트에 있는 runC 이진 파일에 대한 파일 서술자(File Descriptor)를 열어두게 됩니다. - 과거 CVE-2019-5736 취약점에 대한 대응으로 runC를 읽기 전용으로 마운트하는 방어책이 도입되었으나, Dirty Pipe는 커널의 페이지 캐시를 직접 수정하므로 이러한 파일 시스템 수준의 권한 제한을 무력화합니다. **Dirty Pipe를 이용한 컨테이너 탈출 과정** - 공격자는 먼저 취약한 웹 애플리케이션 등을 통해 권한이 제한된 일반 컨테이너에 침투한 뒤, 호스트의 runC 바이너리가 실행되기를 대기합니다. - 관리자가 `kubectl exec`와 같은 명령을 수행하여 컨테이너 내부에서 runC가 구동되는 순간, 공격 프로세스는 `/proc/<runC-pid>/exe`를 통해 호스트의 runC 실행 파일에 접근합니다. - Dirty Pipe 공격 프리미티브를 활용하여 페이지 캐시에 로드된 runC 바이너리 내용을 공격자의 악성 ELF 코드로 덮어씁니다. - 이렇게 변조된 runC는 호스트의 루트 권한으로 실행되므로, 공격자는 호스트 시스템에서 임의의 명령(예: 호스트 이름 확인, 루트 권한 쉘 실행 등)을 수행하며 컨테이너 격리를 완전히 무너뜨립니다. **메모리 기반 공격의 비영구적 특성** - Dirty Pipe를 통한 바이너리 변조는 디스크의 실제 파일을 직접 수정하는 것이 아니라 커널의 페이지 캐시 내에서 발생합니다. - 따라서 공격으로 인한 변조는 시스템이 재부팅되거나 커널 캐시가 드롭(drop)되기 전까지만 유지되는 비영구적 특성을 가집니다. - 하지만 단 한 번의 실행만으로도 호스트에 백도어를 설치하거나 권한을 상승시키기에 충분하므로 그 위험성은 매우 높습니다. Dirty Pipe 취약점은 리눅스 커널 수준의 결함이므로 이를 근본적으로 해결하기 위해서는 최신 보안 패치가 적용된 커널로 신속히 업데이트해야 합니다. 또한 컨테이너 환경에서는 최소 권한 원칙을 철저히 준수하고, 런타임 보안 모니터링 도구를 도입하여 `/proc` 파일 시스템에 대한 의심스러운 접근이나 시스템 이진 파일의 비정상적인 동작을 실시간으로 감지하고 차단하는 방어 전략이 필요합니다.