[2022 AWS re:Invent] 최신 앱 빌드 – 관찰 가능성 및 탄력성을 위한 아키텍처

세션 유형

Leadership

세션명

최신 앱 빌드 – 관찰 가능성 및 탄력성을 위한 아키텍처

강연자
  • Francessca Vasquez, Vice President, Technology and Customer Solutions
  • Shaown Nandi, Director, Technology
세션요약자

남동우(Dongwo Nam)

핵심내용 요약
  • 지속적인 탄력성 확보와 관찰 가능성 유지를 위해 AWS Well-Architected Framework의 신뢰성과 운영 효율성의 내용을 기반으로 AWS에서 제공하는 Fault Injection Simulator, Resilience Hub, Route53 Application Recover Controller을 통해 개선 및 유지될수 있습니다.
키워드
  1. Resilience(탄력성), Observability (관찰 가능성)
  2. Fault Injection Simulator, Resilience Hub, Route53 Application Recover Controller
  3. AWS Well-Architected Framework
상세내용

Use Case: 제임스웹 우주 망원경

29,000명이 넘는 엔지니어와 과학자가 참가한 이 프로젝트는 지금까지 가장 방대한 탄력성과 관찰 가능성을 필요로 하는 혁신적인 작업으로 20년간 100억 달러 예산으로 개발되었고 2002년 초기 예산보다 10억 달러를 초과하는 것입니다. 이 망원경은 실제로 100만 마일을 이동해 원격에서 조작해야 하기 때문에 NASA는 한장비에 필요한  관찰 가능성과 탄력성을 구축해야 해야 했고 실제로 이 대규모 장비는 300개 이상의 단일 실패 지점을 테스트 할수 있는 도구들을 필요로 했습니다. 이제 우리는 나사의 우주 망원경과 같은 동일한 미션 크리티컬한 어플리케이션이 제공하는 탄력성과 관찰 가능성에 대해 매우 심도 있게 탐구할 필요가 있으며 지속적으로 개선해 나가야할 필요가 있습니다.

  • 관찰 가능성이랑 지표, 로그 추적을 위한 계측을 통해 시스템에서 발생하는 일들을 가장 잘 이해할수 있도록 해주는 작업입니다.
  • 탄력성은 인프라, 서비스, 어플리케이션의 장애로 부터 복구하기 위한 워크로드입니다.
  • 관찰 가능성과 탄력성은 AWS의 Well-Architected Framework의 중요한 특성인 신뢰성과 운영 효율성에 해당 합니다.

탄력성

탄력성은 장애로부터 빠르게 응답하고 복구할수 있는 워크로드의 능력으로 고가용성, 장애 복구, 지속적인 개선의 3가지 모델로 구성됩니다.

  • 탄력성의 공유 책임 모델에서 AWS는 클라우드의 탄력성을 보장하고 클라우드 사용자들은 워크로드의 탄력성에 대한 책임이 있습니다.

  • 다양한 장애의 범주(잘못된 코드 배포와 인증 만료와 같은 잘못된 구성, 데이터 센터 장애와 같은 핵심 인프라 장애, 데이터 손상과 같은 데이터와 상태 장애, 인프라의 외부 호출 API의 종속성 장애, 인터넷 및 환경적인 장애와 같은 최악의 시나리오)에 대해 AWS 인프라, 네트워크, 데이터, 어플리케이션의 측면에서 탄력성을 구축 해야 하고 복구 패턴(백업과 재시도, 써킷 브레이크, 자연스러운 경감, 쓰로틀링, 부하분산)들이 적용 되어야 하고 지속적인 테스트(카오스 엔지니어링, 정기적인 장애복구 훈련, 게임데이 등)가 필요합니다.
  • AWS는 탄력성을 위해 Fault Injection Simulator, Resilience Hub, Route53 Application Recover Controller와 같은 서비스를 Well-Architected framework의 모범 사례의 형태로 제공합니다.

