AWS re:Invent 2023 후기

Yawn
한국신용데이터 팀 블로그
8 min readMay 2, 2024

--

안녕하세요. 한국신용데이터의 Back-end Engineer Yawn(한지우) 입니다.
이번에 AWS re:Invent 2023 에 다녀오게 되었습니다.

이런 큰 행사를 다녀오는 것은 처음이었는데요. 많은 시간이 지났지만 그 기억을 되새기기 위해 후기를 작성하게 되었습니다.

# AWS re:Invent의 세션들

AWS re:Invent 는 모두 아시다시피 미국에서 개최 되는 세계 최대 규모의 개발자 행사 중 하나 입니다. 그렇다보니 세션수만 해도 2000 여개가 넘어가기 때문에 듣고 싶은 세션들을 찾아 보는 것 만해도 큰 일 입니다.

세션을 들으러 가는 수많은 사람들

저도 위 사진의 사람 중 하나가 되어 여러가지 세션을 들으러 다녔습니다.

영상에서는 NEW가 빠졌지만 새로운 기술에 대한 소개를 하는 NEW LAUNCH 가 붙은 세션들도 있구요.
[LAUNCH] Elevate your security investigations using generative AI (SEC244)
[LAUNCH] Introducing Amazon ElastiCache Serverless (DAT342)

익숙한 한국어 강연 세션들도 있습니다.
A career journey for serverless and container cloud developers (GBL207)
Lessons learned using generative AI in banking and shopping services (GBL209)

# Goldman Sachs: The journey to zero downtime

당시 저는 KCD뱅킹팀(현 금융사업팀)에 있었기 때문에 다음의 세션이 기억에 남아 조금 길게 세션 후기를 써볼까 합니다.

먼저 Zero downtime을 해야하는 이유에 대해 고민을 해보라는 질문과 함께 시작합니다. 골드만 삭스는 다음과 같이 4가지 목적을 위해 Zero downtime을 달성하고자 한다고 합니다.

  • 예기치 못한 상황에도 대응할 수 있는 복원력
  • 지속적으로 중단 없는 서비스 제공을 통한 고객과의 신뢰
  • 고 가용성
  • 결제 SLA

골드만 삭스는 이를 위한 몇가지 지표를 이야기 해 주었는데요. RPO의 경우 0을 목표로 하고 있고 RTO는 데이터베이스 손실시 2분 이내를 목표로 한다고 합니다.
또한 실시간 결제는 99.5%(향후 99.9%가 목표라고 합니다) 가용성을 유지해야할 의무가 있다고 하며 이는 1달 기준으로 최대 3.6시간의 다운타임이 발생할 수 있다고 합니다.

Zero downtime을 위한 고가용성 아키텍쳐에 대해 설명하고 있습니다. 여기에는 다음과 같은 5가지 원칙이 있다고 합니다.

  • 아마존 ECS / AWS Fargate를 선호
    불변성, 즉 동일한 이미지라면 동일한 컨테이너가 실행됩니다. 이는 동일한 작동을 보장합니다.
  • 공통된 Iac 모듈
    어플리케이션팀이 가용성에 대해 깊이 생각하지 않아도 되도록 플랫폼 팀에서 미리 정의된 Terrafrom 리소스 집합을 만들어 제공 합니다.
  • 마이크로 계정과 VPC 엔드포인트 서비스
    각 아마존 계정을 강력한 방어막으로 사용합니다. 각각의 마이크로 계정은 말그대로 작은 계정으로 기능적으로 정렬된 마이크로 서비스 세트가 하나만 있는 계정입니다.
  • 독립된 Zero downtime 배포
    골드만삭스의 목표는 모두가 독립적으로 모든 사람이 독립적으로 배포할 수 있도록 하는 것입니다. 어떤 서비스가 나에게 필요한 새로운 기능을 배포하는 시나리오가 항상 있다는 것을 이해합니다. 하지만 일반적으로 그렇지 않은 경우라면 완전히 독립적으로 마이그레이션 할 수 있습니다.
  • DevOps 문화 철학
    데브옵스 문화철학을 따른다는 것은 모든것을 자동화 한다는 뜻 입니다. 기술 프로세스 및 기능적 프로세스를 자동화 합니다.

Zero downtime을 위한 배포 전략의 설명은 조금 재미있었습니다. 왜 Zero downtime 배포를 해야 하는 가는 우리는 모두 주말에, 새벽에 일하기 싫어한다는 것 입니다. 여기서 힌트를 얻어 Zero downtime 배포 전략을 수립하게 되었다고 해요(정말 일지는…?)

