infrastructure-as-code

15 개의 포스트

gitlab4분 읽기큐레이션 요약

Claude와 GitLab으로 모든 커밋을 프로덕션까지 안전하게 배포하세요

Claude은 코딩 세션 중 취약점을 발견하고 수정하는 데 유용하지만, 커밋 이후의 병합·의존성·인프라 변경·감사까지 대체할 수는 없다. 글은 Claude Security와 GitLab을 연계해 작성 단계부터 프로덕션 배포까지 보안 검사를 지속하고, 정책을 강제하며, 감사 증거를 자동으로 남기는 방식을 제안한다. Claude가 작성 시점을 담당하고 GitLab이 이후 전체 소프트웨어 공급망을 관리하는 구조다. ## 세션 내 보안 점검에서 강제 가능한 정책으로 - Claude 보안 가이던스 플러그인은 개발자의 코딩 세션 안에서 취약점을 빠르게 찾아 수정하도록 돕는다. - 코드가 세션 밖으로 나간 뒤에는 보안팀이 어떤 검사가 수행됐는지 확인하고 후속 작업을 통제해야 한다. - GitLab 보안 구성 프로필을 사용하면 저장소 외부에서 필요한 스캔을 정의하고 여러 프로젝트와 파이프라인에 일괄 적용할 수 있다. - 병합 요청 승인 정책으로 변경을 작성한 에이전트나 해당 에이전트를 사용한 개발자가 자신의 코드를 직접 승인·병합하지 못하게 할 수 있다. - 해결되지 않은 치명적 취약점이 있는 병합 요청은 지정된 승인자가 승인할 때까지 차단된다. - 취약점 보고서와 보안 대시보드에서 각 취약점이 발견·무시·해결된 상태와 사유를 추적할 수 있다. ## 자동화된 감사 증거와 변경 이력 - SOC 2, PCI DSS, FedRAMP 같은 규정은 에이전트가 작성한 변경도 테스트·검토·승인됐다는 증거를 요구한다. - GitLab은 모든 병합 요청에서 스캔이 실행되도록 보장하고, 결과를 병합 요청과 취약점 보고서에 표시한다. - 파이프라인 로그, 승인 기록, 감사 이벤트를 통해 어떤 변경을 누가 또는 어떤 에이전트가 처리했는지 재현할 수 있다. - 규정 프레임워크별 요구사항에 보안 통제를 매핑할 수 있으며, 각 통제의 통과·대기·실패 상태를 보고서에서 확인할 수 있다. ## 모델로 전송되는 민감 데이터 통제 - 컨텍스트 제외 기능으로 인증 정보, 민감한 파일, 독점 로직, 규제 데이터를 모델에 보내지 않도록 설정할 수 있다. - 자체 관리 환경과 자체 호스팅 모델을 사용하면 코드와 추론 데이터를 조직 경계 안에 둘 수 있다. - 흐름별 허용 모델을 지정하고, 코드가 모델 학습에 사용되지 않도록 제한할 수 있다. - GitLab Duo의 프롬프트 가드레일은 모델에 전달되기 전 코드 제안에서 비밀정보를 탐지한다. - 프롬프트가 접근할 수 있는 콘텐츠를 제한해 프롬프트 인젝션 위험도 줄인다. ## 세션 단위 검사를 넘어선 전체 생명주기 보안 - 세션 기반 검사는 해당 시점의 코드만 다루므로, 이후 공개되는 의존성 취약점이나 이미 커밋된 비밀정보까지 발견하지 못할 수 있다. - GitLab은 다음 영역을 독립적으로 검사한다. - 의존성 취약점 - 컨테이너 이미지 - 인프라스트럭처 코드 - 비밀정보 유출 - 실행 중 애플리케이션에 대한 DAST - 결정론적 스캐너는 동일 코드에 대해 일관된 결과와 CWE 매핑을 제공해 감사에 적합하다. - 반면 비즈니스 로직 오류, 잘못된 권한 검사, 경쟁 조건처럼 일반 스캐너가 놓치기 쉬운 문제는 Security Review Flow가 코드의 의도를 분석해 보완한다. - 글은 Claude의 보안 검사를 인간 코드 리뷰와 다양한 보안 스캐너를 대체하는 수단이 아니라 보조 수단으로 규정한다. ## 사람과 에이전트에 동일한 보안 가드레일 적용 - Claude 플러그인은 Claude가 세션에서 작성·커밋한 코드에 집중한다. - 개발자가 셸에서 직접 작성하거나 세션 내 `!` 셸 이스케이프를 통해 실행한 변경은 플러그인 검토 범위를 벗어날 수 있다. - Claude Security는 개발자나 관리자가 필요할 때 전체 코드베이스 또는 사람이 작성한 코드도 검사할 수 있다. - GitLab의 스캔 실행 정책과 병합 승인 정책은 파이프라인에서 모든 변경에 적용된다. - 따라서 코드 작성자가 사람인지 에이전트인지, 개발자가 별도로 검사를 실행했는지에 관계없이 동일한 통제를 적용할 수 있다. ## 프로덕션에 도달하는 변경 통제 - Claude Security와 GitLab MCP 서버를 연결하면 기존 Claude 기반 개발 흐름을 유지하면서 GitLab의 정책·스캔·감사 기능을 활용할 수 있다. - 모든 기본 브랜치와 대상 프로젝트에 보안 스캔을 강제해 정책 우회를 어렵게 만든다. - 치명적 취약점, 미승인 변경, 누락된 검사 결과가 있는 코드는 배포 전에 차단할 수 있다. - 결과적으로 세션 안의 빠른 AI 보안 지원과 프로덕션 배포 전의 조직 차원 거버넌스를 하나의 흐름으로 결합한다. 실무에서는 Claude를 개발 중 취약점 탐지와 수정에 활용하되, GitLab에서 SAST·의존성·컨테이너·IaC·비밀정보·DAST 스캔과 승인 정책을 중앙 관리하는 구성이 권장된다. 특히 모델에 전송되는 파일을 사전에 제외하고, 에이전트와 사람 모두에게 동일한 승인·감사 규칙을 적용해야 한다.

원문 읽기(새 탭에서 열림)
aws3분 읽기큐레이션 요약

AWS CloudFormation Express 모드로 인프라 배포를 최대 4배 가속화하세요 | Amazon Web Services

AWS CloudFormation Express mode는 리소스가 완전히 안정화될 때까지 기다리지 않고 설정 적용이 확인되는 즉시 배포를 완료해, 반복적인 인프라 개발 속도를 최대 4배 높이는 기능이다. 리소스 안정화는 백그라운드에서 계속 진행되며, 일시적인 프로비저닝 실패는 CloudFormation이 자동 재시도한다. 다만 트래픽 전환이나 테스트 전에 리소스의 완전한 운영 가능 상태가 필요하다면 기존 Standard 모드를 사용해야 한다. ## Express mode의 동작 방식 - Standard 모드는 리소스 설정 적용 후 안정화 검사를 수행한 뒤 배포를 완료한다. - Express mode는 설정이 적용되었다고 CloudFormation이 확인하면 안정화 검사를 기다리지 않고 배포를 완료한다. - 배포 완료 이후에도 리소스는 백그라운드에서 계속 운영 상태로 전환된다. - 의존 리소스에서 일시적인 오류가 발생하면 동일 스택 내에서 CloudFormation이 자동으로 재시도한다. - 리소스 프로비저닝 방식 자체를 바꾸는 것이 아니라, CloudFormation이 배포 완료를 보고하는 시점만 앞당긴다. ## 적합한 사용 사례 - 인프라 설정을 반복적으로 수정하는 개발 및 실험 workflow - 애플리케이션의 개별 구성 요소를 빠르게 테스트하는 경우 - AI 도구를 활용한 인프라 개발처럼 1분 이내의 피드백이 필요한 경우 - 리소스가 완전히 안정화되기 전에 다음 개발 작업을 진행해도 되는 프로덕션 환경 ## 배포 시간 단축 사례 - SQS 큐와 DLQ 생성: - Standard mode: 약 64초 - Express mode: 최대 약 10초 - 네트워크 인터페이스가 연결된 Lambda 함수 삭제: - Standard mode: 약 20~30분 - Express mode: 벤치마크 기준 최대 약 10초 실제 시간은 리소스 종류와 환경에 따라 달라질 수 있지만, 안정화 대기 시간이 긴 작업일수록 효과가 크다. ## 활성화 방법과 롤백 설정 - 콘솔에서 스택 생성 시 **Stack deployment options → Express mode → Enable**을 선택한다. - AWS CLI, SDK, CDK, Kiro 같은 AI 도구에서도 사용할 수 있다. - CLI에서는 `--deployment-config`에 `EXPRESS` 모드를 지정한다. ```bash aws cloudformation create-stack \ --stack-name my-app \ --template-body file://template.yaml \ --deployment-config '{"mode": "EXPRESS", "disableRollback": true}' ``` - Express mode는 빠른 반복 작업을 위해 기본적으로 롤백이 비활성화된다. - 프로덕션 환경에서 롤백을 사용하려면 `disableRollback: false`로 설정한다. - 롤백을 비활성화할 경우 실패한 배포에 대한 모니터링과 정리 절차를 별도로 마련해야 한다. ## 점진적 인프라 개발 Express mode는 리소스를 하나씩 추가하는 방식의 개발에 적합하다. - 1단계: IAM 역할 배포 - 2단계: Lambda 함수 추가 - 3단계: SQS 큐와 이벤트 소스 매핑 추가 - 각 단계에서 `create-stack` 또는 `update-stack`과 함께 Express mode를 사용할 수 있다. - IAM 역할 템플릿은 최소 권한 원칙을 따라야 한다. ## CDK 및 CloudFormation 호환성 - AWS CDK에서는 다음 명령으로 활성화한다. ```bash cdk deploy --express ``` - 기존 CloudFormation 템플릿을 수정하지 않아도 된다. - 변경 세트, 중첩 스택 등 기존 CloudFormation 기능을 지원한다. - 부모 스택에서 Express mode를 활성화하면 중첩 스택에도 적용된다. - 리소스가 완전히 운영 가능해진 뒤 트래픽을 전환하거나 테스트해야 한다면 Standard 모드를 유지해야 한다. ## 제공 범위 - 모든 AWS 상용 리전에서 추가 비용 없이 제공된다. - 리전별 지원 현황과 향후 계획은 AWS 리전별 기능 문서에서 확인할 수 있다. 개발 중 빠른 피드백이 중요하다면 Express mode를 우선 사용하되, 롤백 비활성화에 따른 정리 및 모니터링 체계를 준비하는 것이 좋다. 운영 트래픽이나 테스트가 리소스의 완전한 안정화에 의존한다면 기존 Standard 모드가 더 안전하다.

