SlideShare a Scribd company logo
1 of 42
Download to read offline
TIAMAT : Python으로 만드는
AWS Provisioning Tool
윤제상
yoonjs2@hbsmith.io
HB Smith Inc.
2017.8.5
안녕하세요,
SW 개발자 윤제상입니다.
HB Smith라는 스타트업을 운영하고 있습니다.
블로그: https://medium.com/@yoonjs2
TIAMAT?
TIAMAT [타이마트] (하이마트아님)
Dungeon & Dragons 최종보스
머리가 여러개 달린용
Python으로 클라우드 인프라를 관리하는 도구
백엔드(Backend) 개발자의 삶
IDC 시절엔…
네트워크를 설정합니다.
서버를 사거나 설치합니다.
리눅스를 설치합니다.
여러 스택을 설치합니다.
자 이제 개발해 볼까요?
클라우드 시대엔…
네트워크를 설정합니다.
VM을 띄웁니다.
여러 스택을 설치합니다.
자 이제 개발해 볼까요?
백엔드(Backend) 개발자의 고통
IDC 시절엔…
네트워크를 설정하는데 며칠
서버를 사거나 설치하는데 며칠
리눅스를 설치하는데 몇시간
여러 스택을 설치하는데 몇시간
자 이제 개발해 볼까요? 까지 최소 며칠
클라우드 시대엔…
네트워크를 설정하는데 몇시간
VM을 띄우는데 몇분
여러 스택을 설치하는데 몇시간
자 이제 개발해 볼까요? 까지 최소 수시간
이게 끝이 아님…
개발서버에 누가 손댔어요?
인프라 문서가 없거나 오래됨
인프라 설치한 개발자가 퇴사/연락안됨
저번에 대충 고쳤더니 또 터짐
…
더 나은 방법은 없을까요?
잘하는 사람들에게 배웠습니다.
개발, 검증, 운영으로 환경을 구분하라
=> 프로비저닝(Provisioning)하라
DV QA OP
개발 검증 운영
잘하는 사람들에게 배웠습니다.
인프라를 프로그래밍 해야 한다.
=> 인프라를 코드로 관리해야 한다.
=> 인프라를 자동화 해야 한다.
코드
서버 & 인프라
설정
코드로 관리하면 뭐가 좋아지나요?
3R을 달성할수 있게 됩니다
Repeatable = 반복가능
Reproducible = 재현가능
Reliable = 신뢰가능
3R을 달성할수 있게 됩니다
Repeatable = 언제든 부수고 재건가능
Reproducible = 어느곳 에서든 생성가능
Reliable = 언제든 같은 결과를 보여줌
DV QA OP
개발 검증 운영
코드
Config
개발자 개인별
서버 & 인프라
검증용
서버 & 인프라
Config Config
국가별 운영
서버 & 인프라
왜 파이썬으로 만들었나요?
처음엔 Bash로 짰었습니다…
수천라인 이상의 Bash 코드
= 가독성이 너무 나쁨
= 디버깅은 기대도 할수 없음
= 복잡한 로직 구현이 어려움
점점 더 유지보수가 어렵더라…
아…
결국 Bash를 버리고 Python으로 재개발
Python으로 바꿨더니 이런 장점이!
= 제대로 된 프로그래밍 언어의 모든 장점
= AWS 클라우드와 최고의 궁합
= 저사양 1CPU, 512RAM에도 운영가능
= 강력한 문자열 처리
= 쉬운 모듈화
= 보장된 안정성과 많은 자료 ㅋㅋㅋ
어떻게 만들었나요?
인프라를 Template로 찍어낼 수 있게 한다.
완전히 띄우거나 일부만 띄울 수 있게 한다.
완전히 부수거나 일부만 부술 수 있게 한다.
띄운 인프라는 지속적으로 업데이트 한다.
Provisioner
(Johanna)
서버 & 인프라
On Cloud
설정
Template
서버 & 인프라
On AWS
설정
Template
Provisioner
(Johanna)
Subprocess
Provisioner
(Johanna)
Template
VPC
Subnet
IGW
NAT
GW
Network
Template
Internet
gateway
VPC NAT
gateway
Provisioner
(Johanna)
Template
EC2
RDS
S3
Lambda
EC2
Template
RDS
Template
S3
Template
Lambda
Template
Provisioner
(Johanna)
설정
Template
Provisioner
(Johanna)
설정B
Template
설정A
어떤 성과가 있었나요?
경제적인 비용으로 인프라를 운용한다.
고객에게 커스텀 해주고 돈을 번다.
좋은 Provisioning 교본이 된다.
앞으로 개선해야 할 것은?
문서화가 제대로 안되어 있다.
일부분은 더 자동화가 필요하다.
추상화가 덜되어 있다.
서비스 화가 덜되어 있다.
도와주세요!
이슈, 로드맵
https://github.com/HardBoiledSmith/tiamat
핵심 프로젝트
https://github.com/HardBoiledSmith/johanna
Fork & PR 언제든 환영합니다.
여기계신 분들에게…
HB Smith는 Python을 이용하여 

