SlideShare a Scribd company logo
아마존의 데브 옵스 개발 배포 경험을 기반한
AWS 코드 서비스 활용하기
윤석찬
@channyun
AWS Korea 테크에반젤리스트
목차
• 아마존닷컴의 DevOps 이야기
• DevOps를 위한 AWS 코드 서비스
ü Code Commit
ü Code Pipeline
ü Code Deploy
• 미래의 DevOps
ü ChatOps
ü Voice Ops
Cloud_
Microservices_
DevOps_
요즘 이런 용어들이 유행입니다!
"미래는 이미 와 있다. 단지 널리
퍼져있지 않을 뿐이다.”
"The future is already here — it's just not very evenly distributed.”
윌리엄 깁슨
Microservices
DevOps
DevOps란 무엇일까요?
DevOps = 소프트웨어 개발 사이클 속도를 높이는 것
developers customers
releasetestbuild
plan monitor
배포 파이프라인
피드백 메카니즘
소프트웨어 개발 사이클
Origin of DevOps?
아마존닷컴의 사례
“아마존닷컴은 10년전 (1995년)
웹 서버와 데이터베이스 백엔드를
가지는 모놀리식(Monolithic)
애플리케이션이었습니다.”
A Conversation with Werner Vogels , 2006
http://queue.acm.org/detail.cfm?id=1142065
모놀로식 개발 사이클
developers
releasetestbuild
delivery pipelineapp
“5년전(2001년) 아마존은 주요한 아키텍쳐 변화가 있었는데
2 티어(tier)기반에서 서로 다른 애플리케이션 기능을
제공하는 분산 서비스 플랫폼으로 변화하였습니다…
여러분이 지금 Amazon.com의 첫화면에 들어온다면, 그
페이지를 생성하기 위해 100여개가 넘는 서비스를
호출하여 만들고 있습니다.”
A Conversation with Werner Vogels , 2006
Amazon.com - 서비스 지향 아키텍쳐 (SOA)
Primitives
Single-purpose
API Interfaced
Highly decoupled
“Microservices”
애플리케이션을 완성하기 위한 원료 혹은 재료로서 이를 빌딩
블록으로 조립하여, 원하는 서비스를 만들 수 있는 구성
요소를 말한다. 마치 레고블럭을 조립하여 우리가 원하는
모양의 레고를 만들 수 있는 것과 같은 원리
primitives
AWS 역시 다양한 재료 서비스를 조합
원하는 클라우드 아키텍쳐 구성
“넷플릭스는 수백개의 마이크로서비스를 AWS 클라우드 기반으로
운영하고 있는 것으로 유명하다. 또한, 인터널 API를 기반으로
가벼운 REST 프로토콜을 활용하여 서비스 통신을 하고 있으며,
Netflix Internal Web Service Framework(NIWS) 그리고 이러한
다양한 서비스를 발견하기 위한 목록 관리를 위한 Eureka,
서비스간 유연한 소통을 위한 Ribbon 등 클라우드 내 서비스
운영을 위한 수십개의 오픈 소스 프로젝트를
http://netflix.github.io/ 에 공개하고 있다.”
http://techblog.netflix.com/2013/01/announcing-ribbon-tying-netflix-mid.html
© Adrian Crockford, DockerCon 2014
마이크로 서비스 구조의 전형적 특징 – Death Star 아키텍쳐
How to DevTeam?
“제품 개발팀을 작게 유지하라 이렇게 하면
프로젝트를 실제로 실행가능하고 측정가능한 단위로
쪼개야만 하게 된다. 아마존의 대부분의 새로운
기능들과 서비스는 두 판의 라지 사이즈 피자로 먹일
수 있는 팀에 의하여 개발되었다.”
제프베조스의 2006년 11월 Business Week 인터뷰
각 팀이 분산된
민첩하면서, 독립적인,
신뢰하고, 오너쉽을
가진 서비스 팀
“DevOps”
피자 두판의 팀이란?
작은 팀과 서비스에게 필요한 개발 도구?
developers delivery pipelineservices
???
• 셀프 서비스 지향
• 기술 독립적
• 베스트 프랙티스 장려
• 단일 목적의 서비스
DevOps 도구의 특징
Amazon 내부 시스템
아폴로- 배포 서비스
파이프라인 – 출시 자동화
• Deployment service
• No downtime deployments
• Health tracking
• Versioned artifacts and rollbacks
• Continuous delivery
• Automated release process
• Faster and more reliable releases
• >90% of teams
단지 기다리고 있음
WaitWrite
Code WaitBuild
Code WaitDeploy
to Test
Deploy
to
Prod
단지 기다리고 있음
WaitWrite
Code WaitBuild
Code WaitDeploy
to Test
Deploy
to
Prod
Mins Days Mins Days Mins Days Mins
단지 기다리고 있음
WaitWrite
Code WaitBuild
Code WaitDeploy
to Test
Deploy
to
Prod
Weeks
Mins Days Mins Days Mins Days Mins
단지 기다리고 있음
WaitWrite
Code WaitBuild
Code WaitDeploy
to Test
Deploy
to
Prod
Weeks
Mins Days Mins Days Mins Days Mins
마이크로서비스 개발 사이클
developers delivery pipelinesservices
releasetestbuild
releasetestbuild
releasetestbuild
releasetestbuild
releasetestbuild
releasetestbuild
Amazon 내부 시스템
“수천명의 아마존 개발자들은 매일 Apollo를
사용하여, Java, Python, Ruby 앱을 웹
서비스로 네이티브 코드 서비스로 배포하고
있습니다. 지난 12개월 동안 Apollo는
5천만번이 넘는 개발, 테스트 및 정식
서버로 배포가 진행되었습니다. 이는 초당
한번 평균 한번 이상의 배포횟수입니다. “
Werner Vogels, The Story of Apollo - Amazon’s Deployment Engine, 2014
http://www.allthingsdistributed.com/2014/11/apollo-amazon-deployment-engine.html
DevOps에 대한 고객의 소리
DevOps LifeCycle
모니터링구축배포테스트빌드코딩
AWS
Elastic
Beanstalk
AWS
OpsWorks
AWS
CloudWatch
AWS
CloudFormation
AWS
CodePipeline
AWS
CodeCommit
AWS
CodeDeploy
AWS DevOps Tools
AWS Code 서비스로 배포하기
Testing Staging Production
deploy
deploy
deploy
Source Build
release
AWS CodeDeploy
AWS CodePipeline
AWS CodeCommit
AWS CodeDeploy – 서울 리전 사용 가능
• 손쉽고 믿을 수 있는 배포 방법
• 다양한 배포 옵션 제공
• AWS 외부 서버 배포도 가능
Test
CodeDeployv1, v2, v3
Production
Dev
application
revisions
deployment groups
단계 1. 애플리케이션 패키지 (appspec.yaml)
version: 0.0
os: linux
files:
- source: chef/
destination: /etc/chef/codedeploy
- source: target/hello.war
destination: /var/lib/tomcat6/webapps
hooks:
ApplicationStop:
- location: deploy_hooks/stop-tomcat.sh
BeforeInstall:
- location: deploy_hooks/install-chef.sh
AfterInstall:
- location: deploy_hooks/librarian-install.sh
ApplicationStart:
- location: deploy_hooks/chef-solo.sh
ValidateService:
- location: deploy_hooks/verify_service.sh
단계 1. 애플리케이션 패키지 (appspec.yaml)
version: 0.0
os: linux
files:
- source: chef/
destination: /etc/chef/codedeploy
- source: target/hello.war
destination: /var/lib/tomcat6/webapps
hooks:
ApplicationStop:
- location: deploy_hooks/stop-tomcat.sh
BeforeInstall:
- location: deploy_hooks/install-chef.sh
AfterInstall:
- location: deploy_hooks/librarian-install.sh
ApplicationStart:
- location: deploy_hooks/chef-solo.sh
ValidateService:
- location: deploy_hooks/verify_service.sh
version: 0.0
os: linux
files:
- source: chef/
destination: /etc/chef/codedeploy
- source: target/hello.war
destination: /var/lib/tomcat6/webapps
hooks:
ApplicationStop:
- location: deploy_hooks/stop-tomcat.sh
BeforeInstall:
- location: deploy_hooks/install-chef.sh
AfterInstall:
- location: deploy_hooks/librarian-install.sh
ApplicationStart:
- location: deploy_hooks/chef-solo.sh
ValidateService:
- location: deploy_hooks/verify_service.sh
단계 1. 애플리케이션 패키지 (appspec.yaml)
version: 0.0
os: linux
files:
- source: chef/
destination: /etc/chef/codedeploy
- source: target/hello.war
destination: /var/lib/tomcat6/webapps
hooks:
ApplicationStop:
- location: deploy_hooks/stop-tomcat.sh
BeforeInstall:
- location: deploy_hooks/install-chef.sh
AfterInstall:
- location: deploy_hooks/librarian-install.sh
ApplicationStart:
- location: deploy_hooks/chef-solo.sh
ValidateService:
- location: deploy_hooks/verify_service.sh
단계 2. 배포 인스턴스 선택
Agent Agent Agent
Staging
Agent Agent
Agent Agent
Agent
Agent
Production
Deployment groupDeployment group
인스턴스 모음:
• Auto Scaling group
• Amazon EC2 tag
• On-premises tag
단계 3. 배포 하기
aws deploy create-deployment 
--application-name MyApp 
--deployment-group-name TargetGroup 
--s3-location bucket=MyBucket,key=MyApp.zip
AWS CLI & SDKs
AWS Console
CI / CD Partners
GitHub
배포 설정 방법
v2 v2 v2 v2 v2 v2 v2 v2All-at-once
Min. healthy hosts = 0
v2 v2 v2 v2 v1 v1 v1 v1Half-at-a-time
Min. healthy hosts = 50%
v2 v2 v1 v1 v1 v1 v1 v1[Custom]
Min. healthy hosts = 75%
v2 v1 v1 v1 v1 v1 v1 v1One-at-a-time
Min. healthy hosts = 99%
다운타임 없는 롤링 업데이트(Rolling Update)
v1v1 v1
Load Balancer
다운타임 없는 롤링 업데이트(Rolling Update)
v1v2 v1
Load Balancer
다운타임 없는 롤링 업데이트(Rolling Update)
v2v2 v1
Load Balancer
다운타임 없는 롤링 업데이트(Rolling Update)
v2v2v2
Load Balancer
다운타임 없는 롤링 업데이트(Rolling Update)
v2v2 v2
Load Balancer
서비스 배포 문제 발생 시 – 헬스 트래킹
v2v2 v2
Load Balancer
서비스 배포 문제 발생 시 – 헬스 트래킹
v3 v2 v2Stop
Load Balancer
서비스 배포 문제 발생 시 – 헬스 트래킹
v2v2 v2
Load Balancer
Rollback
서비스 배포 문제 발생 시 – 헬스 트래킹
v2v2 v2
Load Balancer
AWS CodeDeploly 기반 배포
https://youtu.be/Bd02bs-i2ME
AWS CodePipeline
• 각자의 배포 단계에 맞게 파이프라인 시각적 구성 가능
• 빠르고 신뢰성 있는 배포 및 제품 테스트 시간 감소
• 코드 변경에 민감하게 자동 파이프라인 실행
• 서드 파티 도구와 연계 가능
Build
1) Build
2) Unit test
1) Deploy
2) UI test
Source Beta Production
1) Deploy
2) Perf test
Gamma
1) Deploy canary
2) Deploy region 1
3) Deploy region 2
1) Pull
Source
Source
GitHub
Build
JenkinsOnEC2
Jenkins
Deploy
JavaApp
Elastic Beanstalk
Pipeline
Stage
Action
Transition
MyApplication AWS CodePipeline
Source
Source
GitHub
Build
JenkinsOnEC2
Jenkins
Deploy
JavaApp
Elastic Beanstalk
NotifyDevelopers
Lambda
MyApplication
Parallel actions
AWS CodePipeline
Source
Source
GitHub
Build
JenkinsOnEC2
Jenkins
Deploy
JavaApp
Elastic Beanstalk
NotifyDevelopers
Lambda
TestAPI
Runscope
MyApplication
Sequential actions
AWS CodePipeline
8. Retrieve build artifact
EC2 instance
Source
Source
GitHub
Build
JenkinsOnEC2
Jenkins
Deploy
JavaApp
Elastic Beanstalk
Source Artifact
S3
Build Artifact
S3
5. Get source artifact
1. Get Changes
6. Store build artifact
3. Poll for Job
4. Acknowledge Job
7. Put Success
9. Deploy build artifact
Elastic Beanstalk
Web container
Java App
MyApplication AWS CodePipeline
서드 파티 도구와의 연계 가능
Source Build Test Deploy
AWS CodeCommit
• Git 코드 저장소 제공
• Amazon S3의 확장성, 가용성 및 내구성 제공
• 고객의 요구에 맞는 암호화 기능 제공
git pull/push CodeCommit
Git objects in
Amazon S3
Git index in
Amazon
DynamoDB
Encryption key
in AWS KMS
SSH or HTTPS
AWS 코드 서비스 기반 DevOps 프로세스
1. Github에서 EC2 인스턴스로 코드 배포하기
2. CodeCommit에서 ElasticBeanstalk으로 코드 배포하기
3. 서드 파티 Test 단계 추가 및 파이프라인 변경하기
https://youtu.be/v-o3UafL1hU
Amazon
S3
Prod-subnet
Web
server
App
server
Amazon
RDS
ELB
Production
Dev-subnet
Auto Scaling group
Web
server
Auto Scaling group
App
server
Amazon
RDS
ELB
Development
Test-subnet
Web
server
App
server
Amazon
RDS
ELB
Test
CodePipleline CodeDeployCodeCommit
Services
- Highly available CloudWatch alarm
CloudTrail
CloudFormation
Elastic
Beanstalk
AWS 개발 및 배포 서비스를 통한 DevOps 아키텍처
Future of DevOps?
ChatOps
VoiceOps
ChatOps란?
• “Putting tools right in the middle of the conversation”
• Jesse Newland, GitHub
• Source: https://speakerdeck.com/jnewland/chatops-at-github
• “ChatOps is a collaboration model that connects people,
tools, process, and automation into a transparent workflow.”
• Sean Regan, Atlassian
• Source: http://blogs.atlassian.com/2016/01/what-is-chatops-adoption-guide/
• “To move fast and maintain stability it’s important to have a
culture of automation, measurement and sharing.”
• Jason Hand, Victorops Author of ChatOps For Dummies
• Source: http://www.slideshare.net/VictorOps/chatops
Why ChatOps?
개발자의 행복!
서버에 접속할 필요가 없음
.
Why ChatOps?
운영자의 행복!
봇에게 시키면 됨
Why ChatOps?
서로의 행복!
채팅을 통한
빠른 소통 및 해결
Hubot By GitHub
Written in Coffeescript + Nodejs
Lita
Written in Ruby
Err
Written in Python
ChatOps 플랫폼
Slack의 WebHook 기능 활용
AWS CodeDeploy와 Hubot & Slack 연동
https://www.youtube.com/watch?v=8MB9lPbQb9s
AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)
AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)
AWS Lambda와 Slack을 이용한 Chat 구현
https://aws.amazon.com/ko/blogs/korea/slack-devops-with-aws-lambda-and-eb/
What’s AWS Lambda?
높은 확장성 및
빠른 서비스 연동
서버 필요 없이
코드만 배포
함수 실행 시
100ms 단위 과금
서버 없는, 이벤트 처리 방식의 컴퓨팅 서비스
AWS Lambda = 클라우드 함수 기반 마이크로서비스
AWS Lambda : 동작 원리
Bring your own code
• Node.js, Java, Python
• Java = Scala Clojure 등의
어떠한 JVM기반 언어.
• Bring your own libraries
유연한 호출 경로
• Event 기반 호출 옵션 (여러
AWS 서비스들과 통합)
• REST API 호출 가능 (Amazon
API Gateway와 연동)
단순한 자원 모델
• 128MB부터 1.5GB까지 64MB
단위로 메모리 설정
• 할당된 메모리에 비례하여
CPU 및 네트웍 자원 할당
• 실제 사용량 내역 보고
효과적인 권한 통제
• AWS IAM (Identity and
Access Management) Role을
사용한 실행 권한 설정
• AWS 이벤트 소스에 대한
자원 정책
AWS Lambda 예제: 이미지 썸네일 만들기
Alexa Skills Kit과 AWS Lambda를 이용한
VoiceOps
https://youtu.be/azKYe4IWTxA
AWSKRUG 발표 영상
https://www.youtube.com/watch?v=cz-2JL9XAy4
http://developers.amazon.com
https://echosim.io/