원문 읽기(새 탭에서 열림)
github3분 읽기큐레이션 요약

Hubber로서 전환하기

GitHub의 Arthur Searle은 회사의 핸들 중심 문화와 원격 근무 환경, 성별 확정 의료 지원 덕분에 직장에서 비교적 안전하고 자연스럽게 트랜지션할 수 있었다고 말합니다. 이름·대명사 변경 과정의 행정적 마찰은 있었지만, 동료들의 존중과 지지를 통해 자신의 정체성으로 일하는 기쁨을 경험했습니다. 이 글은 트랜스젠더 구성원이 직장에서 겪는 어려움뿐 아니라, 포용적인 환경이 만들어내는 안도감과 기쁨도 함께 보여줍니다. ## IT 지원에서 보안 엔지니어로 - Arthur는 IT 지원과 운영 업무로 커리어를 시작한 뒤, 독학으로 코딩을 배웠습니다. - 동료의 추천으로 GitHub에 입사해 IT Engineering 팀에서 근무했습니다. - 보안 관련 문제와 풀 리퀘스트를 여러 보안 팀에 지속적으로 제기한 결과, 6개월 만에 Enterprise Security 팀으로 이동했습니다. - 주요 SaaS 플랫폼의 인프라를 코드로 이전하는 작업에 참여했고, 옥스퍼드대학교에서 버전 관리 관련 강연도 진행했습니다. ## 핸들 중심 문화가 만든 정체성의 연속성 - 입사 당시 법적 이름은 Ursula였지만, 온라인 핸들은 계속 `gleeblezoid`였습니다. - GitHub의 원격 중심 문화에서는 실명보다 핸들을 자주 사용하기 때문에, 이름을 바꾸더라도 기존의 업무 정체성과 관계를 유지하기 쉬웠습니다. - 다른 회사처럼 모든 사람이 외모와 실명만으로 서로를 식별하는 환경이었다면 트랜지션 과정이 더 어려웠을 것이라고 설명합니다. - 내부 시스템에서 이름과 대명사를 업데이트한 뒤, 대부분의 동료가 자연스럽게 새 이름을 사용했습니다. ## 의료 지원과 원격 근무의 장점 - GitHub는 직원 모두에게 성별 확정 의료와 관련된 복지 혜택을 제공합니다. - Arthur는 해당 혜택으로 다음과 같은 비용을 지원받을 수 있었다고 말합니다. - 음성 훈련 - HRT 처방약 - 상담 및 치료 - 원격 근무 덕분에 출근 복장이나 이동 중 다른 사람의 시선에 대해 걱정할 필요가 적었습니다. - 업무 소통 대부분이 Slack과 GitHub에 글로 남기 때문에, 음성 훈련이나 HRT로 목소리가 변하는 시기에 하루 종일 직접 말해야 하는 부담도 줄었습니다. - 만화 캐릭터 아바타처럼 외모와 성별 표현에서 자유로운 문화 역시 불필요한 추측과 판단을 줄였습니다. ## 직장에서 트랜스젠더로 살아가는 현실 - Arthur는 직장에서 커밍아웃하지 못하거나, 이름 변경 과정에서 행정적 문제를 겪는 트랜스젠더 동료들을 알고 있다고 말합니다. - 새로운 사람을 만날 때마다 자신의 정체성을 반복해서 설명해야 하는 경우도 있습니다. - 본인은 급여 시스템 등에서 법적 이름을 바꾸는 행정 절차를 제외하면 비교적 순조롭게 트랜지션할 수 있었습니다. - 동료들은 그를 특별히 다르게 대하지 않고, 원하는 이름과 대명사를 사용하며 일반적인 동료로 존중했습니다. ## 지지와 긍정적인 감정 - 트랜스젠더로 살아가는 일이 항상 쉽거나 사회적으로 받아들여지는 것은 아니지만, 경험이 고난만으로 정의되는 것은 아니라고 강조합니다. - 직장에서 처음 자신의 이름을 듣고 남성 대명사로 불렸을 때 큰 감동을 느꼈습니다. - 한 동료가 면도 키트를 보내준 일처럼, 동료들의 작은 배려가 강한 소속감과 기쁨을 만들었습니다. - 동료들은 Arthur와 관련된 농담과 밈을 공유하며 그의 트랜지션을 진심으로 축하하고 지지했습니다. - 그는 “항상 남성이었지만, 남성으로 살아가고 사회에 참여할 시간과 지원이 필요했다”고 말하며 글을 마무리합니다. 기업이 트랜스젠더 구성원을 지원하려면 의료비 보장뿐 아니라 이름·대명사 변경 절차, 원격·비동기 소통, 외모에 대한 판단을 줄이는 문화까지 함께 마련해야 합니다. 궁극적으로 중요한 것은 트랜지션을 특별한 사건으로만 다루지 않고, 구성원이 원하는 정체성으로 존중받으며 평범하게 일할 수 있도록 하는 것입니다.

원문 읽기(새 탭에서 열림)
line6분 읽기큐레이션 요약

Flava DBaaS 딥다이브: 아키텍처부터 마이그레이션, 그리고 미래까지

