아마존 웹서비스를 이용한 WebApp을 제작하였습니다.
ElasticBeanStalk,Simple Email Service,WorkMail, Nginx, SpringBoot 등을 통해 만들었으며
https://github.com/Djunnni/Attendee/ 에서 코드를 공유합니다.
for description SpringBoot WebApp using Amazon Web Service.
ElasticBeanStalk,Simple Email Service,WorkMail, Nginx, SpringBoot and so on
넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study (임현수 플랫폼인프라실 Technical Manager, 넥...Amazon Web Services Korea
넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study
이 세션에서는 넥슨의 Case study를 통하여 글로벌플랫폼 구축을 위해 기존 플랫폼을 AWS로 Migration하는 과정 및 발생가능한 이슈를 공유합니다. 넥슨이 DB서버를 이전하는 과정 속에서 마주한 기술적 고민과 이슈를 통하여 AWS 활용 시 고려해야 할 부분들에 대해 소개하고 함께 이야기 나누고자 합니다.
『빠르게 훑어보는 구글 클라우드 플랫폼』 - 맛보기복연 이
조대협, 최명근, 최유석, 윤성재, 김영균 지음 | 한빛미디어 | 2016.09.10
구글 클라우드 플랫폼을 처음 사용하는 사람을 위한 실습형 입문서.
이 책은 구글 클라우드를 처음 사용하는 사람이 가상 머신(VM) 기반의 클라우드 서비스 기능들을 빠르게 사용할 수 있도록 도울 목적으로, 실습 위주로 속도감 있게 구성하였다.
구글 클라우드의 가상 머신 서비스인 컴퓨트 엔진을 사용하기 위해 가입부터 VM 설정, 네트워크 설정, 오토 스케일링(자동 확장)과 모니터링, 그리고 MySQL 매지니드 서비스인 Cloud SQL의 사용법을 소개한다. 마지막으로 구글 클라우드만의 장점인 빅데이터 서비스, 전 세계를 덮는 전용 네트워크망, 합리적인 가격 정책을 소개한다.
커빙의 Django, Celery, Azure Cloud, SNS 연동, 컨텐츠 수집 기술을 한눈에 볼 수 있도록 소개한 자료 입니다.
커빙을 처음 개발하면서 많은 어려움이 있었지만
많은 분들의 도움으로 좋은 결과를 얻을 수 있었답니다!
이에 다른 분들에게 조금이나마 도움이 되었으면 좋겠다는 마음으로 공유합니다 : )
아마존 웹서비스를 이용한 WebApp을 제작하였습니다.
ElasticBeanStalk,Simple Email Service,WorkMail, Nginx, SpringBoot 등을 통해 만들었으며
https://github.com/Djunnni/Attendee/ 에서 코드를 공유합니다.
for description SpringBoot WebApp using Amazon Web Service.
ElasticBeanStalk,Simple Email Service,WorkMail, Nginx, SpringBoot and so on
넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study (임현수 플랫폼인프라실 Technical Manager, 넥...Amazon Web Services Korea
넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study
이 세션에서는 넥슨의 Case study를 통하여 글로벌플랫폼 구축을 위해 기존 플랫폼을 AWS로 Migration하는 과정 및 발생가능한 이슈를 공유합니다. 넥슨이 DB서버를 이전하는 과정 속에서 마주한 기술적 고민과 이슈를 통하여 AWS 활용 시 고려해야 할 부분들에 대해 소개하고 함께 이야기 나누고자 합니다.
『빠르게 훑어보는 구글 클라우드 플랫폼』 - 맛보기복연 이
조대협, 최명근, 최유석, 윤성재, 김영균 지음 | 한빛미디어 | 2016.09.10
구글 클라우드 플랫폼을 처음 사용하는 사람을 위한 실습형 입문서.
이 책은 구글 클라우드를 처음 사용하는 사람이 가상 머신(VM) 기반의 클라우드 서비스 기능들을 빠르게 사용할 수 있도록 도울 목적으로, 실습 위주로 속도감 있게 구성하였다.
구글 클라우드의 가상 머신 서비스인 컴퓨트 엔진을 사용하기 위해 가입부터 VM 설정, 네트워크 설정, 오토 스케일링(자동 확장)과 모니터링, 그리고 MySQL 매지니드 서비스인 Cloud SQL의 사용법을 소개한다. 마지막으로 구글 클라우드만의 장점인 빅데이터 서비스, 전 세계를 덮는 전용 네트워크망, 합리적인 가격 정책을 소개한다.
커빙의 Django, Celery, Azure Cloud, SNS 연동, 컨텐츠 수집 기술을 한눈에 볼 수 있도록 소개한 자료 입니다.
커빙을 처음 개발하면서 많은 어려움이 있었지만
많은 분들의 도움으로 좋은 결과를 얻을 수 있었답니다!
이에 다른 분들에게 조금이나마 도움이 되었으면 좋겠다는 마음으로 공유합니다 : )
커빙의 Django, Celery, Azure Cloud, SNS 연동, 컨텐츠 수집 기술을 한눈에 볼 수 있도록 소개한 자료 입니다.
커빙을 처음 개발하면서 많은 어려움이 있었고,
또 많은 분들의 도움으로 좋은 결과를 얻을 수 있었습니다.
조금 더 깊은 내용을 다뤘으면 하는 아쉬움이 있지만,
다른 분들에게 조금이나마 도움이 되었으면 좋겠네요!
개발자커리어 점프 플랫폼, 점핏
Covid-19로 인해 산업 전반에 걸쳐 디지털 전환이 가속화됨에 따라 IT 개발자 영입이 더욱 치열해지고 있습니다. 개발자 채용 플랫폼 점핏은 "개발자를 채용하기 위한 기업"과 "자신만의 전문성을 갖추고 싶어하는 개발자" 모두를 충족하기 위하여 개발자 특성에 맞춘 서비스 입니다. 본 세션에서는 점핏 서비스가 AWS를 선택한 이유에 대해 설명드립니다.
발표자: 김희열 연구원 , 사람인 HR
2015 년 오픈클라우드 엔진 핸드북입니다. 지난 2012년 부터 3년간의 국산 오픈소스 플랫폼 제품들을 클라우드 컴퓨팅의 주제로 통합하고 있는 프로젝트입니다. 본 자료는 기업과 서비스 제공자 들의 클라우드 컴퓨팅 전환에 있어 요구되는 사항들을 짚어보고, 2015년 지금까지 노력해온 오픈클라우드엔진의 제품들이 어떻게 그 요구사항들에 부합될 수 있는지에 대한 내용을 담고 있습니다.
어느 해커쏜에 참여한 백엔드 개발자들을 위한 교육자료
쉽게 만든다고 했는데도, 많이 어려웠나봅니다.
제 욕심이 과했던 것 같아요. 담번엔 좀 더 쉽게 !
- 독자 : 백엔드 개발자를 희망하는 사람 (취준생, 이직 희망자), 5년차 이하
- 주요 내용 : 백엔드 개발을 할 때 일어나는 일들(개발팀의 일)
- 비상업적 목적으로 인용은 가능합니다. (출처 명기 필수)
Session 1. 디지털 트렌스포메이션의 핵심, 클라우드 마이그레이션 A to Z - 베스핀글로벌 이근우 위원BESPIN GLOBAL
전 세계적으로 클라우드 기반의 디지털 트랜스포메이션이 빠르게 진행되고 있음에도 불구하고, 기업에서 클라우드를 도입하고 마이그레이션 하는 과정은 여전히 어려움이 많습니다. 성공적인 마이그레이션은 클라우드로의 단순 인프라 변경에서 그치는 것이 아니라 비즈니스와 프로세스가 함께 변화할 때 완성될 수 있습니다.
그리고 그 변화의 중심에는 인공지능(AI)과 머신러닝(ML)이 있습니다. 인공지능과 머신러닝은 모든 것을 자동화하여 스스로 데이터를 분류하며 유의미한 가치를 찾아냅니다. 바로 여기에서부터 기업의 비즈니스 혁신은 시작됩니다.
클라우드로의 디지털 트랜스포메이션 전략과 인공지능/머신러닝을 활용한 비즈니스 혁신 방법 중, 어떻게 성공적으로 클라우드 마이그레이션을 할 수 있을지에 대해 이번 세션을 통해 알아보겠습니다.
방송의 진화는 크게 두가지 축으로 나누어 볼수 있습니다.
첫번째는, 실제 비디오를 전달하는 데이타플레인(Data Plane) 기술로, 아날로그에서 디지털로의 변화를 들 수 있습니다. 압축방식 또한 MPEG2에서 AVC, 그리고 HEVC로 진화하여 보다 고품질의 비디오를 한정된 대역폭을 사용하여 전달할 수 있게 되었습니다.
클라우드에서 인프라 구축 시 고려해야 할 사항들을 살펴보고, 네이버 클라우드 플랫폼을 활용하여 고가용성을 유지하는 방안에 대해 소개합니다. | Explore the considerations of building infrastructure in the cloud and introduce ways to maintain high availability by leveraging the Naver cloud platform.
커빙의 Django, Celery, Azure Cloud, SNS 연동, 컨텐츠 수집 기술을 한눈에 볼 수 있도록 소개한 자료 입니다.
커빙을 처음 개발하면서 많은 어려움이 있었고,
또 많은 분들의 도움으로 좋은 결과를 얻을 수 있었습니다.
조금 더 깊은 내용을 다뤘으면 하는 아쉬움이 있지만,
다른 분들에게 조금이나마 도움이 되었으면 좋겠네요!
개발자커리어 점프 플랫폼, 점핏
Covid-19로 인해 산업 전반에 걸쳐 디지털 전환이 가속화됨에 따라 IT 개발자 영입이 더욱 치열해지고 있습니다. 개발자 채용 플랫폼 점핏은 "개발자를 채용하기 위한 기업"과 "자신만의 전문성을 갖추고 싶어하는 개발자" 모두를 충족하기 위하여 개발자 특성에 맞춘 서비스 입니다. 본 세션에서는 점핏 서비스가 AWS를 선택한 이유에 대해 설명드립니다.
발표자: 김희열 연구원 , 사람인 HR
2015 년 오픈클라우드 엔진 핸드북입니다. 지난 2012년 부터 3년간의 국산 오픈소스 플랫폼 제품들을 클라우드 컴퓨팅의 주제로 통합하고 있는 프로젝트입니다. 본 자료는 기업과 서비스 제공자 들의 클라우드 컴퓨팅 전환에 있어 요구되는 사항들을 짚어보고, 2015년 지금까지 노력해온 오픈클라우드엔진의 제품들이 어떻게 그 요구사항들에 부합될 수 있는지에 대한 내용을 담고 있습니다.
어느 해커쏜에 참여한 백엔드 개발자들을 위한 교육자료
쉽게 만든다고 했는데도, 많이 어려웠나봅니다.
제 욕심이 과했던 것 같아요. 담번엔 좀 더 쉽게 !
- 독자 : 백엔드 개발자를 희망하는 사람 (취준생, 이직 희망자), 5년차 이하
- 주요 내용 : 백엔드 개발을 할 때 일어나는 일들(개발팀의 일)
- 비상업적 목적으로 인용은 가능합니다. (출처 명기 필수)
Session 1. 디지털 트렌스포메이션의 핵심, 클라우드 마이그레이션 A to Z - 베스핀글로벌 이근우 위원BESPIN GLOBAL
전 세계적으로 클라우드 기반의 디지털 트랜스포메이션이 빠르게 진행되고 있음에도 불구하고, 기업에서 클라우드를 도입하고 마이그레이션 하는 과정은 여전히 어려움이 많습니다. 성공적인 마이그레이션은 클라우드로의 단순 인프라 변경에서 그치는 것이 아니라 비즈니스와 프로세스가 함께 변화할 때 완성될 수 있습니다.
그리고 그 변화의 중심에는 인공지능(AI)과 머신러닝(ML)이 있습니다. 인공지능과 머신러닝은 모든 것을 자동화하여 스스로 데이터를 분류하며 유의미한 가치를 찾아냅니다. 바로 여기에서부터 기업의 비즈니스 혁신은 시작됩니다.
클라우드로의 디지털 트랜스포메이션 전략과 인공지능/머신러닝을 활용한 비즈니스 혁신 방법 중, 어떻게 성공적으로 클라우드 마이그레이션을 할 수 있을지에 대해 이번 세션을 통해 알아보겠습니다.
방송의 진화는 크게 두가지 축으로 나누어 볼수 있습니다.
첫번째는, 실제 비디오를 전달하는 데이타플레인(Data Plane) 기술로, 아날로그에서 디지털로의 변화를 들 수 있습니다. 압축방식 또한 MPEG2에서 AVC, 그리고 HEVC로 진화하여 보다 고품질의 비디오를 한정된 대역폭을 사용하여 전달할 수 있게 되었습니다.
클라우드에서 인프라 구축 시 고려해야 할 사항들을 살펴보고, 네이버 클라우드 플랫폼을 활용하여 고가용성을 유지하는 방안에 대해 소개합니다. | Explore the considerations of building infrastructure in the cloud and introduce ways to maintain high availability by leveraging the Naver cloud platform.
3. ⓒSaebyeol Yu. Saebyeol’s PowerPoint
배포하고자하는SW
Part 1,
이전에 우리 학교를 배경으로 한 메타버스를 구현
로그인, 채팅 기록 저장 등 DB 관련 작업을
Backend server를 따로 만들어 수행
AWS를 사용해 서비스
4. ⓒSaebyeol Yu. Saebyeol’s PowerPoint
배포하고자하는SW
Part 1,
필요한 기능
- User 담당 기능: 로그인, 회원가입에 사용
- Chat 담당 기능: 채팅 기록을 DB에 저장
- 위 정보들을 시각적으로 확인할 수 있는 View
5. ⓒSaebyeol Yu. Saebyeol’s PowerPoint
배포하고자하는SW
Part 1,
User Service
회원가입시 사용자가 입력한 정보를 DB에 저장하고
로그인을 할 때 입력한 정보의 valid 확인
정보를 DB에 User table에 저장
6. ⓒSaebyeol Yu. Saebyeol’s PowerPoint
배포하고자하는SW
Part 1,
Chat Service
사용자의 채팅을 DB에 저장하는 서비스
예상치 못한 문제에 대비하기 위해 이를 저장
7. ⓒSaebyeol Yu. Saebyeol’s PowerPoint
배포하고자하는SW
Part 1,
View Service
사용자의 정보를 검색하고
채팅 내용을 확인할 수 있는 서비스
User, Chat table에 입력된 정보를 요청 후 출력
Ex, Inhyuk 아이디 검색
- 플레이어의 아바타 출력
- 아이디, 닉네임, 속해 있는 그룹 출력
- 플레이어가 한 채팅 내용을 출력
8. ⓒSaebyeol Yu. Saebyeol’s PowerPoint
배포하고자하는SW
Part 1,
Monolithic Architecture
모든 기능을 하나의 프로그램으로 구현한 전통적인 구조
User, Chat, View 기능이 통합된 상태로 공용 DB를 사용해 서비스를 제공
User Chat View
DB
Application UI
Port: 8000
Business
Logic
장점
- 단순하기 때문에 빠른 개발 가능
- 서비스의 테스트 용이
단점
- 프로젝트가 커지면 빌드, 배포 시간이 오래 걸림
- 하나의 기능을 수정하면 전체를 다시 배포
- 언어의 제한이 있음
- 하나의 서비스의 버그가 다른 서비스에도 영향
9. ⓒSaebyeol Yu. Saebyeol’s PowerPoint
배포하고자하는SW
Part 1,
MicroService Architecture
하나의 큰 서비스를 수행하기 위해 하나의 기능 단위로 서비스를 분리,
각 서비스는 자신의 목적만 집중해서 수행, 서비스끼리 Restful하게 통신
User, Chat, View 기능이 분리 되어있고, 각자의 DB로 서비스를 제공
User
DB
Application UI
Port: 8000
Business
Logic
- 서비스 각각은 Monolithic Architecture
Chat View
DB
Port: 8001 Port: 8002
장점
- 하나의 서비스에 집중해서 개발 하기 때문에 품질 향상
- 프로젝트의 크기가 작기 때문에 빌드, 배포가 빠름
- 하나의 기능을 수정하면 그 기능만 다시 빌드, 배포
- 각 서비스의 언어를 다르게 사용 가능
단점
- 작은 서비스들이 많기 때문에 관리의 복잡도 증가
- 테스트 부담 증가
Rest API Rest API
10. ⓒSaebyeol Yu. Saebyeol’s PowerPoint
배포하고자하는SW
Part 1,
정리하자면,
MSA로 설계한 게임 backend server를 배포
서비스
- User Service
- Chat Service
- View Service
User, Chat Service는 각각의 DB를 사용해 정보를 관리
View Service는 User, Chat 정보가 필요하기 때문에 담당 service와 Restful하게 통신
12. ⓒSaebyeol Yu. Saebyeol’s PowerPoint
ECS란무엇인가?
Part 3,
ECS (Elastic Container Service)
Amazon Elastic Container Service (Amazon ECS) is a highly
scalable, fast container management service that makes it
easy to run, stop, and manage containers on a cluster.
출처 – AWS ECS developer guide
ECS는 배포하려는 Application을 Container 단위로 배포, 관리를 지원해주는 Service이다.
기초적인 Container 관리부터 traffic에 따른 Auto Scaling,
무중단 배포를 위한 Blue-Green Deploy 등 다양한 관리 서비스를 제공한다.
MSA 관리 복잡도 하락
14. ⓒSaebyeol Yu. Saebyeol’s PowerPoint
ECS란무엇인가?
구성 요소
- Containers & Images (+ Docker)
- Tasks & Tasks Definition
- Container agent (With Fargate)
- Service
- Clusters
Part 3,
15. ⓒSaebyeol Yu. Saebyeol’s PowerPoint
ECS란무엇인가?
Part 2,
Containers & Images (+ Docker)
(Container의 영역이 너무 크기 때문에, 아주 간략하게만 설명)
Container란, Application 실행에 필요한 코드, 시스템 환경 등을 모두 포함하는 실행 단위이다.
Image란, Container 실행을 위한 static file으로, 설정들 등을 포함한다.
하나의 Image로 여러 개의 Container를 생성할 수 있다.
이는 마치 하나의 Chrome App으로 여러 개의 창을 실행할 수 있는것과 같다.
Container 관련 작업을 할 때 Docker를 주로 사용한다.
Docker란, 단순하게 Container 를 위한 생성, 실행, 관리 를 도와주는 tool이다.
16. ⓒSaebyeol Yu. Saebyeol’s PowerPoint
ECS란무엇인가?
ECR (Elastic Container Registry)
AWS는 Docker Image를 저장할 수 있는 Private Registry를 제공한다.
사용자는 배포하고자 하는 SW를 docker를 사용해 build 후
ECR에 push 하는 방식으로 Image를 관리할 수 있다.
Part 3,
17. ⓒSaebyeol Yu. Saebyeol’s PowerPoint
ECS란무엇인가?
우리의 서비스는
User, Chat, View Service Image를 모두 ECR에 push 후
ECS에서 필요할 때 가져오는 방식
Part 3,
18. ⓒSaebyeol Yu. Saebyeol’s PowerPoint
ECS란무엇인가?
Tasks & Tasks Definition
ECS는 Container 단위로 실행한다.
Task란, 실행을 위해 생성된
하나 이상의 Container의 집합으로 이해할 수 있다.
(요즘은 보통 하나의 Task에 하나의 Container를 실행)
Task Definition이란, Task 생성을 정의하는 청사진이다.
예를 들어, task에 사용할 Image, vCPU, memory, port 등을
정의할 수 있다.
즉, Task는 Task Definition에 설정 대로 생성된다.
Part 3,
19. ⓒSaebyeol Yu. Saebyeol’s PowerPoint
ECS란무엇인가?
Container Agent (with Fargate)
Container Agent란, 생성된 Task를 실제로 수행하는 Computing Engine이다.
EC2와 Fargate 중 선택 가능한데, 프로젝트에서는 Fargate를 사용하였다.
Fargate란, EC2처럼 인스턴스를 관리할 필요 없이 Container를 실행시켜주는
Serverless Computing Engine Service이다.
Part 3,
20. ⓒSaebyeol Yu. Saebyeol’s PowerPoint
ECS란무엇인가?
Fargate를 선택, 필요한 만큼 세밀하게 vCPU, memory 할당이 가능
Part 3,
21. ⓒSaebyeol Yu. Saebyeol’s PowerPoint
ECS란무엇인가?
Service
Task의 생명 주기를 관리한다.
프로젝트에서 사용한 Service의 기능은 다음과 같다.
- 원하는 Task 개수 설정
- Blue-Green Deploy 설정
- Load Balancing 설정
- VPC, Subnet, Security Group 설정
- Auto Scaling policy 설정
Part 3,
22. ⓒSaebyeol Yu. Saebyeol’s PowerPoint
ECS란무엇인가?
Part 2,
Clusters
Task를 실행하는 Container Instance들을 묶은 논리적 단위이다.
즉, ECS 에서는
동일한 Cluster에서 각 Task Definition을 Service로 생성하면,
설정에 맞춰 ECR에서 가져온 Image를 기반으로 Task를 생성하고,
이는 Container Instance가 실행하며 서비스 된다.
23. ⓒSaebyeol Yu. Saebyeol’s PowerPoint
ECS란무엇인가?
Part 2,
ECS 배포 영상: https://youtu.be/dTZyB5-kJyw
게임 내 동작 영상: https://youtu.be/rZAIUj-dwR8
24. ⓒSaebyeol Yu. Saebyeol’s PowerPoint
ECS란무엇인가?
+ Blue-Green Deploy
기존 서비스 (blue) 에서 신규 서비스 (green) 에서 무중단 배포를 위한 기법
ECS에서는 2개의 TargetGroup을 사용한다. (‘Blue – 기존, Green – 신규’라고 가정)
1. 기존 Instance의 수 만큼 Green에 새로운 버전을 서비스하는 Instance를 생성
2. Instance가 모두 생성된 순간 Load Balancer는 2개의 TG으로 서비스 중
3. 롤백을 위해 일정 시간 (약 1시간) Blue 서비스를 남겨둔 후 제거
+ 배포 방식에는 여러가지 방법을 선택 가능
- 모든 traffic을 Green으로 전환
- 절반을 Green으로 전환, 이후 15분에 10%씩 추가적으로 이동
- 1분 간격으로 10% 씩 이동 등..
Part 3,
26. ⓒSaebyeol Yu. Saebyeol’s PowerPoint
ECS란무엇인가?
Part 3,
ab -n 50000 -c 25 ALB_URL
최소 작업: 1
최대 작업: 3
Auto Scaling 실험
빠르게 확장/축소 결과를 보기 위해 휴지 기간을 짧게 설정
+ 게임 내에서는 특정 처리가 빨라야 하기 때문에 CPU UTIL을 낮게 설정
27. ⓒSaebyeol Yu. Saebyeol’s PowerPoint
ECS란무엇인가?
Part 3,
수행 속도는 약 0.2초로 만족스럽지만,
CPU Util을 너무 낮게 잡아 끝난 후에 Instance가 증가하는 현상 발생
자원의 낭비
28. ⓒSaebyeol Yu. Saebyeol’s PowerPoint
ECS란무엇인가?
Part 3,
ab -n 50000 -c 25 ALB_URL
CPU Util을 70으로 높이고, 최대 작업 개수를 2로 제한
29. ⓒSaebyeol Yu. Saebyeol’s PowerPoint
ECS란무엇인가?
Part 3,
앞에서 발생한 문제 없이 비슷한 성능을 얻어낼 수 있었음
적정 Instance 개수 찾아내기 성공
30. ⓒSaebyeol Yu. Saebyeol’s PowerPoint
어려웠던점및해결방법
Part 4,
가장 어려웠던 부분
ECS를 사용하기 위한 기본 개념들 (task definition, service, container …)
블로그, 문서 등을 많이 찾아봄
하지만, 가장 도움이 됐던 것은 aws 공식 developer guide
어떤 서비스를 사용하기 전에 그 서비스의 동작 방법,
사용하기 위한 용어를 공부 후
주어진 간단한 예시를 수행해 감을 익히는 방식으로 ECS를 공부
교훈: 공식 문서들을 잘 읽고 용어를 확실하게 이해하자!