More Related Content

PPTX
Azure container instances
PDF
Serverless computing with AWS Lambda
PDF
AWS의 다양한 Compute 서비스(EC2, Lambda, ECS, Batch, Elastic Beanstalk)의 특징 이해하기 - 김...
PDF
Azure DDoS Protection Standard
PDF
DockerCon SF 2015: The Distributed System Toolkit
PDF
Secure Virtual Private Cloud(VPC)를 활용한 보안성 강화와 비용절감 - 안경진 부장, 포티넷 코리아 :: AWS ...
PPTX
Creation of cloud application using microsoft azure by vaishali sahare [katkar]
PDF
Amazon AWS | What is Amazon AWS | AWS Tutorial | AWS Training | Edureka
Azure container instances
Serverless computing with AWS Lambda
AWS의 다양한 Compute 서비스(EC2, Lambda, ECS, Batch, Elastic Beanstalk)의 특징 이해하기 - 김...
Azure DDoS Protection Standard
DockerCon SF 2015: The Distributed System Toolkit
Secure Virtual Private Cloud(VPC)를 활용한 보안성 강화와 비용절감 - 안경진 부장, 포티넷 코리아 :: AWS ...
Creation of cloud application using microsoft azure by vaishali sahare [katkar]
Amazon AWS | What is Amazon AWS | AWS Tutorial | AWS Training | Edureka