LY Corporation은 Verda와 YNW를 차세대 프라이빗 클라우드 Flava로 통합하면서, 쿠버네티스 오퍼레이터 패턴 기반의 DBaaS를 설계했습니다. Flava DBaaS는 데이터베이스 비즈니스 로직과 IaaS 제어를 분리하고, 선언적 관리·자동화·일관된 사용자 경험을 제공하는 것을 목표로 합니다. 또한 DBaaS의 역할을 신규 데이터베이스 제공에 그치지 않고, 기존 플랫폼에서 Flava로의 원활한 마이그레이션까지 확장하고 있습니다. ## 쿠버네티스 오퍼레이터 기반의 선언적 DBaaS - 사용자가 원하는 데이터베이스의 상태를 커스텀 리소스(CR)로 선언하면, 컨트롤러가 실제 상태가 선언된 상태와 일치하도록 지속적으로 조정(reconcile)합니다. - 절차를 직접 지시하는 방식보다 운영 상태를 파악하기 쉽습니다. - 커스텀 리소스의 사양과 현재 상태 비교 - 컨트롤러 로그 및 이벤트 확인 - 문제 발생 원인 추적 - 이벤트 기반 컨트롤러이므로 대규모 데이터베이스 환경에서도 효율적으로 동작할 수 있습니다. - 쿠버네티스의 CI/CD, 권한 관리, API, 모니터링 등 생태계 기능을 활용할 수 있습니다. - 구현 난이도는 높지만, 장기적인 운영과 관리에는 유리합니다. ## 인프라 오퍼레이터를 통한 IaaS 추상화 - DBaaS는 여러 VM, 스토리지, 네트워크, 도메인 등 IaaS 자원을 조합해 데이터베이스 클러스터를 구성합니다. - DBaaS가 IaaS API와 호출 절차를 직접 처리하면 다음 문제가 발생합니다. - 인프라 제어 코드가 지나치게 많아짐 - 데이터베이스 운영 로직과 인프라 로직이 뒤섞임 - DBMS별 개발자가 IaaS 세부사항까지 이해해야 함 - Flava는 IaaS 자원을 인프라 오퍼레이터가 쿠버네티스 커스텀 리소스로 추상화하도록 구성했습니다. - 예를 들어 VM 생성 시 IaaS API를 직접 호출하지 않고, 다음과 같은 속성을 선언한 `server.yaml`을 작성한 뒤 `kubectl create -f server.yaml`로 리소스를 생성합니다. - 가용 영역 - 운영체제 이미지 - vCPU·메모리 등 서버 유형 - 계층은 다음과 같이 분리됩니다. - **DBaaS**: 데이터베이스 비즈니스 로직 담당 - **인프라 오퍼레이터**: IaaS를 쿠버네티스 리소스로 추상화 - **IaaS**: 컴퓨트·네트워크·스토리지 제공 - 이 구조를 통해 여러 DBMS가 IaaS 자원을 동일한 방식으로 사용하고, DBaaS 개발자는 DBMS별 기능에 집중할 수 있습니다. ## 커스텀 리소스와 세 가지 실행 컴포넌트 Flava에서 데이터베이스 클러스터 역시 쿠버네티스 커스텀 리소스로 표현됩니다. - 커스텀 리소스에는 다음과 같은 구성이 선언됩니다. - MySQL 버전 - VM 서버 사양 - 스토리지 종류와 용량 - 복제 멤버 수 - 리소스는 YAML 형태로 etcd에 저장되며 쿠버네티스 API를 통해 생성·조회·수정·삭제할 수 있습니다. DBaaS는 커스텀 리소스를 중심으로 API 서버, 매니저, 에이전트로 나뉩니다. - **API 서버** - 사용자와 UI, IaC 도구가 호출하는 REST API를 제공합니다. - 사용자의 요청을 DBaaS 커스텀 리소스 생성·수정·삭제 작업으로 변환합니다. - **매니저** - 커스텀 리소스의 변경을 감지하는 컨트롤러입니다. - 선언된 사양과 실제 클러스터 상태가 일치하도록 VM 생성, 구성 변경, 복제 설정 등을 조정합니다. - 인프라 오퍼레이터의 커스텀 리소스를 생성해 필요한 VM과 인프라를 준비합니다. - **에이전트** - 데이터베이스가 실행되는 VM 내부에서 동작합니다. - 운영체제 명령이나 데이터베이스 명령처럼 VM 내부에서 실행해야 하는 작업을 수행합니다. - MySQL 설치, 복제 구성, 프로비저닝 등 로컬 실행이 필요한 작업을 담당합니다. 예를 들어 MySQL 클러스터 생성 요청이 들어오면 API 서버가 MySQL 커스텀 리소스를 생성하고, 매니저가 필요한 VM을 만든 뒤, 에이전트가 VM 내부에서 MySQL과 복제 구성을 완료합니다. ## DBMS 지원과 확장성 개선 - Verda와 YNW에서 제공하던 DBMS를 통합해 Flava에서 지원하는 DBMS 종류를 확대했습니다. - 기존 사용자 만족도 조사와 운영 경험을 바탕으로 기능을 추가했습니다. - 스토리지를 100GiB 단위로 구성할 수 있어 용량 조정이 유연해졌습니다. - 블록 스토리지를 사용하는 DBMS는 최대 5TiB까지 지원합니다. - 기존에는 VM 로컬 디스크 용량이 하이퍼바이저의 VM 사양에 종속됐지만, Flava는 다음을 통해 제약을 줄였습니다. - 사용자 정의 인스턴스 유형 - VM과 분리된 블록 스토리지 - 확장된 최대 스토리지 용량 - 단일 VM의 저장공간 부족으로 샤딩을 검토해야 했던 사례를 줄일 수 있습니다. - 5TiB 제한은 대부분의 사용 사례를 충족하면서 블록 스토리지 측 서버 단편화를 방지하기 위한 설계 결정입니다. ## DBMS 전반의 통일된 사용자 경험 - 모든 DBaaS 상품에 공통 아키텍처와 UI·UX를 적용했습니다. - 한 DBMS에서 익힌 관리 방식으로 다른 DBMS도 사용할 수 있습니다. - MySQL에서 서버 사양을 변경한 경험을 Redis에도 적용 - Cassandra에서 설정한 모니터링 알람 방식을 MySQL에도 적용 - DBMS마다 별도의 사용법을 학습해야 하는 부담을 줄였습니다. - 플랫폼 차원에서 프로비저닝, 고가용성, 백업·복구, 확장성, 모니터링 같은 기본 기능을 제공합니다. ## 보안 및 편의 기능 강화 - DBaaS 기본 기능으로 다음 보안 기능을 제공합니다. - **TDE(Transparent Data Encryption)**: 저장 데이터 암호화 - **TLS(Transport Layer Security)**: 전송 구간 암호화 - **Custom DB Role** - 필요한 수준의 권한을 가진 데이터베이스 사용자를 생성·관리할 수 있습니다. - 정의한 역할을 재사용할 수 있습니다. - **Database Parameter Group** - 데이터베이스 파라미터를 원하는 값으로 관리할 수 있습니다. - 설정 그룹을 여러 클러스터에 재사용할 수 있습니다. - **Restore backup** - 특정 백업을 기반으로 새 데이터베이스 클러스터를 생성합니다. - 장애 복구뿐 아니라 실제 데이터가 필요한 성능 테스트 환경 구축에도 활용할 수 있습니다. - 일부 DBMS에서 아직 제공되지 않는 기능도 향후 확대할 예정입니다. ## 마이그레이션까지 포함하는 DBaaS의 책임 - 신규 DBaaS는 데이터베이스를 생성하는 기능만 제공해서는 충분하지 않습니다. - 기존 Verda·YNW 환경의 사용자가 Flava로 쉽게 이동할 수 있도록 마이그레이션 방법까지 제공해야 합니다. - 같은 DBMS 간 마이그레이션 방식은 크게 세 가지로 소개됩니다. ### 덤프 및 복구 - 소스 데이터베이스를 백업한 뒤 목적지 데이터베이스에 복구합니다. - 구현이 가장 단순합니다. - 데이터 정합성을 보장하려면 마이그레이션 중 애플리케이션 중단이 필요합니다. ### 실시간 복제 - DBMS 자체의 복제 기능으로 소스에서 목적지로 데이터를 실시간 복제합니다. - 복제가 완료되면 페일오버해 목적지 클러스터를 새로운 프라이머리로 전환합니다. - 이후 기존 소스 데이터베이스를 제거합니다. - 애플리케이션 중단을 최소화할 수 있지만, 프라이머리 전환 시 짧은 중단이 발생할 수 있습니다. - 데이터 정합성은 사용 중인 DBMS의 복제 메커니즘에 의존합니다. ## 실용적인 결론 Flava DBaaS의 핵심은 데이터베이스를 쿠버네티스 리소스로 선언하고, 인프라 오퍼레이터·매니저·에이전트가 실제 구성을 자동으로 맞추도록 만든 점입니다. 유사한 플랫폼을 설계할 때는 DBaaS와 IaaS의 책임을 분리하고, 공통 UI·보안·백업 기능을 플랫폼 수준에서 제공하며, 신규 기능뿐 아니라 기존 시스템의 마이그레이션 경로까지 함께 설계하는 것이 중요합니다.

원문 읽기(새 탭에서 열림)
line5분 읽기큐레이션 요약

코드형 인프라(IaC)로 자동화에서 AI까지: OpenTofu와 ChatOps 도입기

LY Corporation의 LINE Plus SRE 팀은 운영 인프라를 콘솔·스크립트·문서가 아닌 OpenTofu와 Terragrunt 기반의 IaC로 통합했다. 약 1,500개 리소스를 GitOps 방식으로 관리하며, 모든 변경을 PR 리뷰와 CI/CD를 거치게 하고 실제 인프라와 코드의 차이도 자동 감지한다. 핵심은 기존 운영 리소스를 안전하게 import하고, 리소스별 특성과 의존 관계를 반영해 코드·state·실제 인프라를 일치시키는 것이다. ## 운영 규모 확대로 드러난 기존 방식의 한계 - 팀마다 Verda 대시보드, 자체 스크립트, 위키 매뉴얼 등 서로 다른 방식으로 인프라를 관리했다. - 설정 정보도 위키, 개인 문서, GitHub 등 여러 곳에 분산되어 있었다. - 서비스와 리소스가 늘어나면서 다음 문제가 누적됐다. - 변경 이력과 변경 주체를 일관되게 추적하기 어려움 - 동일한 작업을 반복 수행할 때 실수 가능성 증가 - 환경별 설정 차이와 실제 인프라 상태를 파악하기 어려움 - 변경 전 검토와 변경 후 검증이 체계적이지 않음 - 이를 해결하기 위해 인프라의 원하는 상태를 코드로 선언하고, 변경을 자동화·표준화할 필요가 생겼다. ## GitOps로 인프라를 애플리케이션 코드처럼 관리 - 인프라 설정을 Git 저장소에 선언하고 모든 변경을 PR로 진행한다. - 코드 리뷰, CI/CD, 변경 이력 관리 등 애플리케이션 개발 방식을 인프라에도 적용한다. - 콘솔에서 직접 클릭하거나 SSH로 수정하는 방식 대신 다음 흐름을 사용한다. - Git에 코드 변경 - PR 리뷰 - CI/CD를 통한 plan 및 적용 - 실제 인프라와 선언된 상태의 차이 자동 감지 - IaC의 목표는 단순한 자동화가 아니라 인프라를 다음과 같은 엔지니어링 산출물로 만드는 것이다. - 리뷰 가능 - 버전 관리 가능 - 재현 가능 - 변경 이력 추적 가능 ## OpenTofu와 Terragrunt 선택 - **OpenTofu** - Terraform의 오픈소스 포크다. - 기존 Terraform과 동일한 HCL 문법과 프로바이더 호환성을 유지한다. - 기존 Terraform 기반 작성 방식과 모듈 구조를 재사용하기 쉬워 학습 비용이 낮다. - **모듈화** - VM, 로드밸런서, 모니터링 알림 등을 공통 모듈로 분리했다. - 팀별로 모듈에 입력값만 전달해 동일한 구조의 인프라를 생성할 수 있다. - 모듈은 버전으로 관리하며, 새 버전은 필요한 환경에서만 명시적으로 올린다. - **Terragrunt** - OpenTofu의 환경 구성 중복을 줄이는 래퍼다. - 공통 설정은 상위 `root.hcl`에 정의한다. - 각 환경에는 서로 다른 입력값만 남긴다. - 결과적으로 OpenTofu 모듈은 리소스 정의 중복을, Terragrunt는 환경별 설정 중복을 줄였다. ## 기존 리소스의 단계적 IaC 전환 - 이미 운영 중인 약 300대의 VM, 160개의 LB, 350개의 DNS 레코드를 코드 관리 체계로 옮겨야 했다. - 리소스를 하나씩 수동 import하면 시간이 오래 걸리고 실수 가능성이 높기 때문에 자동화된 import 스크립트를 작성했다. - 전환은 두 단계로 진행했다. - **1단계:** 한 서비스를 선정해 import, 모듈, Terragrunt, CI/CD 전체 파이프라인을 검증 - **2단계:** 검증된 모듈과 import 스크립트를 나머지 서비스에 확산 - 운영 중인 인프라에 영향을 주지 않는 것이 가장 중요한 원칙이었다. ## import 스크립트의 표준 흐름 import 스크립트는 다음 과정을 공통 흐름으로 삼았다. - 현재 클라우드 리소스를 조회한다. - IaC로 관리할 대상과 제외할 대상을 구분한다. - 모듈 구조에 맞게 설정을 변환하고 Terragrunt 파일을 생성한다. - 실제 리소스를 OpenTofu state에 연결한다. - `plan` 결과를 확인해 불필요한 변경이 없는지 검증한다. 특히 다음 세 요소를 일치시키는 데 집중했다. - 코드에 선언된 값 - OpenTofu state 파일의 연결 정보 - 실제 클라우드 리소스의 상태 ## import 후 정규화와 가짜 변경 제거 - import를 완료해도 코드, state, 실제 리소스의 값 표현이 다르면 `plan`에서 계속 변경 사항이 나타날 수 있었다. - 예를 들어 네트워크 ID나 이미지 ID가 같은 대상을 가리키더라도 표현 방식이 다를 수 있다. - 이를 방치하면 `plan` 결과를 신뢰하기 어려워지므로 import 후 정규화 과정을 추가했다. - 정규화의 목적은 다음과 같다. - 동일한 리소스를 표현하는 값의 형식 통일 - 불필요한 diff 제거 - 실제 변경과 표현 차이에 따른 가짜 변경 구분 ## 리소스 특성에 따른 개별 import 전략 모든 리소스를 동일한 방식으로 가져올 수 없었기 때문에 리소스 유형과 의존 관계에 따라 import 단위를 달리했다. - **VM** - 개별 인스턴스를 기준으로 import한다. - **로드밸런서** - LB뿐 아니라 리스너와 풀 등 함께 동작하는 하위 리소스를 고려한다. - **DNS** - 존과 레코드의 관계를 유지한다. - **쿠버네티스** - 클러스터와 노드 풀을 어떤 단위로 관리할지 결정한다. - **IMON 알림** - 팀 → 알림 그룹 → 알림 규칙 → 알림 모니터의 계층 관계를 보존한다. - IMON 리소스는 실제 구조와 유사하게 디렉터리를 구성해 소속 관계를 쉽게 확인할 수 있도록 했다. ## 운영 리소스와 자동 생성 리소스의 구분 - OpenStack에는 사람이 만든 VM과 쿠버네티스가 자동으로 만든 VM이 함께 존재했다. - 두 리소스는 외형상 비슷하지만 관리 주체가 다르다. - 쿠버네티스가 관리하는 VM까지 IaC로 가져오면 클러스터의 기대 상태와 OpenTofu 관리 상태가 충돌할 수 있다. - 따라서 네이밍 패턴과 메타데이터를 기준으로 쿠버네티스 생성 VM을 import 대상에서 제외했다. - 모든 리소스를 무조건 코드화하는 것이 아니라, 관리 주체와 생명주기를 먼저 판단하는 것이 중요했다. ## 프로바이더와 리전 차이 해결 - 실제 클라우드와 OpenTofu 프로바이더의 검증·백엔드 동작이 완전히 일치하지 않는 문제도 발견됐다. - **LB 이름의 하이픈·언더스코어 충돌** - 클라우드는 `-`와 `_`를 모두 허용했다. - 그러나 프로바이더 백엔드의 검증 로직은 `_`를 허용하지 않았다. - 기존 LB를 import할 때 오류가 발생했다. - 프로바이더의 validation 로직을 수정해 해결하고, 해당 변경을 프로바이더에 기여했다. - **리전별 UUID 불일치** - 리전마다 `flavor_id`, `image_id`, `network_id`가 달랐다. - import 이후 `plan`에서 실제 변경이 아닌 불필요한 diff가 반복됐다. - 사용자는 사람이 읽기 쉬운 이름을 입력하고, 모듈이 리전별 실제 UUID로 변환하도록 매핑 로직을 추가했다. - 이 방식으로 코드 가독성을 높이고 가짜 변경을 줄였다. ## 실용적인 적용 시사점 - 기존 인프라를 IaC로 전환할 때는 단순히 import 명령을 실행하는 것보다 리소스 분류, 정규화, 의존 관계 분석이 중요하다. - 먼저 하나의 서비스에서 전체 프로세스를 검증한 뒤 다른 서비스로 확산하는 방식이 안전하다. - 자동 생성 리소스는 관리 주체가 다르므로 무조건 import하지 않아야 한다. - 프로바이더가 실제 클라우드의 모든 기존 상태를 완벽히 표현하지 못할 수 있으므로, import 후 반드시 `plan` 검증과 예외 처리가 필요하다. - 최종적으로 IaC의 효과는 코드 작성 자체보다 PR 리뷰, 자동 배포, 상태 차이 감지까지 포함한 운영 프로세스 전체를 표준화하는 데 있다.

