쉐이커(https://www.shakr.com/)에서 AWS를 온프레미스 인프라와 더불어 어떻게 사용하고 있는지, 이용 사례를 공유합니다.
Apr 21 2015
Presented at the AWS Summit Seoul
http://aws.amazon.com/ko/summits/seoul/
많은 고객들이 AWS 클라우드를 활용해 이용하여 자신들의 서비스와 비지니스를 성장시키고 있습니다. 이 강연에서는 고객들이 실제 사례를 통해 어떻게 AWS 클라우드를 활용하는지 소개해 드립니다.
웹 사이트 및 모바일 앱 개발, 데이터 분석 및 백업 및 재해 복구 그리고 클라우드로의 이전 사례 등 AWS 클라우드를 통한 다양한 요구 사항 충족 및 작업 처리에 대해 이해하실 수 있습니다. IT 영역의 다양한 분야에서 AWS의 컴퓨팅, 스토리지 및 데이터베이스 서비스들이 활용되는 양상을 알아보시기 바랍니다.
자바개발자가 최대한 빠르게 서비스를 오픈하는 방법 - 최진환 (드라마앤컴퍼니) :: AWS Community Day Online 2021AWSKRUG - AWS한국사용자모임
사이드프로젝트를 진행하면서 겪은 다양한 인프라 구축 노하우를 소개합니다.왜 EKS가 아닌 Elastic Beanstalk를 사용했는지, Codepipeline을 이용한 깃헙에서 배포까지의 플로우, AWS ChatBot을 사용한 모니터링과 CodeBuild로 빌드하기 등을 소개합니다.
쉐이커(https://www.shakr.com/)에서 AWS를 온프레미스 인프라와 더불어 어떻게 사용하고 있는지, 이용 사례를 공유합니다.
Apr 21 2015
Presented at the AWS Summit Seoul
http://aws.amazon.com/ko/summits/seoul/
많은 고객들이 AWS 클라우드를 활용해 이용하여 자신들의 서비스와 비지니스를 성장시키고 있습니다. 이 강연에서는 고객들이 실제 사례를 통해 어떻게 AWS 클라우드를 활용하는지 소개해 드립니다.
웹 사이트 및 모바일 앱 개발, 데이터 분석 및 백업 및 재해 복구 그리고 클라우드로의 이전 사례 등 AWS 클라우드를 통한 다양한 요구 사항 충족 및 작업 처리에 대해 이해하실 수 있습니다. IT 영역의 다양한 분야에서 AWS의 컴퓨팅, 스토리지 및 데이터베이스 서비스들이 활용되는 양상을 알아보시기 바랍니다.
자바개발자가 최대한 빠르게 서비스를 오픈하는 방법 - 최진환 (드라마앤컴퍼니) :: AWS Community Day Online 2021AWSKRUG - AWS한국사용자모임
사이드프로젝트를 진행하면서 겪은 다양한 인프라 구축 노하우를 소개합니다.왜 EKS가 아닌 Elastic Beanstalk를 사용했는지, Codepipeline을 이용한 깃헙에서 배포까지의 플로우, AWS ChatBot을 사용한 모니터링과 CodeBuild로 빌드하기 등을 소개합니다.
넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study (임현수 플랫폼인프라실 Technical Manager, 넥...Amazon Web Services Korea
넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study
이 세션에서는 넥슨의 Case study를 통하여 글로벌플랫폼 구축을 위해 기존 플랫폼을 AWS로 Migration하는 과정 및 발생가능한 이슈를 공유합니다. 넥슨이 DB서버를 이전하는 과정 속에서 마주한 기술적 고민과 이슈를 통하여 AWS 활용 시 고려해야 할 부분들에 대해 소개하고 함께 이야기 나누고자 합니다.
AWS 웨비나 시리즈를 마감하면서 첫 강연부터 마지막 강연까지 여러분이 가장 궁금해 했던 10가지 질문에 대해 심층적으로 다루어 보고자 합니다. 각 강연에서 공통으로 다루어졌던 주제 및 질문 시간을 통해서 가장 많이 물어보신 사항과 모든 분들이 꼭 알고 계시면 좋을 내용을 모을 예정입니다.
[17.01.19] docker introduction (Korean Version)Ildoo Kim
Docker(도커) 소개를 위해 사용했던 자료입니다.
제가 속한 개발팀에서는 도커 컨테이너를 기반으로 개발부터 배포까지 가능한 환경 및 인프라를 구축하여 개발팀에서 대다수의 오퍼레이션까지 관여하면서 Devops 형태로 운영합니다.
Docker(도커)를 처음 사용하거나 개념적으로 익숙하지 않은 초보를 위해 만든 자료입니다.
슬라이드에서 사용된 스크립트/코드는 아래에 있습니다.
https://github.com/ildoonet/docker_introduction
----
김일두, Software Engineer @ Kakao
Github : https://github.com/ildoonet
Linkedin : https://www.linkedin.com/in/ildoo-kim-56962034/
본 온라인 세미나에서는 AWS에서 제공하는 Computing 옵션들 중 대표적인 서비스인 EC2라는 서비스와 Serverless Computing 서비스인 Lambda를 소개합니다. 본 세미나는 AWS서비스의 소개를 시작으로EC2와 Lambda 서비스 사용 시 Best Practice와 고객 사례 등을 소개합니다.
2. 본 강연에서 다룰 내용
•1부 (20분) - 한종원
• Introduction
• 'Daily Continuous Deployment' (이하 'daily CD’)로의 여정
• Play with AWS
• 실제 운영 사례들
• Wrap Up
•2부 (20분) - 윤제상
2
4. 발표자 소개
•한종원 ( https://www.linkedin.com/in/addnull/ )
•Python과 Cloud Infra, Lean/Agile 방법론 그리고 애플의 제품을 사랑
•2012년 석사 학위를 마치고, 스타트업을 시작 (이때부터 AWS를 production level에서 사용)
•'의미가 있는 일을, 올바르게 하고 싶다.’
•경력
• (현) DevOps 전문 스타트업 ‘HB Smith’ 대표 ( https://hbsmith.io )
• (2016) 택시 O2O 서비스 스타트업 ‘Kanizsa Lab’의 backend server / infra devops 담당
• (2015) Cloud computing 전문 스타트업 'A2 company' co-founder (‘KINX’에 인수합병)
• (2010) Samsung Software Membership (수원, 대전)
• (2007) NEXON 'MapleStory 국내 Live Team'에서 DBA, SA로 근무 (산업 기능 요원)
4
5. Introduction
•PyCon APAC 2016 ( https://www.pycon.kr/2016apac/program/15 )
• “Daily Continuous Deployment를 위한
Custom CLI 개발 및 AWS Elastic Beanstalk에 적용하기”
5
6. Introduction
•오늘은 ‘daily CD’와 AWS Elastic Beanstalk에 집중
• ‘daily CD’란 무엇이고, 왜 필요한가?
• 왜 AWS 를 선택했는가?
• 왜 Elastic Beanstalk를 선택했는가?
6
8. Continuous Deployment란?
•from Wikipedia
"Continuous delivery is sometimes confused with continuous deployment.
Continuous deployment means that every change is automatically
deployed to production.”
•정의: 자동으로 최신 버전의 소스 코드를 테스트, 패키징, 배포
이미지 출처: http://evolutyz.in/devops.html
8
9. Daily CD란?
•정의: “매일” 자동으로 최신 버전의 소스 코드를 테스트, 패키징, 배포
• 쉽게 적용 가능한 대상
• REST API server (WAS), Worker (async job)
• 주로 computing만 하고 data, log 저장을 거의 하지 않는 서버군
• 적용하기 어려운 대상
• DB, Storage
• 대용량 data, log 저장을 해야하는 서버군
9
10. Daily CD로의 여정
•DevOps 외길 인생
• 2006년 Nexon MapleStory 개발팀의 SA, DBA로 근무
• 실제 물리머신 환경 (IDC)
• non-stop patch, DR 등의 요구사항
• DB HA 구성을 고려
• L4 switch 준비
• PoC, PoC 그리고 PoC
• 그러나…
10
11. Daily CD로의 여정
•DevOps 외길 인생
• 2012년 Cloud 전문 startup, ‘A2 company’ 창업
• 외주 SI/SM으로 AWS을 처음 접함
• OpenStack으로 AWS와 유사한 IaaS를 구축 (‘Juno’)
• 2016년 DevOps 전문 startup, ‘HB Smith’ 창업
11
12. Daily CD로의 여정
•약 10년간 이 바닥(devops)에서 굴러보니…
• 자동화는 장기적으로 언제나 승리한다.
(사람 손이 문제더라..)
• 3R (Repeatable, Reproducible, Reliable)을 추구하라.
• 서버(물리머신이든, VM이든)는 오래되면, 갑자기 맛이 간다.
(memory leak?)
• 마지막으로 reboot한지 오래된 서버일 수록 위험하다.
(모든 면에서)
12
이미지 출처: https://pinterest.com/psychokwack/devops/
13. Daily CD로의 여정
•소년은 늘 꿈을 꿉니다.
• non-stop 자동 server patch
• HA와 DR
• 항상 깨끗한 서버 (알 수 없는 계정, 쓰레기 임시 파일 찌거기들 없는 무공해 청정 서버)
13
14. Daily CD로의 여정
•목표
• 매일 서버(VM)를 새로 다시 띄워서(deployment) 이전 서버와 교체하자.
• 즉, 서버를 ‘하루살이’로 만들자.
•요구사항
• 3R (Repeatable, Reproducible, Reliable)
• non-stop (zero downtime, seamless)
• HA와 DR
14
16. AWS와 첫만남
•“EC2 server”가 아니라 “EC2 instance”
• VM 역시 bug가 있는 software
• 언제든지 갑자기 망가질 수 있는 임시적 자원
• Infra 장애를 100% 미리 예방할 수 없기에,
“빠른 복구”가 가능하도록 system architecture를 구성한다.
16
17. 왜 AWS 인가?
•2012년 부터 production level에서 사용
•높은 신뢰성
•풍부한 3rd party
•낮은 비용 !!!
•AWS를 쓰면, 개발/배포 속도가 빨라지는 게 아니라, 느려지지 않음.
17
21. Play with AWS #1
•EC2(AMI) + ELB 조합으로 Daily CD 도전
• ELB health check 기능 사용
• ELB 밑에 있는 EC2 중에 절반을 detach 함
• detach된 EC2를 patch (이때, ASG를 위한 AMI 생성)
• 다시 attach 하고 나머지 절반을 detach
• detach된 EC2를 patch
• 다시 attach
21
22. Play with AWS #1
•EC2(AMI) + ELB 조합의 문제점
• AMI version 관리 어려움 (도대체 안에 뭐가 있는거지?)
• OS level의 security patch 등을 직접해야함
• AMI 안에 쌓이는 찌꺼기 (사용하지 않는 계정, 임시 파일들)
• ELB 에서 detach, attach 하는 번거로움
• 짧은 순간이지만, patch된 EC2와 그렇지 않은 EC2가 동시에 ELB에 attach된 상태가 존재함
22
23. Play with AWS #2
•EB로 Daily CD 도전
• EB environment(EC2 + ELB) 단위로
매일 새로 deployment
• 새로운 EB env를 생성
• 이때 새로 생성한 EC2의
OS(Amazon Linux)는 최신 AMI로부터 생성
• EC2 에 software stack을 처음부터 설치
• 새 EB env가 green status로 바뀌면,
이전 EB env와 CNAME swapping으로 교체
23
24. Play with AWS #2
•EB의 Daily CD 단점
• EB의 동작 원리를 이해해야함
(예: ‘/opt/python/ondeck’ 경로가 나중에 ‘/opt/python/current’으로 변경)
• EB의 기본 설정을 너무 건드리면, 알 수 없는 문제가 발생될 수 있음
• 교체당한 EB env로도 일정 시간 traffic이 흘러감 (client DNS caching)
• 교체 후 1시간 정도 지난 후에 해당 EB env 삭제
• Log 유실의 우려
• 기본 15분마다 S3에 복사하는 cron job의 주기를 짧게 줄일 수 있음
http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.logging.html
24
25. Play with AWS #2
•EB의 Daily CD 장점
• 모든 요구사항을 다 만족함
• 3R (Repeatable, Reproducible, Reliable) -> 신입 개발자에게 빠르게 개발 환경 제공 가능
• non-stop (zero downtime, seamless)
• HA와 DR
• 그외 추가적인 장점들
• 항상 깨끗한 서버 (알 수 없는 계정, 쓰레기 임시 파일 찌거기들 없는 무공해 청정 서버)
• 오래된 서버가 가지는 문제점, 고민 해결 (memory leak, 오랜만에 reboot 등)
• 개발자들은 logic code에 더욱 집중
• 서버 tier를 작게 쪼갤 수 있음 (즉, microservices 또는 nanoservices 가 가능)
• T2 instance의 bonus CPU credit !!!
25
27. 실제 운영 사례 #1
•이미 AWS Tokyo region을 쓰고 있었음
•2016년 AWS Seoul region open
•AWS Tokyo region에서 운영하던 infra 전체를 Seoul region으로 migration
•기존에 Daily CD를 쓰고 있던 상태이므로 migration에 반나절 정도 걸림
• Tokyo region의 S3, RDS data를 Seoul region으로 migration (수작업)
• REST API server (WAS), Worker (async job)는 Daily CD 설정에서
‘ap-northeast-1’을 ‘ap-northeast-2’로 변경만 함
•약 1년간 운영
27
28. 실제 운영 사례 #2
•다른 public cloud 서비스를 쓰고 있었음
•1대의 VM에 all-in-one(DB, WAS…) 상태
•AS-IS code 분석 후 WAS, worker, storage, DB tier 분리 및 AWS 로 migration
• AWS migration 하면서 동시에 WAS, Worker 는 Daily CD 설정 적용
•AWS으로 전체 infra migration 완료까지 작업에 4주 소요
•현재 약 6개월 정도 운영 중
28
29. 실제 운영 사례 #3
•저희 ‘HB Smith’ 사례 ( https://hbsmith.io )
•현재 전체 AWS infra를 Daily CD로 운영 중
• 단, 대용량 data, log 저장을 해야하는 서버군(예: RDS)은 제외
•관련된 Python code를 OSS ‘Tiamat’로 공개
• https://github.com/HardBoiledSmith/tiamat
• https://github.com/HardBoiledSmith/johanna
29
30. 운영하면서 느낀 Daily CD 단점
•Provisioning code 관리에 공수가 아주 없지 않음
•철학을 이해 못하면, 전체 운영이 어려워짐
• 문제제기: ‘기능 구현, bug 수정이 급한데, 왜 이걸로 시간과 돈을 들임?’
• 답변: ‘이건 개발, 배포 속도를 빠르게 하는게 아니라, 느려지지 않게 하기 위함임.’
30
32. 체크 포인트
•발표 내용 wrap up
• 'daily CD’로의 여정
• ‘daily CD’란 무엇이고, 왜 필요하다고 느꼈는지
• Play with AWS
• 왜 AWS를 선택했는지, 그리고 어떻게 ‘daily CD’를 구축했는지
• 실제 운영 사례들
• 3개의 법인에서 적용 사례와 장기간 운영하면서 느낀 ‘단점’
32
33. 본 강연이 끝난 후…
•AWS Elastic Beanstalk 시작하기
• http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/GettingStarted.html
•Python + AWS EB 조합으로 구현한 ‘daily CD’의 자세한 정보 얻기
• https://www.pycon.kr/2016apac/program/15
•GitHub ‘Tiamat’ (AWS CLI 기반)에 contributor 지원
• https://github.com/HardBoiledSmith/tiamat
•AWS migration이나 EB 사용(세부적 tuning) 문의 보내기
• https://hbsmith.io
• hello@hbsmith.io
33
35. https://www.awssummit.kr
AWS Summit 모바일 앱을 통해 지금 세션 평가에
참여하시면, 행사 후 기념품을 드립니다.
#AWSSummitKR 해시태그로 소셜 미디어에 여러분의
행사 소감을 올려주세요.
발표 자료 및 녹화 동영상은 AWS Korea 공식 소셜 채널로
공유될 예정입니다.
여러분의 피드백을 기다립니다!