What's hot (20)

PDF
Azure Application insights - An Introduction
PPTX
Data Encryption - Azure Storage Service
PDF
DynamoDB의 안과밖 - 정민영 (비트패킹 컴퍼니)
PPTX
CAF presentation 09 16-2020
PPTX
Getting Started with Runtime Security on Azure Kubernetes Service (AKS)
PPTX
AWS Lambda
PDF
Understanding Azure AD
PDF
TechnicalTerraformLandingZones121120229238.pdf
PPTX
Azure rev002
PDF
데브옵스 엔지니어를 위한 신규 운영 서비스 - 김필중, AWS 개발 전문 솔루션즈 아키텍트 / 김현민, 메가존클라우드 솔루션즈 아키텍트 :...
PDF
멀티 어카운트 환경의 보안과 가시성을 높이기 위한 전략 - AWS Summit Seoul 2017
PPTX
Azure Key Vault - Getting Started
PDF
Container Security Using Microsoft Defender
DOCX
Sucessão e aperfeiçoamento das raças
PPTX
Docker Security Overview
PPTX
Azure Stack Fundamentals
PDF
마이크로 서비스를 위한 AWS Cloud Map & App Mesh - Saeho Kim (AWS Solutions Architect)
PPTX
DevSecOps
PDF
보안 사고 예방을 위한 주요 AWS 모범 사례 – 신은수, AWS 보안 담당 솔루션즈 아키텍트:: AWS 온라인 이벤트 – 클라우드 보안 특집
PPSX
Pedi e obtereis-Marcelo do N. Rodrigues-CEM
Azure Application insights - An Introduction
Data Encryption - Azure Storage Service
DynamoDB의 안과밖 - 정민영 (비트패킹 컴퍼니)
CAF presentation 09 16-2020
Getting Started with Runtime Security on Azure Kubernetes Service (AKS)
AWS Lambda
Understanding Azure AD
TechnicalTerraformLandingZones121120229238.pdf
Azure rev002
데브옵스 엔지니어를 위한 신규 운영 서비스 - 김필중, AWS 개발 전문 솔루션즈 아키텍트 / 김현민, 메가존클라우드 솔루션즈 아키텍트 :...
멀티 어카운트 환경의 보안과 가시성을 높이기 위한 전략 - AWS Summit Seoul 2017
Azure Key Vault - Getting Started
Container Security Using Microsoft Defender
Sucessão e aperfeiçoamento das raças
Docker Security Overview
Azure Stack Fundamentals
마이크로 서비스를 위한 AWS Cloud Map & App Mesh - Saeho Kim (AWS Solutions Architect)
DevSecOps
보안 사고 예방을 위한 주요 AWS 모범 사례 – 신은수, AWS 보안 담당 솔루션즈 아키텍트:: AWS 온라인 이벤트 – 클라우드 보안 특집
Pedi e obtereis-Marcelo do N. Rodrigues-CEM
Ad