원문 읽기(새 탭에서 열림)
gitlab3분 읽기큐레이션 요약

미토스급 Claude Fable 5, GitLab Duo Agent Platform에 출시

Anthropic의 Claude Fable 5가 GitLab Duo Agent Platform에 추가되어 복잡한 작업을 장시간 자율적으로 수행하고, 첫 시도에서 더 정확한 결과를 내도록 지원한다. 멀티파일 리팩터링, 장애 분석, 인프라 코드 작성, 코드 리뷰 등에서 반복 작업과 사람의 감독 부담을 줄이는 것이 핵심이다. 이 모델은 2026년 6월 9일부터 모든 GitLab 요금제와 배포 방식에서 AI Gateway를 통해 제공된다. ## 첫 시도 정확도 향상 - 복잡하고 요구사항이 명확한 문제에서 한 번에 작동하는 구현을 완성할 가능성이 높아졌다. - GitLab Duo Agentic Chat에서 사용자와 모델 사이의 재질문·수정 횟수를 줄인다. - 특히 다음과 같은 반복 비용이 큰 작업에 효과적이다. - 여러 파일에 걸친 대규모 리팩터링 - 장애 및 인시던트 조사 - Infrastructure as Code 정의 - 기술 이미지, 웹 애플리케이션, 상세한 스크린샷을 이전 모델보다 정확하게 해석하며 더 적은 출력 토큰을 사용하는 경우도 있다. ## 장시간 자율 에이전트 실행 - Claude Fable 5의 가장 큰 변화는 장기 목표를 유지하는 자율성이다. - 수백만 토큰에 걸친 작업에서도 지시를 따르며, 여러 날 동안 진행되는 복합 작업을 수행할 수 있다. - 자체 검증 루프를 통해 오류를 찾아 수정하고, 작업이 제대로 진행되는지 확인한다. - 여러 저장소나 서비스로 나뉘는 병렬 작업에서 하위 에이전트를 안정적으로 실행하고 유지한다. - 기존에 사람이 중간 점검하거나 프롬프트를 다시 입력해야 했던 Duo 에이전트 작업을 끝까지 진행할 수 있다. - 결과적으로 팀은 에이전트 실행마다 투입해야 하는 감독 비용을 줄이고, 비동기적으로 결과를 검토할 수 있다. ## 코드 리뷰와 장애 대응 개선 - 버그 탐지 재현율이 향상되어 이전 모델이 놓치던 문제를 더 많이 발견한다. - 코드 경로를 더 깊게 분석하고, 예외 상황과 엣지 케이스를 일관되게 식별한다. - GitLab Merge Request 리뷰에서 일반적인 지적보다 실행 가능한 코드 리뷰 의견을 제공한다. - CI/CD를 운영하는 플랫폼 엔지니어에게는 다음과 같은 효과가 기대된다. - 결함이 운영 환경에 배포되기 전 발견 - 장애 원인 분석 시간 단축 - 평균 복구 시간(MTTR) 감소 - 저장소 이력과 변경 맥락을 활용한 정밀한 인시던트 조사 ## 어려운 문제에 활용하는 전략 - 단순 반복 업무만 테스트하면 모델의 장기 자율성과 문제 해결 능력을 충분히 확인하기 어렵다. - 이전 AI 모델로는 처리하기 어렵다고 판단했던 문제를 맡기는 것이 권장된다. - 에이전트가 작업 범위를 정하고, 필요한 경우 명확화 질문을 한 뒤 실행하도록 할 수 있다. - 활용 사례로는 다음이 제시된다. - 복잡한 멀티파일 리팩터링 - 저장소 이력을 포함한 운영 장애 조사 - AI가 정확히 처리할지 확신하기 어려워 직접 작성하던 기능 구현 ## 제공 범위 - Claude Fable 5는 2026년 6월 9일부터 GitLab Duo Agent Platform에서 제공된다. - 모든 GitLab 요금제와 배포 모델에서 GitLab AI Gateway를 통해 사용할 수 있다. - 무료 사용자는 Duo Agent Platform 무료 체험을 시작할 수 있다. - GitLab Premium 또는 Ultimate 가입자는 포함된 GitLab Credits를 사용해 Duo Agent Platform을 활성화할 수 있다. 실제로 도입할 때는 단순 코드 생성보다 장애 분석, 대규모 리팩터링, 복잡한 CI/CD 개선처럼 장시간 추론과 여러 단계의 검증이 필요한 업무부터 시험하는 것이 효과적이다. પરિણામ물은 비동기 검토가 가능하더라도 운영 배포 전에는 기존 코드 리뷰와 테스트 절차를 유지하는 것이 바람직하다.

원문 읽기(새 탭에서 열림)
cloudflare4분 읽기큐레이션 요약

Cloudflare의 위협 지표를 실시간 WAF 규칙으로 전환하기