API 개발자를 위한 API 테스트/모니터링 서비스를 만들고 있습
니다.
아래 링크로 신청 부탁드려요!
무료계정을 드립니다!
http://bit.ly/2w6nNpG
OST 운영중입니다.
“#스타트업 #파이썬 #서버 #고민나눠요” 에서 만나요!
12일 오후 2시 208A PSF룸 입니다.
감사합니다!

More Related Content

Viewers also liked

20170829 HB Smith에서는 AWS 이렇게 사용한다
20170829 HB Smith에서는 AWS 이렇게 사용한다20170829 HB Smith에서는 AWS 이렇게 사용한다
20170829 HB Smith에서는 AWS 이렇게 사용한다Jongwon Han
 
나도 내가 뭘 말해야되는지 잘 모르겠어 (본격 스타트업 환상 부수기)
나도 내가 뭘 말해야되는지 잘 모르겠어 (본격 스타트업 환상 부수기)나도 내가 뭘 말해야되는지 잘 모르겠어 (본격 스타트업 환상 부수기)
나도 내가 뭘 말해야되는지 잘 모르겠어 (본격 스타트업 환상 부수기)Yu Yongwoo
 
AWS Summit - AWS를 통한 신뢰성 높은 지속적 배포 및 통합(CD, CI) ᄉ...
AWS Summit - AWS를 통한 신뢰성 높은 지속적 배포 및 통합(CD, CI) ᄉ...AWS Summit - AWS를 통한 신뢰성 높은 지속적 배포 및 통합(CD, CI) ᄉ...
AWS Summit - AWS를 통한 신뢰성 높은 지속적 배포 및 통합(CD, CI) ᄉ...Jongwon Han
 
20170718 hb smith에서는 aws 이렇게 사용한다
20170718 hb smith에서는 aws 이렇게 사용한다20170718 hb smith에서는 aws 이렇게 사용한다
20170718 hb smith에서는 aws 이렇게 사용한다Jongwon Han
 
20171013 데이터 분석가를 위한 데이터플랫폼 Seminar - Public Cloud 101
20171013 데이터 분석가를 위한 데이터플랫폼 Seminar - Public Cloud 10120171013 데이터 분석가를 위한 데이터플랫폼 Seminar - Public Cloud 101
20171013 데이터 분석가를 위한 데이터플랫폼 Seminar - Public Cloud 101Jongwon Han
 
코드로 인프라 관리하기 - 자동화 툴 소개
코드로 인프라 관리하기 - 자동화 툴 소개코드로 인프라 관리하기 - 자동화 툴 소개
코드로 인프라 관리하기 - 자동화 툴 소개태준 문
 
Ksug2015 - JPA2, JPA 기초와매핑
Ksug2015 - JPA2, JPA 기초와매핑Ksug2015 - JPA2, JPA 기초와매핑
Ksug2015 - JPA2, JPA 기초와매핑Younghan Kim
 
Angularjs 도입 선택 가이드
Angularjs 도입 선택 가이드Angularjs 도입 선택 가이드
Angularjs 도입 선택 가이드NAVER D2
 
