SlideShare a Scribd company logo
DevOps 의 시작
(Docker + Ansible + Jenkins + AWS 를 이용한 무 중단 배포)
JBUG - 김완철 (데이빗백곰)
https://github.com/david100gom/docker_hands_on
1. 기본적인 AWS 서버 아키텍처 구성
• Dev(QA) 와 Prod 를 구분하여 VPC 구성
• HA 를 위한 Multi-AZ 구성, RDS M/S 구성 및 Auto Scaling 을 위한 ELB 구성
• Scale out 를 위한 RDS Read Replica 구성
• 기본적인 보안을 위한 public, private Router 분리 및 inbound 접근제어
• IAM 를 통한 Role 및 권한 관리 등등
2. 기본적인 CI/CD 구성
Dev Server
QA Server
Prod Server
• Jenkins 내에서 git 에서 checkout 한 소스를 컴파일
• 각 DEV, QA 서버 및 PROD 서버 배포
• Auto Scaling 대응 미흡
• 무정지 배포 대응 미흡
• 24*365 수동 모니터링
• 넘쳐나는 모니터링 메일 스레드
• 배포를 위해 새벽에 출근
• AWS Auto Scaling 설정
• 손쉬운 배포를 위한 Docker 도입
• 서버 관리를 위한 Ansible 도입
3. 기존 CI/CD 문제점 해결방안 고민
AWS Auto Scaling
• AWS Auto Scaling 설정 구성하면 추후 관리해야 하는 서버가 늘어남
• 소스 배포의 안정적인 처리를 위한 Docker
• 많아진 서버 관리를 위한 Ansible
• Docker Swarm, Rancher, Kubernetes 등등
• yml, playbook, tower 등등
• 관련 기술이 많아 목적 상실 위험
Step by Step 고도화
4. Docker 개발, 서비스 이미지 생성 구성
web-base:lastest
tomcat-
base:lastest
prod-web:lastes
CentOS:lastes
tomcat-base:qa-lastest
tomcat-base:prod-latest
Amazon ECR
• Tomcat 용 Docker 이미지 생성
• Web (OS 기본) 용 Docker 이미지 생성
• 최종 빌드 배포용 Docker 이미지 생성
System Engineer
System Engineer
System Engineer
Developer
5. CI / CD 구성
Dev Server
QA Server
Stage Server
Prod Server
QA 컨테이너
Dev 컨테이너
Amazon ECR
• 이미지 버전관리
AWS ELB 정보 취합
Ansible hosts 구성
ELB 에서 서버 deregister
ELB health check 정보 갱신
Docker 배포
sleep 5
sleep 5
ELB 에서 서버 register
ELB health check 정보 갱신
6. 빌드/배포 상세 flow
• 최대한 down time을 회피하기 위한 flow 구성
• ELB 뒤에 HAProxy 가 있다면 HAProxy 컨트롤 고려
• 서비스 목적에 따라 무중단에 대한 개념 및 위험요소 다양
• 다양한 방법 존재 : Blue-Green 배포 등등
7. 추후 고려사항
• 서비스 목적에 따른 DevOps 아키텍처 구성 포인트
• Over Engineering 에 따른 관리 포인트 문제 및 리소스 부족
AWS CLI
• Docker, Ansible 등 최신 기술에 대한 내재화에 대한 부담
Python (boto)
Amazon ECR
• 전체 DevOps 아키텍처에 대한 모니터링
• 개발조직의 DevOps 에 대한 마인드 및 기술 수준 평준화
감사합니다.

More Related Content

PDF
쉐이커의 AWS 이용 사례
PDF
AWSKRUG 소개 및 연혁 (정민영) - 4회 정기 세미나
PDF
20170829 HB Smith에서는 AWS 이렇게 사용한다
PDF
AWS Summit - AWS를 통한 신뢰성 높은 지속적 배포 및 통합(CD, CI) ᄉ...
PDF
HB Smith에서는 AWS 이렇게 사용한다
PDF
20170718 hb smith에서는 aws 이렇게 사용한다
PDF
[AWS Community Day 2021] AWS와 함께하는 무중단 배포 파이프라인 개선기
PDF
20180124 스타트업부터 대기업까지 aws와 함께한 7년
쉐이커의 AWS 이용 사례
AWSKRUG 소개 및 연혁 (정민영) - 4회 정기 세미나
20170829 HB Smith에서는 AWS 이렇게 사용한다
AWS Summit - AWS를 통한 신뢰성 높은 지속적 배포 및 통합(CD, CI) ᄉ...
HB Smith에서는 AWS 이렇게 사용한다
20170718 hb smith에서는 aws 이렇게 사용한다
[AWS Community Day 2021] AWS와 함께하는 무중단 배포 파이프라인 개선기
20180124 스타트업부터 대기업까지 aws와 함께한 7년