Viewers also liked (20)

PDF
Gaming on AWS - 6. AWS 환경에서의 유연하고 신속한 코드 관리 및 배포
PDF
DevOps를 위한 AWS 서비스 및 개발도구 -김상필 솔루션아키텍트 :: AWS 파트너 테크시프트 세미나
PPTX
AWS Lambda를 이용한 CI/CD 기법
PPTX
Continuous Delivery using AWS CodePipeline, AWS Lambda & AWS ElasticBeanstalk
PDF
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016
PDF
AWS CodeCommit, CodeDeploy & CodePipeline
PDF
마이크로서비스 아키텍처와 DevOps 기술 - Amazon 사례를 중심으로 (윤석찬)
PDF
Elastic beanstalk - 판교 초급자 모임 - 안병학
ODT
Elastic beanstalk 배포 환경 구축
PPTX
Jenkins and AWS DevOps Tools
PDF
[AWS KR UG 1회 세미나] AWS EB, etc @ 김경민
PPTX
DevOps
PDF
오토스케일링 제대로 활용하기 (김일호) - AWS 웨비나 시리즈 2015
PPTX
Server performance test tool
PDF
AWS 상에서 게임 서비스 최적화 방안 :: 박선용 :: AWS Summit Seoul 2016
PDF
Daily Continuous Deployment를 위한 Custom CLI 개발 및
 AWS Elastic Beanstalk에 적용하기
PDF
모바일 앱(App) 개발 테스트 솔루션 v20160415
PPTX
폴라리스오피스 운영시스템
PDF
지속적인 통합
PDF
개발자를 위한 Amazon Lightsail Deep-Dive - 정창훈(당근마켓)
Gaming on AWS - 6. AWS 환경에서의 유연하고 신속한 코드 관리 및 배포
DevOps를 위한 AWS 서비스 및 개발도구 -김상필 솔루션아키텍트 :: AWS 파트너 테크시프트 세미나
AWS Lambda를 이용한 CI/CD 기법
Continuous Delivery using AWS CodePipeline, AWS Lambda & AWS ElasticBeanstalk
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016
AWS CodeCommit, CodeDeploy & CodePipeline
마이크로서비스 아키텍처와 DevOps 기술 - Amazon 사례를 중심으로 (윤석찬)
Elastic beanstalk - 판교 초급자 모임 - 안병학
Elastic beanstalk 배포 환경 구축
Jenkins and AWS DevOps Tools
[AWS KR UG 1회 세미나] AWS EB, etc @ 김경민
DevOps
오토스케일링 제대로 활용하기 (김일호) - AWS 웨비나 시리즈 2015
Server performance test tool
AWS 상에서 게임 서비스 최적화 방안 :: 박선용 :: AWS Summit Seoul 2016
Daily Continuous Deployment를 위한 Custom CLI 개발 및
 AWS Elastic Beanstalk에 적용하기
