AWS 클라우드를 활용하면 사용자의 트래픽에 따라 IT 인프라 아키텍처를 확장할 수 있습니다. 이번 강연에서는 서비스 초기의 작은 트래픽에 대응할 수 있는 단순한 아키텍처로 시작해 사업 성장 후의 수백만 사용자에 달하는 대규모 트래픽을 지탱할 수 있는 고확장성 아키텍처에 이르기까지의 단계별 아키텍처 구성 방법에 대해 소개해 드리고 컴퓨팅 및 데이터베이스 선택 및 사용자 증가에 따른 트래픽 경감 방법, 오토스케일링 및 모니터링과 자동화, DB 부하 분산, 고가용성 확보 등에 대한 다양한 모범사례를 알려드릴 예정입니다.
AWS 클라우드를 활용하면 사용자의 트래픽에 따라 IT 인프라 아키텍처를 확장할 수 있습니다. 이번 강연에서는 서비스 초기의 작은 트래픽에 대응할 수 있는 단순한 아키텍처로 시작해 사업 성장 후의 수백만 사용자에 달하는 대규모 트래픽을 지탱할 수 있는 고확장성 아키텍처에 이르기까지의 단계별 아키텍처 구성 방법에 대해 소개해 드리고 컴퓨팅 및 데이터베이스 선택 및 사용자 증가에 따른 트래픽 경감 방법, 오토스케일링 및 모니터링과 자동화, DB 부하 분산, 고가용성 확보 등에 대한 다양한 모범사례를 알려드릴 예정입니다.
본 세션에서는 Amazon의 관리형 데이터베이스 서비스(RDS) 중 기존 상용데이터베이스의 5배 성능 및 1/10 가격으로도 확장성을 보장하는 Aurora에 대한 소개 및 사용법 그리고 기존의 DB에서의 마이그레이션 방법에 대해 소개해드립니다. 10월 리인벤트를 통해 동경 리전에 Aurora를 사용가능하게 되었습니다.
[AWS Dev Day] 앱 현대화 | DevOps 개발자가 되기 위한 쿠버네티스 핵심 활용 예제 알아보기 - 정영준 AWS 솔루션즈 아키...Amazon Web Services Korea
쿠버네티스에 어플리케이션을 손쉽게 배포하는 방법은 무엇일까요? 복잡하게 배포된 어플리케이션의 파드들은 어떻게 디버깅하고 로깅해야 할까요? 또한 요즘 자주 이야기 되는 클라우드 네이티브 아키텍처로 설계된 어플리케이션은 어떻게 만들고 배포해야하는 걸까요?삼성전자 무선사업부에서 삼성헬스를 EKS 에 배포한 사례를 살펴보며, 이러한 문제를 어떻게 해결했는지 알아봅니다. 또한 복잡하게만 느껴졌던 쿠버네티스의 어플리케이션 배포와 클라우드 네이티브 아키텍처의 베스트 프렉티스를 EKS 에 어플리케이션을 배포하고, 관리하는 예제를 통하여 간편하게 이해할 수 있게 도와드립니다.
VM과 컨테이너 상에서 Apache & Tomcat 설치, 실행 그리고 배포 데모
데모 요약 : 수작업으로 진행하는 가상화환경과 OCP 환경(Dockerfile)의
간단한 apache / tomcat 설치 및 실행하는 비교 데모 입니다.
데모 내용 : 물리서버 또는 가상화 환경에서 수작업으로 진행했던 배포 작업들이 컨테이너 환경에서 원클릭으로 배포하는 영상을 보여주는 데모입니다. 컨테이너 환경에서의
배포는 수작업으로 하는 배포 대비 상상이상의 시간을 아낄 수 있습니다.
오픈나루 데모 URL : http://www.opennaru.com/seminar/%ed%81%b4%eb%9d%bc%ec%9a%b0%eb%93%9c-%eb%84%a4%ec%9d%b4%ed%8b%b0%eb%b8%8c-%eb%8d%b0%eb%aa%a8-%ec%9c%a0%ed%8a%9c%eb%b8%8c/
오픈나루 비대면 워크샵 URL : http://www.opennaru.com/seminar/%ed%81%b4%eb%9d%bc%ec%9a%b0%eb%93%9c-%eb%84%a4%ec%9d%b4%ed%8b%b0%eb%b8%8c-%ec%9b%8c%ed%81%ac%ec%83%b5/
마이크로서비스 스타일로 만들어진 시스템을 모노리틱 스타일로 이관한 사례와 함께 스프링을 이용해 모듈형 모노리스(modular monoliths)를 만든 경험을 바탕으로 모노리틱/마이크로서비스 보다 본질적인 문제를 제기하고, 문제 해결을 위한 아이디어와 코드를 공유합니다.
https://github.com/arawn/building-modular-monoliths-using-spring
이 자료는 2019년 KSUG 세미나에서 진행한 "잘 키운 모노리스 하나 열 마이크로서비스 안 부럽다"를 기반으로 몇가지 내용을 추가하고, 전개 방식을 다듬어 조금 더 친절하게 만들어졌습니다.
OpenSearch는 배포형 오픈 소스 검색과 분석 제품군으로 실시간 애플리케이션 모니터링, 로그 분석 및 웹 사이트 검색과 같이 다양한 사용 사례에 사용됩니다. OpenSearch는 데이터 탐색을 쉽게 도와주는 통합 시각화 도구 OpenSearch와 함께 뛰어난 확장성을 지닌 시스템을 제공하여 대량 데이터 볼륨에 빠르게 액세스 및 응답합니다. 이 세션에서는 실제 동작 구조에 대한 설명을 바탕으로 최적화를 하기 위한 방법과 운영상에 발생할 수 있는 이슈에 대해서 알아봅니다.
PUBG: Battlegrounds 라이브 서비스 EKS 전환 사례 공유 [크래프톤 - 레벨 300] - 발표자: 김정헌, PUBG Dev...Amazon Web Services Korea
PUBG: Battlegrounds를 위한 게임 관련 인프라를 EKS 기반 환경으로 모두 전환한 경험에 대해 공유해 드릴 예정입니다. PUBG의 글로벌 서비스를 위한 인프라 구성에 대해 간단히 소개하고, 라이브 서비스 중인 인프라를 EC2 기반에서 EKS 기반으로 점진적으로 전환하면서 겪었던 문제들과 소중한 경험들을 사례를 통해 전달해드립니다.
Amazon Elastic File System(EFS)은 클라우드 기반 네트워크 파일 시스템으로서 손쉽게 확장 가능한 탄력적인 파일 스토리지를 제공합니다. 다수의 Amazon EC2에 탑재하거나 Direct Connect를 통해 온프레미스와 연동 가능하며, 웹 콘텐츠, 엔터프라이즈 애플리케이션, 미디어 및 DB 백업 등 다양한 워크로드에서 활용 가능합니다. 본 세션에서는 지난 5월 서울 리전에 출시한 EFS 서비스에 대한 자세한 소개와 함께 다양한 활용 팁을 데모와 함께 소개해 드립니다.
스폰서 발표 세션 | Zero-risk 엔터프라이즈 클라우드 스토리지
조순현 부장, Zadara
Zadara는 엔터프라이즈 스토리지입니다. 모든 데이터 유형, 모든 프로토콜을 클라우드 상에서 제공합니다. 클라우드 스토리지 사용에 있어 기술 위험, 운영 위험 및 재정적 위험을 Zadatra 스토리지를 통해 제거하는 방안을 제시합니다.
본 세션에서는 Amazon의 관리형 데이터베이스 서비스(RDS) 중 기존 상용데이터베이스의 5배 성능 및 1/10 가격으로도 확장성을 보장하는 Aurora에 대한 소개 및 사용법 그리고 기존의 DB에서의 마이그레이션 방법에 대해 소개해드립니다. 10월 리인벤트를 통해 동경 리전에 Aurora를 사용가능하게 되었습니다.
[AWS Dev Day] 앱 현대화 | DevOps 개발자가 되기 위한 쿠버네티스 핵심 활용 예제 알아보기 - 정영준 AWS 솔루션즈 아키...Amazon Web Services Korea
쿠버네티스에 어플리케이션을 손쉽게 배포하는 방법은 무엇일까요? 복잡하게 배포된 어플리케이션의 파드들은 어떻게 디버깅하고 로깅해야 할까요? 또한 요즘 자주 이야기 되는 클라우드 네이티브 아키텍처로 설계된 어플리케이션은 어떻게 만들고 배포해야하는 걸까요?삼성전자 무선사업부에서 삼성헬스를 EKS 에 배포한 사례를 살펴보며, 이러한 문제를 어떻게 해결했는지 알아봅니다. 또한 복잡하게만 느껴졌던 쿠버네티스의 어플리케이션 배포와 클라우드 네이티브 아키텍처의 베스트 프렉티스를 EKS 에 어플리케이션을 배포하고, 관리하는 예제를 통하여 간편하게 이해할 수 있게 도와드립니다.
VM과 컨테이너 상에서 Apache & Tomcat 설치, 실행 그리고 배포 데모
데모 요약 : 수작업으로 진행하는 가상화환경과 OCP 환경(Dockerfile)의
간단한 apache / tomcat 설치 및 실행하는 비교 데모 입니다.
데모 내용 : 물리서버 또는 가상화 환경에서 수작업으로 진행했던 배포 작업들이 컨테이너 환경에서 원클릭으로 배포하는 영상을 보여주는 데모입니다. 컨테이너 환경에서의
배포는 수작업으로 하는 배포 대비 상상이상의 시간을 아낄 수 있습니다.
오픈나루 데모 URL : http://www.opennaru.com/seminar/%ed%81%b4%eb%9d%bc%ec%9a%b0%eb%93%9c-%eb%84%a4%ec%9d%b4%ed%8b%b0%eb%b8%8c-%eb%8d%b0%eb%aa%a8-%ec%9c%a0%ed%8a%9c%eb%b8%8c/
오픈나루 비대면 워크샵 URL : http://www.opennaru.com/seminar/%ed%81%b4%eb%9d%bc%ec%9a%b0%eb%93%9c-%eb%84%a4%ec%9d%b4%ed%8b%b0%eb%b8%8c-%ec%9b%8c%ed%81%ac%ec%83%b5/
마이크로서비스 스타일로 만들어진 시스템을 모노리틱 스타일로 이관한 사례와 함께 스프링을 이용해 모듈형 모노리스(modular monoliths)를 만든 경험을 바탕으로 모노리틱/마이크로서비스 보다 본질적인 문제를 제기하고, 문제 해결을 위한 아이디어와 코드를 공유합니다.
https://github.com/arawn/building-modular-monoliths-using-spring
이 자료는 2019년 KSUG 세미나에서 진행한 "잘 키운 모노리스 하나 열 마이크로서비스 안 부럽다"를 기반으로 몇가지 내용을 추가하고, 전개 방식을 다듬어 조금 더 친절하게 만들어졌습니다.
OpenSearch는 배포형 오픈 소스 검색과 분석 제품군으로 실시간 애플리케이션 모니터링, 로그 분석 및 웹 사이트 검색과 같이 다양한 사용 사례에 사용됩니다. OpenSearch는 데이터 탐색을 쉽게 도와주는 통합 시각화 도구 OpenSearch와 함께 뛰어난 확장성을 지닌 시스템을 제공하여 대량 데이터 볼륨에 빠르게 액세스 및 응답합니다. 이 세션에서는 실제 동작 구조에 대한 설명을 바탕으로 최적화를 하기 위한 방법과 운영상에 발생할 수 있는 이슈에 대해서 알아봅니다.
PUBG: Battlegrounds 라이브 서비스 EKS 전환 사례 공유 [크래프톤 - 레벨 300] - 발표자: 김정헌, PUBG Dev...Amazon Web Services Korea
PUBG: Battlegrounds를 위한 게임 관련 인프라를 EKS 기반 환경으로 모두 전환한 경험에 대해 공유해 드릴 예정입니다. PUBG의 글로벌 서비스를 위한 인프라 구성에 대해 간단히 소개하고, 라이브 서비스 중인 인프라를 EC2 기반에서 EKS 기반으로 점진적으로 전환하면서 겪었던 문제들과 소중한 경험들을 사례를 통해 전달해드립니다.
Amazon Elastic File System(EFS)은 클라우드 기반 네트워크 파일 시스템으로서 손쉽게 확장 가능한 탄력적인 파일 스토리지를 제공합니다. 다수의 Amazon EC2에 탑재하거나 Direct Connect를 통해 온프레미스와 연동 가능하며, 웹 콘텐츠, 엔터프라이즈 애플리케이션, 미디어 및 DB 백업 등 다양한 워크로드에서 활용 가능합니다. 본 세션에서는 지난 5월 서울 리전에 출시한 EFS 서비스에 대한 자세한 소개와 함께 다양한 활용 팁을 데모와 함께 소개해 드립니다.
스폰서 발표 세션 | Zero-risk 엔터프라이즈 클라우드 스토리지
조순현 부장, Zadara
Zadara는 엔터프라이즈 스토리지입니다. 모든 데이터 유형, 모든 프로토콜을 클라우드 상에서 제공합니다. 클라우드 스토리지 사용에 있어 기술 위험, 운영 위험 및 재정적 위험을 Zadatra 스토리지를 통해 제거하는 방안을 제시합니다.
안드로이드 리스트뷰를 이용할때 자주 발생하는 문제를 찾아보고
해결 방법을 찾은 뒤 성능 개선 실험 결과를 공유한다.
1. convertview
2. viewHolder pattern
3. AsyncTask
4. AUIL(Android Universal Image Loader)
5. Scroll state
Cloud-Native Architecture
MSA(Micro Service Architecture)
MDA(Micro Data Architecture)
MIA(MIcro Inference Architecture)
MSA-Service Mesh
MDA-Data Mesh
MIA-AI Inference Mesh
Kubernetes
Container
Kubeflow
Volcano
Apache Ynikorn
ChatGPT
AGI(Artificial General Intelligence)
ASI(Artificial Specialized Intelligence)
초-전환시대
초-연결시대
SQream GPU DBMS
Cloud와 Cloud Native의 목표는.. 왜? 어떻게? 뭐가 좋아지나...
1. (왜) 가속화된 초-전환, 초-연결 IT 환경변화에 대비하기 위해서
2. (어떻게-H/W) IT H/W 부분은 IaaS 서비스화하여
점유된, Over Subscription된 H/W(Server, Network, Storage)들 모아서 Pool화하고, 가상화기술을 통해 Tenant로 자원들을 분리해 서비스화해 제공하고
필요시 적시에 Pool의 가상H/W를 제공하고, 상황에 따라 확장・축소(Scale in/out, up/down)하면서, 축소된 자원을 다른 요청들을 위해 빠르게 재-할당하는 유연성을 제공하고
3. (어떻게-S/W) S/W 부문도
PaaS, SaaS 적극 활용으로 App.개발 시간을 단축하고
App.분야인 기존 MACRO Service Architecture형 Monolith Architecture(Web-WAS-DB)를 작게 쪼개서 변화에 빠르게 적응할 수 있는 MSA(Micro Service Architecture)로 변경하여 Service Mesh형으로 관리하고
Data분야도 Data Warehouse, DataLake(Bigdata), LakeHouse등 기존 MACRO Data Architecture를 MSA형식으로 MDA(Micro Data Architecture)로 전환 후 Data Mesh형태로 관리하고,
AI로 동적프로그램 생성하여 App.개발시간 단축하고, AI분야도 초-거대 AI구현(MACRO)보다는 작은|특화된 Deep Learning Network(Model)들로 작게 쪼개서 MIA(Micro Inference Architecture)로 비지니스 환경에 적용하고 Inference Mesh형태로 관리하는 시스템으로 전환하고
4. (어떻게-조직) 조직구조도 CI/CD형 DevOps환경, 데이타,트랜잭션중심업무중심, 기술중심 문제해결중심, 직능중심조직직무중심조직으로 전환하면
5. (좋아지는 것) 초-전환, 초-연결 환경에 빠르고, 지속적으로 적응할 수 IT as a Product 환경을 구현하는 것
[IGC 2017] AWS 김필중 솔루션 아키텍트 - AWS 를 활용한 모바일 백엔드 개발강 민우
모바일 게임에는 사용자 인증, 컨텐츠 제공, 데이터 저장 및 분석은 물론 모네타이제이션을 위한 다양한 기능들의 개발이 요구됩니다. 이를 위해 AWS 를 활용하여 필요한 백엔드를 간단하지만 유저가 많아져도 항상 예측 가능한 성능으로, 또 사용한 만큼만 비용이 발생하는 형태로 구현할 수 있는 방법을 소개합니다.
AWS에서는 애플리케이션의 목적과 특징에 맞는 다양한 클라우드 기반 데이터베이스 선택 옵션을 제공합니다. 본 세션에서는 클라우드 DB 서비스를 간단히 알아보고, 그 중에서도 DB 서버 및 클러스터 관리 및 운영에 대한 걱정이 전혀 없는 서버리스(Serverless) DB 서비스인 Amazon Aurora Serverless와 DynamoDB에 대해 자세히 알아봅니다. DB 관리 및 운영 등의 번거러운 작업은 AWS에 맡기고, 비지니스 로직에 필요한 데이터 모델 구성 및 쿼리 최적화 등에 집중하여 시장에 요구에 따른 비지니스에 민첩한 서비스를 만드는 방법을 알아 봅니다.
3. 대용량 서비스 레퍼런스 아키텍쳐
• 기반사상 => SOA
• Access Layer
– 외부로 부터 들어오는 사용자 요청에 대해서 관문 역할
– 외부 시스템과의 연동 역할
• Business Layer
– 들어온 사용자 요청에 대해서 비지니스 로직을 처리
– Client에 응답
• Persistent Layer
– Business Logic에 의해 처리되는 또는 처리된 데이타를 저장
• OAM(Operation Administration Monitoring)
– 시스템의 관리 및 운용
• Analysis Layer
– 로그분석
4. Access Layer
• 사용자 API에 대한 End Point
• 웹 캐시
– 정적인 자원(자바스크립트, 이미지, 정적 페이지 등) 캐싱
– 전체 시스템 부하 감소
• Reverse Proxy
– 정적 contents 서비스 제공
– 인증
– 라우팅
5. Access Layer
• API Gateway [선택사항] (1)
– API 인증 처리와 API 키 Lifecycle 관리
– 로드 밸런싱
– 공통기능 처리: Logging, 인증(Authentication)
– 다수의 end-point 제공
– API 변환 로직
• Protocol 변환
• 메시지 변환
• MEP(Message Exchange Pattern) 변환
– 서비스 버스 == ESB
– 매시업
– QoS 컨트롤
9. Access Layer
계정관리 == IDM (Identity Management System)
– 사용자 관리: 계정 생명주기 관리, 로그인 정보 관리, 부가정보 관리
– Provisioning: 정보 변경 시 연계된 시스템에 배포
– 접근 제어: 인증(Authentication), 권한인가(Authorization), 사용자
역할 관리
– Federation: Idp(Indentity Provider)와 Sp(Service Provider) 연계
– SSO(Single Sign On): 한번의 로그인으로 독립된 시스템 모두 접근
– 타서비스 연동
– 감사(Audit)와 리포팅
ProvisioningAuthentication & Authorization
10. Access Layer
• 계정 관리
• 계정 관리 모델
• 개별 분산 모델
=> 각각 다른 계정 체계 사용
=> N개 서비스 N개 계정
• 중앙 집중형 모델 (가장 바람직한 모델)
=> 중앙 집중 계정관리 시스템
=> 구축 초반부터 잘 기획
10
11. Access Layer
• 계정 관리
• 계정 관리 모델
• 페더레이션 모델
=> 별도의 계정들을 페더레이션을 통해 하나의 통합된 계
정으로 관리
11
12. Access Layer
시스템 연동
• 인터페이스
• Inbound / Outbound: 어댑터, 메시지 변환
• Mediation: 라우팅, 맵핑, MEP 처리
• 모니터링 및 장애 관리
• Audit Log
• 에러 처리 로직
• 장애 처리 정책
– Ignore
– Notification
– Retry
– Manual Handling
13. Business Layer
1. Transaction Processing (Sync)
– Simple request and response pattern. (REST API)
– Stateless, Shared Nothing (공유 정보는 DataGrid로)
– Heavy Transaction & small # of concurrent user
• Multi threaded server
• Web Application Server
– Light Transaction & Huge # of concurrent user (C10K)
• Single thread server
• Vertex, node.js
– 트렌젝션 처리
• Transaction manager (JTS, XA)
• 보상 (Compensation) 트렌젝션
• 결론 : 하이브리드 플랫폼 활용
15. Business Layer
1. Transaction Processing (Sync)
Multi thread server Single Thread Server
(Async)
http://strongloop.com/strongblog/node-js-is-faster-than-java/
16. Business Layer
2. Transaction Processing (Async)
• 메세지 큐 기반 (MQ, RabbitMQ,ActiveMQ, JMS,ZeroMQ)
• 응답을 기다리지 않고 바로 리턴
• 큐 뒤에, 다수의 Worker를 둬서, 대용량 처리에 유리
17. Business Layer
2. Transaction Processing (Async)
* Message Exchange Patterns
1) Fire & forget
2) Publish & Subscribe
3) Routing
4) Call Back
※ collation id
18. Business Layer
2. Transaction Processing (Async)
• 에러처리 (Error Hospital)
① Ignore
② Notify
③ Human interaction
④ Retry (Aging required)
19. Business Layer
2. Transaction Processing (Async)
• 메세지 큐 구성 시 고려사항
• 성능 및 페일 오버를 고려한 persistence 선택
• 펜딩 메세지로 말미암은 Out of Memory
• 트랜잭션 지원 기능
• 클러스터링 기능
20. Business Layer
3. Data Grid
• IMDG (In memory data grid)- HazelCast,Infinispan,Coherence
※ cf. redis (IMDB, 클러스터 안됨)
• 거대한 메모리 클러스터
• 공유 정보 (Sessiom,키 등)와 캐쉬 영역으로 사용됨
• 클러스터링 기반의 자가 HA 기능 필수
21. Business Layer
4. Working Space
• 작업용 파일을 올리는 일종이 temp directory
• 이미지 변환, 동영상 변환
• 자체 HA를 위한 Clustering 필수
• NFS, Gluster FS
Working Space + Async Transaction Processing 기반 구조
22. Business Layer
• 메시징 프로토콜
• HTTP: 오버로드가 상대적으로 크다
• 대안: 내부적으로 필요한 부분에 바이너리 프로토콜 사용
• PB(Google Protocol Buffer)
• 객체에 대한 Serialization / Deserialization 기술
• 여러가지 전송채널 지원
• Thrift (Facebook)
• 직렬화 + RPC 지원
• 전송단의 보안 매커니즘 지원
• 콜렉션 형태의 데이터 지원
• 단점
• IDL 구조 정의가 복잡
• 데이터 포멧 변경이 유연하지 않음
( IDL변경 => 코드 재 생성 => 반영)
22
23. 소프트웨어 개발 트랜드의 변화
• 소규모/단기간 (스타트업)
• 오픈소스로 치덕치덕 & Don`t invent wheel again
• 빠르고 잦은 릴리즈 (애자일)
• 개발과 운영을 통합 (DEVOPS)
• Cloud: 비용 절감
• 하나씩 차근차근 => 결국 대용량 글로벌 스케일