Cloudflare는 Threat Events의 실시간 위협 인텔리전스를 WAF 규칙에서 직접 사용할 수 있도록 통합했다. 이제 보안팀은 위협 행위자, 공격 대상 산업·국가, 공격 유형과 같은 정보를 바탕으로 악성 IP를 사전에 차단할 수 있으며, 탐지와 차단을 분리해 가시성도 유지할 수 있다. 해당 기능은 WAF 사용자 정의 규칙과 Rate Limiting, API, Terraform, Security Analytics에 통합된다. ## 위협 인텔리전스를 WAF 차단으로 연결 - 기존에는 특정 IP가 Tycoon 2FA, RaccoonO365 같은 위협 행위자와 연관되었거나 특정 산업을 공격했다는 사실을 알아도, WAF에서 직접 차단하려면 수동으로 규칙을 작성해야 했다. - 새 기능은 요청 처리 초기 단계에서 위협 메타데이터를 필드로 채운다. - WAF는 다음 기준으로 트래픽을 평가할 수 있다. - 알려진 위협 행위자 이름 - 해당 IP가 과거 공격한 산업 - 공격 대상 국가 - 공격 발생 국가 - DDoS, WAF, 사이버 범죄 등 데이터셋 또는 공격 유형 - 초기 버전은 IP 기반 매칭에 초점을 두며, 향후 JA3 지문과 도메인 기반 매칭으로 확장될 예정이다. ## 항상 실행되는 탐지 구조 - 이 기능은 사전 규칙 없이도 공격 패턴을 탐지하는 Attack Signature Detection의 “always-on” 프레임워크를 사용한다. - 위협 인텔리전스 탐지는 백그라운드에서 지속 실행되며, 차단 여부를 결정하기 전부터 HTTP 요청에 위협 메타데이터를 추가한다. - 탐지와 완화(mitigation)를 분리해 기존의 “로그로 볼 것인가, 차단할 것인가”라는 선택 문제를 줄인다. - 차단하면 다른 탐지 시그니처가 해당 요청을 어떻게 판단했는지 확인하기 어렵다. - 항상 탐지하면 먼저 트래픽 패턴과 위협 행위자를 분석한 뒤 차단 규칙을 적용할 수 있다. - Cloudforce One 구독자는 Analytics에서 자사 사이트를 공격하는 위협 행위자와 해당 IP가 주로 공격한 산업을 확인할 수 있다. - 탐지 과정은 매우 낮은 지연 시간으로 실행되도록 설계되어 트래픽 처리 성능을 유지한다. ## WAF에 추가된 위협 인텔리전스 필드 - `cf.intel.ip.attacker_names` - 알려진 위협 그룹 이름 - 예: `CRAVENFLEA` - `cf.intel.ip.target_industries` - 해당 IP가 공격한 산업 - 예: `Cryptocurrency`, `Automotive` - `cf.intel.ip.attacker_countries` - 위협 이벤트의 발신 국가 - `cf.intel.ip.target_countries` - 공격 대상 국가 - `cf.intel.ip.datasets` - 데이터를 제공한 위협 피드 또는 공격 유형 - 예: `ddos`, `waf` ## 배열 필드와 WAF 표현식 - 하나의 IP가 여러 위협 행위자나 산업과 연관될 수 있으므로 관련 필드는 배열로 제공된다. - 배열 내부의 값은 `[*]` 와일드카드 및 `any()` 함수로 검사한다. - 프랑스에서 공격받은 이력이 있고 DDoS 데이터셋에 포함된 IP 차단: ```text any(cf.intel.ip.target_countries[*] == "FR") and any(cf.intel.ip.datasets[*] == "ddos") ``` - 금융 산업을 공격한 BLACKBASTA 관련 IP 차단: ```text any(cf.intel.ip.target_industries[*] == "Banking & Financial Services") and any(cf.intel.ip.attacker_names[*] == "BLACKBASTA") ``` - 특정 발신 국가의 고위험 IP를 광범위하게 차단: ```text any(cf.intel.ip.attacker_countries[*] == "IR") ``` ## API와 Terraform을 통한 자동화 - 새 `cf.intel` 필드는 WAF 사용자 정의 규칙과 Rate Limiting 규칙에서 사용할 수 있다. - 기존 WAF 표현식 문법으로 복합 조건을 작성할 수 있다. - Cloudflare API와 Terraform에서도 지원되므로 다음을 자동화할 수 있다. - 여러 도메인에 동일한 위협 차단 정책 배포 - 계정 전체에 정책 적용 - Infrastructure as Code 기반의 규칙 관리 - 위협 인텔리전스 조건 변경 및 배포 자동화 ## Security Analytics의 가시성 - 위협 인텔리전스 필드로 인해 발생한 모든 매칭은 Security Analytics에 기록된다. - 분석 화면에서 다음 정보를 확인할 수 있다. - 어떤 WAF 규칙이 실행되었는지 - 어떤 위협 지표가 일치했는지 - 해당 요청의 상세 트래픽 맥락 - 이 기록은 규칙 감사, 오탐 분석, 사고 후 검토를 빠르게 하는 데 활용된다. - 분석 결과에서 바로 사용자 정의 보안 규칙을 생성할 수도 있다. ## Threat Events 대시보드에서 원클릭 규칙 생성 - Threat Intelligence Dashboard에서 원하는 조건으로 Saved View를 만들 수 있다. - 예를 들어 “최근 7일 동안 금융 산업을 공격한 IP” 같은 필터를 저장할 수 있다. - IP 목록을 직접 복사하지 않고, Saved View의 조건을 한 번의 클릭으로 WAF 규칙으로 변환할 수 있다. - 조사 단계에서 확인한 위협 동향을 곧바로 운영 차단 정책으로 연결하는 workflow다. ## 글로벌 네트워크에 배포되는 인텔리전스 - Cloudflare는 수백만 개의 위협 지표를 고성능 형식으로 압축한다. - 압축된 데이터셋은 전 세계 Cloudflare 데이터센터로 배포된다. - 요청이 네트워크에 도착하면 Cloudflare WAF가 이 데이터를 이용해 지연 시간을 최소화하면서 위협 여부를 조회한다. - 글의 마지막 부분은 이러한 글로벌 배포와 고속 조회 구조가 대규모 위협 지표를 처리하는 방식으로 이어진다. 실무적으로는 먼저 Threat Events와 Security Analytics에서 위협 패턴을 관찰한 뒤, 신뢰도가 높은 조건을 Saved View나 Terraform 기반 WAF 규칙으로 전환하는 접근이 권장된다. 특히 산업·국가·공격 유형을 조합해 차단 범위를 좁히면 과도한 차단 위험을 줄일 수 있다.

원문 읽기(새 탭에서 열림)
aws4분 읽기큐레이션 요약

생성형 AI 기반 SRE 복원력 여정을 위한 차세대 AWS Resilience Hub 소개 | Amazon Web Services

AWS Resilience Hub 차세대 버전은 복원력 정책 설정부터 의존성 탐색, 생성형 AI 기반 장애 모드 분석, 조직 전체 보고까지 하나의 흐름으로 통합한다. 이를 통해 SRE와 개발팀은 애플리케이션별 복원력 목표를 일관되게 정의하고, 실제 장애 대응 수준을 평가하며, 규정 준수 여부를 대규모로 입증할 수 있다. AWS Organizations와 새로운 시스템·서비스 모델을 활용해 여러 계정과 애플리케이션의 복원력 상태를 중앙에서 관리하는 것이 핵심이다. ## 모듈형 복원력 정책 - 단일하고 경직된 정책 유형 대신 필요한 요구사항을 조합해 정책을 구성한다. - 설정 가능한 주요 항목은 다음과 같다. - 서비스 수준 목표(SLO) - 다중 가용 영역(Multi-AZ) 구성 - 다중 리전 재해 복구 - 복구 시간 목표(RTO) - 복구 시점 목표(RPO) - 백업에서 데이터를 복원하는 데 필요한 데이터 복구 시간 - 예를 들어 금융 애플리케이션용 정책에 다음 조건을 정의할 수 있다. - 가용성 SLO 99.95% - 다중 리전 재해 복구 RTO 15분 - RPO 5분 - RTO·RPO에 부합하는 재해 복구 방식 ## 비즈니스 관점의 애플리케이션 모델 - 새로운 모델은 기술 리소스가 아니라 비즈니스 애플리케이션과 사용자 경로를 중심으로 복원력을 표현한다. - 구성 요소는 다음과 같다. - **시스템(System):** 하나의 비즈니스 애플리케이션 - **사용자 여정(User journey):** 중요한 사용자 흐름과 비즈니스 경로 - **서비스(Service):** AWS 리소스, 코드, 관측성 구성으로 이루어진 배포 단위 또는 마이크로서비스 - Resilience Hub는 리소스 간 연결, 데이터 흐름, 포함 관계, 권한 관계를 자동으로 탐색해 토폴로지로 표시한다. - 서비스 토폴로지는 그래프, 테이블, JSON 형식으로 확인할 수 있다. ## 의존성 자동 탐색 - 서비스가 의존하는 AWS 서비스, 내부 엔드포인트, 외부 서드파티 엔드포인트를 자동으로 식별한다. - VPC 쿼리 로그의 DNS 질의를 분석해 설정 문서에 드러나지 않은 의존성도 찾는다. - 특히 다음과 같은 숨은 위험을 발견하는 데 유용하다. - 예상하지 못한 리전 간 호출 - 중요한 외부 서드파티 서비스 의존성 - 애플리케이션 구성에 누락된 내부 엔드포인트 - 서비스 생성 시 의존성 탐색을 활성화하며, 서비스 상세 페이지에서 언제든 비활성화할 수 있다. ## 생성형 AI 기반 장애 모드 분석 - 서비스가 정의된 복원력 정책, AWS Well-Architected 모범 사례, AWS Resilience Analysis Framework를 얼마나 충족하는지 분석한다. - 분석 과정에서 잠재적인 장애 모드를 식별하고 개선 권고사항을 제시한다. - 각 결과에는 다음 정보가 포함된다. - 어떤 장애 상황인지 - 해당 장애가 아키텍처에 중요한 이유 - 문제를 해결하는 방법 - 관련된 복원력 정책 요구사항 - 사용자는 **Failure mode guidance**에서 분석 에이전트를 위한 assertion을 추가하거나 수정할 수 있다. - 권고사항은 적용 후 **해결됨(Mark as resolved)**으로 표시하거나, 환경에 맞지 않으면 **무관함(Mark as irrelevant)**으로 처리할 수 있다. ## 서비스 생성과 평가 절차 - 먼저 Resilience Hub가 AWS 리소스를 읽을 수 있도록 invoker IAM 역할을 설정한다. - AWS Organizations를 사용하지 않는 경우에는 계정 간 역할을 구성할 수 있고, Organizations 환경에서는 서비스 연결 역할(SLR)을 활용할 수 있다. - 콘솔에서 다음 순서로 진행한다. 1. 재사용할 복원력 정책 생성 2. 비즈니스 애플리케이션을 나타내는 시스템 생성 3. 시스템에 서비스 추가 4. 서비스의 리소스 위치와 리전 지정 5. 복원력 정책과 IAM 역할 연결 6. 장애 모드 평가 실행 7. 결과와 권고사항 검토 및 조치 - 서비스 리소스는 리소스 태그, CloudFormation 스택, Terraform 상태 파일, Amazon EKS 클러스터·네임스페이스 등을 통해 지정할 수 있다. - 평가 중 Resilience Hub는 invoker 역할을 사용해 리소스를 읽고, 부모·자식 관계와 리소스 연결을 파악해 전체 토폴로지를 구성한다. ## AWS Organizations 기반 중앙 관리 - 위임된 관리자 계정에서 조직 전체의 복원력 상태를 평가할 수 있다. - 각 AWS 계정에 개별적으로 로그인하지 않고도 여러 애플리케이션의 복원력 수준과 개선 진행 상황을 관리할 수 있다. - 수백 개 애플리케이션에서 서로 다른 복원력 기준과 도구를 사용하는 문제를 줄이고, 조직 차원의 표준화와 규정 준수를 지원한다. ## 기존 고객을 위한 마이그레이션 - 기존 Resilience Hub 애플리케이션과 정책을 새 모델로 전환할 수 있는 마이그레이션 API를 제공한다. - 기존 평가 정책은 새로운 복원력 정책으로 변환된다. - 기존의 여러 관련 애플리케이션은 하나의 시스템과 여러 서비스 구조로 매핑할 수 있다. ## 제공 범위와 요금 - 차세대 AWS Resilience Hub는 Resilience Hub가 제공되는 AWS 상용 리전에서 정식 출시되었다. - 새로운 서비스 기반 요금 모델을 적용한다. - 서비스별 월 2회의 장애 모드 평가가 포함되며, 의존성 평가 기능은 선택적으로 사용할 수 있다. - 무료로 사용해 볼 수 있으며, 상세 요금은 AWS Resilience Hub 요금 페이지에서 확인해야 한다. 실무적으로는 먼저 핵심 비즈니스 서비스에 SLO·RTO·RPO를 정책으로 정의한 뒤, 의존성 탐색과 AI 장애 모드 평가를 실행하는 방식이 적절하다. 이후 조직 전체로 범위를 확대해 숨은 의존성과 반복되는 장애 패턴을 파악하고, 권고사항을 정기적인 복원력 개선 작업으로 연결하는 것이 효과적이다.

