2024/05/16(목) AWS Summit
데이터 처리도 이제는 컨테이너로, 우아한 형제들의 데이터 플랫폼 혁신
Section titled “데이터 처리도 이제는 컨테이너로, 우아한 형제들의 데이터 플랫폼 혁신”컨테이너로 데이터 처리하기
Section titled “컨테이너로 데이터 처리하기”-
데이터 처리의 어려움
- 인프라 구성
- 다양한 데이터 포맷, 프레임워크
- 급격한 데이터량 증가
- 빠르게 변화하는 비즈니스
-
컨테이너와 데이터 처리를 결합한다면?
- 이미지 기반으로 쉽게 패키징할 수 있음
- 컴퓨팅 작업을 빠르고 유연하게 확보할 수 있음
-
대표적인 방법: EMR on EKS
- 특징
- 하나의 EMR 워크로드를 다수의 Pod로 구성
- EKS 워크로드에 필요한 코드, 라이브러리, 프레임워크를 컨테이너 이미지에 내장
- EMRFS/S3를 데이터 저장소로 활용
- Spark, Flink 지원
- 장점
- 빠르고 유연한 컴퓨팅 자원 활용 (Karpenter 활용)
- 하나의 EKS 클러스터에서 다양한 EMR 워크로드 처리 가능
- 다양한 오픈소스와 결합 가능
- AI: mlflow, kuberay
- 데이터 처리: EMR, trino
- 노트북: jupyterHub, Zeppeling
- 스케줄러: YuniKorn, Volcano
- 워크플로우: Airflow 등
- 특징
우아한 형제들의 데이터 플랫폼 소개
Section titled “우아한 형제들의 데이터 플랫폼 소개”- 우아한 형제들은 추천 서비스, 리뷰 관리, 그 외 수많은 자동화를 위해 데이터를 활용하고 있다.
- 하루에 10억건 이상(1TB)의 로그를 관리, Airflow에서 700개 이상의 태스크 수행, 분석 클러스터 쿼리 4만개 이상..
컨테이너 기반 데이터 플랫폼 구축 여점
Section titled “컨테이너 기반 데이터 플랫폼 구축 여점”-
EC2 기반 플랫폼의 한계
- 비용 증가: EMR 고정 비용, 신규 EC2 타입 적용 어려움, 오버 프로비저닝
- 낮은 민첩성: 불규직한 대량 트래픽, JVM 자원 경합
- 어려운 유지 보수: 태스크별 의존성 주입, sg 및 방화벽 설정, EMR 버전 업그레이드
-
이관 과정
- 한계점 봉착으로 Airflow 이관
- EMR on EKS를 포함한 데이터 처리 시스템 이관
- Spot Instance와 EKS 사용했을 때 보다 3~4배 퍼포먼스 차이 있었음, 최적화 되어있음
- 데이터 분석 도구 및 서빙 API를 EKS로 이관
-
구조
- 인프라: Loki와 Prometheus를 기본적으로 사용(Woowacat), ArgoCD, Karpenter, KEDA
- 파이프라인: Apache Airflow
- 프로세싱: EMR on EKS, Trino , Flink, Kafka connect
- BI/분석: Tableau, Reash 등
-
효과
- 비용 개선: 상시 운용 노드 불필요, Karpenter/Yunikorn으로 효율적 스케일링
- 통합 자원 활용: 환경 통합으로 개발-배포 리드 타임 감소
- 강력한 자원 격리: Pod 기반 자원 할당으로 자원 격리
분석 환경 고도화를 위한 노력
Section titled “분석 환경 고도화를 위한 노력”-
Yunikorn 적용
- 반복적인 VPC 서브넷 고갈(Pod마다 IP 할당해야해서..)
- 단순히 서브넷을 크게 해서 해결할 수 있는 문제가 아님.
- 단일 작업이 여러 AZ에 퍼져 처리 속도가 낮아짐
- 각 Job에 필요한 리소스가 각각 충족되지 않아 제대로 실행되지 않음 (Gang 스케줄링으로 해결)
- 노드에 비는 자원이 생김 (Bin Packing)
- 반복적인 VPC 서브넷 고갈(Pod마다 IP 할당해야해서..)
-
Airflow 기반 셀프 서비스
-
공용 개발 환경의 문제점
- DAG 의존성/패키지 충돌, 데이터 오염
- 브랜치 전략 적용 불가능
- EMR on EKS는 Virtual Cluster이기 떄문에 프로비저닝 타임 없이 개인 환경 분리 가능
-
On-demand 개인 전용 환경 제공
- Custom Resource 구성
- 사용자마다 개별 “git branch sync”로 개발중인 DAG 연동
-
고도로 추상화된 작업 제출
- 사용하기 복잡한 부분을 추상화 하여 쉽게 서러정할 수 있도록 했다.
- EMR Contianers API 기반
- Metric 기반 동적 자원 할당
-
모니터링 환경 구축
- Spark History 서버로 클러스터 작업 이력 통합
- Job Runner, Spark Driver/Executor의 로그 및 시스템 메트릭을 Prometheus로 통합
-
-
EMR 컨테이너 이미지 관리
- 커스텀 EMR 컨테이너 이미지 관리를 위한 CI/CD 운영
- 작업 환경별 이미지 생성/활용
미래 전략 및 마무리
Section titled “미래 전략 및 마무리”-
Remote Shuffle Service를 활용
- Shuffle 데이터 있는 노드가 작업 끝낼 때 까지 대기하는 기능
- Shuffle 서비스는 정보가 모였다 흩어지기 때문에 I/O 성능 좋은 노드를 사용하는 게 중요한데, 이 기능을 AWS가 곧 지원할 예정이라고 함.
-
In-place 리소스 할당 조정
- Pod 재생성 없이 다이나믹하게 Pod 크기를 조정
-
권한/인증 개선
-
EKS Anyware
- IDC(온프레미스)에 EKS Anywhere 클러스터 구축
- 연산 작업이 많은 워크로드는 EKS Anywhere에서 처리 수행
- EKS Any where는 AWS의 IAM Rolw과 연동하여 Seamless하게 활용 하는
-
마무리
- 데이터 처리를 위해 EMR on EKS를 활용하여 비즈니스 민첩성 확보, 안정성 확보, 데이터 기반 의사 결정을 개선할 수 있었다.
넥슨의 LLM 에이전트 길들이기: 인프라 모니터링 서비스 적용 사례
Section titled “넥슨의 LLM 에이전트 길들이기: 인프라 모니터링 서비스 적용 사례”Bedrock
Section titled “Bedrock”-
LLM은 단순히 문서 요약, 검색, 계산을 수행하는 솔루션이 아니라 생각하는 기계다.
- LLM의 사고 능력은 산업계의 다양한 실제 문제를 해결하는데 적극 활용되고 있다. (여행 계획, 프로그래밍, 데이터 분석)
-
Bedrock 서비스는 LLM을 비롯한 여러 파운데이션 모델로 생성형 AI 애플리케이션을 쉽게 구축하고 확잘할 수 있다.
- 자체 데이터를 활용해 맞춤형 모델을 생성할 수 있고, 엔터프라이즈 수준의 보안을 보장받는다.
넥슨이 개선하고 싶은 문제
Section titled “넥슨이 개선하고 싶은 문제”-
내부용 백오피스 서비스 다수 운영
-
서비스 별 담당자 정보와 매뉴얼 최신화 문제
-
이슈 발생시 개별로 확인 -> 많은 시간 소요
-
연관 정보를 한번에 쉽게 조회할 수 있다면?
- 챗봇 인터페이스에 관심을 갖게 됨
-
AWS의 Professional Service 지원을 받아 LLM 챗봇을 개발했다.
-
Javis처럼 스스로 상황을 파악하고 최적의 답변을 내놓는 수준을 기대
- 현실적으로는 복수의 서비스를 서로 연동하여 의미있는 답변을 나타내는 챗봇을 구현하기로 함
매트릭 데이터 분석 챗봇
Section titled “매트릭 데이터 분석 챗봇”-
포맷이 다양한 다른 데이터보다 간단하게 적용 가능하기에 메트릭 데이터에 대한 챗봇을 첫 목표로 잡았음
-
서비스앱 활용하여 서비스간 정보를 연동
-
사용자 접근성을 유지하기 위해 LLM 챗봇 형태로 구현
-
여러 과정의 스프린트를 진행하며 속도, 정확도, 비용을 개선해나감
-
만족스러운 점
- AWS 가이드와 긴밀한 협업으로 TF에 참여한 담당자의 역량 향상과 노하우 습득
-
아쉬운 점
- 기대에 못 미치는 답변 품질
- 서비스간 연결을 위한 Key Data가 필요했다.
-
목적
- 데이터간 연결고리를 자동으로 확보해야 한다.
- 엔지니어-서비스-호스트-메트릭을 식별해야함
- 변경된 정보가 즉시 반영되어야 한다.
- 다양한 형태로 표현해야한다.
- 데이터간 연결고리를 자동으로 확보해야 한다.
-
실시간 메트릭을 반영하여 답변해야하기에 파인튜닝은 적합하지 않음
-
따라서 Bedlock으로 모델 구성, LangChain으로 프롬프트 엔지니어링 했음
ReAct 프롬프팅
Section titled “ReAct 프롬프팅”-
작업 실행 후 실행 결과를 주입하는 방법론
- LangChain에서 주입 기능을 지원해줌 (문서)
-
ReAct로 초기 구성하였음
- 기능은 충분하지만 응답 지연 및 환각 문제 발생
이슈 및 해결
Section titled “이슈 및 해결”-
Latency 문제
- 응답 지연은 토큰의 양과 LLM 호출 횟수에 영향 받음
- 반복 주입마다 Latency가 늘어남
- -> 반복 빈도 최소화
-
Hallucination 문제
- 입력이 길고 대화 텀이 많아질수록 전체 텍스트가 적절히 처리되지 않음 (질문 의도가 희석)
- -> 모델 분리 검토
- Claude 2.1은 품질이 높고, Claude Instance는 빠르니 둘을 작업 단위로 섞어쓰자.
-
Multi Agent
- 역할별 임무 부여: 각 역할에 특화된 세가지 모델 분리
- Persona 부여, 대화 및 의도 파악, 저장
- ReAct Agent, 도구를 이용한 data 조회
- API RAG 등의 정보 전달 서비스
- 팁
- @mention 기능으로 다음 대화 상대를 결정
- Return Direct 과정으로 역할 외 과도한 개입 제한
- 역할별 임무 부여: 각 역할에 특화된 세가지 모델 분리
-
Plan And Execute
- 초기 계획에 큰 리소스 투자가 필요
- 실행간 결과 공유
- 반성을 통해 더 완별한 Plan 완성
- LangChain의 RumManager로 개선 가능
-
Task Tools
-
기타 기법
- Intent 분석
- 사용자의 발화에서 목적이나 의도를 확실하게 파악
- Slot Filling
- 부족한 정보 재질의
- Stream
- 스트림 레이턴시 감소
- Intent 분석
- 아직 레이턴시와 비용이 좋은 수준은 아니지만, 앞으로 어떻게 나아가야할지 알게 됨
- 아 레이턴시랑 정확도 아쉽다~
- 내일은 LLM 모델이 알아서 더 빨라지지 않을까? ㅋㅋ
- 그 일이 실제로 일어났습니다. 인공지능 모델의 발전이 정말 빠르게 이뤄지고 있다.
-
- AI를 활용하여 개발할 때에는 변화에 능동적으로 대응하며 미래 방향성을 확립해야한다.
디지털 자산 플랫폼으로의 첫 걸음, 토큰증권 시스템 on AWS
Section titled “디지털 자산 플랫폼으로의 첫 걸음, 토큰증권 시스템 on AWS”토큰 증권이란 무엇인가?
Section titled “토큰 증권이란 무엇인가?”-
= 블록체인으로 발행하는 증권
-
전세계적으로 발행된 토큰증권의 시가총액은 약 23조원
-
STO(Security Token Offering)
- 증권 토큰 발행의 약자
- 분산원장 기술을 기반으로 디지털화딘 자본시장법 상 증권을 발행하는 것을 뜻함
- ICO와 IPO의 중간 단계
-
투자 계약 증권
- 다른 사람이 하는 공동사업에 금전 등을 투자하고 결과에 따라 손익을 귀속 받는 권리가 표시된 것
-
예전에는 종이로 실물 증권을 가지고 있었는데, 현재는 전자 증권이 발전되었다.
-
이때 증권 데이터를 하나의 중앙 시스템에 기록하지 않고 분산 원장에 기재하는 것이 바로 토큰증권 기술이다.
-
토큰증권을 발행하면 자회사 할인으로 돈이 이동하는 절차에서의 문제없이 바로 자금을 전달할 수 있다.
-
STO를 통한 경쟁 구도의 변화
- 기존의 증권사는 상장된 상품을 동일하게 팔았지만, STO가 도입되면 증권사가 차별화된 상품, 마케팅으로 증권을 발행할 수 있다.
-
바뀌게될 점
-
금융 상품, 증권 발행, 자산 유동화 혁신
-
사고의 변환: 주식 -> 코인
-
영화관은 의자, 환경을 기준으로 마케팅하지만 OTT는 컨텐츠를 기준으로 마케팅하는 것 처럼,
토큰증권 동향 분석
Section titled “토큰증권 동향 분석”- 22년 토큰증권 발행 체계 정비 방향을 발표했다. 금융위원회는 2024년 본격적 제도 시행을 목표로 관련 법안을 정비 중
- 토큰증권 정책의 핵심 방향은
- 발행은 발행인 또는 계좌관리자가,
- 유통은 KSD의 심사와 관리를 거쳐 KRX에서 하는 것임
- 증권사들은 신규 사업기회로 토큰증권을 선정하여 관련 사업 준비에 박차를 가하고 있음
- 토큰증권 시장 선점에 대한 금융권 니즈가 커져, 대형 증권사를 중심으로 은행, 통신사 등 유관 기업들이 모여 다양한 ‘토큰증권 협의체’가 구성되고 있음
토큰증권 추진 고려사항
Section titled “토큰증권 추진 고려사항”- 토큰증권 사업은 전통 자산 시장에서 디지털 자산 시장으로 진입하는 기반을 확보할 마중물이다.
- 기존 주식 업무와 비슷하지만, 토큰증권은 사진, 미디어 등 다양한 대상으로 발행되기에 그러한 특성을 고려해야함
-
STO 사업모델은 어떻게 가져가야하는가?
- 발행형: 자체/발행대행에 의한 상품발행 모델
- 초기 시장선점을 위하여 고객 니즈에 맞는 상품 선점 및 발국ㄹ 역량이 필수적
- 유통형: 타사상품 유통(매매) 모델
- 초기 시장 형성에 따라 유통 시장 규모를 고려해야함
- 각 사별 다양한 블록체인 표준에 유통
- 플랫폼의 기술적 인터페이스 방안 수립 및 실제 구현 필요
- 혼합형: 상품 발행 및 타사 상품 유통 매매 혼합 모델
- 초기 사업투자비용이 가장 많이 투자됨에 따라 모델 준비 필요
- 발행형: 자체/발행대행에 의한 상품발행 모델
-
아키텍처 구현 방향은?
- 기존 Lagacy와의 호환 위해 Middleware로 처리
- 공동망 노드 구성하는 경우도 있음
- 공동 분산원장 설치/운영을 위한 별도의 전산센터 또는 클라우드 환경 도입 필요
- 클라우드 도입 시 노트간 연결 위한 전용선 설치 수량 감소로 인한 비용 절감
- 동일 환경 내 설치로 합의 알고리즘 소요 시간 감소 예상
-
토큰증권 플랫폼 사업 추진 방식은?
- 토큰증권은 기존과 다르게 새로운 생태계를 만들어 각자 마케팅 요소, 차별점을 만들어야 한다.
- 시스템 관점의 MVP 설계 필요
- 토큰증권은 Calu-chain 모델이 아닌 앞으로 확대된 디지털 시장으로의 진출을 위한 교두보
- 예측이 어려운 장외거래시장 수요 대비 및 블체 기술의 성능적인 한계에 대한 대비 필요
- 클라우드 도입을 통한 성능 안정성 및 비용 효율성 확보 필요
- AWS는 금융평가원 안전기준을 통과하였기 때문에, 토큰증권 플랫폼 구축시 사용하면 좋다.
그립의 클라우드 거버넌스와 로그 분석 혁신
Section titled “그립의 클라우드 거버넌스와 로그 분석 혁신”비즈니스 성장과 다중 계정 관리의 중요성
Section titled “비즈니스 성장과 다중 계정 관리의 중요성”- AWS Control Tower: 다중 계정 설정을 자동화 하는 서비스
- 다중 계정을 관리해야할 때 아래와 같은 어려움이 있다.
- 소수의 인프라 인력으로 많은 계정 및 자원 관리를 수행해야함
- 효율적인 서비스 통제 및 운영 환경 보안 유지가 어려움
- 클라우드 운영 및 관리가 어려움
- Control Tower를 사용하면 다중 계정 환경의 설정을 자동화한다.
- 제공 기능:
- 자동 계정 생성
- 보안 가드레인
- 통합 사용자/권한 관리
- 규정 준수 상태 모니터링을 위한 대시보드
- 다중 계정을 관리해야할 때 아래와 같은 어려움이 있다.
- AWS Solution Library:
- 즉시 배포 가능한 소프트웨어 패키지, 사용자 지정 가능한 아키텍처를 제공
- 비즈니즈 요구사항 충족을 위해 적은 시간만 들여도 됨.
그립 컴퍼니 소개
Section titled “그립 컴퍼니 소개”- 이커머스 라이브 플랫폼
- 작년 5월에 AWS 마이그레이션을 했다.
- AWS Native 솔루션을 사용하여 거버넌스 및 모니터링 체계를 구성하기로 결정
ISMS 도전과제 및 해결방안
Section titled “ISMS 도전과제 및 해결방안”- 매출액이 100억 이상인 경우 ISMS-P 심사 대상
- AWS 기반의 거버넌스 및 모니터링 방안 마련 필요
거버넌스 체계 구성
Section titled “거버넌스 체계 구성”-
Control Tower 활용
- 계정 분리
- AWS IAM Identity Center
- 중앙 집중적 네트워크 관리 체계
- Guardrail
- ISMS 심사 대비에 유용함
-
계정을 용도별로 나눠서 쓰고 있다.
-
IAM Identity Center
- 용도별 그룹 생성
- 그룹에 권한 및 계정 매핑
- 개인은 용도에 맞는 그룹에 할당
- 그룹 생성은 팀/사용 용도/권한을 고려하여 생성
- 부득이한 경우에 (EKS 사용 권한 부여 또는 특정 서비스 사용하는 경우에) 인라인으로 추가하기도 함
- 용도별 그룹 생성
-
Network 계정에 Transit Gateway를 띄우고 라우팅 테이블을 세세하게 설정해놓았음
-
CfCT를 활용한 K-ISMS 팩 적용
- Service Catalog
- 템플릿처럼 저장, 프로비저닝할 수 있었다.
로그 모니터링 여정
Section titled “로그 모니터링 여정”-
WAF, Confg, CLoudTrail 등 AWS native 보안 서비스에 대한 통합 모니터링 부재
-
다중 계정 체계 적용으로 보안 현황을 계정 별로 봐야되는 불편함 발생
-
Centralized Logging with Open Search:
- 다중 계정을 지원하는 로그 시스템, 계정간 로그 수집 기능 제공
- OpenSearch 기반
- 대시보드가 제공됨
- 쉬운 보안 서비스 로그 Pipeline 설치
- AWS 서비스 로그 뿐만 아니라 애플리케이션 로그까지 자동 수집 가능
야놀자의 글로벌 신규 사업 진출 및 확장 노하우
Section titled “야놀자의 글로벌 신규 사업 진출 및 확장 노하우”야놀자와 AWS의 글로벌 협업
Section titled “야놀자와 AWS의 글로벌 협업”-
파트너 유형 5개
- 서비스 파트너
- 디스트리뷰션 파트너
- 하트웨어 파드너
- 트레이닝 파트너
- 소프트웨어 파트너 <- 야놀자는 여기에 해당함
-
아놀자의 B2B
- 숙박 업소의 광고, 숙박업소 관리 등을 도와주는 SaaS 서비스를 하고 있음
-
AWS가 글로벌 진출을 어떻게 도움?
- 기술을 검증해줌 (AWS Solutio Architect)
- 전문성을 인증해줌 (Trabel & Hospitality Software)
- AWS 세일즈 네트워크를 활용한 글로벌 시장 진출 가속화 (오..?)
글로벌 여행 산업을 주도하는 야놀자
Section titled “글로벌 여행 산업을 주도하는 야놀자”- 현지 서비스 인수를 통한 성장
- 하지만 현지 서비스는 가격 구조, 정책이 각각 다 다르다.
- 그걸 통합해서 제공하는 솔루션을 만들자는 아이디어로 사업을 확장했음
- 현재는 해외에서 발생하는 거래의 비율이 많이 높아졌다.
야놀자의 글로벌 사업
Section titled “야놀자의 글로벌 사업”- 온 프레미스는 힘들더라.
- EC2, S3, Aurora, ECS, SES를 쓰고 있다.
글로벌 확장을 위한 야놀자의 전략 방향성
Section titled “글로벌 확장을 위한 야놀자의 전략 방향성”- 여행을 더 쉽고 빠르게 만들자
- pre-trip이 아닌 in-trip과 post-trip을 모두 관리하는 서비스로 나아갈 것이다.