Amazon Web Services 한국 블로그
AWS GameDay – Microservice Magic의 우승팀을 인터뷰하였습니다!
지난 2021년 11월 25일, AWS Digital Native Business 팀에서는 마이크로 서비스 아키텍쳐(MSA)를 새로운 방식으로 경험하고 배우실 수 있도록 AWS GameDay를 진행하였습니다. AWS GameDay는 AWS 아키텍처에서 발생할 수 있는 문제를 게임화된 환경에서 직접 대처하며 배울 수 있는 인터랙티브 콘텐츠입니다. 총 21개팀 96명이 참석해 주신 이번 AWS GameDay에서는 가상의 회사 Unicorn Rental의 기본 아키텍처를 마이크로 서비스 아키텍쳐(MSA)로 개선하는 내용을 주제로 다루었습니다. 마이크로 서비스 아키텍쳐(MSA)에 대한 많은 관심과 열정 속에서 우승을 차지한 1, 2, 3등 팀의 인터뷰 내용을 소개합니다. 인터뷰 내용 중 일부는 서면으로 진행된 내용을 편집하였습니다.
- 1위 dj?! 팀 (하이퍼커넥트): 김민주, 김영호, 변준우, 조성환, 진필근
- 2위 샛별코딩 팀 (컬리): 강성진, 노준혁, 박용준, 신주호, 이승윤
- 3위 버즈빌A 팀 (버즈빌): 유병훈, 이한준, 임호준, 최준혁, 황호성
Q: AWS GameDay – Microservice Magic에는 어떻게 참여하시게 되었나요?
[하이퍼커넥트] 조성환 님: 하이퍼커넥트 보안 팀에서는 팀원들끼리 CTF(해킹 방어 대회)와 같은 대회에 자주 출전하고 있는데요. 이번에도 AWS에서 주최한 AWS GameDay가 재미있어 보였고, 또 배울 점도 많을 것 같아 출전하게 되었습니다.
[하이퍼커넥트] 김민주 님: 특히 같은 팀의 준우님이 ASEAN팀과 함께 진행한 AWS GameDay – Tour de Machine Learning에서 우승하셨다는 소식을 듣고, 보안팀이 함께 도전하자고 합심하여 참여하게 되었습니다. 코로나 장기화로 자주 만나거나 함께 활동할 기회가 없었는데 AWS GameDay를 계기로 오랜만에 함께 모이는 즐거운 시간이 될 것 같아 참여하게 되었습니다.
[버즈빌] 임호준 님: 저는 버즈빌의 데브옵스 팀에 합류하여 지난 1년 동안 AWS 기반 대규모 시스템을 운영해왔습니다. 이 때 터득한 기술을 바탕으로, 저의 숙련도를 시험해 볼 좋은 기회라 생각하여 참가하게 되었습니다.
[버즈빌] 유병훈 님: 개발자로서 데브옵스에 관심은 있었지만 그동안 AWS를 제대로 사용해 볼 기회가 많이 없었는데요. 이번 AWS GameDay를 계기로 AWS를 활용해 비즈니스 문제를 직접 경험하고, 제한된 시간 내에 집중적으로 풀어볼 수 있을 것 같아 참여했습니다.
[버즈빌] 최준혁 님: AWS를 활용하는 것도 매력적이었지만, 실제 업무 과정에서 겪을 수 있는 다양한 이슈들을 게임처럼 접근해볼 수 있다는 점이 흥미로워 참여하게 되었습니다.
[컬리] 신주호 님: 저희는 사내 슬랙에서 AWS GameDay에 대한 소식을 접하게 되었습니다. 상품 목록 진열 관련과 관련된 일을 하고 있는데, 회사 리더분께서 GameDay 참여를 적극 추천해주셨어요. 마침 저도 AWS 및 MSA에 관심이 있어서 참여하게 되었습니다.
Q: AWS GameDay 참석 팀원은 어떻게 구성하게 되었는지, 그리고 팀 이름은 어떻게 해서 만들게 되었는지도 궁금합니다!
[컬리] 박용준 님: 저희 팀은 대부분 회사 리더님의 추천으로 모이게 되었습니다. AWS GameDay 개최 소식을 들으시고 여기저기 추천을 많이 해주신 덕분에 GameDay에 참가할 수 있었던 것 같습니다.
[컬리] 노준혁 님: 그 중에서 저는 팀에 직접 자원했는데요. AWS GameDay 안내문을 보는데 MSA를 게임처럼 진행한다는 점이 흥미로웠고, 저희 샛별코딩 팀과 함께 참여해보고 싶었습니다.
[컬리] 이승윤 님: 다 같이 모여서 팀 이름을 무엇으로 할지 아이디어를 모으다가, 저희 회사 컬리의 샛별배송의 이름을 따와 팀 이름을 샛별코딩으로 정하게 되었습니다.
[버즈빌] 황호성 님: 저희 사내에 각 팀에서 활용 중인 DevOps 경험을 공유하고 토론하는 그룹이 있는데요. 이 그룹과 DevOps팀을 위주로 AWS GameDay 참가팀을 구성하게 되었습니다. 추가로 백엔드 개발자분들 중 AWS GameDay에 참석하고 싶은 분들이 많이 계셔서, 저희 회사에서는 두 팀이 출전했어요. 팀이름은 보시면 알겠지만 단순하고 직관적으로 결정하였습니다. (미소)
[하이퍼커넥트] 변준우 님: 저희는 팀 이름을 정할 때 많은 고민을 했는데요. 마침 ‘어?! 금지’라는 개발자 밈이 생각났습니다. 어떤 IT 회사에서 어?!를 외치게 되면 개발자 모두가 뭔가 잘못된 줄 알고 긴장하기 때문에 ‘어?! 금지’라는 규칙을 사무실에 출력해 붙여 놓은 밈인데요. ‘어?!’를 영어로 바꾸니 더 급박해 보이고 인상적이어서 ‘dj?!’로 정하게 되었습니다. 대회 내내 ‘디제이?!’ 팀으로 불려서 그냥 한글로 했어야 했나라는 생각도 했는데, 중간에 사회자분이 알아주셔서 저희끼리 좋아했던 기억이 있습니다. (웃음)
Q: 이번 AWS GameDay에서는 마이크로 서비스 아키텍쳐(MSA)에 대해 미리 공부해볼 수 있는 사전교육을 제공하였습니다. 관련하여 AWS GameDay를 준비하는 과정은 어떠셨나요?
[하이퍼커넥트] 진필근 님: 사전 교육에서 모노리스 아키텍처를 MSA로 변경해야 하는 전체적인 배경지식과 함께 실습까지도 할 수 있어서 AWS GameDay를 대비하기에 적절했습니다. 질문들도 온라인으로 친절하게 잘 알려주셔서 MSA를 배우는 데에 많은 도움이 되었습니다.
[하이퍼커넥트] 김민주 님: 하이퍼커넥트 서비스는 DevOps팀이 잘 구축해둔 MSA 구조로 작성이 되어 있어요. 덕분에 저희 보안팀은 어깨너머로 다양한 지식을 습득할 수 있었는데요. 사전 교육에서 모노리스 아키텍처를 MSA로 변환하는 과정의 내용을 복습할 수 있었고, AWS의 AWS CloudFormation과 AWS Cloud9 등 이전에 써보지 않았던 새로운 서비스를 경험해 볼 수 있어 좋았습니다.
[컬리] 강성진 님: 저는 사전교육을 가장 먼저 끝냈는데요. AWS GameDay에서 팀 내의 제 역할을 수행하는 데에 도움이 많이 되었습니다.
[컬리] 노준혁 님: 저는 AWS GameDay에서 Amazon ECS, AWS Fargate를 활용한 구축을 맡았는데, 사전교육에서 들었던 내용이 이어지다 보니 훨씬 수월하게 진행할 수 있었습니다.
[버즈빌] 유병훈 님: 저도 사전교육에 참석했습니다. 사전교육에서 소개해주신 일부 AWS 서비스들은 이름조차 생소했는데, 사전 교육을 통해 미리 체험해볼 수 있어서 좋았고 도움이 많이 되었습니다.
Q: AWS GameDay에서 소개하는 가상의 회사 Unicorn Rental의 기본 아키텍처를 마이크로 서비스 아키텍쳐(MSA)로 개선하는 시나리오를 진행하신 소감도 궁금합니다.
[버즈빌] 이한준 님: 시나리오는 정말 좋았고, 진행방식이나 시간도 적절했던 것 같습니다. 다만 게임 도중에 처음 보는 서비스를 사용해야 하거나 전혀 예상하지 못했던 이슈를 실제로 겪어보니 해결책을 찾기가 어려울 때도 종종 있었습니다.
[버즈빌] 유병훈 님: 저희 팀원 각자 역할을 나누어 진행하니, 난이도는 적절했던 것 같습니다. 하지만 AWS GameDay와 같은 행사가 처음이다 보니 처음에 어떤 작업부터 시작해야 할지 헤맸던 기억이 납니다.
[버즈빌] 임호준 님: 적응한 뒤에는 너무 재미있게 참여했습니다. AWS GameDay 플레이하는 동안 실제 저희 팀 서비스에 에러율 증가 현상이 있었는데, 게임에 너무 몰두한 나머지 플레이를 다 마치고서야 비로소 발견할 정도였어요.
[하이퍼커넥트] 김민주 님: 저는 이번 AWS GameDay 시나리오에서 저희 팀의 모듈을 다른 팀이 채택해서 활용할 수록 득점할 수 있다는 점이 흥미로웠습니다. 그리고 시나리오상 외부의 보안팀이 저희 아키텍처의 설정을 수시로 바꿔서 방해한다는 점도 흥미로운 부분이었습니다. 다만, 같은 보안팀으로서 악역을 담당하는 가상의 보안팀을 보니 마음이 아팠습니다. 다음엔 보안팀에게 착한 역할을 시켜주세요!
[하이퍼커넥트] 조성환 님: 가상의 회사 Unicorn Rental의 대표님과 개발자분께서 설명을 잘해주셔서 재미있게 참여할 수 있었습니다. 저희 팀 아키텍처를 방해하는 유형들을 어느 정도 파악하고 나니 조금 쉬워지기는 했는데요. 다른 AWS GameDay에서는 어떤 다양한 유형의 상황들이 발생할지 궁금합니다. 굉장히 빈번하게 방해해서 자동화를 하지 않으면 해결할 수 없는 수준의 상황을 해결해보는 것도 너무 재미있을 것 같습니다.
[하이퍼커넥트] 김영호 님: 네, 맞아요. 게임이 후반으로 갈수록 서비스에 발생하는 이슈들이 어느 정도 패턴화 되다 보니 나중에는 점점 상황 대응에 빠르게 익숙해졌습니다. 저는 이런 이슈가 발생하는 패턴이 좀 더 다양하거나, 복잡한 평가방식이 있어도 좋을 것 같아요.
[컬리] 박용준 님: 저희도 처음 한 시간 정도는 사용해본 적이 없는 서비스가 많아서 헤맸지만, 서포터 분들이 막힌 부분을 잘 활용할 수 있게 도와주셔서 이후에는 금방 적응할 수 있었습니다. 점수가 실시간으로 집계되다 보니 더 열심히 참여하게 된 것 같은데 4시간이 금방 끝나서 아쉬웠습니다. 다음에 참여하면 더 잘할 수 있을 것 같아요.
[컬리] 이승윤 님: AWS GameDay의 시나리오를 그냥 읽는 게 아니라 진행하시는 분들이 상황극을 통해서 진행해주셔서 몰입도가 너무 좋았습니다. 특히 가상의 회사 Unicorn Rental의 대표님 역할을 하시면서 참가자를 직원으로 대하는 방식이 재미있었습니다.
Q: 이번 AWS GameDay를 하시면서 가장 기억에 남는 순간이 있다면 어떤 순간일까요? 혹은 팀에서 가장 고생하신 분을 추천해 주신다면?
[컬리] 강성진 님: 저희는 마지막에 딱 3분만 더 있었으면 1등을 할 수 있었는데 너무 아쉬웠습니다. 마지막에 지금이 아니면 안 될 것 같다는 생각으로 서버를 정말 있는 대로 다 띄워서 점수를 계속 받아보았는데 종료 시각까지는 아쉽게도 역전을 하지 못했습니다.
[컬리] 이승윤 님: 저희 팀 모두 열심히 하고 고생하셨지만, 저희 팀의 모든 것을 총괄해 주신 성진님께서 큰 역할을 하셨다고 생각합니다. 게임을 하는 동안 내내 돌아다니시면서 인프라 운영에 대해 계속 챙겨주셔서 팀원들이 많이 의지했고 덕분에 멋진 팀워크가 만들어진 것 같습니다. 그리고 용준님께서도 AWS Lambda기반의 서비스에 많은 이벤트 대응을 하시면서 고생을 많이 해 주셨습니다.
[컬리] 박용준 님: 아닙니다. 다 같이 고생하셨는 걸요. 저는 모니터링을 정말 잘해주신 주호님께 감사를 드리고 싶습니다. 덕분에 점수를 얻거나 대응해야 하는 부분을 빠르게 찾을 수 있었고, 부족했던 부분들도 효율적으로 개선할 수 있었습니다.
[컬리] 신주호 님: 감사합니다. 저는 이번에 AWS X-ray를 처음 써봐서 처음에는 조금 어색했는데요, 서비스 단위가 자동으로 그려지는 기능을 활용하여 실제 구현된 모습과 머릿속으로 생각했던 구조를 비교해볼 수 있어서 빠르게 적응할 수 있었던 것 같네요.
[하이퍼커넥트] 조성환 님: 저희 팀은 한창 1등을 하던 도중에, 갑자기 큰 이슈가 생겼는데요. 저희만 점수가 깎이고 다른 팀이 빠르게 쫓아 오시더라고요. 다른 팀이 쫓아오는 동안 어떻게 해결할지 고민하다가 문제점을 찾아 해결하고 점수가 다시 올라갈 때 짜릿했던 것 같아요.
[하이퍼커넥트] 진필근 님: 중간에 사회자분께서 “15분쯤 뒤에 다시 오겠다”고 하셔서 저희 팀은 15분 동안은 평온한 상황이 이어질 수 있을 것이라 생각하고 잠깐의 휴식을 가지게 되었는데요. 그 사이에 갑자기 2번의 공격이 발생하여서 살짝 당황했던 기억이 있습니다. 평소 하이퍼커넥트의 One Team 철학을 지켜온 덕분에 분업이 되어 있어 문제가 발생한 지점을 바로 찾아내고 정상적으로 서비스를 유지할 수 있었던 것 같아요.
[하이퍼커넥트] 김영호 님: 저희 팀에서 한 명을 꼭 뽑아야만 한다면, 저를 추천하고 싶습니다. (웃음) AWS GameDay에서 얻은 점수 중 제가 담당했던 AWS Lambda 서비스가 가장 점수를 많이 받는 효자 서비스가 됐던 점도 있고, AWS CloudTrail을 모니터링하며 저희 팀 아키텍처에 이슈가 생길 때마다 어느 부분에 이상이 있는지를 트래킹하며 빠른 복구에 기여를 많이 했다고 생각합니다.
[버즈빌] 이한준 님: 저희 팀은 종료 마지막 10 – 15분까지 4위 팀과 치열하게 경쟁을 했는데, 점수가 업데이트되는 매 순간마다 손에 땀을 쥐고 대시보드를 지켜보던 것이 기억에 남네요. 마지막까지 치열하게 경쟁해야 하다 보니 긴장을 놓칠 수 없던 것 같습니다.
[버즈빌] 황호성 님: 초반부에는 고득점을 하고 있다가 중반부에 저희 팀에 발생한 이슈 때문에 순위가 내려가서 고전했던 적이 있었습니다. 이때 준혁님이 문서를 통해 마이크로서비스에서 발생할 수 있는 문제를 확인하고 해결해주셔서 다시 빠르게 점수를 회복하고 상위권으로 치고 나갈 수 있었는데요. 이때가 매우 짜릿했습니다.
[버즈빌] 임호준 님: 높은 스코어 트렌드를 유지하기 위해서, 저희 팀은 라우터의 가용성을 높게 유지하는 것에 중점을 두었는데요. 저희 팀의 라우터를 담당해 주신 호성님도 고생을 많이 해 주셨고, 전반적으로 모든 마이크로 서비스와 라우터의 상태를 모니터링 해주시고 작업 분담 역할을 해 주신 한준님도 꼭 추천하고 싶습니다.
[버즈빌] 최준혁, [버즈빌] 유병훈 님: 네. 동의합니다. 두 분께서 고생을 많이 하셨습니다.
Q: 이번 AWS GameDay에서 다루었던 MSA 관련해서 새롭게 알게 된 점들이 있을까요? 그리고 이런 부분들이 혹시 실무에서도 적용이 가능할지도 궁금합니다.
[버즈빌] 황호성 님: AWS GameDay에서 실시간으로 갱신되는 점수 현황판이 저희 팀의 서비스 품질을 높게 유지하기 위한 강력한 동기부여 요인이 되었는데요. 이 현황판을 통해서 다른 팀에게 선택받는다는 것이 즉각적으로 체감되었기 때문입니다. 실무에서 유사한 역할을 하는 것이 SLO 지표라고 생각됩니다. 버즈빌에서도 장애율이나 및 서비스 품질의 지표로서 SLO를 활용하고 있는데요. AWS GameDay 상황처럼 즉각적인 피드백이 되지는 않겠지만, 서비스의 SLO를 잘 관리하면 이용자 만족도가 올라가고 장기적으로는 회사의 매출이나 제품의 성공에 큰 기여를 할 수 있다고 생각합니다.
[버즈빌] 최준혁 님: 저는 이번 AWS GameDay를 통해서 서비스 가시성을 확보하는 것이 중요하다는 점을 다시 한번 체감할 수 있었습니다. AWS X-Ray나 Amazon CloudWatch Logs 등을 활용하면 운영 조직 관점에서 서비스 내부의 디테일까지 파악하지 않고도 문제의 원인을 빠르게 좁혀 나갈 수 있다는 점을 알게 되었습니다.
[하이퍼커넥트] 조성환 님: 저희 팀에게 1등을 안겨준 가장 큰 공신은 바로 AWS Lambda를 사용한 서비스였는데요. 저희가 주로 사용하던 서비스는 아니어서 불안했지만 AWS GameDay의 여러 가지 상황에서도 기대 이상으로 잘 동작하더라고요. 덕분에 다음번에는 따로 더 활용해 보아도 좋겠다고 느꼈습니다.
[하이퍼커넥트] 변준우 님: 저희 팀의 마이크로서비스 중 한 서비스는 AWS Fargate로 컨테이너 이미지 리포지터리 내 서비스를 편하게 관리하고 운영할 수 있도록 구성했는데요. 컨테이너 기반 서비스를 클러스터링까지 AWS Fargate를 통해 편하게 관리할 수 있다는 점과 서버리스 형태로 리소스까지 더 세세하게 지정할 수 있다는 점이 더 좋아 보였습니다. 회사에서도 보안팀에서 자체 개발한 보안 관련 서비스들을 컨테이너 기반 서비스로 운영하고자 할 때 AWS Fargate를 활용하면 편리하겠다는 생각이 들었습니다.
[컬리] 박용준님: Amazon ECS에서 Amazon EKS로 바꿔보려고 하는데, AWS Elastic Beanstalk, AWS X-ray 등 토폴로지 그림들을 볼 수 있는 서비스들이 있다는 것을 이번에 배웠습니다. 실무에서도 참고해서 활용해 볼만한 서비스라고 생각합니다.
[컬리] 신주호님: 저는 실제로 서버리스를 해본 적이 없어서 그동안은 팀에 서버리스로 뭔가 만들어보자는 제안을 하기가 어려웠는데, 이번에 AWS GameDay를 통한 경험을 바탕으로 좀 더 자신 있게 서버리스 아키텍처를 권유해볼 수 있을 것 같습니다. 또한 여러 가지 이슈를 대응했던 경험도 있다 보니 향후 운영에 도움이 많이 될 것 같습니다.
Q: AWS GameDay 1,2,3등을 차지하신 우승 소감과, 추후에 AWS GameDay를 참석하시는 분들에게 해 드리고 싶으신 말씀이 있으실까요?
[하이퍼커넥트] 진필근 님: AWS GameDay는 이름에서 보여지는 것과 같이 완성도 높은 게임을 즐기는 것 같았어요. 게임 안에서도 높은 점수를 받기 위해서는 선택과 집중이 필요하다고 생각해요. 매번 AWS GameDay에서 점수를 받는 방법은 다르겠지만, 팀에서 가장 효율적으로 점수를 획득할 수 있는 방법을 고안하고 빠르게 분업할 수 있는 것이 가장 중요하다고 생각합니다.
[하이퍼커넥트] 변준우 님: 저는 올해 운 좋게도 AWS GameDay에 두 번 참가해 두 번 모두 우승하게 되었는데요. 좋은 팀원들과 함께 했기 때문에 가능했다고 생각합니다. 데브옵스 엔지니어링과 클라우드 환경에 아주 익숙하지 않은 개발자 분들이더라도 즐긴다는 마음으로 참가하시면 굉장히 재미있을 거라고 확신합니다. 데브옵스 엔지니어가 아니어도 두 번의 우승을 한 저를 보시면서(?) 자신감을 갖고 마음 맞는 분들과 함께 도전해보시면 재미있게 문제들을 즐기면서 좋은 성적까지 거두실 거라고 확신합니다.
[하이퍼커넥트] 김영호 님: 네, 맞습니다. 라이브 서비스를 운영할 때에도 다양한 상황이 발생하고 그것을 대응해야만 하는데, AWS GameDay에서는 그런 경험을 단기간에 할 수 있다는 점이 가장 흥미로웠습니다.
[컬리] 노준혁 님: AWS GameDay에서 마치 실제 회사에서 여러 가지 상황을 대응하는 느낌이었는데요, 상당히 짜릿하고 재미있는 경험입니다. 실무적 경험이 없는 분들께는 좋은 연습 기회가 될 거 같습니다.
[컬리] 박용준 님: 처음에 기대했던 것보다 더욱 재미있었고, 다른 분들도 참석하신다면 마치 방탈출 게임처럼 미션을 풀어가는 재미가 있습니다. 팀워크가 상당히 중요했던 것 같은데, 저희 팀 성진님이 리더십을 발휘해 주신 덕분에 각자의 기량을 발휘하여 좋은 결과를 냈던 거 같습니다. 참석하셨던 모든 분들 덕택입니다!
[컬리] 강성진 님: 저는 좋은 분들과 한 팀이 된 덕이 큰 것 같습니다. 팀 멤버 모두들 너무 잘해주셔서 고맙고 덕분에 2등을 차지할 수 있었던 것 같습니다.
[컬리] 이승윤 님: 어떤 분야에 대해 공부하려면 그에 대한 흥미가 있어야 한다고 생각하는데, AWS GameDay를 통해서 AWS를 탐구해볼 수 있는 동기부여가 더욱 잘 된 것 같고, 또 다 같이 AWS를 공부할 수 있는 기회가 되어서 좋았습니다. 저희 팀 소식을 슬랙에 올리니 무수한 따봉이 달렸어요!
[버즈빌] 임호준 님: AWS GameDay를 참가하면서 어플리케이션 운영을 위한 서비스를 배울 수 있었고, 운영의 필수 영역인 모니터링을 위한 AWS CloudWatch 그리고 CloudTrail는 실무에서도 적용 가능한 유용한 서비스라고 생각합니다. AWS 기반 컨테이너 환경에서 어플리케이션 운영 경험이 많지 않은 개발자 분들에게 적극 추천드리고 싶은 경험이었습니다.
[버즈빌] 황호성 님: 저희 팀은 첫 참가에 3위라는 좋은 결과를 거둬서 너무 기쁩니다. AWS GameDay에서는 여러 가지 돌발 상황들이 시시각각 발생하고, 점수 체계도 마지막까지 승패를 장담할 수 없게 설계되어 있어 끝까지 재미있게 참가했던 것 같습니다. 역전이 가능하니 초반에 잘 안 풀린다고 해서 절대 중간에 포기하지 마시길!
– 최낙권, AWS 어카운트 매니저
– 박지은, AWS 어카운트 매니저