site-reliability-engineering

3 개의 포스트

aws

생성형 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

신뢰성 향상을 위한 SLO/SLI 도입 3편 - 서비스 적용 사례 (새 탭에서 열림)

SLI(Service Level Indicator)와 SLO(Service Level Objective)의 도입은 단순히 지표를 설정하는 기술적 작업을 넘어, 사용자 중심의 관점으로 서비스를 재정의하고 조직의 협업 문화를 구축하는 과정입니다. 정량적인 지표와 오류 예산(Error Budget) 개념을 활용하면 서비스의 신뢰성과 비즈니스 혁신 사이에서 객관적인 판단 근거를 마련할 수 있습니다. 결과적으로 SLO는 사용자에게 안정적인 경험을 제공하는 동시에 엔지니어링 리소스를 효율적으로 배분하는 핵심 도구가 됩니다. **신뢰성 향상을 위한 마인드셋과 협업** * **사용자 여정 중심의 사고**: 서비스의 수많은 기능 중 사용자가 가장 많이 사용하거나 반드시 필요한 '핵심 사용자 여정(CUJ)'을 식별하는 것이 첫걸음입니다. * **다학제적 협업 체계**: 서비스 담당 부서(CUJ 정의), 인프라 조직(측정 환경 구축), SRE(도구 구현 및 모니터링) 등 이해관계자 모두가 목표를 공유하고 책임을 나누는 문화가 필수적입니다. **SLI/SLO 구현의 4단계 프로세스** * **CUJ 분석**: 가입, 메시지 송수신, 인증과 같이 비즈니스 목표와 사용자 경험에 직결되는 핵심 기능을 사용자 관점에서 선별합니다. * **SLI 정의**: 게이트웨이나 백엔드 등 적절한 측정 위치를 선정하고, 응답 시간(Latency)의 퍼센타일과 응답 성공률(Success Rate)에 대한 명확한 성공/실패 기준을 수립합니다. * **SLO 타깃 설정**: 28일 등 특정 기간 동안 달성할 현실적인 목표 수치를 정하며, 안정성 확보 비용과 사용자 경험 사이의 적절한 균형점을 찾습니다. * **시각화**: 전체 상태와 오류 예산 현황을 한눈에 파악할 수 있도록 대시보드를 구성하며, 색상(초록/주황/빨강)을 활용해 직관적인 인지성을 높입니다. **오류 예산을 활용한 의사 결정 및 운영** * **정량적 소통**: '서비스가 느리다'는 추상적 표현 대신 '응답 시간이 SLI 기준인 400ms를 초과했다'는 식의 정확한 데이터로 문제를 파악합니다. * **리소스 배분 가이드**: 오류 예산이 넉넉하면 신규 기능 출시나 공격적인 릴리스에 집중하고, 예산이 소진되어 가며 안정성 강화와 이슈 대응에 리소스를 우선 투입합니다. * **온콜(On-call) 및 예방**: 오류 예산의 상태 변화를 실시간 알림으로 받아 이슈에 신속히 대응하며, 정기적인 SLO 점검을 통해 서비스 품질을 지속적으로 관리합니다. 성공적인 SRE 문화를 정착시키기 위해서는 SLO를 단순한 규제가 아닌, 서비스의 안정성과 혁신 속도 사이에서 균형을 잡아주는 나침반으로 활용하는 것이 중요합니다. 측정 가능한 지표를 통해 막연한 불안감을 해소하고, 데이터에 기반한 의사결정을 내릴 때 비로소 지속 가능한 서비스 신뢰성을 확보할 수 있습니다.

datadog

엔지니어링 스포트라이트: 테이 니시무라 (새 탭에서 열림)

데이터독(Datadog)의 인프라 엔지니어 테이 니시무라(Tay Nishimura)의 커리어 여정은 자신만의 사고방식에 적합한 직무를 찾는 과정의 중요성을 보여줍니다. 수학 전공자이자 시각적 사고를 선호하는 그녀는 일반적인 소프트웨어 개발 속도 경쟁에서 어려움을 겪었으나, 네트워크 시뮬레이터 'ToyNet' 개발을 통해 자신의 강점을 증명하며 SRE(Site Reliability Engineering)로 성공적으로 전향했습니다. 이 글은 전형적인 엔지니어의 틀에 갇히지 않고 자신의 고유한 특성을 기술적 자산으로 승화시킨 과정을 다룹니다. **학계와 실무 사이의 괴리와 시각적 사고** * 수학 전공자로서 증명 위주의 엄격한 사고에 익숙했던 테이는 효율과 속도를 중시하는 애자일 개발 환경에서 초기에 성능 피드백 문제로 어려움을 겪었습니다. * 코드를 바로 작성하기보다 코드를 그림으로 변환하여 논리를 검증한 뒤 다시 코드로 옮기는 '시각적 사고' 방식을 고수했는데, 이는 신중함을 더해주었지만 작업 속도를 늦추는 요인이 되기도 했습니다. * 일반적인 개발 직무에서는 속도 저하로 평가받았던 그녀의 신중함과 모든 실패 모드를 고려하는 태도가, 오히려 시스템의 안정성을 책임지는 SRE 직무에는 핵심적인 역량이 될 수 있음을 깨달았습니다. **ToyNet 개발과 SRE로의 전환** * 팬데믹 기간 중 해고를 겪었으나 이를 계기 삼아 평소 관심 있던 네트워크 기술을 공부하며, 수감자와 베테랑을 위한 교육 프로그램 'Project Reclass'를 시작했습니다. * 인터넷 사용이 제한된 교도소 환경에서도 네트워크 실습이 가능하도록 React, Flask, Mininet을 활용해 컨테이너 기반 네트워크 에뮬레이션 플랫폼인 'ToyNet'을 설계했습니다. * ToyNet은 테이의 클라우드 배포 역량과 기술적 깊이를 증명하는 강력한 포트폴리오가 되었으며, 이는 데이터독에 SRE로 합류하는 결정적인 발판이 되었습니다. **데이터독에서의 적응과 시각적 분석의 힘** * 데이터독 합류 후 Kubernetes, 카오스 엔지니어링, Go 언어 등 생소한 기술 스택을 빠르게 습득하며 인프라 엔지니어로서 전문성을 쌓았습니다. * 데이터독의 카오스 자동화 도구인 'Chaos Controller'를 오픈소스화하는 과정에서, 복잡한 코드베이스를 상자와 화살표로 시각화하여 구조를 파악하는 자신만의 분석 방식을 적극적으로 활용했습니다. * 과거에는 약점으로 치부되었던 '꼼꼼하고 신중한 속도'가 이제는 대규모 시스템의 신뢰성을 보장하고 복잡한 기술 문제를 해결하는 강력한 무기가 되었습니다. 자신이 업계의 전형적인 틀(Cookie-cutter shape)에 맞지 않는다고 느낄 때, 포기하기보다는 자신의 독특한 사고방식이 빛을 발할 수 있는 세부 분야를 찾는 것이 중요합니다. 테이 니시무라의 사례처럼 사이드 프로젝트를 통해 실질적인 기술력을 증명하고 이를 직무 전환의 교두보로 활용하는 전략은 커리어 고민을 겪는 엔지니어들에게 실질적인 영감을 줍니다.