모바일 앱(App) 개발 테스트 솔루션 v20160415
폴라리스오피스 운영시스템
지속적인 통합
개발자를 위한 Amazon Lightsail Deep-Dive - 정창훈(당근마켓)
Ad

Similar to AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬) (20)

PDF
데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)
PDF
효과적인 데브옵스를 위한 AWS 개발 도구 활용하기 - AWS Summit Seoul 2017
PDF
[애플리케이션 현대화 및 개발] 현대적 애플리케이션 개발의 필수, 앱 배포 및 인프라 구성 자동화 - 김필중, AWS 솔루션즈 아키텍트
PDF
데브옵스(DevOps) 문화 모범 사례와 구현 도구 살펴보기 – 박선준 :: AWS Builders Online Series
PDF
AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석
PDF
컨테이너와 서버리스 기반 CI/CD 파이프라인 구성하기 - 김필중 솔루션즈 아키텍트, AWS / 강승욱 솔루션즈 아키텍트, AWS :: A...
PPTX
서버리스 애플리케이션 개발 워크플로우 자동화 (CI/CD) - 김필중:: AWS 현대적 애플리케이션 개발
PPTX
DevOps (AWS, Docker, Ansible, Jenkins)
PDF
[애플리케이션 현대화 및 개발] 현대적 애플리케이션 개발을 위한 AWS 컨테이너 활용사례 및 주요 도구 알아보기 - 정영준, AWS 솔루션...
PDF
AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...
PDF
AWS Fargate와 Amazon ECS를 활용한 CI/CD 모범사례 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Game Mast...
PDF
On-Premise 기반서비스 클라우드 전환기 -DevSecOps 도입을통한 유연한 서비스 개발 및 운영::박준상::AWS Summit S...
PDF
AWS DevOps와 ECR을 통한 Elastic Beanstalk 배포 환경 구축 및 타 환경과의 비교
PDF
On-Premise 기반서비스 클라우드 전환기 -DevSecOps 도입을통한 유연한 서비스 개발 및 운영::박준상::AWS Summit S...
PDF
클라이드 네이티브 기반 Twelve Factor 앱 개발 - 윤석찬, AWS 테크에반젤리스트 :: AWS Summit Online Kore...
PDF
다양한 배포 기법과 AWS에서 구축하는 CI/CD 파이프라인 l 안효빈 솔루션즈 아키텍트
PDF
Atlassian cloud 제품을 이용한 DevOps 프로세스 구축: Jira Cloud, Bitbucket Cloud
PDF
Atlassian cloud 제품을 이용한 DevOps 프로세스 구축
PDF
국내 미디어 고객사의 AWS 활용 사례 - POOQ서비스 그리고 마이크로서비스 아키텍처, 콘텐츠연합플랫폼 - 박명순부장, 콘텐츠연합플랫폼 ...
PPTX
코드로 인프라 관리하기 - 자동화 툴 소개
데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)
효과적인 데브옵스를 위한 AWS 개발 도구 활용하기 - AWS Summit Seoul 2017
[애플리케이션 현대화 및 개발] 현대적 애플리케이션 개발의 필수, 앱 배포 및 인프라 구성 자동화 - 김필중, AWS 솔루션즈 아키텍트
데브옵스(DevOps) 문화 모범 사례와 구현 도구 살펴보기 – 박선준 :: AWS Builders Online Series
AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석
컨테이너와 서버리스 기반 CI/CD 파이프라인 구성하기 - 김필중 솔루션즈 아키텍트, AWS / 강승욱 솔루션즈 아키텍트, AWS :: A...
서버리스 애플리케이션 개발 워크플로우 자동화 (CI/CD) - 김필중:: AWS 현대적 애플리케이션 개발
DevOps (AWS, Docker, Ansible, Jenkins)
[애플리케이션 현대화 및 개발] 현대적 애플리케이션 개발을 위한 AWS 컨테이너 활용사례 및 주요 도구 알아보기 - 정영준, AWS 솔루션...
AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...
AWS Fargate와 Amazon ECS를 활용한 CI/CD 모범사례 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Game Mast...
On-Premise 기반서비스 클라우드 전환기 -DevSecOps 도입을통한 유연한 서비스 개발 및 운영::박준상::AWS Summit S...
AWS DevOps와 ECR을 통한 Elastic Beanstalk 배포 환경 구축 및 타 환경과의 비교
On-Premise 기반서비스 클라우드 전환기 -DevSecOps 도입을통한 유연한 서비스 개발 및 운영::박준상::AWS Summit S...
클라이드 네이티브 기반 Twelve Factor 앱 개발 - 윤석찬, AWS 테크에반젤리스트 :: AWS Summit Online Kore...
다양한 배포 기법과 AWS에서 구축하는 CI/CD 파이프라인 l 안효빈 솔루션즈 아키텍트
Atlassian cloud 제품을 이용한 DevOps 프로세스 구축: Jira Cloud, Bitbucket Cloud
Atlassian cloud 제품을 이용한 DevOps 프로세스 구축
국내 미디어 고객사의 AWS 활용 사례 - POOQ서비스 그리고 마이크로서비스 아키텍처, 콘텐츠연합플랫폼 - 박명순부장, 콘텐츠연합플랫폼 ...
코드로 인프라 관리하기 - 자동화 툴 소개

More from Amazon Web Services Korea (20)