Stateless 서비스와 Stateful 서비스로 나누어서 설명을 했는데요. Stateless 서비스의 배포 전략으로는

  • AWS CodeDeploy 를 이용한 Blue-Green Deployment
    스테이징 환경에서 최대 48시간의 카나티 테스트 등 엄격한 검증 후프로덕션으로 전환합니다.
  • Zero Downtime 롤백
    롤백이 필요한 경우, 블루-그린 전략을 통해 이전 버전으로 신속하게 롤백합니다.
  • Deep Health Check 활용

Stateful 서비스의 배포 전략으로는

  • 일시적인 쓰기 중단
    Amazon Aurora 복제를 사용하여 복제 데이터베이스를 생성하고 쓰기를 일시 중지하여 전환 하는 방법이 있습니다.
  • Elastic Cache와 MSK
    Cache Write Behind 전략을 이용하며, 캐시와 MSK에 모두에 데이터를 쓰고 두 서비스에서 데이터가 모두 확인되면 쓰기가 성공했다고 간주 합니다.

등을 이야기 했습니다.

결과 적으로 Key wins 항목으로는

  • 기존 0분에서 48 시간의 릴리즈 검증
  • 목요일이나 금요일 릴리즈를 활용하여 주말 작업 최소화
  • 오로라 다운타임을 0분으로 만든 것
  • 배포 사고의 최소화

가 있다고 합니다.

영어 실력이 짧아 골드만 삭스의 제로 다운타임으로의 여정을 제가 제대로 이해했는지 사실 자신이 없습니다. 그래도 왜 제로 다운타임을 위해 노력하는지 고민해 볼 수 있는 시간이었습니다.

제로 다운타임을 위한 여러가지 기술적인 시도도 의미가 있지만 역시 가장 중요한 것은 고객과의 신뢰라는 생각을 다시한번 해볼 수 있는 시간이었습니다. 이를 위해 제가 느낀 가장 중요한 포인트는 고객에게 제품이 릴리즈 되기전 미리 문제가 있는지 알 수 있는 사전 테스트와, 혹시나 문제있는 제품이 릴리즈 되었을 때 이를 빠르게 롤백하여 고객이 문제 상황을 겪는 시간을 최소화 하는 것이 중요하다고 생각이 되었어요.
KCD 역시(저는 비록 다른 팀이지만) 이를 위해 QA 분들과 데브옵스 팀 분들이 현재 굉장히 많은 노력을 해 주시고 계십니다.

회사마다 다르겠으나 이 글을 읽는 분들도 우리에겐 제로 다운타임이란 과연 어떤 의미를 가질 것인지 제로 다운타임을 위해 우리에게 맞는 정책은 무엇인지 고민하는데 도움이 되었으면 합니다.

# 세션 이외 볼거리등

라스베가스까지 왔는데 AWS 세션만 듣기는 아까운거 같아요. 같은 AWS 행사이긴 하지만 엑스포 행사도 매우 재미 있습니다.

엑스포에서의 핫 아이템은 레드햇에서 나누어주는 레드햇 모자더라고요. 저도 하나 받아왔습니다.

또한 리인벤트 행사장 가까이에 스피어가 있습니다. 리인벤트가 진행되는 호텔 중 베네치안 호텔에서 걸어갈 만한 거리에 있어요. 밖에서 볼 때는 베네치아와 윈 호텔을 연결하는 연결 통로가 굉장히 잘 보이는 꿀 자리입니다. 직접 스피어에도 들어갔었는데 아쉽게도 해당 사진은 없네요.

그외에도 굉장히 아름다웠던 윈,앵코어 호텔과 벨라지오 호텔의 분수쇼도 기억에 남습니다.

# 마무리

부족한 영어 실력으로 직접 실습할 수 있는 Workshop 세션이나 기술에 대해 직접 토론을 진행해 볼 수 있는 Chalk talk 세션 등을 못 들어 본 것은 아쉬움이 남습니다.

그래도 이렇게 큰 행사를 참여하여 여러 세션을 들어보고 다양한 경험을 해볼 수 있었던 값진 시간이었습니다.

이런 기회를 만들어준 회사와 자리를 비운 동안 제 몫까지 고생해 주신 동료분들께 감사드리며 이 글을 보시는 분들도 언젠가는 이런 큰 행사에 가볼 수 있길 바랍니다.

지금, KCD는 사장님의 더 나은 내일을 위해 함께할 동료를 찾고 있어요.

영입 중인 포지션 확인하기

KCD가 더 궁금하다면?

--

--