What's hot (20)

PDF
Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021
PPTX
CloudFront(클라우드 프론트)와 Route53(라우트53) AWS Summit Seoul 2015
PDF
20171013 데이터 분석가를 위한 데이터플랫폼 Seminar - Public Cloud 101
PDF
Project TIMAT - infrastructure as code
PDF
AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석
PDF
AWS Lambdas with a Static Outgoing IP
PDF
온라인 주문 서비스를 서버리스 아키텍쳐로 구축하기 - 김태우(Classmethod) :: AWS Community Day Online 2020
PPTX
AWS Lambda를 이용한 CI/CD 기법
PPTX
DevOps Study
PPTX
Serverless Architecture - 김현민
PDF
[Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드
PPTX
Docker를 활용한 손쉬운 ECS 활용기 - 김민태 (AUSG) :: AWS Community Day Online 2021
PDF
Deployment techniques for cloud native
PDF
EC2 컨테이너 서비스 고객사례 Vingle - 조휘철 소프트웨어 엔지니어 :: AWS Container Day
PDF
Elastic beanstalk - 판교 초급자 모임 - 안병학
PDF
클라우드 춘추전국시대 서버 개발자 생존기
PDF
AWS Lambda와 API Gateway를 통한 Serverless Architecture 특집 (윤석찬)
PDF
AWS에 대해 궁금했던 10가지 질문들(윤석찬) - AWS 웨비나 시리즈 2015
PDF
ECS/Fargate와 함께하는 간편한 Docker 사용법 - 트랙2, Community Day 2018 re:Invent 특집
PDF
20140524 Cloud design pattern - AMIMOTO AMI를 이용해 5분만에 끝내는 WordPress 구축
Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021
CloudFront(클라우드 프론트)와 Route53(라우트53) AWS Summit Seoul 2015
20171013 데이터 분석가를 위한 데이터플랫폼 Seminar - Public Cloud 101
Project TIMAT - infrastructure as code
AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석
AWS Lambdas with a Static Outgoing IP
온라인 주문 서비스를 서버리스 아키텍쳐로 구축하기 - 김태우(Classmethod) :: AWS Community Day Online 2020
AWS Lambda를 이용한 CI/CD 기법
DevOps Study
Serverless Architecture - 김현민
[Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드
Docker를 활용한 손쉬운 ECS 활용기 - 김민태 (AUSG) :: AWS Community Day Online 2021
Deployment techniques for cloud native
EC2 컨테이너 서비스 고객사례 Vingle - 조휘철 소프트웨어 엔지니어 :: AWS Container Day
Elastic beanstalk - 판교 초급자 모임 - 안병학
클라우드 춘추전국시대 서버 개발자 생존기
AWS Lambda와 API Gateway를 통한 Serverless Architecture 특집 (윤석찬)
AWS에 대해 궁금했던 10가지 질문들(윤석찬) - AWS 웨비나 시리즈 2015
ECS/Fargate와 함께하는 간편한 Docker 사용법 - 트랙2, Community Day 2018 re:Invent 특집
20140524 Cloud design pattern - AMIMOTO AMI를 이용해 5분만에 끝내는 WordPress 구축
Ad

Similar to DevOps (AWS, Docker, Ansible, Jenkins) (20)

PPTX
Vingle tech talk #1
PPTX
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
PDF
AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)
PDF
효과적인 데브옵스를 위한 AWS 개발 도구 활용하기 - AWS Summit Seoul 2017
PDF
클라이드 네이티브 기반 Twelve Factor 앱 개발 - 윤석찬, AWS 테크에반젤리스트 :: AWS Summit Online Kore...
PDF
데브옵스(DevOps) 문화 모범 사례와 구현 도구 살펴보기 – 박선준 :: AWS Builders Online Series
PDF
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
PDF
Jenkins를 활용한 Openshift CI/CD 구성
PDF
[TD 2015] windows server에서 만나보는 docker와 windows container(최한홍)
PDF
AWS DevOps와 ECR을 통한 Elastic Beanstalk 배포 환경 구축 및 타 환경과의 비교
PDF
Docker로 서버 개발 편하게 하기
PDF
DevOps를 위한 AWS 서비스 및 개발도구 -김상필 솔루션아키텍트 :: AWS 파트너 테크시프트 세미나
PDF
KGC 2013 DevSisters
PPTX
bamboo 로 PHP 프로젝트 지속적인 배포
PPTX
Docker osc 0508
PDF
Windows Kubernetes Deep Dive
PPTX
10월 웨비나 - AWS에서 MS Windows 운영, 관리 및 개발 손쉽게 하기 (박철수 솔루션즈 아키텍트)
PDF
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
PPTX
01.WEB SYSTEM BASED ON DOCKER
PDF
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
Vingle tech talk #1
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)
효과적인 데브옵스를 위한 AWS 개발 도구 활용하기 - AWS Summit Seoul 2017
클라이드 네이티브 기반 Twelve Factor 앱 개발 - 윤석찬, AWS 테크에반젤리스트 :: AWS Summit Online Kore...
데브옵스(DevOps) 문화 모범 사례와 구현 도구 살펴보기 – 박선준 :: AWS Builders Online Series
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
Jenkins를 활용한 Openshift CI/CD 구성
[TD 2015] windows server에서 만나보는 docker와 windows container(최한홍)
AWS DevOps와 ECR을 통한 Elastic Beanstalk 배포 환경 구축 및 타 환경과의 비교
Docker로 서버 개발 편하게 하기
DevOps를 위한 AWS 서비스 및 개발도구 -김상필 솔루션아키텍트 :: AWS 파트너 테크시프트 세미나
KGC 2013 DevSisters
bamboo 로 PHP 프로젝트 지속적인 배포
Docker osc 0508
Windows Kubernetes Deep Dive
10월 웨비나 - AWS에서 MS Windows 운영, 관리 및 개발 손쉽게 하기 (박철수 솔루션즈 아키텍트)
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
01.WEB SYSTEM BASED ON DOCKER
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
Ad

