안녕하세요 오늘은 AWS Dev Day Seoul 컨퍼런스 리뷰를 해볼려고 해요.
지난주 목요일 저는 서울대학교에서 열린 AWS DEV DAY SEOUL 컨퍼런스에 다녀왔습니다. 이 행사는 AWS에서 주관하는 클라우드 컴퓨팅에 관한 기술 이벤트라고 공식 홈페이지에 소개가 되어 있네요. 인공지능과 기계학습, 앱 현대화, 블록체인 등 다양한 분야에 대한 AWS 서비스를 주제로 한 강연과 토론, 데모, 실습 워크샵 등이 준비되어 있었습니다. AWS 관계자들과 네트워킹 할 수 있는 기회도 있었구요. 아무래도 클라우드 서비스에 대한 이해도가 높은 사람들을 대상으로 강연을 하다 보니 학생이나 주니어보단 시니어 이상 개발자들이 많아 보였습니다. (내용이 다소 어려웠습니다 ㅠㅠㅠ)
저는 아침에 조금 늦게 집에서 나와서 키노트 세션이 시작하고 난 이후에 도착했습니다. 15~20분 정도 늦었던 것 같은데, 이미 대강당은 자리가 다 찼다고 하더라구요 ㅠㅠ 키노트 세션은 Oliver Klein AWS 신기술 부분 책임자님께서 진행했습니다. 저는 중간부터 듣기 시작했는데, 얼굴을 3D로 만들어서 웹 사이트에서 누구나 쉽게 볼 수 있는 기능을 소개해 주시더라구요. 그 이후에는 드론에 대한 설명을 해 주시면서 라이브 데모도 보여주셨어요. 드론이 일정 고도 이상이 되면 수평에서 수직으로 모드를 바꾸어 더 적은 전력으로 비행하고, 자율적으로 장애물을 피해서 움직이는 모습도 보여주셨는데 로봇 어플리케이션이 실제 삶에서 유용하게 쓰일 수 있는 사례를 볼 수 있어서 좋았습니다.
아무래도 AWS의 새로운 서비스 혹은 집중하고 관심있게 보는 서비스에 대한 소개 및 데모가 많았던 것 같아요. AWS Robomaker라는 서비스에 대한 소개도 해주셨는데 개발, 시뮬레이션, 테스팅 및 관리를 한 번에 할 수 있는 솔루션이라고 합니다. ROS(Robot OS)는 오픈소스인데 점점 더 넒은 분야에서 사용될 것이라고 해요. 한국에서는 아직 많이 사용하고 있지는 않지만, 미국 등 다른 나라에서는 굉장히 활발하게 사용하고 있다고 합니다.
AWS는 회사들이, 그리고 엔지니어들이 가지고 있는 고민들을 해결하기 위한 서비스를 계속해서 만들려고 하는 의지를 이 세션을 통해 보았습니다. DataStore 분야의 솔루션인 S3, Edge, CloudFront 부터 Network Connection 부분의 불편함을 해결하기 위핸 AppSync 그리고 "Move your logic to the Edge"라는 모토를 가진 Greengrass 서비스까지. 저는 사실 처음 들어보는 서비스들이 굉장히 많았었지만 정말 필요할 것 같다는 생각을하고 니즈에 대해서는 깊이 공감했던 것 같아요.
인공지능과 머신러닝 분야에 대해서도 AWS 사례들을 많이 보여주었습니다. 클라우드 컴퓨팅으로 인해 머신러닝의 비용이 낮아졌고, 전문적인 지식이 꼭 있지 않아도 머신러닝 서비스를 할 수 있게 되었지요. 컴퓨터 비전 분야에서는 AmazonFresh를 통한 상한 식료품을 걷어내는 알고리즘, 그리고 무인 편의점이라는 새로운 시도로 신선한 충격을 준 AmazonGo 두 가지 사례를 보여주었습니다. 특히 아마존고에서 두 사람이 하나의 물건을 동시에 집으면 누구에게 그 요금을 청구할 것인가? 와 같은 고민은 흥미로우면서 동시에 골치가 아팠던 것 같기도 하네요. 마지막으로 유니콘이 잔디밭에서 핫도그를 먹는 강화학습 데모를 보여주었는데, 유니콘은 랜덤하게 움직이고 핫도그에 가까워 질수록 보상을 받는 알고리즘을 통해 결국 핫도그를 먹을 수 있게 학습을 시켰어요. 어떻게 보면 인간이 애완동물을 훈련시키는 과정과 상당히 유사하다는 생각이 들었습니다.
키노트 강연이 끝나고 지하에서 점심을 먹었어요. 저는 혼자 갔는데 원형 테이블에서 처음 보는 사람들하고 앉아서 먹었습니다. ㅎㅎ 많이 어색했어요. 사실 외국에서 밋업이나 컨퍼런스를 가면 사람들이 자유롭게 돌아다니면서 네트워킹을 하고 그런 문화가 정말 자연스러운데, 한국은 아직 그렇게 하기에는 사람들이 조금 shy한 성격이 남아 있는 것 같아요. 오히려 앉아서 식사할 때가 아니라 중간에 네트워킹 시간을 따로 마련해서 진행했으면 어땠을까 생각이 들었습니다. 밥은 맛있었어요!
점심식사를 하고 나서는 서울대 안에서 조금 산책을 했습니다. 학교 안에 산이 있다보니 공기가 좋은 것 같더라구요 ㅎㅎ 학교 안을 삼삼오오 돌아다니는 대학생들을 보면 되게 행복해 보였던 것 같아요. 대학교 생활을 열심히 안 한건 아니었지만, 그 때 좀 더 즐길 수 있는 것들을 즐겼으면 어땠을까 하는 생각도 살짝 들었습니다. ㅎㅎ
식사 후 총 4개의 세션을 들었어요. 전체적으로는 인공지능/기계학습, 앱 현대화, 이머징 테크 이렇게 3개의 카테고리로 각각 4개의 세션씩 총 12개의 세션이 진행이 되어 있었고 실습 워크숍도 따로 진행이 되었습니다. 다음번에는 워크숍을 참가해 볼까 생각이 들었어요. 세션은 추후에 영상으로도 볼 수 있지만, 워크숍은 현장에서만 할 수 있으니까요 ㅎㅎㅎ
1번째 세션 : 인공지능/기계학습
개발자를 위한 수백만 사용자 대상 기계 학습 서비스 확장하기
이 세션은 AWS 수석테크 에반젤리스트 윤석찬님과 LG전자 책임 연구원 문효준님이 강연을 해 주셨습니다.
머신러닝 서비스를 수백만 사용자들을 대상으로 하려면 어떤 것들이 필요한지에 대해서 질문을 던지면서 시작을 하셨습니다. 그러면서 AWS에서는 모든 개발자를 위한 인공지능 프레임워크 서비스를 제공한다고 하셨어요. 구체적으로는 Vision, Speech, Language, Vertical 등등의 세부 분야가 있습니다. 그런데 이러한 AI 서비스로 해결할 수 없는 맞춤형 머신러닝 모델을 만들어야 하는 경우도 존재하고 그럴 때 어떻게 나아가야 하는지를 단계별로 설명해 주셨습니다.
1 week : 10+ users
처음 서비스를 시작하는 단계입니다. 이 때는 ML을 위한 AWS 클라우드를 사용해야 합니다. EC2에 모델 개발만 직접 하는 식으로 말이지요. 연사님은 Deep Learning AMIs 라는 툴을 소개해 주셨습니다. 이 툴은 딥러닝 프레임워크를 미리 설치하고 최적 설정을 완료한 머신 이미지(Machine Image)를 제공해 줍니다. 또한 G4 instance라는 툴도 있는데 NVIDIA T4 텐서 코어 GPU기반으로 OpenGL, DirectX, CUDA 등 그래픽 동영상 최적화 스팟 인스턴스를 제공하기도 합니다.
1 month : 100+ users
고객이 점점 증가하고 팀 내부에서는 ML 모델이 추가되게 됩니다. 이제는 대용량 컴퓨팅 성능을 확보해야 할 때이고 이러한 시기에 적합한 서비스는 EC2 클러스터 라고 설명을 해 주셨습니다.
2 month : 1,000+ users
이 부분에서 문효준님이 컨테이너 기반 운영 사례를 소개해 주셨습니다. 생산 라인 데이터 기반 빅데이터 분석 업무를 진행하였는데, 고객 사용시 사용성 데이터나 사용자 리뷰 등의 정보를 가지고 분석을 했다고 합니다. 다만 이러한 정보는 계속해서 변하게 되고 학습했던 과거의 모델은 시간이 지날수록 정확도가 점점 더 떨어져서 여러가지 고민이 들게 됩니다. 또한 점점 규모가 커지는 상황에서, 하나의 PC 내에서 만들 경우 기대 이하의 모델 성능 및 정확도가 나타나게 되고, 예상치 못한 신규 데이터 및 도메인 특성에 따른 변화에 적응하기 어렵게 됩니다. 그렇다고 서버를 여러개 두기에는 서버 세팅을 하는데 너무 많은 시간이 소요됩니다.
모델링 후에 리소스 관리, 장애 관리, 배포를 쉽게 하는 방법 등 고려해야 할 것들이 많으며, 전체적인 구조를 보려면 워크플로우 관리도 필요합니다. 이렇게 컨테이너 관리를 할 때 쿠버네티스를 사용하게 됩니다. 쿠버네티스 마스터에 장애가 생기는 경우에는 EKS를 쓰지 않으면 복구할 수 있는 방법을 찾기 어렵습니다. 연사님은 AWS 기반 쿠버네티스 운영을 할 때 어떠한 것들이 필요한지를 EKS, EFS, 오토 스케일링 등의 관점에서 설명해 주셨습니다. 결과적으로 Modeling = Variabiity + Customization 임을 알 수가 있습니다.
3 months : 10,000+ users
이제는 모든 설정들을 직접(DIY) 해야 하는 단계입니다. 이 때는 sageMaker를 사용할 것을 권장합니다. 3개의 함수만 실행하면 배포까지 완성이 되고, 자동 하이퍼 파라미터 최적화 (HPO)기능까지 포함되어 있습니다. 그리도 더 나아가 AWS marketplace에서 마치 앱스토어처럼 판매를 통해 수익을 창출할 수도 있습니다.
연사님의 강연 내용을 정리해 보겠습니다.
- ML 공부할 필요가 없다면 -> AI API 서비스 활용
- 완전 관리형 서비스 sageMaker로 시작할 것을 권장
- 모델 훈련 및 배포 비용을 아끼고 싶다면 -> 딥러닝 AMIs / Containers
- 반복적인 개발 비용을 염두해 둔다면 -> Spot 구매 옵션 활용
- 지속적 통합, 배포 (CI/CD) + marketplace를 통한 글로벌 판매
2번째 세션 : 앱 현대화
실시간 데이터 처리를 위한 현대적 어플리케이션 개발 방법
이 세션은 AWS 솔루션즈 아키텍트 이세현님과 김영진님이 강연을 해 주셨습니다.
이번 강연에서는 모던 어플리케이션을 개발하는 과정에서 필요한 부분들을 AWS에서 어떠한 서비스로 제공하고 있는지를 살펴보면서 드론 예제를 확인할 수 있었습니다. 예를 들면 쏟아져 나오는 데이터는 Kinesis Data Streams, 모바일 인증은 Amazon Cognito로 말이지요. AWS Amplify는 앱, 웹에 클라우드 기능을 추가할 수 있는 라이브러리, Cli 툴체인 및 UI 구성 요소 프레임워크입니다. 그리고 AWS AppSync는 관리형 서버리스 GraphQL Service로 계정의 데이터 소스에 연결하여 데이터 원본 및 API에 데이터를 실시간으로 동기화 할 수 있는 서비스입니다. 이러한 서비스를 모두 사용하여 드론 예제를 구성하셨다고 해요.
REST API에 비해 GraphQL API가 가지는 장점도 설명해 주셨습니다. 가장 큰 장점은 REST API는 여러번의 핸드쉐이크가 일어나게 되고 네트워크 오버헤드가 발생할 수 있는데 GraphQL API는 이러한 문제들을 해결해 준다는 점이에요. 그 이후에 DocumentDB에 대한 소개도 해 주셨는데, MongoDB 호환 도큐멘트 DB 서비스라고 합니다. 도큐멘트 DB 역시 여러가지 특징을 가지고 있고 주목해 볼 필요가 있어요. 첫 번째로 JSON과 유사한 document에 데이터를 저장한다는 점, 그리고 도큐멘트는 인간이 데이터를 모델링하는 방식에 자연스럽게 매핑된다는 점입니다. 덧붙여서 동적 schema와 인덱싱을 제공합니다.
현대적인 클라우드 기반 아키텍처에 대해서도 설명을 해 주셨어요. 여러 레이어로 나누어져 있어서 Stagging, logging 등이 이루어지고, 데이터를 작은 파티션으로 분산하여 저장하여 가용성이 뛰어나게 됩니다. 그 이후에 드론 데모를 보여주셨는데, 저는 자리를 별로 좋은 데에 잡지 못해서 잘 보이지 않았던 것 같습니다 ㅠㅠㅠ
3번째 세션 : 앱 현대화
DevOps 개발자가 되기 위한 쿠버네티스 핵심 활용 예제 알아보기
이 세션은 AWS 솔루션즈 아키텍트 정영준님과 삼성전자 헬스서비스팀 이상호 선임님이 강연을 진행해 주셨습니다.
이번 세션은 키워드 중심으로 노트한 내용을 그대로 적을께요. 제가 제대로 이해를 잘 못한 것 같아서
Container Service
Management : ECS, EKS
Hosting : EC2, Fargate
Registry : ECR
ECS : 간편함, EKS : 더 높은 자유도
EKS Concept
컨테이너 오케스트레이션 클러스터를 쉽게 만들 수 있다.
EKS는 명령형 인프라가 아니라 선환형 인프라, 우리가 어떤 설정을 하면 쿠버네티스는 계속 유지하려고 노력
Samsung Health Use Case
VPC 링크 → 사용할 수 있는 로드 밸런서 : 네트워크 로드 밸런서
※로드 밸런싱이란?
로드 밸런싱(load balancing)은 컴퓨터 네트워크 기술의 일종으로 둘 혹은 셋이상의 중앙처리장치 혹은 저장장치와 같은 컴퓨터 자원들에게 작업을 나누는 것을 의미한다. 이로써 가용성 및 응답시간을 최적화 시킬 수 있다. 예를 들어, 메인프레임 1대(단일 구성체) 보다 IA-32와 같은 일반적인 서버(복합 구성체)가 안정성 면에서 유리한 위치에 있다. 부하분산 서비스는 그에 적합한 하드웨어와 소프트웨어에 의해 제공된다. 이 기술은 보통 내부 네트워크를 이용한 병렬처리(특히, 고가용성의 병렬처리)에 사용된다. 출처 : 위키백과
테라톰을 이용하여 인프라를 셋업
인프라 레이어와 어플리케이션 레이어가 분리되어 있음
클러스터 모니터링
- 인프라 관련 메트릭 → 클라우드 워치
- 어플리케이션 관련 메트릭 → 프로메테우스
- 그라파나 통합된 워치 세팅 → 통합된 대시보드
- 로그 모니터링 → Elasticsearch, Fluentbit, Kibana
MSA : 어플리케이션들이 유기적으로 연결되어 있음 → 어디서 장애가 발생하고, 병목이 발생하는지 빠르게 찾는 것이 중요 → AWS Xray
좋아진 점
App configuration 잡는 부분 불편 → 이를 잡아주니 휴먼 에러 감소, 배포가 훨씬 쉬워짐, 모든 기능들이 한번에 설치되어서 편리하게 서버 운용
EKS Best Practice
컨테이너 운영 관리 시 어니언 모델 → 각각의 레이어에서 보안이 관리되어야 한다.
컨테이너 인사이트에 바로 로그 저장 및 모니터링
Container Storage Interface(CSI)
글로벌 서비스 → logging을 효과적으로 하는 것이 중요.
App Mesh : Client side Monitoring
AWS X-ray
예전에는 어플리케이션 개발에만 집중, 이제는 배포하고 운영하는 부분에 신경을 더 써야 함.
4번째 세션 : 이머징 테크
ROS로 실현하는 어릴적 로봇과학자의 꿈
이 세션은 AWS 솔루션즈 아키텍트 박천구님, 우아한 형제들 박진용님 그리고 두산 로보틱스 김갑겸님이 강연을 진행해 주셨습니다.
먼저 박천구님은 ROS와 AWS Robomaker에 대한 소개를 해 주셨습니다. 로봇이 만화나 영화에만 있는 것이 아니고 이제 밖으로, 실제 우리 삶으로 나오고 있다고 말씀해 주셨습니다. 그러면서 다음과 같은 기존의 로봇 개발의 어려움을 짚어 주셨어요.
- 로봇에 AI를 넣는 건 전문 지식을 요구한다.
- 프로토 타이핑 과정을 수 없이 반복해야 한다.
- 개발 환경 구축 많은 시간 들여야 함
- 현실적 시뮬레이션 환경 구축에 수 개월이 걸린다.
이를 해결하기 위해 ROS (Robot Operating System)가 등장했고 이는 로봇 어플리케이션 개발에 사용됩니다. 대표적인 서비스가 AWS Robomaker이구요. 이 서비스의 장점은 다음과 같습니다.
- 개발 일정 가속화
- 바로 꺼내 쓸 수 있는 인공지능 관련 기능
- 인프라 프로비저닝이 필요 없음
- 라이프 사이클 관리
다음으로는 우아한 형제들과 두산 로보틱스 Use cases를 살펴보았습니다. 먼저 우아한 형제들은 2017년부터 로봇 무인 배달 서비스를 개발하였다고 해요. 주문량은 매년 증가하는데 라이더는 감소하고 라이더에 대한 처우가 악화되면서 문제점들이 발생했기 때문입니다. 그리고 송파구에 시범운영중인 '메리고 키친'이라는 레스토랑은 로봇이 서빙을 하고 있다고 합니다. 로봇 서비스에 대한 영상을 보았는데 잘만 정착되면 정말 편리할 것 같다는 생각이 들었습니다. 두산 로보틱스의 경우도 협동로봇의 개념을 설명하면서 여러 축을 가진 로봇을 토크센서로 안정감있게 제어할 수 있음을 설명하셨습니다. 로보메이커를 통해 빠르고 쉽게 AI 로봇을 개발 할 수 있게 되었다고 하셨어요. 다만 두 연사님 모두 아직은 로보메이커의 가이드 문서가 정확하지 않고 여러가지 환경설정이 너무 복잡하다는 문제점을 지적하셨습니다.
강연을 다 듣고 나서 먼저 좋았던 점은, AWS에 이렇게 다양한 서비스가 있다는 점을 이번에 처음 알게 되었어요. 매년 새로운 서비스가 생겨나고 있고 잘 찾아보면 시간과 노력을 획기적으로 줄일 수 있을 것 같다는 생각이 들었습니다. 특히 AI나 ML,DL 분야는 전문적인 연구원들이 아니면 하기 어렵다고 생각했었는데, 비즈니스 측면에서 생각보다 손쉽게 사용할 수 있다는 점이 굉장히 매력적으로 다가왔어요. 클라우드 서비스에 대해서도 더 넓은 이해를 할 수 있게 되어서 좋았구요. 기념품도 정말 많았어요! 굿굿
아쉬운 점은 난이도가 다소 높았다는 점? ㅎㅎ 그리고 장소가 조금 좁아서 세션을 서서 듣거나 그마저도 여의치 않아 듣고 싶은데 듣지 못하는 분이 많았다는 점? 크게 불편한 건 없었지만 이런 작은 부분까지 신경써주면 AWS DEV DAY에 내년에는 사람들이 더 많이 올 것 같네요. 그러면 오늘 포스팅은 여기서 마무리할께요~
'Dev. Life' 카테고리의 다른 글
2019년 하반기 신입 개발자 구직 이야기 (11) | 2020.01.13 |
---|---|
두 군데의 스타트업에서 개발자로 일하면서 느낀 점 (3) | 2019.11.30 |
IBM Developer Day 후기 (0) | 2019.09.10 |
2019 한중 해커톤 후기 (1) | 2019.09.02 |
[해커톤] 오픈핵 2019 (Openhack 2019) 참가 후기 (4) | 2019.06.29 |