원문 읽기(새 탭에서 열림)
line원문

LY Corporation의 클라우드 인프라 개편: 거대한 두 개의 클라우드를 통합한 차세대 플랫폼 Flava의 아키텍처 소개 (새 탭에서 열림)

LY Corporation은 기존의 'Verda'와 'YNW'로 나뉘어 있던 프라이빗 클라우드 인프라를 차세대 기반인 'Flava'로 통합하며 대규모 트래픽을 효율적으로 수용하고 있습니다. 이 과정에서 '장애를 전제로 한 설계'와 '소프트웨어 정의 기술'을 핵심 철학으로 삼아, 전용 장비에 의존하지 않고 범용 하드웨어의 성능을 극한으로 끌어올리는 아키텍처를 구현했습니다. 단순히 오픈소스를 사용하는 수준을 넘어 업스트림 기여와 자체 개발을 병행함으로써, 지속 가능한 운영 체계와 고성능 인프라 환경을 동시에 확보하는 것이 이번 통합의 핵심 결론입니다. **장애를 전제로 한 설계와 운영 철학** * **무상태성(Statelessness) 추구:** VM의 루트 디스크를 임시 저장소로 정의하고 영속 데이터는 외부 스토리지로 분리하여, 인스턴스 장애 시에도 서비스 영향을 최소화하고 즉각적인 재구축이 가능하도록 설계했습니다. * **애플리케이션 주도 가용성:** 인프라가 모든 신뢰성을 책임지는 대신, 애플리케이션 계층의 구성과 조합하여 전체 시스템의 가용성을 확보함으로써 인프라 단의 복잡성을 제거했습니다. * **신속한 복구 중심 운영:** 장애 발생 시 원인 규명보다 IaC(Infrastructure as Code)를 통한 환경 재구축을 최우선으로 하며, AZ(Availability Zone) 단위 배포를 통해 장애 영향 범위를 국소화합니다. **소프트웨어 정의 기술과 OSS 생태계 기여** * **업스트림 추종 아키텍처:** OpenStack, Ceph 등의 오픈소스를 독자적으로 커스터마이징하는 대신, 필요한 기능 개선안을 직접 업스트림에 커밋하여 유지보수 비용을 절감하고 기술적 최신성을 유지합니다. * **범용 하드웨어 성능 극대화:** x86 서버 위에서 XDP(eBPF)를 이용한 고속 데이터 플레인을 구현하고 하드웨어 오프로드를 활용하여, 고가의 전용 장비 없이도 와이어 스피드에 가까운 저지연 처리를 실현했습니다. * **자체 개발(Full Scratch) 역량:** 오픈소스만으로 해결하기 어려운 과제는 직접 개발합니다. HDD 효율을 극대화한 오브젝트 스토리지 'Dragon'이나 Rust/Go 기반의 SDN 컨트롤 플레인이 대표적입니다. **차세대 클라우드 Flava의 주요 개선 사항** * **단일 리소스 풀 통합:** 기존의 용도별 전용 환경을 폐지하고 거대한 단일 리소스 풀로 전환하여, 용량 관리의 복잡성을 해소하고 자원 활용 효율을 극적으로 높였습니다. * **VPC 기본화 및 보안 강화:** 모든 테넌트에 VPC(Virtual Private Cloud)를 기본 적용하여 논리적 격리를 강화했으며, 기존에 수개월이 걸리던 보안 환경 구축 시간을 단 몇 분으로 단축했습니다. * **자율적 비용 최적화:** 개발 환경 리소스에 유효 기간(Lifetime) 설정을 강제하여 유휴 자원을 자동 삭제하고, 접근 빈도에 따라 스토리지 클래스를 동적으로 변경할 수 있는 기능을 제공합니다. **관찰 가능성 및 자율 운영 체계** * **거시적·미시적 모니터링:** Prometheus와 자체 대시보드로 전체 트렌드를 파악(숲)하는 동시에, 커널 레벨 트레이스와 패킷 캡처를 통해 근본 원인을 심층 분석(나무)하는 도구 체계를 갖췄습니다. * **하드웨어 자율 운영:** 수만 대의 서버에서 발생하는 하드웨어 고장을 감지부터 교체 요청, 재투입까지 자동화했으며, 향후 LLM을 도입해 예외적인 고장 패턴까지 대응할 계획입니다. 성공적인 차세대 인프라 전환을 위해서는 기술적 고도화뿐만 아니라, 인프라를 블랙박스로 취급하지 않고 내부 동작을 깊이 이해하려는 팀 문화가 필수적입니다. 특히 기존 레거시 환경에서 신규 플랫폼인 Flava로의 마이그레이션 비용을 최소화하기 위해 사용자의 수동 대응을 줄여주는 투명한 이전 도구 개발에 집중할 것을 권장합니다.

cloudflare원문

진정으로 프로그래밍 가능한 S (새 탭에서 열림)

Cloudflare는 단순한 설정 변경을 넘어 실시간 로직 주입이 가능한 진정한 의미의 프로그래밍 가능한 SASE(Secure Access Service Edge) 플랫폼을 지향합니다. Cloudflare One과 개발자 플랫폼(Workers)이 동일한 네트워크 인프라 위에서 기본적으로 통합되어 있어, 사용자는 대기 시간 없이 보안 이벤트를 가로채고 외부 컨텍스트를 결합하여 맞춤형 보안 결정을 내릴 수 있습니다. 이는 정적인 보안 정책의 한계를 극복하고 각 기업의 고유한 요구사항에 맞춘 유연한 보안 아키텍처 구축을 가능하게 합니다. **진정한 프로그래밍 가능성의 의미** - 업계에서 흔히 말하는 API 제공이나 Terraform 지원 같은 '기초적인 프로그래밍 가능성'을 넘어, 실시간으로 보안 이벤트를 가로채고 외부 데이터를 보충하여 즉각적인 조치를 취하는 능력을 의미합니다. - 예를 들어, 특정 앱 접속 시 사용자의 규정 준수 교육 이수 여부를 외부 시스템(LMS)에서 즉시 확인하여, 미이수자에게는 접속 차단 대신 교육 포털로 리다이렉트하는 동적인 정책 결정이 가능합니다. **SASE와 개발자 플랫폼의 결합** - Cloudflare One(SASE)과 Workers(개발자 플랫폼)는 동일한 전 세계 330개 이상의 도시 인프라 및 동일한 서버 자원 위에서 실행됩니다. - 별도의 외부 클라우드에서 자동화를 실행할 필요가 없어 불필요한 네트워크 왕복 지연(Latency)이 발생하지 않으며, 보안 정책 내에서 밀리초 단위로 커스텀 로직을 수행할 수 있습니다. - 웹 보호, 사용자 보안, 프라이빗 네트워크 보안 모두가 동일한 개발 도구와 기본 요소를 공유하므로 아키텍처의 일관성을 보장합니다. **확장된 보안 액션과 워크플로우** - 기존 보안 게이트웨이의 제한적인 옵션(허용, 차단, 격리 등)에서 벗어나, 사용자 정의 로직을 실행할 수 있는 '커스텀 액션' 기능을 제공합니다. - 사용자 ID 클레임에 기반한 동적 헤더 삽입, 외부 리스크 엔진의 실시간 판독 결과 반영, 근무 시간 및 위치에 따른 정교한 접근 제어 등을 구현할 수 있습니다. - '관리형 액션(템플릿)'을 통해 ITSM 통합이나 규정 준수 자동화를 쉽게 설정하거나, '커스텀 액션'을 통해 Cloudflare Worker를 직접 호출하여 정교한 코드를 실행할 수 있습니다. **실제 활용 사례: 자동화된 세션 관리** - 특정 고객은 정해진 시간 동안 활동이 없는 기기의 세션을 강제로 종료해야 하는 보안 요건을 Cloudflare Workers를 통해 해결하고 있습니다. - 'Scheduled Worker'가 주기적으로 실행되어 기기 API(Devices API)를 쿼리하고, 비활성 임계값을 초과한 기기의 등록을 자동으로 취소하여 사용자가 ID 공급자를 통해 다시 인증하도록 강제합니다. - 이는 표준 기능으로 제공되지 않는 복잡한 보안 요구사항도 프로그래밍을 통해 즉시 해결할 수 있음을 보여줍니다. 보안 요구사항이 복잡해질수록 단순한 설정 중심의 솔루션은 한계에 부딪힙니다. Cloudflare One의 프로그래밍 가능성을 활용하여 기업 고유의 비즈니스 로직을 보안 스택에 직접 통합하면, 성능 저하 없이도 가장 강력하고 유연한 제로 트러스트 환경을 구축할 수 있습니다.

line원문

