데브시스터즈의 Cookie Run: OvenBreak 에 적용된 Kubernetes 기반 다중 개발 서버 환경 구축 시스템에 대한 발표입니다.
Container orchestration 기반 개발 환경 구축 시스템의 필요성과, 왜 Kubernetes를 선택했는지, Kubernetes의 개념과 유용한 기능들을 다룹니다. 아울러 구축한 시스템에 대한 데모와, 작업했던 항목들에 대해 리뷰합니다.
*NDC17 발표에서는 데모 동영상을 사용했으나, 슬라이드 캡쳐로 대신합니다.
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개if kakao
황민호(robin.hwang) / kakao corp. DSP개발파트
---
최근 Spring Cloud와 Netflix OSS로 MSA를 구성하는 시스템 기반의 서비스들이 많아지는 추세입니다.
카카오에서도 작년에 오픈한 광고 플랫폼 모먼트에 Spring Cloud 기반의 MSA환경을 구성하여, API Gateway도 적용하였는데 1년 반 정도 운영한 경험을 공유할 예정입니다. 더불어 MSA 환경에서는 API Gateway를 통해 인증을 어떻게 처리하는지 알아보고 OAuth2 기반의 JWT Token을 이용한 인증에 대한 이야기도 함께 나눌 예정입니다.
Learn about what a serverless architecture is, why they are growing in popularity, and who the key players are in a serverless API build on the AWS platform. Then get started building your own servless API!
데브시스터즈의 Cookie Run: OvenBreak 에 적용된 Kubernetes 기반 다중 개발 서버 환경 구축 시스템에 대한 발표입니다.
Container orchestration 기반 개발 환경 구축 시스템의 필요성과, 왜 Kubernetes를 선택했는지, Kubernetes의 개념과 유용한 기능들을 다룹니다. 아울러 구축한 시스템에 대한 데모와, 작업했던 항목들에 대해 리뷰합니다.
*NDC17 발표에서는 데모 동영상을 사용했으나, 슬라이드 캡쳐로 대신합니다.
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개if kakao
황민호(robin.hwang) / kakao corp. DSP개발파트
---
최근 Spring Cloud와 Netflix OSS로 MSA를 구성하는 시스템 기반의 서비스들이 많아지는 추세입니다.
카카오에서도 작년에 오픈한 광고 플랫폼 모먼트에 Spring Cloud 기반의 MSA환경을 구성하여, API Gateway도 적용하였는데 1년 반 정도 운영한 경험을 공유할 예정입니다. 더불어 MSA 환경에서는 API Gateway를 통해 인증을 어떻게 처리하는지 알아보고 OAuth2 기반의 JWT Token을 이용한 인증에 대한 이야기도 함께 나눌 예정입니다.
Learn about what a serverless architecture is, why they are growing in popularity, and who the key players are in a serverless API build on the AWS platform. Then get started building your own servless API!
Arm 기반의 AWS Graviton 프로세서로 구동되는 AWS 인스턴스 살펴보기 - 김종선, AWS솔루션즈 아키텍트:: AWS Summi...Amazon Web Services Korea
발표영상 다시보기: https://youtu.be/qLWJ6-Hyj_0
AWS Graviton 프로세서는 다양한 클라우드 워크로드에 대해 최고의 가격 대비 성능을 제공하기 위해 64비트 Arm Neoverse 코어를 사용한 맞춤형 제품입니다. 애플리케이션 서버, 마이크로서비스, 고성능 컴퓨팅, 게임, 오픈 소스 데이터베이스 및 인 메모리 캐시를 포함하여 다양한 워크로드에 적용 가능한 Graviton 프로세서 기반 EC2를 자세하게 소개합니다.
어느 해커쏜에 참여한 백엔드 개발자들을 위한 교육자료
쉽게 만든다고 했는데도, 많이 어려웠나봅니다.
제 욕심이 과했던 것 같아요. 담번엔 좀 더 쉽게 !
- 독자 : 백엔드 개발자를 희망하는 사람 (취준생, 이직 희망자), 5년차 이하
- 주요 내용 : 백엔드 개발을 할 때 일어나는 일들(개발팀의 일)
- 비상업적 목적으로 인용은 가능합니다. (출처 명기 필수)
AWS 클라우드를 활용하면 사용자의 트래픽에 따라 IT 인프라 아키텍처를 확장할 수 있습니다. 이번 강연에서는 서비스 초기의 작은 트래픽에 대응할 수 있는 단순한 아키텍처로 시작해 사업 성장 후의 수백만 사용자에 달하는 대규모 트래픽을 지탱할 수 있는 고확장성 아키텍처에 이르기까지의 단계별 아키텍처 구성 방법에 대해 소개해 드리고 컴퓨팅 및 데이터베이스 선택 및 사용자 증가에 따른 트래픽 경감 방법, 오토스케일링 및 모니터링과 자동화, DB 부하 분산, 고가용성 확보 등에 대한 다양한 모범사례를 알려드릴 예정입니다.
대용량 트래픽을 처리하는 최적의 서버리스 애플리케이션 - 안효빈, 구성완 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021Amazon Web Services Korea
서버리스는 오늘날 클라우드에서 가장 인기있는 디자인 패턴 중 하나입니다. 서버 및 운영 체제 운영의 부담은 덜고 서비스의 개발 및 구축을 통해 빠르게 혁신에 집중할 수 있기 때문입니다. 본 강연에서는 클라우드 네이티브한 방식으로 서버리스 애플리케이션을 고도화 하는 방법에 관해 알아봅니다. 아키텍처를 디커플링하고 비동기적으로 구성함으로써 보다 유연한 확장이 가능하게 됩니다. Amazon API Gateway, AWS Lambda 를 활용한 기본적인 서버리스 애플리케이션을 Lambda의 신규 기능과 Amazon SQS, Amazon RDS Proxy, AWS Secrets Manager 등을 활용해 보다 안정적으로 확장하는 방법에 관해 알아봅니다.
source : http://www.opennaru.com/cloud/msa/
마이크로서비스는 애플리케이션 구축을 위한 아키텍처 기반의 접근 방식입니다. 마이크로서비스를 전통적인 모놀리식(monolithic) 접근 방식과 구별 짓는 기준은 애플리케이션을 핵심 기능으로 세분화하는 방식입니다. 각 기능을 서비스라고 부르며, 독립적으로 구축하고 배포할 수 있습니다. 이는 개별 서비스가 다른 서비스에 부정적 영향을 주지 않으면서 작동(또는 장애가 발생)할 수 있음을 의미합니다.
[Container 기반의 DevOps] Cloud Native
열린기술공방에서 처음으로 런칭한 교육 프로그램의 트렌드 세션 자료입니다. 급변하는 환경에 맞춘 SW를 개발하고 배포하기 위해, 빠른 의사결정을 할 수 있는 환경과 프로세스가 더욱 중요해지고 있는데요. 기업들에게 왜 클라우드 네이티브 전략이 필수적인지에 대해 소개한 자료입니다.
열린기술공방의 교육 과정을 통해 Kubernetes위에서 동작하는 Application의 빌드부터 배포까지의 과정을 한 눈에 확인하실 수 있습니다.
고객의 플랫폼/서비스를 개선한 국내 사례 살펴보기 – 장준성 AWS 솔루션즈 아키텍트, 강산아 NDREAM 팀장, 송영호 야놀자 매니저, ...Amazon Web Services Korea
AWS는 175개 이상의 다양한 서비스를 제공해드리고 있습니다. 주요 서비스들 외에도 고객 서비스의 품질을 개선하는 데에 이러한 다양한 AWS의 서비스들의 도움을 받을 수 있습니다. 이번 세션에서는 AWS Transit Gateway, AWS Global Accelerator, AWS Shield, AWS IoT, Amazon WorkSpaces 를 통해서 고객의 플랫폼/서비스를 개선한 국내 사례들을 살펴보며 AWS 서비스들을 어떻게 활용할 수 있는지 보여드립니다.
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...Amazon Web Services Korea
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study
이 세션에서는 데브시스터즈의 Case Study를 통하여 Data Lake를 만들고 사용하는데 있어 요구 되는 사항들에 대해 공유합니다. 여러 목적에 맞는 데이터를 전달하기 위해 AWS 를 활용하여 Data Lake 를 구축하게된 계기와 실제 구축 작업을 하면서 경험하게 된 것들에 대해 말씀드리고자 합니다. 기존 인프라 구조 대비 효율성 및 비용적 측면을 소개해드리고, 빅데이터를 이용한 부서별 데이터 세분화를 진행할 때 어떠한 Architecture가 사용되었는지 소개드리고자 합니다.
AWS' philosophy and recommended best practices for building microservices applications, how AWS services like Lambda and API gateway benefit developers building microservices apps, and how customers are using these two and other AWS services to deliver their microservices apps
DEVOPS 전반적인 것에 대해서 소개를 한 자료입니다.
http://wiki.tunelinux.pe.kr/display/sysadmin/DEVOPS
https://groups.google.com/forum/#!topic/sysadminstudy/g4bM_xbZPC8
DevOps 시작
DevOps 정의
Dev vs Ops 충돌
DevOps 유래
참고자료
애자일 방법론
ITIL
린스타트업
린 생산방식
애자일을 OPS로 확장
DevOps 관점 : 측정지표 관점, 프로세스 관점, 기술 관점
DevOps가 아닌 것은?
DevOps 소개
프로젝트 세팅 : 전통적인 프로젝트 세팅, 애자일 프로세스 세팅
하나의 팀
핵심
가치와 목적
프로세스
도구
DevOps 구성하기
측정지표 : cycle time, 변경(change)
흐름 개선하기
배포 개선 및 가속화 : batch size 줄이고 더 자주 배포하여 cyclle time 줄이기.
못 다한 이야기 : Metrics and Measurement View / Process View / Technical View
Top 11 Things About DevOps
DevOps의 기초 원리 : 전체 시스템적인 사고, 피드백 루프를 확대하기, 지속적인 실헝과 학습
자동화 도구
이상적인 프로젝트란?
버전관리
티켓관리
지속적인 통합(CI)
지속적인 배포(CD)
프로비저닝 툴체인
OS설치
설정
오케스트레이션(배포)/워크플로우
이제 무엇을 할까?
나가면서
참고자료
Arm 기반의 AWS Graviton 프로세서로 구동되는 AWS 인스턴스 살펴보기 - 김종선, AWS솔루션즈 아키텍트:: AWS Summi...Amazon Web Services Korea
발표영상 다시보기: https://youtu.be/qLWJ6-Hyj_0
AWS Graviton 프로세서는 다양한 클라우드 워크로드에 대해 최고의 가격 대비 성능을 제공하기 위해 64비트 Arm Neoverse 코어를 사용한 맞춤형 제품입니다. 애플리케이션 서버, 마이크로서비스, 고성능 컴퓨팅, 게임, 오픈 소스 데이터베이스 및 인 메모리 캐시를 포함하여 다양한 워크로드에 적용 가능한 Graviton 프로세서 기반 EC2를 자세하게 소개합니다.
어느 해커쏜에 참여한 백엔드 개발자들을 위한 교육자료
쉽게 만든다고 했는데도, 많이 어려웠나봅니다.
제 욕심이 과했던 것 같아요. 담번엔 좀 더 쉽게 !
- 독자 : 백엔드 개발자를 희망하는 사람 (취준생, 이직 희망자), 5년차 이하
- 주요 내용 : 백엔드 개발을 할 때 일어나는 일들(개발팀의 일)
- 비상업적 목적으로 인용은 가능합니다. (출처 명기 필수)
AWS 클라우드를 활용하면 사용자의 트래픽에 따라 IT 인프라 아키텍처를 확장할 수 있습니다. 이번 강연에서는 서비스 초기의 작은 트래픽에 대응할 수 있는 단순한 아키텍처로 시작해 사업 성장 후의 수백만 사용자에 달하는 대규모 트래픽을 지탱할 수 있는 고확장성 아키텍처에 이르기까지의 단계별 아키텍처 구성 방법에 대해 소개해 드리고 컴퓨팅 및 데이터베이스 선택 및 사용자 증가에 따른 트래픽 경감 방법, 오토스케일링 및 모니터링과 자동화, DB 부하 분산, 고가용성 확보 등에 대한 다양한 모범사례를 알려드릴 예정입니다.
대용량 트래픽을 처리하는 최적의 서버리스 애플리케이션 - 안효빈, 구성완 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021Amazon Web Services Korea
서버리스는 오늘날 클라우드에서 가장 인기있는 디자인 패턴 중 하나입니다. 서버 및 운영 체제 운영의 부담은 덜고 서비스의 개발 및 구축을 통해 빠르게 혁신에 집중할 수 있기 때문입니다. 본 강연에서는 클라우드 네이티브한 방식으로 서버리스 애플리케이션을 고도화 하는 방법에 관해 알아봅니다. 아키텍처를 디커플링하고 비동기적으로 구성함으로써 보다 유연한 확장이 가능하게 됩니다. Amazon API Gateway, AWS Lambda 를 활용한 기본적인 서버리스 애플리케이션을 Lambda의 신규 기능과 Amazon SQS, Amazon RDS Proxy, AWS Secrets Manager 등을 활용해 보다 안정적으로 확장하는 방법에 관해 알아봅니다.
source : http://www.opennaru.com/cloud/msa/
마이크로서비스는 애플리케이션 구축을 위한 아키텍처 기반의 접근 방식입니다. 마이크로서비스를 전통적인 모놀리식(monolithic) 접근 방식과 구별 짓는 기준은 애플리케이션을 핵심 기능으로 세분화하는 방식입니다. 각 기능을 서비스라고 부르며, 독립적으로 구축하고 배포할 수 있습니다. 이는 개별 서비스가 다른 서비스에 부정적 영향을 주지 않으면서 작동(또는 장애가 발생)할 수 있음을 의미합니다.
[Container 기반의 DevOps] Cloud Native
열린기술공방에서 처음으로 런칭한 교육 프로그램의 트렌드 세션 자료입니다. 급변하는 환경에 맞춘 SW를 개발하고 배포하기 위해, 빠른 의사결정을 할 수 있는 환경과 프로세스가 더욱 중요해지고 있는데요. 기업들에게 왜 클라우드 네이티브 전략이 필수적인지에 대해 소개한 자료입니다.
열린기술공방의 교육 과정을 통해 Kubernetes위에서 동작하는 Application의 빌드부터 배포까지의 과정을 한 눈에 확인하실 수 있습니다.
고객의 플랫폼/서비스를 개선한 국내 사례 살펴보기 – 장준성 AWS 솔루션즈 아키텍트, 강산아 NDREAM 팀장, 송영호 야놀자 매니저, ...Amazon Web Services Korea
AWS는 175개 이상의 다양한 서비스를 제공해드리고 있습니다. 주요 서비스들 외에도 고객 서비스의 품질을 개선하는 데에 이러한 다양한 AWS의 서비스들의 도움을 받을 수 있습니다. 이번 세션에서는 AWS Transit Gateway, AWS Global Accelerator, AWS Shield, AWS IoT, Amazon WorkSpaces 를 통해서 고객의 플랫폼/서비스를 개선한 국내 사례들을 살펴보며 AWS 서비스들을 어떻게 활용할 수 있는지 보여드립니다.
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...Amazon Web Services Korea
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study
이 세션에서는 데브시스터즈의 Case Study를 통하여 Data Lake를 만들고 사용하는데 있어 요구 되는 사항들에 대해 공유합니다. 여러 목적에 맞는 데이터를 전달하기 위해 AWS 를 활용하여 Data Lake 를 구축하게된 계기와 실제 구축 작업을 하면서 경험하게 된 것들에 대해 말씀드리고자 합니다. 기존 인프라 구조 대비 효율성 및 비용적 측면을 소개해드리고, 빅데이터를 이용한 부서별 데이터 세분화를 진행할 때 어떠한 Architecture가 사용되었는지 소개드리고자 합니다.
AWS' philosophy and recommended best practices for building microservices applications, how AWS services like Lambda and API gateway benefit developers building microservices apps, and how customers are using these two and other AWS services to deliver their microservices apps
DEVOPS 전반적인 것에 대해서 소개를 한 자료입니다.
http://wiki.tunelinux.pe.kr/display/sysadmin/DEVOPS
https://groups.google.com/forum/#!topic/sysadminstudy/g4bM_xbZPC8
DevOps 시작
DevOps 정의
Dev vs Ops 충돌
DevOps 유래
참고자료
애자일 방법론
ITIL
린스타트업
린 생산방식
애자일을 OPS로 확장
DevOps 관점 : 측정지표 관점, 프로세스 관점, 기술 관점
DevOps가 아닌 것은?
DevOps 소개
프로젝트 세팅 : 전통적인 프로젝트 세팅, 애자일 프로세스 세팅
하나의 팀
핵심
가치와 목적
프로세스
도구
DevOps 구성하기
측정지표 : cycle time, 변경(change)
흐름 개선하기
배포 개선 및 가속화 : batch size 줄이고 더 자주 배포하여 cyclle time 줄이기.
못 다한 이야기 : Metrics and Measurement View / Process View / Technical View
Top 11 Things About DevOps
DevOps의 기초 원리 : 전체 시스템적인 사고, 피드백 루프를 확대하기, 지속적인 실헝과 학습
자동화 도구
이상적인 프로젝트란?
버전관리
티켓관리
지속적인 통합(CI)
지속적인 배포(CD)
프로비저닝 툴체인
OS설치
설정
오케스트레이션(배포)/워크플로우
이제 무엇을 할까?
나가면서
참고자료
제10회 개발자를 위한 ‘共感(공감)’ 세미나 - Session 5 Vagrant와 Chef로 개발서버 구축 자동화하기의 장표입니다.
규모가 있는 자바 웹 프로젝트는 대부분 개발, 테스트, 이관, 운영 등 n개의 서버로 배포/관리가 된다.
테스트, 이관, 운영과 같은 서버는 별도의 서버가 마련되어 구축되지만 개발서버는 일반적으로 개발자 자신의 PC에 구축해서 진행하는 경우가 많다. 이러다보니 개발자별로 조금씩 미묘하게 다른 서버 환경이 자신의 PC에서는 잘 되는 기능이 다른 서버에 배포되면 구동되지 않는 경우도 많고, 프로젝트에 참여하는 개발자들이 개발서버를 구축하기 위해서 들이는 비용도 만만치 많이 들어간다.
Vagrant와 Chef라는 도구를 사용하면 개발자들이 자신의 PC에 개발서버를 구축하고 관리하는데 들어가는 비용을 획기적으로 줄일 수 있다.
예제에 보여준 동영상 : http://youtu.be/W28iX5WFRXU
예제에 사용된 소스 : https://gist.github.com/4366784
Introducing AWS OpsWorks, a DevOps application management platformAmazon Web Services
AWS gives developers programmatic control of resources and the ability to grow as application needs dictate. However, managing an application can take more than simply starting EC2 instances. Software may need to be configured on the instances and changes to existing resources may be required. AWS now has an easier way to automate and control applications of any scale or complexity. In this session we will demonstrate OpsWorks, an integrated experience for managing the complete application lifecycle, including resource provisioning, configuration management, application deployment, software updates, monitoring, and access control. Attendees will leave this session with an understanding of how to control any aspect of an application’s configuration using OpsWorks Layers and Chef recipes, and automate common tasks to streamline operations.
Flexible, simple deployments with OpenStack-AnsibleMajor Hayden
I gave this talk at the OpenStack Austin Meetup on June 20, 2016. The talk covers the reasons why OpenStack-Ansible exists and the value that it brings for production OpenStack deployments.
AWS 웨비나 시리즈를 마감하면서 첫 강연부터 마지막 강연까지 여러분이 가장 궁금해 했던 10가지 질문에 대해 심층적으로 다루어 보고자 합니다. 각 강연에서 공통으로 다루어졌던 주제 및 질문 시간을 통해서 가장 많이 물어보신 사항과 모든 분들이 꼭 알고 계시면 좋을 내용을 모을 예정입니다.
아마존 웹 서비스의 경우, 스타트업 부터 엔터프라이지까지 개발자 및 인프라 운영 엔지니어들이 주로 사용하는 것으로 알려져 있습니다. 하지만, 블로거로서 일반인들도 AWS 서비스를 유용하게 사용할 수 있습니다. 본 자료는 4주 완성으로 알파 사용자들이 아마존 웹 서비스를 활용하는 방법을 스터디 길잡이 입니다.
대상: 워드 프레스를 자체 서버로 블로그를 운영하려는 블로거, 포트폴리오 사이트를 운영하는 웹 디자이너, 클라우드를 통한 안정적인 소규모 워드프레스를 운영하려는 스타트업 등
얻을 수 있는 것:
1. 클라우드 컴퓨팅의 개념과 AWS 서비스에 대한 이해
2. AWS의 도메인 관리, 스토리지 및 동영상 인코등, 이메일 전송 서비스 활용 지식 습득
3. 복잡한 서버 운영 (콘솔 및 커맨드)과 DB 관리 없이도 안정적인 워드 프레스 운영 노하우 습득
주차별 스터디 내용:
<1주> AWS 소개 및 처음 할 일
1. 클라우드 컴퓨팅 및 AWS 서비스 소개
2. AWS 가입 및 빌링 알람 설정(CloudWatch)
3. AWS Activate 프로그램 가입 및 사용 방법
<2주> 서버 없이 웹 사이트 호스팅하기
1. S3에 파일 서버 구축하기(S3 지원 FTP 클라이언트 사용법)
2. AWS 사용자 및 크리덴셜 만들기(IAM)
3. S3에 정적 웹 사이트 운영하기
4. CloudFront로 콘텐츠 배포하기
5. 도메인 네임 관리 및 설정하기(Route53)
<3주> Elastic Beanstalk으로 워드프레스 운영하기
1. AWS 아키텍쳐 이해하기 (EC2/ELB/RDS/AutoScaling)
2. 5분만에 확장 가능한 워드프레스 구성하기(CloudFormation)
3. Elastic Beanstalk으로 워드프레스 운영하기
4. WordPress 로컬 서버 및 GIT 레포지터리 설치하기
<4주> 유용한 AWS 서비스 활용하기
1. Elastic Beanstalk 설정 및 배포하기
2. Elastic Transcoder를 통한 자동 동영상 인코딩 하기
3. SES를 통해 대용량 이메일 보내기
본 온라인 세미나에서는 AWS에서 제공하는 Computing 옵션들 중 대표적인 서비스인 EC2라는 서비스와 Serverless Computing 서비스인 Lambda를 소개합니다. 본 세미나는 AWS서비스의 소개를 시작으로EC2와 Lambda 서비스 사용 시 Best Practice와 고객 사례 등을 소개합니다.
자연어 처리 ML모델을 활용한 이커머스 문제 해결하기 - 진현두 (카카오스타일) :: AWS Community Day Online 2021AWSKRUG - AWS한국사용자모임
이커머스에서 가장 중요한 사용자 리뷰! 사용자 리뷰 내 특정 키워드 관련 표현을 스마트하게 찾고, 하이라이팅 정보를 제공하는 ML모델 개발하여 서비스에 반영하였습니다. 복잡한 전처리와 모델링전반의 프로세스를 Amazon SageMaker + Custom Docker 로 구현 방법을 소개합니다.
자바개발자가 최대한 빠르게 서비스를 오픈하는 방법 - 최진환 (드라마앤컴퍼니) :: AWS Community Day Online 2021AWSKRUG - AWS한국사용자모임
사이드프로젝트를 진행하면서 겪은 다양한 인프라 구축 노하우를 소개합니다.왜 EKS가 아닌 Elastic Beanstalk를 사용했는지, Codepipeline을 이용한 깃헙에서 배포까지의 플로우, AWS ChatBot을 사용한 모니터링과 CodeBuild로 빌드하기 등을 소개합니다.
EKS에서 Opentelemetry로 코드실행 모니터링하기 - 신재현 (인덴트코퍼레이션) :: AWS Community Day Online...AWSKRUG - AWS한국사용자모임
EKS환경에서 Opentelemetry와 Jaeger를 활용하여 서버의 코드가 잘 동작하는지 어떤로직에서 문제가 발생했는지 모니터링 하는 방법을 알아봅니다. 마지막으로 Grafana를 이용해 쉽게 원하는 코드를 조회 하는 방법도 실습해볼 예정입니다. K8S를 모르셔도 참석할 수 있습니다.
2. 발표자 소개
• 이정행 (@eincs)
• VCNC에서 비트윈을 개발하고 있는 개발자
• 서버팀에서 잡다한 것을 개발 중
• http://eincs.com
3. 비트윈
• 커플들을 위한 모바일 서비스
• 아이폰, 안드로이드 어플리케이션 제공
• 채팅, 기념일, 사진, 메모, 캘린더 기능 제공
• 전 세계에서 1000만+ 다운로드 (as of 2014.12)
• http://between.us
• http://engineering.vcnc.co.kr
4. 비트윈 서버 구조
• Java로 작성되어 있음
• 데이터 저장소로 HBase를 사용함
• Haeinsa를 통해 HBase에 접근시 ACID 트랜잭션 이용
• Thrift 서비스를 Netty위에 올려서 서비스함
• 채팅의 경우, Thrift를 이용해 클라이언트와 통신함
• AWS Tokyo리전에서 운영되고 있음
7. EC2
웹서비스를 띄우기 위해
EC2 인스턴스를 만들어보았습니다.
설정해야 하는 값들: InstanceType, AMI, AvailabilityZone,
SecurityGruop, Volumes, KeyName Tags…
8. EC2
데이터를 저장하기 위해서
RDS를 이용하기로 하였습니다.
설정해야 하는 값들: DBName, DBSecurityGroup, Engine, EngineVersion, MultiAZ,
MaintenanceWindow, AllocatedStorage, AllowMajorVersonUpgrade…
RDS
9. RDS
EC2
EC2
트래픽이 많아져서 EC2를 더 띄웠습니다.
ELB를 통해 로드밸런싱을 합니다.
설정해야 하는 값들: ELB Name, AvailabilityZone, LIsteners,CrossZone,
ConnectionDrainingPolicy, LBCookieStickinessPolicy, Tags…
10. RDS
EC2
EC2
트래픽이 많아져서 EC2를 더 띄웠습니다.
ELB를 통해 로드밸런싱을 합니다.
설정해야 하는 값들: ELB Name, AvailabilityZone, LIsteners,CrossZone,
ConnectionDrainingPolicy, LBCookieStickinessPolicy, Tags…
손토스케일링™
(hand)
11. RDS
EC2
EC2
트래픽이 많아져서 EC2를 더 띄웠습니다.
ELB를 통해 로드밸런싱을 합니다.
설정해야 하는 값들: ELB Name, AvailabilityZone, LIsteners,CrossZone,
ConnectionDrainingPolicy, LBCookieStickinessPolicy, Tags…
손토스케일링™ = 서버 개발자가 잠을 잘 수 없다.
12. RDS
EC2
EC2
트래픽에 따라 유연하게 대응하기 위해
AutoScalingGroup을 이용하기로 하였습니다.
설정해야 하는 값들: AvailabilityZone, Cooldown,
Max/Min/DesiredCapacity, LoadBalancerName, ScalingPolicy…
13. RDS
EC2
EC2
어떤 매트릭에 대해 알람을 걸 것인지 결정하고
알람을 하나하나 등록해야합니다.
혹시 있을 장애 상황에 빠르게 대응하기 위해
CloudWatch를 이용하여 알림을 받기로 하였습니다.
17. 비트윈 서버
로그 수집 서버
비트윈 채팅 서버
이벤트박스 서버
공지사항 서버
더보기탭 서버
광고 배너 서버
광고 알림 서버스티커 스토어
모바일쿠폰샵
OAuth 서버
리딤 서버
Kharon 서버
비트윈 Worker
각종 프리젠터
……
운영하는 서버의 종류가 많아진다면?
18. 비트윈 서버
로그 수집 서버
비트윈 채팅 서버
이벤트박스 서버
공지사항 서버
더보기탭 서버
광고 배너 서버
광고 알림 서버스티커 스토어
모바일쿠폰샵
OAuth 서버
리딤 서버
Kharon 서버
비트윈 Worker
각종 프리젠터
……
운영하는 서버의 종류가 많아진다면?
함정 카드 발동: 만들고 설정해야 할게 몇 개인지 세기도 어렵다
40. CloudFormation의 추가 기능
• Mapping을 이용하여 조건에 따라 다른 값 설정 가능
• Condition를 이용하여 조건에 따라 리소스의 생성 여부나
리소스의 설정값을 경우에 따라 다르게 할 수 있음
• 여러 연산자(Fn::Join, Fn::Equals…)를 이용하여 데이터를
조합하여 새로운 데이터를 만들어 낼 수 있음
• 뭔가 업데이트 되는 경우 Notification로 알려주는 기능
• StackPolicy를 이용해 특정 리소스의 변경을 막는 기능
41. 스택을 업데이트 하는 경우
• 템플릿을 변경하거나 원래 있던 템플릿은 그대로 사용하면
서 파라메터만 변경하는 식으로 업데이트가 가능
• 스택이 관리하던 리소스들의 상태가 업데이트되거나 지워졌
다가 새로 만들어 질 수 있음
• 리소스가 중단없이 업데이트 될지, 지웠다가 새로 만들어질
지는 변경되는 값에 따라 다르며 문서에 명시되어 있음
• AutoScalingGroup의 경우 UpdatePolicy를 지정하여 자동
으로 롤링 업데이트를 시킬 수 있음
42. CloudFormation 노하우
• 처음에는 만들 수 있는 Stack 갯수가 20개로 제한되어 있지
만 늘릴 수 있음
• 하나의 템플릿에 너무 많이 담으려고 할 필요가 없음
(여러 Stack을 조합하여 전체 시스템을 구성하기)
• Output을 잘 정의하면 다른 스택을 만들때 들어가는
Parameter값을 쉽게 작성 할 수 있음
43. CloudFormation의 불편한 점
• JSON형태로 되어 있어서 주석을 쓸 수가 없음
• 비슷한 구성의 스택을 만드는 경우 반복되는 코드가 많아짐
• 최신 기능들을 제공하지 않는 경우가 있음
• 기존에 만들었던 인프라를 CloudFormation으로 관리하려
면 전부 다시 만들어야함
45. 정리하기
• CloudFormation은 좋으며 시작하기도 어렵지 않음
• 인프라 구성을 소스코드 처럼 관리 가능함 (리뷰도 가능)
• 다른 사람에게 말로 구성에 대해 설명할 필요 없음
• 사람이 관여하는 부분이 적어 실수 방지 가능
• CloudFormation 꼭 쓰세요. 두 번 쓰세요.
50. 제품 DSL Agent 개발언어
Ansible yml 없음 (SSH) Python
Chef
DSL
(Ruby기반)
필요 Ruby
Puppet DSL 필요 Ruby
유명한 서버 구성 소프트웨어와의 비교
51. 제품 DSL Agent 개발언어
Ansible yml 없음 (SSH) Python
Chef
DSL
(Ruby기반)
필요 Ruby
Puppet DSL 필요 Ruby
비교적 간단한 형태의 yml을 이용해 정의를 하므로 쉽게 배울 수 있다.
52. 제품 DSL Agent 개발언어
Ansible yml 없음 (SSH) Python
Chef
DSL
(Ruby기반)
필요 Ruby
Puppet DSL 필요 Ruby
Agent를 미리 프로비저닝 할 필요 없어서 편리하다.
53. 제품 DSL Agent 개발언어
Ansible yml 없음 (SSH) Python
Chef
DSL
(Ruby기반)
필요 Ruby
Puppet DSL 필요 Ruby
개발 언어에 따라 배포하는 방식도 달라질 수 있다.
54. 제품 DSL Agent 개발언어
Ansible yml 없음 (SSH) Python
Chef
DSL
(Ruby기반)
필요 Ruby
Puppet DSL 필요 Ruby
함정 카드 발동: 그 날 따라 gem이 엄청 느렸습니다…
개발 언어에 따라 배포하는 방식도 달라질 수 있다.
59. 정리하기
• Ansible은 좋음
• 서버 구성을 소스코드 처럼 관리 가능함 (리뷰도 가능)
• Agent를 따로 설치할 필요가 없어 시작이 비교적 간단함
• 잘 활용하면 Ansible을 잘 몰라도 서버 구성을 할 수 있음
• Puppet, Chef에 대한 좋은 대안이 될 수 있음
70. 함정 카드 리스트
• 생각보다 설정 할 것들이 많다.
• 비슷한 것들을 반복해서 만들어야 할때도 있다.
• 만들다가 실수로 설정을 빼먹는다면?
• 여러 사람에게 지식을 알려주기가 힘들다.
• AMI를 새로 만들어야할 때도 있다.
71. 함정 카드 리스트
• 생각보다 설정 할 것들이 많다.
• 비슷한 것들을 반복해서 만들어야 할때도 있다.
• 만들다가 실수로 설정을 빼먹는다면?
• 여러 사람에게 지식을 알려주기가 힘들다.
• AMI를 새로 만들어야할 때도 있다.
모두 CloudFormation, Ansible로 해결 가능!