시작하며
안녕하세요. 카카오페이 서버 개발자 베니, 프론트엔트 개발자 저스트와 나나입니다. 저희는 카카오페이 개발직군으로 이번 2022 AWS re:Invent에 참석했는데요. 올해 AWS re:Invent 참석 소감과 추후 AWS re:Invent 참석자를 위한 여러 가지 팁을 알려드리고자 합니다. 저희의 팁이 조금이나마 도움이 되었으면 합니다.
AWS re:Invent란?
AWS re:Invent란 AWS가 2012년부터 매년 진행해온 전 세계 최대 규모 클라우드 컨퍼런스입니다. 2022년에는 11월 28일 (월) ~ 12월 2일 (금) 동안 미국 라스베가스에서 오프라인으로 진행되었습니다. 온라인 참가자를 위한 프로그램도 일부 있긴 하지만, 대부분 오프라인 중심으로 열립니다.
re:Invent에는 크게 Keynote
, Session
, Expo
의 세 가지 행사가 존재합니다.
Keynote
keynote는 re:Invent의 꽃이라고 할 수 있습니다. AWS CEO, 부사장, CTO 등 주요 임원들이 나와서 신규 서비스나 내년 AWS에서 중요하게 생각하는 문제를 발표하는데요. 올해도 마찬가지로 여러 가지 신규 서비스들이 공개되었습니다. 전 세계 수만 명의 사람들이 이를 보기 위해 참석했습니다.
keynote는 오로지 현장에서 기다리는 순서대로 입장합니다. 별도로 예약하는 방식이 아닙니다. 선착순이라고 생각할 수도 있는데요. 시작 전 장소에 도착만 하면 됩니다. 진행하는 홀이 어마어마하게 커서 무리 없이 들으실 수 있을 겁니다. (시작하고 나서는 입장할 수 없으니 이점 유의하시길 바랍니다)
또한 keynote는 유튜브 생중계와 현장 동시통역도 제공합니다. keynote가 진행되는 뒤쪽에서 헤드폰을 받을 수 있는데 이 헤드폰을 착용하면 통역을 들으실 수 있습니다.
re:Invent에 참여하신다면 다른 건 몰라도 하루에 한 번씩 진행되는 keynote는 꼭 들으시길 추천드립니다. 그 현장 분위기와 압도적인 스케일을 경험해 보시면 많은 인사이트를 얻으실 수 있을 거라 생각됩니다.
Session
다양한 주제, 다양한 방식으로 진행되는 session 또한 re:Invent의 주요 행사 중 하나입니다. session은 keynote와 다르게 100% 예약제로 이루어집니다. re:Invent 행사가 시작되기 약 한 달 전부터 온라인 앱과 웹을 통해서 세션 예약을 할 수 있으며, 세션 목록을 한 번 보시고 만약 관심 있는 세션이 있다면 미리미리 예약해 두시는 걸 추천드립니다.
세션은 다음과 같이 여러 가지 방식으로 진행됩니다.
- Bootcamp: 기초부터 하나하나 알려주는 초급 세션
- Breakout Session: 중간중간 발표자와 청중이 자유롭게 토론하며 들을 수 있는 세션
- Chalk Talk: 청중과 가까이서 화이트보드를 이용하는 세션으로 가장 기본적인 세션
- Workshop: 개인 PC를 지참해야 하며, 직접 참여하고 실습까지 해보는 세션
- Geo Breakout, Geo Talk: 영어가 아닌 현지 언어로 진행되는 세션 (한국어 세션도 여기에 해당!)
- 등등..
각 세션은 100 ~ 500까지 Level (난이도)가 구분되어 있습니다. 숫자가 높을수록 어려운 세션이니 예약하실 때 참고하세요. 참고로 기술적인 주제의 세션만 있는 건 아닙니다. 리더십 세션이나 번아웃, 스트레스를 관리하는 방법
같이 부담 없이 들을 수 있는 주제들도 많이 있습니다. 관심 있는 세션 주제를 잘 찾아서 미리 예약해 놓는 걸 추천드립니다.
Expo
Expo는 AWS를 사용하는 전 세계 수많은 파트너사들이 각자 부스에서 신기술과 솔루션을 홍보하는 행사장입니다. 유명한 회사들부터 스타트업까지 셀 수 없을 정도로 많은 회사들이 나와있었습니다. 부스를 돌아다니면서 설문조사를 참여하기도 합니다. 부스 내에서 작게 진행되는 프레젠테이션을 들으면 여러 가지 기념품들을 받으실 수 있습니다. 시간 남을 때 한 바퀴 돌면서 기념품 모으는 것도 쏠쏠한 재미입니다. 기념품은 양말, 스티커, 티셔츠, 텀블러같이 작은 것부터 해서 게임기, 전자제품 등 고가의 기념품들도 많이 있습니다.
단순 기념품 수집 외에 올해는 어떤 회사들이 어떤 솔루션을 만들었는지 보는 것도 매우 유익하고 재밌었습니다. 관심 있는 회사가 있다면 담당자에게 관심을 표현해 보세요. 영어를 다소 못하더라도 주저하지 않아도 됩니다. 담당자들이 친절하게 맞아주기 때문에 대화를 이어나갈 수 있을 겁니다.
AWS re:Invent 2022
2022년 AWS re:Invent에는 어떤 주제들의 내용들이 언급되었을까요? 저희가 보고 듣고 느끼고 온 것에 한해서 간단하게 공유를 드리고자 합니다.
Keynote
올해 Keynote는 Data
, Asynchronous
, 환경
이 주요 Keyword였습니다. 매년 언급되는 보안
과 AWS의 가장 기초 서비스인 EC2
에 대해서도 언급을 하였습니다.
Data
No ETL (extract, transform, load)
우리는 목적에 맞는 DB를 사용하기 위해 ETL를 해야 합니다. (예를 들어 머신러닝이 필요한 경우에는 Redshift로 데이터를 ETL 해야 합니다.) 그러나 ETL은 매우 힘들고 귀찮은 과정입니다. 새롭게 출시된 기능으로 Redshift를 스파크, 오로라와 연동하여 바로 사용 가능하게 되었습니다.
QuickSight 기능 강화
QuickSight는 ML을 지표화하는데 매우 효율적입니다. 또한, 지표를 임베디드 형태로 외부로 제공하기도 매우 쉽습니다. 새로운 기능으로 기존의 차트에 추세를 예측하는 그래프를 추가로 그릴 수 있게 되었습니다.
Asynchronous
이 세계의 모든 일은 비동기로 동작합니다. AWS도 비동기로 동작하기 위해서 노력하고 있습니다. 예를 들어 AWS S3도 비동기로 처리될 수 있도록 지원하고 있습니다. 비동기 처리를 위해서는 하나하나의 작업이 다른 작업과 상호작용하고 인지해야 합니다. 올바른 비동기 처리를 위해서는 event-driven 아키텍처로 구현되어야 합니다. event-driven은 단순한 시스템을 조합하여 복잡하고 진화된 시스템을 만듭니다. 즉, event-driven은 시스템을 느슨하게(decoupled) 만들고 진화하기 쉽게 만듭니다.
AWS Application Composer
event-driven을 쉽게 할 수 있는 새로운 기능이 추가되었습니다. 서버리스 애플리케이션의 아키텍처링, 구성, 구축을 간소화하여 event-driven을 빠르게 진행하도록 도와줍니다.
환경
아마존은 2025년까지 100% 재사용 에너지로 대체할 예정입니다. ENGIE는 재사용, 저탄소 에너지 기반을 구축하는 회사입니다. ENGIE는 AWS의 머신러닝 생태계를 활용해 에너지 사용률을 분석하고 있습니다.
보안
GuardDuty
Amazon GuardDuty는 AWS 계정과 워크로드를 보호하는 지능형 위협 탐지 보안 서비스입니다. 이는 잠재적인 무단 활동과 악의적인 활동을 지속적으로 모니터링하여 감지합니다. GuardDuty는 AWS Region 내에서 AWS CloudTrail 로그, Amazon VPC 플로우 로그 및 DNS 로그의 데이터를 처리합니다.
소개된 신규 기능으로는 AWS EKS에서 컨테이너가 runtime 위협을 감지하는 기능이 추가되었습니다. 즉, 컨테이너가 호스트 노드에 접근하는 시도를 감지할 수 있습니다.
AWS Security Lake
AWS Security Lake가 새롭게 소개되었습니다. Amazon Security Lake는 클라우드, 온프레미스와 사용자 지정 소스의 보안 데이터를 자동으로 한곳에 모아줍니다. Security Lake를 사용하면 전체 조직의 보안 데이터를 매끄럽게 이해할 수 있습니다. AWS vpc, AWS cloudtrail, AWS route 53(dns service), guardduty, iam access analyzer의 데이터를 peta-byte 스케일로 한곳에 모아 분석할 수 있습니다.
EC2
Graviton3 & C7gn
AWS는 EC2 프로세서로 Intel, Amd, Graviton(Amazon Processor) 중에 하나를 선택할 수 있습니다. AWS에서 Graviton은 매우 빠르게 동작하는데요. 기존의 Graviton2보다 25% 향상된 graviton3가 출시된 적이 있습니다. 이번에는 Graviton3를 사용한 EC2인 C7gn가 새롭게 출시되었습니다.
Inf2
머신러닝에 사용되는 Inf1 보다 성능은 4배 향상되고 latency는 90% 감소한 Inf2가 출시되었습니다.
Hpc7g
Hpc6a는 인스턴스는 컴퓨팅 집약적인 고성능 컴퓨팅 워크로드를 효율적으로 실행하도록 최적화되어있습니다. 예를 들면, 전산 유체 역학, 저장소 모델링, 날씨 시뮬레이션, 유한 요소 분석과 같은 것들에 적합합니다. graviton3e와 EFA로 개편된 hpc7g가 새롭게 출시되었습니다.
Session
Amplify, AppSync
프론트엔드 개발자를 위한 세션은 FWM(Front-End Web and Mobile) 트랙으로 제공되었고, 많은 세션들이 AWS의 Amplify 또는 AppSync와 관련된 세션이었습니다.
Amplify (FWM313)
FWM313 세션은 Next.js라는 친숙한 프레임워크를 보고 신청하게 되었습니다. 해당 세션은 AWS Amplify와 Next.js로 SSR 어플리케이션을 빌드하고 배포하는 방법에 대해 다루었습니다. AWS Amplify는 프론트엔드 개발자가 웹앱을 빠르게 빌드할 수 있게 해주는 컴플리트 솔루션인데요. 크게 Amplify Studio, Amplify CLI, Amplify libraries, Amplify Hosting으로 구성되어 있습니다.
이 세션에서는 Amplify Hosting의 기능과 장점에 집중하여 자세히 다루었습니다. AWS Amplify Hosting의 기능에는 git repository 연동, CI/CD, CDN 기능, SSL 인증서 적용과 간편한 도메인 설정이 가능하다는 점, 다른 AWS 서비스와의 통합 등이 있습니다. 이에 따라 트래픽에 따라 오토스케일이 가능하고 서비스의 안정적인 운영이 가능해집니다. 구축도 간편하고, 한번 구축해놓으면 이후 운영 오버헤드도 적게 소요됩니다.
다만 세션에서는 Amplify의 장점에 대해서만 다루었는데요. 완전한 솔루션이다보니 AWS 외 서비스와의 연계가 어렵다는 단점이 존재합니다. 또한, AWS 플랫폼의 서버와 DB를 써야 하다 보니 보안상 제약이 많은 업계에서는 쉽게 사용하기 어렵겠다는 생각이 들었습니다.
AppSync (FWM312)
AWS AppSync는 단일 GraphQL 엔드포인트를 통해 여러 데이터베이스와 마이크로서비스 및 API를 조회하고 서버리스 WebSocket을 통해 Pub/Sub을 제공하여 실시간 환경을 구축할 수 있게 하는 기능입니다. FWM312에서는 AWS AppSync GraphQL 서버리스 패턴으로 웹 API를 모던화하는 방법을 소개했습니다.
Gatsby로 기술 블로그를 구축할 때 GraphQL을 이미 접해봐서 친숙했는데요. AWS AppSync로 백엔드 없이 AWS의 다양한 서비스를 하나의 엔드포인트로 동시에 조회하고 수정과 이벤트 구독까지 가능하다는 점이 인상 깊었습니다. 그렇지만 이렇게 쉽게 읽기/쓰기가 가능하다면 보안 이슈가 있을 것 같았습니다. 대외 서비스보다는 내부 어드민 개발에 유용할 것 같다고 생각했습니다.
Thinking Asynchronously: Integration Patterns for microservices
Asynchronously한 아키텍처를 AWS에서 구현할 수 있는 방법을 소개하는 세션을 듣고 정리해보았습니다.
기존 개발 방식
일반적인 서버 개발은 아래와 같은 순서로 진행됩니다.
api -> compute -> storage
문제가 발생하면 대부분 compute에서 처리합니다. 왜 그럴까요? 그 이유는 compute가 바로 내가 만든 코드이기 때문입니다. 문제에 대한 해결을 compute에 위치하는 것이 편리합니다.
Decoupling your application
If your application is cloud-native, large-scale, or distributed, and doesn’t include a messaging component, that’s probably a bug.
- Timothy William Bray
애플리케이션이 cloud-native하고 scale이 크며 분산처리되었는데 메시징 컴포넌트가 없다면 그건 버그다. 그만큼 메시징 컴포넌트가 필요한 순간이 있을 수밖에 없음을 뜻합니다.
point-to-point (queue)
sender, receiver 구조입니다. (one to one) queue를 통해 receiver가 데이터를 가져갑니다.
publish-subscribe (topic)
publisher, subscriber 구조입니다. (one to many) topic을 통해 broadcast합니다.
dead letter queue
event-driven 아키텍처에서 실패가 발생한 경우에는 dead letter queue를 사용합니다. dead letter queue는 이름에서 유추할 수 있듯이 실패한 레코드를 보관하는 별도의 큐입니다. dead letter queue로 원천 데이터가 보관된 토픽이 아닌 별도의 토픽으로 설정하고 실패한 레코드를 별도로 보관하여 처리합니다.
Event Bus
sender가 receiver에게 메시지를 전달할 때 어떤 receiver에게 전달해야 할지 갈음해야 하는 경우에 bus를 사용합니다. 이런 기능은 aws eventbridge에서 간편하게 사용가능합니다. 계정이나 리전에 이벤트를 전송할 권한을 부여할 수도 있습니다. aws에는 이런 event bus를 가능하게 하는 많은 툴들이 존재합니다.
- aws sqs
- aws eventbridge
- aws sns
- aws stepfunction
Expo
AWS Marketplace의 많은 솔루션 업체와 영어로 대화할 수 있고 데모 시연도 해볼 수 있었습니다.
dynatrace
dynatrace를 방문하여 관련자와 이야기해 보고 데모 시연을 간단하게 보았습니다. dynatrace를 사용해 본 적은 없지만 그 명성답게 강력한 모니터링을 지원하였습니다. 마이크로 서비스의 전 구간을 trace하며 인프라 모니터링부터 서비스 간의 의존성까지 완벽히 파악하여 트랜잭션 추적, 성능, 비즈니스 메트릭을 제공합니다.
solace
solace의 서비스는 event-driven에 정말 진심이었습니다. 이벤트를 설계하고 메쉬를 구축해서 전체적인 이벤트를 관리하고 시각화할 수 있었습니다.
cockroachdb
분산 데이터베이스로 절대 죽지 않는 데이터베이스라는 콘셉트를 가지고 있습니다. NoSQL 특징과 MySQL 특징을 모두 가지고 있으며 PostgreSQL 문법과 호환이 됩니다.
Influx Data
Influx Data에서는 InfluxDB에 대해 소개받았습니다. InfluxDB는 Time Series Database로 시간의 흐름대로 데이터를 관리할 때 사용합니다. 예를 들어 시간 별 앱 사용률을 원하는 기준으로 지표 화할 때 사용할 수 있습니다.
datadog
dynatrace와 마찬가지로 또 하나의 강력한 모니터링 서비스입니다. 사람이 너무 많아서 관계자와 직접 이야기해 볼 기회는 없었지만 사람들의 많은 관심을 받고 있는 서비스였습니다. 또한, 다른 업체들과 이야기해보면 많은 서비스들의 모니터링툴로 datadog을 사용하고 있었습니다.
기타
이 외에 intel, amd, redis, elastic, segment, neo4j, mongodb, jupiterOne, splunk, docker, riot games 등.. 저를 비롯한 개발자들에게 친숙한 서비스도 많았습니다. 따로 찾아가서 설명을 듣지는 않았지만 이렇게 많은 업체들이 AWS와 클라우드에 관심을 가지고 있다는 사실을 알 수 있었습니다.
AWS re:Invent 참석 Tip
온라인 커뮤니티 활용
국내 AWS 커뮤니티 중 AWS한국사용자모임 이라는 커뮤니티가 있습니다. 해당 커뮤니티를 통해 re:Invent 소식과 현장 소식 등을 공유 받으실 수 있는데요. 슬랙도 존재하니 관심 있으신 분들은 슬랙에 들어와 한국인 분들과 소통하시면서 re:Invent를 즐기는 것도 한 가지 방법입니다.
Badge
현장에서 대회 첫날 가장 먼저 해야 할 것은 Badge를 픽업하는 것입니다. 이 Badge를 통해서 모든 행사장 출입, Keynote 및 Session 참석, 기념품 수령 등이 가능합니다. 대회 첫날에는 인파가 몰려 혼잡하기 때문에 조금 서둘러서 Badge를 수령하는 것을 추천합니다. Badge 픽업 시에는 여권이 필요하니 잊지 마세요.
Badge에는 온라인으로 사전 등록한 프로필 사진이 들어가고 만약 온라인으로 등록하지 않았다면 현장에서 바로 촬영합니다. (퀄리티가 좋지 않으니 사전에 온라인으로 꼭 등록하세요)
또한 만약에 Badge를 분실 하셨다면 여권 지참 시 현장에서 바로 재발급이 가능합니다. 재발급되면서 동시에 이전에 받은 Badge는 사용이 불가능하니 만약 분실된 Badge를 찾았을 때는 잘 구분하는 게 중요합니다.
세션 예약은 타이트하지 않게
re:Invent 행사는 라스베가스 내에 5-6개의 호텔에서 동시에 진행됩니다. 따라서 세션도 다양한 호텔에서 진행되는데요. 호텔 간 거리도 걸어서 최소 20분 이상 소요되기 때문에 타이트하게 세션을 예약해서 듣는 건 어렵습니다. (행사 측에서 호텔 간 셔틀버스도 제공해 주니 먼 거리 이동 시에는 셔틀버스를 탑승하셔도 됩니다.)
또한 무조건 15분 전엔 강의장에 도착해야 합니다. 세션 시작 15분 내에 입장하지 않으면 현장에서 기다리는 사람들을 입장시켜주기 때문입니다. 이런 점들을 고려하여 하루 기준으로 오전 1개, 오후 1-2개 세션 정도만 들어도 거의 대부분의 시간을 소요할 것입니다. 미리 세션을 예약하실 때 타이트하지 않게 예약하는 것이 매우 중요합니다.
미리 세션 예약을 하지 못했더라면?
보통 행사 일주일 전부터는 웬만한 세션들의 예약이 꽉 차있습니다. 따라서 세션 예약을 하지 못하는 경우도 많이 있을 텐데요. 그럴 때는 세션 시작 30분 전에 미리 강의장에 가셔서 Waiting list로 줄을 서면 됩니다. 보통 노쇼가 있으며, 노쇼가 없더라도 일부 인원은 스탠딩으로 세션을 들을 수 있게 해주기 때문입니다. (Waiting list도 너무 많으면 아예 줄을 못서게 하니 이 점 참고해 주세요.)
그리고 세션 하루 이틀 전에는 예약을 취소하는 케이스도 많이 있습니다. 따라서 수시로 앱에 접속하여 예약을 할 수 있는지 확인하여 자리가 났을 때 재빠르게 예약을 하시면 됩니다.
다녀온 소감
just.doit
세계 최대 규모의 IT 행사에 이렇게 좋은 기회로 참석하게 되어서 무척 좋은 경험이었고 뜻깊은 시간이었습니다. 개인적으로는 영어를 좀 더 잘했으면 더 유익했을거란 생각에 아쉬운 마음이 많이 들기도 했습니다.
또한 저에게는 단순히 AWS 서비스들을 알게 된 것뿐만 아니라, 앞으로 개발하는 데 있어서 여러 문제들을 다양한 관점, 다양한 아키텍처로 고민하고 생각해 보게 되는 계기가 된 것 같습니다. 기회가 된다면 꼭 한번 다시 참석해 보고 싶은 그런 컨퍼런스였습니다!
nana.na
좋은 기회로 AWS re:Invent에 참여하게 되어서 행사 기간 동안 많은 것을 보고 배울 수 있었습니다. AWS의 다양한 서비스들에 대해 조금 더 관심을 갖게 되었고 프론트 개발자로서 앞으로 사내에서 어떤 식으로 AWS를 활용할 수 있을지에 대한 추가적인 고민과 학습거리를 안겨준 행사가 아니었나 싶습니다. 뛰어난 동료들과 함께 참여한 컨퍼런스라 더 값진 경험이었던 것 같습니다!
benny.ahn
서버 개발자로서 이번 AWS 행사에 참석하게 되었습니다. 이번 행사를 통해 가장 크게 느낀 점은 ‘AWS가 클라우드 생태계에서 얼마나 중요한 역할을 하고 있는가?‘였습니다. 해외의 AWS 사용자들은 AWS에 정말 진심이고 열광적인 모습을 보여주었습니다. 일반 참가자, 세션 발표자, 엑스포 참가자까지 먼 타국에서 비행기를 타고 날아와 AWS의 비전을 남들보다 먼저 알고자 했습니다.
또한, AWS가 제시하는 아키텍처 그림이 곧 클라우드의 미래와 직결되어 있을 정도로 AWS가 클라우드 환경에서 매우 중요한 역할을 하고 있습니다. 저도 개발자로서 AWS의 중요성을 다시 한번 깨달았습니다. 현재 AWS를 사용하든 사용하지 않든 AWS의 비전을 이해하려는 노력이 꼭 필요하다고 생각했습니다.
마치며
AWS re:Invent에 대해서 소개를 해드렸고, 2022년 행사에서 나왔던 내용들을 간단하게 정리해 보는 시간이었습니다. 관심 있으신 분들은 AWS Event Youtube에서 관련 영상들을 직접 찾아보시는 것도 추천드립니다! 또한 이 글을 통해서 추후 re:Invent에 참여하실 분들께 조금이나마 도움이 되셨기를 바랍니다. 감사합니다.