미래의 클라우드를 창조하다 (새 탭에서 열림)

LY Corporation은 기존의 분산된 인프라와 플랫폼을 통합한 차세대 프라이빗 클라우드 'Flava(플라바)'를 통해 개발자 경험과 보안, AI 기술이 융합된 지능형 플랫폼으로의 진화를 꾀하고 있습니다. 단순히 자원을 제공하는 수준을 넘어 사내의 모든 플랫폼 기능을 하나의 UX로 통합하는 '플라바이제이션'과 강력한 보안 거버넌스 위에서도 높은 사용성을 유지하는 '실용적 보안' 구축을 핵심 목표로 설정했습니다. 나아가 AI를 인프라 운영과 아키텍처 설계에 접목하여 자연어만으로 클라우드를 관리할 수 있는 인텔리전트 환경을 실현함으로써 2~3년 내에 고도화된 클라우드 생태계를 완성할 계획입니다. ### 통합 플랫폼으로의 진화, 플라바이제이션(Flavaization) * 현재 DB, 컨테이너 등으로 파편화된 사내 플랫폼들의 권한 관리, 로깅, 모니터링, 빌링, API/CLI 등을 하나의 통합 클라우드 UX로 일원화하는 작업을 진행 중입니다. * 개발자가 각 플랫폼의 개별 사용법과 승인 프로세스를 일일이 익힐 필요 없이, 통합된 환경에서 모든 인프라 자원을 효율적으로 제어할 수 있는 환경을 1~2년 내 완수하는 것이 목표입니다. ### 강력하면서도 사용성 높은 실용적 보안 구축 * 기획 단계부터 보안 조직(CISO)과 협업하여 데이터 등급(기본, 기밀, 최고 기밀)별로 리소스를 분리하고 사내 보안 거버넌스를 기술적으로 자동 구현했습니다. * 리소스 생성은 수분 내로 단축되었으나, 이후의 접근 권한 승인 절차(VDI, 데이터 교환 폴더 생성 등)에서 발생하는 병목 현상을 최적화하여 보안성과 개발 속도의 균형을 맞추고자 합니다. * 강화된 VPC ACL(접근 제어 리스트)로 인한 네트워크 지연 시간을 개선하여, 메시징 서비스처럼 응답 속도가 중요한 애플리케이션 요구사항을 충족시키는 기술적 고도화를 병행합니다. ### 데이터 폭증에 대응하는 스토리지 및 하위 레이어 기술 * 사용자의 멀티미디어 데이터(사진, 영상 등)가 지속적으로 증가함에 따라 비용 효율적이면서도 합리적인 접근 속도를 보장하는 스토리지 계층화 기술을 확보하고 있습니다. * AI 워크로드의 대규모 데이터 처리를 위해 고속 네트워크 기술인 DPU(Data Processing Unit), 스마트 NIC, 초고속 NVMe 기반 스토리지 자동 계층화 등 하드웨어 및 인프라 하부 레이어의 최적화에 집중합니다. ### AIOps 및 인텔리전트 클라우드로의 도약 * MCP(Model Context Protocol) 서버 관리, 벡터 DB, AI 관측 가능성(Langfuse 등) 플랫폼을 사내 규정에 맞게 공통 서비스로 제공하여 개발팀의 AI 도입을 지원합니다. * 사용자가 자연어로 요구사항을 입력하면 AI가 최적의 아키텍처를 제안하고 인프라를 자동 구축하는 '인텔리전트 클라우드'로 진화하고 있습니다. * 저사용 리소스 탐지, 비용 최적화 제안, 암호화되지 않은 개인정보 탐지, OSS 취약점 관리 등 과거 엔지니어가 수동으로 수행하던 운영 업무를 AI 챗봇이 대신 수행하는 환경을 프로토타이핑 중입니다. Flava는 단순한 도구 제공자를 넘어 하위 레이어의 인프라 기술력과 상위 레이어의 AI 지능을 결합하여, 누구나 쉽고 안전하게 대규모 시스템을 운영할 수 있는 환경을 지향합니다. 향후 2~3년 내에 실현될 이러한 변화는 개발자가 복잡한 인프라 관리보다는 서비스 본연의 가치에 집중할 수 있게 만드는 실질적인 기술 동력이 될 것으로 보입니다.

aws원문

AWS 주간 업데이트: Amazon Bedrock (새 탭에서 열림)

이번 AWS Weekly Roundup은 생성형 AI 에이전트의 워크플로우 강화와 데이터 보안 및 운영 효율성을 높이는 다양한 업데이트를 다루고 있습니다. 특히 Amazon Bedrock의 서버 측 도구 지원과 S3의 암호화 관리 방식 개선 등 개발자가 더욱 안전하고 고도화된 애플리케이션을 구축할 수 있도록 돕는 기능들이 대거 출시되었습니다. 이번 업데이트들을 통해 기업들은 인프라 관리의 복잡성을 줄이면서도 고성능의 탄력적인 클라우드 환경을 구현할 수 있게 되었습니다. ### Amazon Bedrock 및 AI 에이전트 워크플로우 강화 * **서버 측 도구 지원**: Bedrock 에이전트가 AWS 보안 경계 내에서 웹 검색, 코드 실행, 데이터베이스 업데이트 등의 작업을 수행할 수 있는 서버 측 도구 기능이 추가되었습니다. (OpenAI GPT OSS 20B/120B 모델 지원) * **프롬프트 캐싱 TTL 확장**: 멀티 턴(multi-turn) 대화의 성능을 높이고 비용을 절감하기 위해 프롬프트 캐싱에 1시간 TTL(Time-to-Live) 옵션이 도입되었습니다. * **자연어 기반 배포(MCP Server)**: AI 에이전트가 자연어 프롬프트만으로 AWS CDK 인프라를 생성하고 CloudFormation 스택을 배포할 수 있는 표준 운영 절차(SOP)가 미리보기로 제공됩니다. ### 데이터 보안 및 네트워크 연결성 최적화 * **S3 객체 암호화 변경**: `UpdateObjectEncryption` API를 통해 데이터를 이동하거나 다시 업로드하지 않고도 기존 객체의 서버 측 암호화 유형(SSE-S3에서 SSE-KMS 등)을 변경하거나 키를 교체할 수 있습니다. * **SageMaker Unified Studio 프라이빗 연결**: AWS PrivateLink를 지원하여 공용 인터넷을 거치지 않고 VPC와 SageMaker Unified Studio 간의 안전한 데이터 통신이 가능해졌습니다. * **Network Firewall 가시성**: 생성형 AI 애플리케이션 트래픽을 식별하는 웹 카테고리가 추가되어, AI 도구에 대한 액세스 제어 및 URL 수준의 필터링이 가능합니다. ### 데이터베이스 및 이벤트 기반 아키텍처 성능 향상 * **Amazon Keyspaces 테이블 예열(Pre-warming)**: 높은 읽기/쓰기 트래픽이 예상되는 시점에 미리 테이블을 예열하여 콜드 스타트 지연 없이 즉각적인 처리량을 확보할 수 있습니다. * **EventBridge 페이로드 용량 확대**: 이벤트 페이로드 제한이 기존 256KB에서 1MB로 크게 늘어나, 대규모 JSON 구조나 텔레메트리 데이터를 외부 저장소 없이 한 번에 전송할 수 있습니다. * **DynamoDB MRSC 결함 주입 테스트**: AWS Fault Injection Service와 통합되어 다중 리전 강력한 일관성(MRSC) 글로벌 테이블의 리전 장애 시뮬레이션 및 복원력 검증이 가능합니다. ### 모니터링 및 운영 도구 개선 * **Lambda-Kafka 관측성 강화**: Kafka 이벤트 소스 매핑에 대한 CloudWatch 로그 및 지표가 추가되어, 폴링 설정 및 스케일링 상태를 더욱 세밀하게 모니터링할 수 있습니다. * **AI 지원 관측성 워크플로우**: Amazon CloudWatch Application Signals와 Kiro의 통합으로 AI 에이전트의 도움을 받아 서비스 상태 및 SLO 준수 여부를 더 빠르게 조사할 수 있습니다. 이번 업데이트의 핵심은 AI 에이전트가 실제 비즈니스 로직을 안전하게 수행하도록 돕는 인프라를 구축하고, 대규모 데이터 처리 시 발생하는 운영상의 병목 현상을 제거하는 데 있습니다. 특히 S3 암호화 변경이나 EventBridge 용량 확대와 같은 기능은 기존 아키텍처의 수정 없이도 운영 효율을 즉각적으로 개선할 수 있는 실용적인 변화이므로 적극적인 도입 검토를 추천합니다.

toss원문

레거시 인프라 작살내고 하이브리드 클라우드 만든 썰 (새 탭에서 열림)