Use Case: Capital One

  • 설립한지 20년이 넘으며 1억명 이상의 고객과 5만 이상의 협력사를 가지고 있으며 전체 시스템을 AWS 퍼블릭 클라우드에서 운영하고 있는 최초의 은행입니다.
  • 다중 AZ와 다중 region을 구성하고 배포 패턴을 유지하여 탄력성 요구사항을 표준화하고 복잡한 종속성의 문제에 집중하여 정적인 안정성을 추구합니다.
  • 탄력성은 반복적인 학습과 적응으로 실현되므로 문제 해결을 위한 협력하는 것을 독려하고 비난없는 포스트모텀을 진행하여 학습된 내용을 기술적 혹은 조직적인 의무조항으로 만듭니다. 
  • 서버리스(관리형 서비스)는 탄력성 확보를 위한 좋은 전략이 될수 있습니다.

관찰 가능성(Observabiliy)

  • 장애는 방지할수 있는 것이 아니라  찾아 내어 조사한 후 대응 하는 것입니다. 관찰 가능성은 발생할 장애들을 효과적으로 찾아내어 조사하고 대응할수 있도록 해줍니다.
  • 모니터링의 사이클은 인스트루먼테이션을 통해 로그, 지표, 트레이스를 얻어 오면 분석의 목적으로 알람과 대시 보드를 사용하고 추가적인 의문점들을 다시 인스트루먼테이션을 통해 추가하여 로그, 지표, 트레이스에 반영될수 있도록 하는 순환 구조를 통해 향상된 운영을 할수 있습니다.

  • 관찰가능성에 대한 도구는 3가지는 지표, 로그, 트레이스 입니다.
    • 지표 : 다양한 시간 간격을 갖는 수치화된 측정 데이터 (요청률률, 오류률, 소요시간, CPU 사용률)
    • 로그 : timestamp가 포함된 이벤트 
    • 트레이스 : 여러 어플리케이션이나 시스템을 가로 지르는 호출 경로

  • AWS는 워크로드에 맞는 다양한 관찰 가능성에 관한 도구 모음을 제공합니다.

Use Case: FINRA (금융 산업 규제 기관: 우리나라의 금융감독원에 해당)

  • 미국 금융 시스템의 무결성을 보장하는데 필요한 중요한 역활을 수행하고 있으며 하루에 시장에서 발생하는 6천억개 이상의 이벤트를 처리하고 24시간 거래를 지원하며 30만개에 달하는 compute 노드를 실행하고 있으며 약 500 페타바이트 이상의 스토리지를 관리하고 있습니다.
  • 관찰 가능성을 확보하기 위해 다음과 같은 작업들을 진행하고 있습니다.
    • 시스템 모니터 : 플랫폼, 서비스, 어플리케이션
    • 컴플라이언스 : 정책 시행, 감시, 기록 관리리
    • 보안 : 로깅 표준,  제어 편차
    • 운영 스코어 카드 : 탄력성, 로깅, 태깅, AWS Trusted Advisor
    • 어플리케이션 health 상태 : 주요 연결성, 직/간접 종속성
  • 재해 복구를 위해 맞춤형 솔루션보다 아래의 AWS의 서비스들을 사용합니다.
    • Amazon S3 : region간 복제
    • Amazon RDS : 오로라 글로벌 데이터 베이스
    • AWS KMS : 다중 region 키
    • Amazon Dynamo Global Tables : 파라미터 저장소

지속적인 개선

  • AWS Well-Architected Framework 
    • 신속한 빌드와 배포
    • 위험 요소의 경감과 상쇄
    • 정보에 입각한 결정
    • AWS 모범사례의 학습
  • 신뢰성 설계 원칙 
    • 장애 자동 복구
    • 테스트 복구 절차
    • 워크로드 가용성 향상을 위한 수평적 확장
    • 추정에 의한 용량 산정 금지
    • 자동화된 변경 관리
  • 운영 효율성 원칙 
    • 코드화된 운영 수행
    • 자주 작은 규모의 원복 가능한 변경 적용
    • 운영 절차의 잦은 개선
    • 장애 예상
    • 운영상의 모든 장애로부터 학습

Leave a Comment