Project TIMAT - infrastructure as code
Project TIMAT - infrastructure as codeProject TIMAT - infrastructure as code
Project TIMAT - infrastructure as codeJesang Yoon
 
서버 개발자가 바라 본 Functional Reactive Programming with RxJava - SpringCamp2015
서버 개발자가 바라 본 Functional Reactive Programming with RxJava - SpringCamp2015서버 개발자가 바라 본 Functional Reactive Programming with RxJava - SpringCamp2015
서버 개발자가 바라 본 Functional Reactive Programming with RxJava - SpringCamp2015NAVER / MusicPlatform
 
데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)
데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)
데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)Amazon Web Services Korea
 
DevOps!! 도데체 왜, 어떻게 할까??
DevOps!! 도데체 왜, 어떻게 할까??DevOps!! 도데체 왜, 어떻게 할까??
DevOps!! 도데체 왜, 어떻게 할까??Joseph Kim
 
HB Smith - business plan - live hero - public
HB Smith - business plan - live hero - publicHB Smith - business plan - live hero - public
HB Smith - business plan - live hero - publicJongwon Han
 

Viewers also liked (13)

20170829 HB Smith에서는 AWS 이렇게 사용한다
20170829 HB Smith에서는 AWS 이렇게 사용한다20170829 HB Smith에서는 AWS 이렇게 사용한다
20170829 HB Smith에서는 AWS 이렇게 사용한다
 
나도 내가 뭘 말해야되는지 잘 모르겠어 (본격 스타트업 환상 부수기)
나도 내가 뭘 말해야되는지 잘 모르겠어 (본격 스타트업 환상 부수기)나도 내가 뭘 말해야되는지 잘 모르겠어 (본격 스타트업 환상 부수기)
나도 내가 뭘 말해야되는지 잘 모르겠어 (본격 스타트업 환상 부수기)
 
AWS Summit - AWS를 통한 신뢰성 높은 지속적 배포 및 통합(CD, CI) ᄉ...
AWS Summit - AWS를 통한 신뢰성 높은 지속적 배포 및 통합(CD, CI) ᄉ...AWS Summit - AWS를 통한 신뢰성 높은 지속적 배포 및 통합(CD, CI) ᄉ...
AWS Summit - AWS를 통한 신뢰성 높은 지속적 배포 및 통합(CD, CI) ᄉ...
 
20170718 hb smith에서는 aws 이렇게 사용한다
20170718 hb smith에서는 aws 이렇게 사용한다20170718 hb smith에서는 aws 이렇게 사용한다
20170718 hb smith에서는 aws 이렇게 사용한다
 
20171013 데이터 분석가를 위한 데이터플랫폼 Seminar - Public Cloud 101
20171013 데이터 분석가를 위한 데이터플랫폼 Seminar - Public Cloud 10120171013 데이터 분석가를 위한 데이터플랫폼 Seminar - Public Cloud 101
20171013 데이터 분석가를 위한 데이터플랫폼 Seminar - Public Cloud 101
 
코드로 인프라 관리하기 - 자동화 툴 소개
코드로 인프라 관리하기 - 자동화 툴 소개코드로 인프라 관리하기 - 자동화 툴 소개
코드로 인프라 관리하기 - 자동화 툴 소개
 
Ksug2015 - JPA2, JPA 기초와매핑
Ksug2015 - JPA2, JPA 기초와매핑Ksug2015 - JPA2, JPA 기초와매핑
Ksug2015 - JPA2, JPA 기초와매핑
 
Angularjs 도입 선택 가이드
Angularjs 도입 선택 가이드Angularjs 도입 선택 가이드
Angularjs 도입 선택 가이드
 
Project TIMAT - infrastructure as code
Project TIMAT - infrastructure as codeProject TIMAT - infrastructure as code
Project TIMAT - infrastructure as code
 
서버 개발자가 바라 본 Functional Reactive Programming with RxJava - SpringCamp2015
서버 개발자가 바라 본 Functional Reactive Programming with RxJava - SpringCamp2015서버 개발자가 바라 본 Functional Reactive Programming with RxJava - SpringCamp2015
서버 개발자가 바라 본 Functional Reactive Programming with RxJava - SpringCamp2015
 