DevOps (AWS, Docker, Ansible, Jenkins)

  • 1. DevOps 의 시작 (Docker + Ansible + Jenkins + AWS 를 이용한 무 중단 배포) JBUG - 김완철 (데이빗백곰) https://github.com/david100gom/docker_hands_on
  • 2. 1. 기본적인 AWS 서버 아키텍처 구성 • Dev(QA) 와 Prod 를 구분하여 VPC 구성 • HA 를 위한 Multi-AZ 구성, RDS M/S 구성 및 Auto Scaling 을 위한 ELB 구성 • Scale out 를 위한 RDS Read Replica 구성 • 기본적인 보안을 위한 public, private Router 분리 및 inbound 접근제어 • IAM 를 통한 Role 및 권한 관리 등등
  • 3. 2. 기본적인 CI/CD 구성 Dev Server QA Server Prod Server • Jenkins 내에서 git 에서 checkout 한 소스를 컴파일 • 각 DEV, QA 서버 및 PROD 서버 배포 • Auto Scaling 대응 미흡 • 무정지 배포 대응 미흡 • 24*365 수동 모니터링 • 넘쳐나는 모니터링 메일 스레드 • 배포를 위해 새벽에 출근
  • 4. • AWS Auto Scaling 설정 • 손쉬운 배포를 위한 Docker 도입 • 서버 관리를 위한 Ansible 도입 3. 기존 CI/CD 문제점 해결방안 고민 AWS Auto Scaling • AWS Auto Scaling 설정 구성하면 추후 관리해야 하는 서버가 늘어남 • 소스 배포의 안정적인 처리를 위한 Docker • 많아진 서버 관리를 위한 Ansible • Docker Swarm, Rancher, Kubernetes 등등 • yml, playbook, tower 등등 • 관련 기술이 많아 목적 상실 위험 Step by Step 고도화
  • 5. 4. Docker 개발, 서비스 이미지 생성 구성 web-base:lastest tomcat- base:lastest prod-web:lastes CentOS:lastes tomcat-base:qa-lastest tomcat-base:prod-latest Amazon ECR • Tomcat 용 Docker 이미지 생성 • Web (OS 기본) 용 Docker 이미지 생성 • 최종 빌드 배포용 Docker 이미지 생성 System Engineer System Engineer System Engineer Developer
  • 6. 5. CI / CD 구성 Dev Server QA Server Stage Server Prod Server QA 컨테이너 Dev 컨테이너 Amazon ECR • 이미지 버전관리
  • 7. AWS ELB 정보 취합 Ansible hosts 구성 ELB 에서 서버 deregister ELB health check 정보 갱신 Docker 배포 sleep 5 sleep 5 ELB 에서 서버 register ELB health check 정보 갱신 6. 빌드/배포 상세 flow • 최대한 down time을 회피하기 위한 flow 구성 • ELB 뒤에 HAProxy 가 있다면 HAProxy 컨트롤 고려 • 서비스 목적에 따라 무중단에 대한 개념 및 위험요소 다양 • 다양한 방법 존재 : Blue-Green 배포 등등
  • 8. 7. 추후 고려사항 • 서비스 목적에 따른 DevOps 아키텍처 구성 포인트 • Over Engineering 에 따른 관리 포인트 문제 및 리소스 부족 AWS CLI • Docker, Ansible 등 최신 기술에 대한 내재화에 대한 부담 Python (boto) Amazon ECR • 전체 DevOps 아키텍처에 대한 모니터링 • 개발조직의 DevOps 에 대한 마인드 및 기술 수준 평준화