PDF
[D3T1S01] Gen AI를 위한 Amazon Aurora 활용 사례 방법
PDF
[D3T1S06] Neptune Analytics with Vector Similarity Search
PDF
[D3T1S03] Amazon DynamoDB design puzzlers
PDF
[D3T1S04] Aurora PostgreSQL performance monitoring and troubleshooting by use...
PDF
[D3T1S07] AWS S3 - 클라우드 환경에서 데이터베이스 보호하기
PDF
[D3T1S05] Aurora 혼합 구성 아키텍처를 사용하여 예상치 못한 트래픽 급증 대응하기
PDF
[D3T1S02] Aurora Limitless Database Introduction
PDF
[D3T2S01] Amazon Aurora MySQL 메이저 버전 업그레이드 및 Amazon B/G Deployments 실습
PDF
[D3T2S03] Data&AI Roadshow 2024 - Amazon DocumentDB 실습
PDF
AWS Modern Infra with Storage Roadshow 2023 - Day 2
PDF
AWS Modern Infra with Storage Roadshow 2023 - Day 1
PDF
사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ...
PDF
Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ...
PDF
Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev...
PDF
Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...
PDF
[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...
PDF
Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::...
PDF
Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...
PDF
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...
PDF
Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,...
[D3T1S01] Gen AI를 위한 Amazon Aurora 활용 사례 방법
[D3T1S06] Neptune Analytics with Vector Similarity Search
[D3T1S03] Amazon DynamoDB design puzzlers
[D3T1S04] Aurora PostgreSQL performance monitoring and troubleshooting by use...
[D3T1S07] AWS S3 - 클라우드 환경에서 데이터베이스 보호하기
[D3T1S05] Aurora 혼합 구성 아키텍처를 사용하여 예상치 못한 트래픽 급증 대응하기
[D3T1S02] Aurora Limitless Database Introduction
[D3T2S01] Amazon Aurora MySQL 메이저 버전 업그레이드 및 Amazon B/G Deployments 실습
[D3T2S03] Data&AI Roadshow 2024 - Amazon DocumentDB 실습
AWS Modern Infra with Storage Roadshow 2023 - Day 2
AWS Modern Infra with Storage Roadshow 2023 - Day 1
사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ...
Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ...
Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev...
Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...
[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...
Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::...
Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...
Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,...

AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)

  • 1. 아마존의 데브 옵스 개발 배포 경험을 기반한 AWS 코드 서비스 활용하기 윤석찬 @channyun AWS Korea 테크에반젤리스트
  • 2. 목차 • 아마존닷컴의 DevOps 이야기 • DevOps를 위한 AWS 코드 서비스 ü Code Commit ü Code Pipeline ü Code Deploy • 미래의 DevOps ü ChatOps ü Voice Ops
  • 4. "미래는 이미 와 있다. 단지 널리 퍼져있지 않을 뿐이다.” "The future is already here — it's just not very evenly distributed.” 윌리엄 깁슨
  • 6. DevOps란 무엇일까요? DevOps = 소프트웨어 개발 사이클 속도를 높이는 것 developers customers releasetestbuild plan monitor 배포 파이프라인 피드백 메카니즘 소프트웨어 개발 사이클
  • 8. “아마존닷컴은 10년전 (1995년) 웹 서버와 데이터베이스 백엔드를 가지는 모놀리식(Monolithic) 애플리케이션이었습니다.” A Conversation with Werner Vogels , 2006 http://queue.acm.org/detail.cfm?id=1142065
  • 10. “5년전(2001년) 아마존은 주요한 아키텍쳐 변화가 있었는데 2 티어(tier)기반에서 서로 다른 애플리케이션 기능을 제공하는 분산 서비스 플랫폼으로 변화하였습니다… 여러분이 지금 Amazon.com의 첫화면에 들어온다면, 그 페이지를 생성하기 위해 100여개가 넘는 서비스를 호출하여 만들고 있습니다.” A Conversation with Werner Vogels , 2006
  • 11. Amazon.com - 서비스 지향 아키텍쳐 (SOA) Primitives Single-purpose API Interfaced Highly decoupled “Microservices”
  • 12. 애플리케이션을 완성하기 위한 원료 혹은 재료로서 이를 빌딩 블록으로 조립하여, 원하는 서비스를 만들 수 있는 구성 요소를 말한다. 마치 레고블럭을 조립하여 우리가 원하는 모양의 레고를 만들 수 있는 것과 같은 원리 primitives
  • 13. AWS 역시 다양한 재료 서비스를 조합 원하는 클라우드 아키텍쳐 구성
  • 14. “넷플릭스는 수백개의 마이크로서비스를 AWS 클라우드 기반으로 운영하고 있는 것으로 유명하다. 또한, 인터널 API를 기반으로 가벼운 REST 프로토콜을 활용하여 서비스 통신을 하고 있으며, Netflix Internal Web Service Framework(NIWS) 그리고 이러한 다양한 서비스를 발견하기 위한 목록 관리를 위한 Eureka, 서비스간 유연한 소통을 위한 Ribbon 등 클라우드 내 서비스 운영을 위한 수십개의 오픈 소스 프로젝트를 http://netflix.github.io/ 에 공개하고 있다.” http://techblog.netflix.com/2013/01/announcing-ribbon-tying-netflix-mid.html
  • 15. © Adrian Crockford, DockerCon 2014 마이크로 서비스 구조의 전형적 특징 – Death Star 아키텍쳐
  • 16. How to DevTeam? “제품 개발팀을 작게 유지하라 이렇게 하면 프로젝트를 실제로 실행가능하고 측정가능한 단위로 쪼개야만 하게 된다. 아마존의 대부분의 새로운 기능들과 서비스는 두 판의 라지 사이즈 피자로 먹일 수 있는 팀에 의하여 개발되었다.” 제프베조스의 2006년 11월 Business Week 인터뷰
  • 17. 각 팀이 분산된 민첩하면서, 독립적인, 신뢰하고, 오너쉽을 가진 서비스 팀 “DevOps” 피자 두판의 팀이란?
  • 18. 작은 팀과 서비스에게 필요한 개발 도구? developers delivery pipelineservices ???
  • 19. • 셀프 서비스 지향 • 기술 독립적 • 베스트 프랙티스 장려 • 단일 목적의 서비스 DevOps 도구의 특징
  • 20. Amazon 내부 시스템 아폴로- 배포 서비스 파이프라인 – 출시 자동화 • Deployment service • No downtime deployments • Health tracking • Versioned artifacts and rollbacks • Continuous delivery • Automated release process • Faster and more reliable releases • >90% of teams
  • 21. 단지 기다리고 있음 WaitWrite Code WaitBuild Code WaitDeploy to Test Deploy to Prod
  • 22. 단지 기다리고 있음 WaitWrite Code WaitBuild Code WaitDeploy to Test Deploy to Prod Mins Days Mins Days Mins Days Mins
  • 23. 단지 기다리고 있음 WaitWrite Code WaitBuild Code WaitDeploy to Test Deploy to Prod Weeks Mins Days Mins Days Mins Days Mins
  • 24. 단지 기다리고 있음 WaitWrite Code WaitBuild Code WaitDeploy to Test Deploy to Prod Weeks Mins Days Mins Days Mins Days Mins
  • 25. 마이크로서비스 개발 사이클 developers delivery pipelinesservices releasetestbuild releasetestbuild releasetestbuild releasetestbuild releasetestbuild releasetestbuild
  • 26. Amazon 내부 시스템 “수천명의 아마존 개발자들은 매일 Apollo를 사용하여, Java, Python, Ruby 앱을 웹 서비스로 네이티브 코드 서비스로 배포하고 있습니다. 지난 12개월 동안 Apollo는 5천만번이 넘는 개발, 테스트 및 정식 서버로 배포가 진행되었습니다. 이는 초당 한번 평균 한번 이상의 배포횟수입니다. “ Werner Vogels, The Story of Apollo - Amazon’s Deployment Engine, 2014 http://www.allthingsdistributed.com/2014/11/apollo-amazon-deployment-engine.html
  • 29. AWS Code 서비스로 배포하기 Testing Staging Production deploy deploy deploy Source Build release AWS CodeDeploy AWS CodePipeline AWS CodeCommit
  • 30. AWS CodeDeploy – 서울 리전 사용 가능 • 손쉽고 믿을 수 있는 배포 방법 • 다양한 배포 옵션 제공 • AWS 외부 서버 배포도 가능 Test CodeDeployv1, v2, v3 Production Dev application revisions deployment groups
  • 31. 단계 1. 애플리케이션 패키지 (appspec.yaml) version: 0.0 os: linux files: - source: chef/ destination: /etc/chef/codedeploy - source: target/hello.war destination: /var/lib/tomcat6/webapps hooks: ApplicationStop: - location: deploy_hooks/stop-tomcat.sh BeforeInstall: - location: deploy_hooks/install-chef.sh AfterInstall: - location: deploy_hooks/librarian-install.sh ApplicationStart: - location: deploy_hooks/chef-solo.sh ValidateService: - location: deploy_hooks/verify_service.sh
  • 32. 단계 1. 애플리케이션 패키지 (appspec.yaml) version: 0.0 os: linux files: - source: chef/ destination: /etc/chef/codedeploy - source: target/hello.war destination: /var/lib/tomcat6/webapps hooks: ApplicationStop: - location: deploy_hooks/stop-tomcat.sh BeforeInstall: - location: deploy_hooks/install-chef.sh AfterInstall: - location: deploy_hooks/librarian-install.sh ApplicationStart: - location: deploy_hooks/chef-solo.sh ValidateService: - location: deploy_hooks/verify_service.sh
  • 33. version: 0.0 os: linux files: - source: chef/ destination: /etc/chef/codedeploy - source: target/hello.war destination: /var/lib/tomcat6/webapps hooks: ApplicationStop: - location: deploy_hooks/stop-tomcat.sh BeforeInstall: - location: deploy_hooks/install-chef.sh AfterInstall: - location: deploy_hooks/librarian-install.sh ApplicationStart: - location: deploy_hooks/chef-solo.sh ValidateService: - location: deploy_hooks/verify_service.sh 단계 1. 애플리케이션 패키지 (appspec.yaml) version: 0.0 os: linux files: - source: chef/ destination: /etc/chef/codedeploy - source: target/hello.war destination: /var/lib/tomcat6/webapps hooks: ApplicationStop: - location: deploy_hooks/stop-tomcat.sh BeforeInstall: - location: deploy_hooks/install-chef.sh AfterInstall: - location: deploy_hooks/librarian-install.sh ApplicationStart: - location: deploy_hooks/chef-solo.sh ValidateService: - location: deploy_hooks/verify_service.sh
  • 34. 단계 2. 배포 인스턴스 선택 Agent Agent Agent Staging Agent Agent Agent Agent Agent Agent Production Deployment groupDeployment group 인스턴스 모음: • Auto Scaling group • Amazon EC2 tag • On-premises tag
  • 35. 단계 3. 배포 하기 aws deploy create-deployment --application-name MyApp --deployment-group-name TargetGroup --s3-location bucket=MyBucket,key=MyApp.zip AWS CLI & SDKs AWS Console CI / CD Partners GitHub
  • 36. 배포 설정 방법 v2 v2 v2 v2 v2 v2 v2 v2All-at-once Min. healthy hosts = 0 v2 v2 v2 v2 v1 v1 v1 v1Half-at-a-time Min. healthy hosts = 50% v2 v2 v1 v1 v1 v1 v1 v1[Custom] Min. healthy hosts = 75% v2 v1 v1 v1 v1 v1 v1 v1One-at-a-time Min. healthy hosts = 99%
  • 37. 다운타임 없는 롤링 업데이트(Rolling Update) v1v1 v1 Load Balancer
  • 38. 다운타임 없는 롤링 업데이트(Rolling Update) v1v2 v1 Load Balancer
  • 39. 다운타임 없는 롤링 업데이트(Rolling Update) v2v2 v1 Load Balancer
  • 40. 다운타임 없는 롤링 업데이트(Rolling Update) v2v2v2 Load Balancer
  • 41. 다운타임 없는 롤링 업데이트(Rolling Update) v2v2 v2 Load Balancer
  • 42. 서비스 배포 문제 발생 시 – 헬스 트래킹 v2v2 v2 Load Balancer
  • 43. 서비스 배포 문제 발생 시 – 헬스 트래킹 v3 v2 v2Stop Load Balancer
  • 44. 서비스 배포 문제 발생 시 – 헬스 트래킹 v2v2 v2 Load Balancer Rollback
  • 45. 서비스 배포 문제 발생 시 – 헬스 트래킹 v2v2 v2 Load Balancer
  • 46. AWS CodeDeploly 기반 배포 https://youtu.be/Bd02bs-i2ME
  • 47. AWS CodePipeline • 각자의 배포 단계에 맞게 파이프라인 시각적 구성 가능 • 빠르고 신뢰성 있는 배포 및 제품 테스트 시간 감소 • 코드 변경에 민감하게 자동 파이프라인 실행 • 서드 파티 도구와 연계 가능 Build 1) Build 2) Unit test 1) Deploy 2) UI test Source Beta Production 1) Deploy 2) Perf test Gamma 1) Deploy canary 2) Deploy region 1 3) Deploy region 2 1) Pull
  • 51. 8. Retrieve build artifact EC2 instance Source Source GitHub Build JenkinsOnEC2 Jenkins Deploy JavaApp Elastic Beanstalk Source Artifact S3 Build Artifact S3 5. Get source artifact 1. Get Changes 6. Store build artifact 3. Poll for Job 4. Acknowledge Job 7. Put Success 9. Deploy build artifact Elastic Beanstalk Web container Java App MyApplication AWS CodePipeline
  • 52. 서드 파티 도구와의 연계 가능 Source Build Test Deploy
  • 53. AWS CodeCommit • Git 코드 저장소 제공 • Amazon S3의 확장성, 가용성 및 내구성 제공 • 고객의 요구에 맞는 암호화 기능 제공 git pull/push CodeCommit Git objects in Amazon S3 Git index in Amazon DynamoDB Encryption key in AWS KMS SSH or HTTPS
  • 54. AWS 코드 서비스 기반 DevOps 프로세스 1. Github에서 EC2 인스턴스로 코드 배포하기 2. CodeCommit에서 ElasticBeanstalk으로 코드 배포하기 3. 서드 파티 Test 단계 추가 및 파이프라인 변경하기 https://youtu.be/v-o3UafL1hU
  • 55. Amazon S3 Prod-subnet Web server App server Amazon RDS ELB Production Dev-subnet Auto Scaling group Web server Auto Scaling group App server Amazon RDS ELB Development Test-subnet Web server App server Amazon RDS ELB Test CodePipleline CodeDeployCodeCommit Services - Highly available CloudWatch alarm CloudTrail CloudFormation Elastic Beanstalk AWS 개발 및 배포 서비스를 통한 DevOps 아키텍처
  • 57. ChatOps란? • “Putting tools right in the middle of the conversation” • Jesse Newland, GitHub • Source: https://speakerdeck.com/jnewland/chatops-at-github • “ChatOps is a collaboration model that connects people, tools, process, and automation into a transparent workflow.” • Sean Regan, Atlassian • Source: http://blogs.atlassian.com/2016/01/what-is-chatops-adoption-guide/ • “To move fast and maintain stability it’s important to have a culture of automation, measurement and sharing.” • Jason Hand, Victorops Author of ChatOps For Dummies • Source: http://www.slideshare.net/VictorOps/chatops
  • 58. Why ChatOps? 개발자의 행복! 서버에 접속할 필요가 없음 .
  • 60. Why ChatOps? 서로의 행복! 채팅을 통한 빠른 소통 및 해결
  • 61. Hubot By GitHub Written in Coffeescript + Nodejs Lita Written in Ruby Err Written in Python ChatOps 플랫폼
  • 63. AWS CodeDeploy와 Hubot & Slack 연동 https://www.youtube.com/watch?v=8MB9lPbQb9s
  • 66. AWS Lambda와 Slack을 이용한 Chat 구현 https://aws.amazon.com/ko/blogs/korea/slack-devops-with-aws-lambda-and-eb/
  • 67. What’s AWS Lambda? 높은 확장성 및 빠른 서비스 연동 서버 필요 없이 코드만 배포 함수 실행 시 100ms 단위 과금 서버 없는, 이벤트 처리 방식의 컴퓨팅 서비스 AWS Lambda = 클라우드 함수 기반 마이크로서비스
  • 68. AWS Lambda : 동작 원리 Bring your own code • Node.js, Java, Python • Java = Scala Clojure 등의 어떠한 JVM기반 언어. • Bring your own libraries 유연한 호출 경로 • Event 기반 호출 옵션 (여러 AWS 서비스들과 통합) • REST API 호출 가능 (Amazon API Gateway와 연동) 단순한 자원 모델 • 128MB부터 1.5GB까지 64MB 단위로 메모리 설정 • 할당된 메모리에 비례하여 CPU 및 네트웍 자원 할당 • 실제 사용량 내역 보고 효과적인 권한 통제 • AWS IAM (Identity and Access Management) Role을 사용한 실행 권한 설정 • AWS 이벤트 소스에 대한 자원 정책
  • 69. AWS Lambda 예제: 이미지 썸네일 만들기
  • 70. Alexa Skills Kit과 AWS Lambda를 이용한 VoiceOps https://youtu.be/azKYe4IWTxA AWSKRUG 발표 영상 https://www.youtube.com/watch?v=cz-2JL9XAy4