토스페이먼츠는 20년 된 레거시 인프라의 비효율성을 극복하기 위해 오픈소스 기반의 OpenStack 프라이빗 클라우드를 직접 구축하고, 이를 퍼블릭 클라우드와 결합한 'Active-Active 하이브리드 클라우드' 환경을 구현했습니다. 단 2명의 엔지니어가 운영 경험 없이 시작했음에도 불구하고 자동화와 고가용성 전략을 통해 인프라 제어권을 100% 확보했으며, 결과적으로 어떤 환경에서도 즉시 배포 가능한 유연한 기술 기반을 마련했습니다. ### 1,997개의 라우팅이 보여주는 레거시 인프라의 한계 * 과거 인수한 인프라는 네트워크 장비가 아닌 개별 서버가 직접 라우팅 정보를 관리하는 비정상적인 구조로, 서버당 약 2,000개의 라우팅 경로가 설정되어 있었습니다. * 새로운 경로 추가 시 모든 서버를 일일이 수정해야 하는 관리 포인트의 과부하가 발생했으며, 이는 서비스 확장의 심각한 병목 현상이 되었습니다. * 초기에는 퍼블릭 클라우드 도입으로 대응했으나 비용 증가, 환율 변동, 하이브리드 DR 구성의 어려움 및 가시성 부족이라는 새로운 문제에 직면했습니다. ### OpenStack 기반 프라이빗 클라우드 내재화 * 상용 솔루션 대신 오픈소스인 OpenStack을 선택하여 기술 내재화와 유연한 인스턴스 타입(VM, Container, K8S) 대응력을 확보했습니다. * 부족한 운영 경험을 극복하기 위해 3가지 버전의 OpenStack을 수십 번 설치하고 장애 시나리오를 반복 재현하며 아키텍처 이해도를 높였습니다. * 로드밸런서인 옥타비아(Octavia)의 소스 코드를 직접 수정하여 비즈니스 요구에 맞는 로그 포맷을 생성하는 등 오픈소스의 이점을 극대화했습니다. ### 자동화와 모니터링을 통한 운영 효율 극대화 * Ansible과 Terraform 코드를 활용해 모든 자원의 라이프사이클을 자동화했으며, 골든 이미지를 통해 신규 인스턴스 생성 시간을 10초 이내로 단축했습니다. * Zabbix, Prometheus, Mimir, Grafana 등 다양한 오픈소스 툴을 조합하여 모든 메트릭을 수집하고, 실시간 알람 체계를 구축해 장애 감지 능력을 높였습니다. * 운영 인력의 한계를 극복하기 위해 CMDB와 연동된 봇(Bot)을 구현하여 인프라 현황을 실시간으로 조회하고 관리할 수 있도록 했습니다. ### 고가용성을 위한 다중 클러스터 및 Cluster API 전략 * 장애 발생 시 서비스 가용성을 즉시 확보하기 위해 서로 독립된 3개의 OpenStack 클러스터를 구축하고 평상시 Active-Active로 운영합니다. * 특정 클러스터 장애 시 트래픽을 즉시 차단하는 방식으로 복구 시간을 최소화했으며, 클러스터 간 의존성을 완전히 제거했습니다. * K8S 관리를 위해 Cluster API(CAPI)를 도입하여 쿠버네티스 클러스터 자체를 쿠버네티스 리소스로 관리함으로써 퍼블릭 클라우드 수준의 관리 편의성을 프라이빗 환경에서도 구현했습니다. 전통적인 금융 인프라의 보수성을 탈피하고 오픈소스 기술을 깊이 있게 내재화한다면, 퍼블릭 클라우드의 편리함과 온프레미스의 통제권을 동시에 거머쥘 수 있습니다. 인력 부족이나 기술적 난도는 자동화와 표준화된 도구(CAPI, Terraform 등)를 통해 충분히 극복 가능하므로, 비용 최적화와 기술적 가시성이 필요한 조직이라면 하이브리드 클라우드 전략을 적극 권장합니다.

toss원문

수천 개의 API/BATCH 서버를 하나의 설정 체계로 관리하기 (새 탭에서 열림)

토스페이먼츠는 수천 개의 API 서버와 배치 설정을 관리하기 위해 설정을 단순한 텍스트가 아닌 '진화하는 코드'로 정의하여 운영합니다. 복사-붙여넣기식의 중복 설정을 제거하기 위해 오버레이 아키텍처와 템플릿 패턴을 도입했으며, 이를 통해 오타나 설정 오류로 인한 대규모 정산 장애 리스크를 원천 차단합니다. 결과적으로 인프라 설정을 테스트 가능한 영역으로 끌어올려 대규모 하이브리드 클라우드 환경에서도 높은 안정성과 유연성을 확보했습니다. ### 실시간 API 서버: 오버레이와 템플릿의 결합 * **오버레이 아키텍처:** 설정을 `global`, `cluster`, `phase`, `application` 순서의 계층형 구조로 설계하여 하위 계층이 상위 계층의 기본값을 덮어쓰도록 구성했습니다. 이를 통해 공통 설정은 한 번만 정의하고 각 환경에 필요한 차이점만 관리할 수 있습니다. * **템플릿 패턴 도입:** YAML의 단순 오버레이만으로는 해결하기 어려운 긴 문자열(예: JVM 옵션) 내의 특정 값만 수정하기 위해 `{{MAX_HEAP}}`과 같은 변수 치환 방식을 사용합니다. * **동적 설정 주입:** 설정 파일 내부에 파이썬 스크립트를 삽입하여 랜덤 포트 생성이나 외부 API 호출을 통한 동적 값 할당이 가능하며, 클러스터 이름에 따른 조건부 로직을 적용해 복잡한 환경 변수 요구사항을 해결합니다. ### 배치 서버: DSL과 GitOps를 통한 단순화 * **Jenkins 기반의 단순화:** 대규모 정산 데이터를 다루는 배치 환경일수록 단순함이 강력하다는 원칙 아래, Jenkins를 활용하면서도 수동 조작의 단점을 보완하는 방향을 택했습니다. * **Groovy DSL 활용:** Jenkins의 웹 UI를 통한 수동 설정을 배제하고, Groovy 기반의 자체 DSL(Domain Specific Language)을 구축하여 수천 개의 배치 Job을 코드 형태로 관리합니다. * **GitOps 체계:** 모든 배치 설정을 코드 저장소에서 관리하고 CI/CD 파이프라인과 통합함으로써, 개발자가 직접 Jenkins에 접속하지 않고도 표준화된 환경에서 배치 작업을 배포할 수 있도록 개선했습니다. ### 인프라의 코드화와 검증 자동화 * **테스트 가능한 설정:** 설정값에 대한 오타나 논리적 오류를 방지하기 위해 설정 코드에 대한 유닛 테스트를 수행합니다. 이를 통해 수천 개의 설정 중 단 하나의 오타가 치명적인 금융 장애로 이어지는 것을 사전에 방지합니다. * **유연한 확장성:** 고정된 설정 체계에 안주하지 않고, 인프라의 변화와 개발자의 요구사항에 맞춰 설정 인프라 자체가 계속해서 진화할 수 있는 구조를 지향합니다. 단순히 설정 파일을 잘 작성하는 것에 그치지 않고, 인프라 설정을 애플리케이션 코드와 동일한 수준의 설계와 테스트를 거쳐 관리하는 것이 대규모 시스템의 안정성을 보장하는 핵심입니다. 초기에 다소 복잡해 보일 수 있는 오버레이나 DSL 도입은 장기적으로 중복을 제거하고 휴먼 에러를 막는 가장 확실한 투자입니다.

microsoft원문

Dev Box 즉시 코 (새 탭에서 열림)

마이크로소프트는 개발 환경 설정 및 유지보수 시간을 단축하여 개발자 생산성을 높이기 위한 Microsoft Dev Box의 팀 맞춤화(Team Customizations) 및 이미지 생성 기능을 발표했습니다. 이 기능은 마이크로소프트 내부의 1ES(One Engineering System) 팀이 구축한 'Ready to Code' 환경을 기반으로 하며, 현재 3만 5천 명 이상의 내부 개발자들이 이를 통해 표준화된 고성능 개발 환경을 사용하고 있습니다. 결과적으로 복잡한 설정 과정을 자동화하고 팀별 요구사항에 맞춘 유연한 환경 구축이 가능해짐에 따라 기업 전반의 엔지니어링 효율성이 크게 향상될 것으로 기대됩니다. **Ready to Code 환경의 구현과 기술적 이점** * **보안 강화**: Azure 관리 ID(Managed Identity)를 활용하여 이미지 생성 과정에서 필요한 자산에 안전하게 접근하며, 승인된 소스의 아티팩트만을 사용하여 검증된 환경을 구축합니다. * **성능 최적화**: Dev Drive를 사전 구성하고, 보안을 유지하면서도 개발 성능에 최적화된 Windows Defender 설정을 적용하여 빌드 및 작업 속도를 높입니다. * **일관성 및 신뢰성**: 스마트 기본값(Smart Defaults)을 제공하는 템플릿을 통해 팀 간 환경 편차를 줄이고, "내 PC에서는 잘 된다"와 같은 파편화 문제를 해결합니다. * **유지보수 편의성**: Azure Bicep을 사용하여 이미지 정의를 코드화함으로써 복잡한 로직을 모듈화하고, Azure Pipelines를 통해 이미지 업데이트 및 트러블슈팅을 간소화합니다. **1ES 팀의 이미지 관리 및 배포 전략** * **엄격한 테스트**: 템플릿 업데이트 시 PR 완료 전 테스트 이미지를 빌드하고, 실제 고객 환경을 모방한 대규모 이미지 세트를 생성하여 안정성을 검증합니다. * **단계적 출시**: 내부 도그푸딩(Dogfooding)을 시작으로 단계별 릴리스를 진행하며, Bicep 모듈 레지스트리의 경로 태그를 활용해 릴리스 단계를 구분하고 긴급 패치를 신속하게 배포합니다. * **중앙 집중식 개선**: 1ES와 같은 중앙 엔지니어링 팀이 템플릿을 관리함으로써, 회사 전체의 'Ready to Code' 환경에 개선 사항을 일괄적으로 적용할 수 있습니다. **외부 확산 및 실용적인 활용 예시** * **샘플 템플릿 제공**: 마이크로소프트는 내부 템플릿의 핵심 기능을 오픈 소스 저장소(MSBuildSdks, eShop, Axios 등)에 적용해 볼 수 있는 샘플과 가이드를 공유했습니다. * **자동화된 워크플로우**: Git 저장소 복제, 패키지 복원, 빌드, 데스크톱 바로가기 생성 등을 선언적으로 정의할 수 있으며, MSBuild 및 dotnet 프로젝트를 기본적으로 지원합니다. * **이미지 체이닝**: 기본 이미지를 기반으로 파생 이미지를 만드는 '이미지 체이닝' 기능을 통해 반복적인 빌드 시간을 줄이고 효율적인 이미지 계층 구조를 설계할 수 있습니다. * **스마트 환경 설정**: 윈도우 OS 최적화, 긴 경로(Long Path) 활성화, 불필요한 저장소 기능 비활성화 등을 통해 개발 시나리오에 최적화된 환경을 자동으로 구성합니다. 개발 팀은 제공된 Azure Bicep 모듈과 샘플 파이프라인을 활용하여 자신만의 'Ready to Code' 환경을 구축하는 것을 권장합니다. 이를 통해 인프라 설정에 소요되는 리소스를 최소화하고 코드 작성에 더 집중할 수 있는 환경을 마련할 수 있습니다.