데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)
데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)
데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)
 
DevOps!! 도데체 왜, 어떻게 할까??
DevOps!! 도데체 왜, 어떻게 할까??DevOps!! 도데체 왜, 어떻게 할까??
DevOps!! 도데체 왜, 어떻게 할까??
 
HB Smith - business plan - live hero - public
HB Smith - business plan - live hero - publicHB Smith - business plan - live hero - public
HB Smith - business plan - live hero - public
 

More from Jesang Yoon

AWS Cloud Job Fair 2022 발표자료
AWS Cloud Job Fair 2022 발표자료AWS Cloud Job Fair 2022 발표자료
AWS Cloud Job Fair 2022 발표자료Jesang Yoon
 
DevOps는 원격근무를 추구하면 안되는 걸까?
DevOps는 원격근무를 추구하면 안되는 걸까?DevOps는 원격근무를 추구하면 안되는 걸까?
DevOps는 원격근무를 추구하면 안되는 걸까?Jesang Yoon
 
Amazon Aurora로 안전하게 migration 하기
Amazon Aurora로 안전하게 migration 하기Amazon Aurora로 안전하게 migration 하기
Amazon Aurora로 안전하게 migration 하기Jesang Yoon
 
AWS S3를 이용한 효과적인 SPA 배포
AWS S3를 이용한 효과적인 SPA 배포AWS S3를 이용한 효과적인 SPA 배포
AWS S3를 이용한 효과적인 SPA 배포Jesang Yoon
 
AWS Lambda를 이용한 CI/CD 기법
AWS Lambda를 이용한 CI/CD 기법AWS Lambda를 이용한 CI/CD 기법
AWS Lambda를 이용한 CI/CD 기법Jesang Yoon
 
대기업에서 스타트업 까지 - 윤제상
대기업에서 스타트업 까지 - 윤제상대기업에서 스타트업 까지 - 윤제상
대기업에서 스타트업 까지 - 윤제상Jesang Yoon
 
node.js 실무 - node js in practice by Jesang Yoon
node.js 실무 - node js in practice by Jesang Yoonnode.js 실무 - node js in practice by Jesang Yoon
node.js 실무 - node js in practice by Jesang YoonJesang Yoon
 

More from Jesang Yoon (7)

AWS Cloud Job Fair 2022 발표자료
AWS Cloud Job Fair 2022 발표자료AWS Cloud Job Fair 2022 발표자료
AWS Cloud Job Fair 2022 발표자료
 
DevOps는 원격근무를 추구하면 안되는 걸까?
DevOps는 원격근무를 추구하면 안되는 걸까?DevOps는 원격근무를 추구하면 안되는 걸까?
DevOps는 원격근무를 추구하면 안되는 걸까?
 
Amazon Aurora로 안전하게 migration 하기
Amazon Aurora로 안전하게 migration 하기Amazon Aurora로 안전하게 migration 하기
Amazon Aurora로 안전하게 migration 하기
 
AWS S3를 이용한 효과적인 SPA 배포
AWS S3를 이용한 효과적인 SPA 배포AWS S3를 이용한 효과적인 SPA 배포
AWS S3를 이용한 효과적인 SPA 배포
 
AWS Lambda를 이용한 CI/CD 기법
AWS Lambda를 이용한 CI/CD 기법AWS Lambda를 이용한 CI/CD 기법
AWS Lambda를 이용한 CI/CD 기법
 
대기업에서 스타트업 까지 - 윤제상
대기업에서 스타트업 까지 - 윤제상대기업에서 스타트업 까지 - 윤제상
대기업에서 스타트업 까지 - 윤제상
 
node.js 실무 - node js in practice by Jesang Yoon
node.js 실무 - node js in practice by Jesang Yoonnode.js 실무 - node js in practice by Jesang Yoon
node.js 실무 - node js in practice by Jesang Yoon
 

Tiamat - Python으로 만드는 AWS Provisioning Tool