Startup의 한정된 자원(인력,자금)에서
AWS를 효율적으로 사용하는 방법
14. Feb. 2019
jongwon.han@hbsmith.io
(STAGE9 Seminar)
1
2.
발표자 소개
• 한종원
•Python과 Cloud Infra, Lean/Agile 방법론 그리고 애플의 제품을 사랑.
• 2012년 석사 학위를 마치고, startup을 시작
• '의미가 있는 일을, 올바르게 하고 싶다.’
• 경력
• (현) DevOps 전문 스타트업 ‘HB Smith’ 대표
• 택시 O2O 서비스 스타트업 ‘Kanizsa Lab’의 backend server / infra devops 담당
• Cloud computing 전문 스타트업 'A2 company' co-founder (‘KINX’에 인수합병)
• NEXON 'MapleStory 국내 Live Team'에서 DBA, SA로 근무 (산업 기능 요원)
2
https://www.linkedin.com/in/addnull/
https://hbsmith.io
3.
Contents
• 발표 대상
-AWS 도입을 검토하는 분
- AWS 사용 초/중급 - 실제 production에서 AWS를 사용하시는 분
- Backend server application 개발자
- Server infrastructure에 대한 경험과 이해가 있는 분
• 발표 목차
- Hello Cloud!
- AWS 소개
- AWS 비용 구조
- 비용 절감
3
(예상 발표 시간: 70분)
Hello Cloud!
• ‘CloudComputing’ 이란 ?!?
• 다양한 정의
• Data 저장과 접근을 인터넷으로 언제 어디서든 접근 가능한 기술
• 바로 사용 가능하고 사용한 만큼 과금되는 전산 기반 시설(infrastructure)들
• 전산 hardware 장비들의 가상화(virtualization) 기술
5
이미지 출처
https://www.tocario.com/
history-of-cloud-computing/
6.
Hello Cloud!
• ‘CloudComputing’ 이란 ?!?
• 정의
6
왜 'Cloud Computing'이 상업적으로 의미가 있는가?
전산 자원들의 공유하는 기술과 도구의 집합
이미지 출처
https://www.tocario.com/
history-of-cloud-computing/
7.
Hello Cloud!
• 정의
•전산 자원
-> server, storage, network 같은
infrastructure(물리 hardware 장비)와
platform과 application(software)를 포함
7
이미지 출처
https://en.wikipedia.org/
wiki/Cloud_computing
전산 자원들의 공유하는 기술과 도구의 집합
8.
Hello Cloud!
• 전산자원을 공유한다?!?
• 피자를 먹는 네 가지 방법
8
이미지 출처
http://www.teenagemutantninjaturtles.com/
fanzone/tmnt-pizza-toppings/
9.
Hello Cloud!
• Abstractionlevel
• 음식점 피자: 돈만 있으면 OK!
• 배달 피자: 식탁과 돈 필요
• 냉동 피자: 전자렌지, 식탁, 돈 필요
• 홈피자: 집에서 AtoZ 모두 다 필요
9
이미지 출처
http://www.hostingadvice.com/
how-to/iaas-vs-paas-vs-saas/
Hello Cloud!
• ‘CloudComputing’ 은
• ‘Cloud 서비스’는
• Cloud 서비스를 쓴다는 것
-> 서비스 제공 업체가 미리 준비해둔 자원의 일부를 빌린다는 것
12
전산 자원들의 공유하는 기술과 도구의 집합
'Cloud Computing'을 별도의 유무료 서비스 형태로 제3자에게 제공
13.
Hello Cloud!
• application/ platform 대여
복사, 전달 과정을 인터넷을 통해 쉽게 해결
• infrastructure 대여
13
물리 장비에 대한 가상화(virtualization) 기술이 필요
Hello Cloud!
• Cloud서비스에서 가상화
15
실제 물리 machine을 모사한 virtual machine(VM)을 software로 구현
16.
Hello Cloud!
• Cloud서비스에서 가상화
• 전 가상화 (vs) 반 가상화
16
실제 물리 machine을 모사한 virtual machine(VM)을 software로 구현
이미지 출처
http://www.cloudvirtualizationspecialist.com/
difference-application-virtualization-
paravirtualization/
17.
Hello Cloud!
• Cloud서비스 형태
• public cloud
Cloud 서비스의 물리 장비를 Cloud 서비스 업체에서 제공
불특정 다수가 함께 공유해서 씀
• private cloud
Cloud 서비스의 물리 장비를 사용자가 직접 제공
해당 물리 장비를 제공한 사용자 또는 일부 한정된 사용자만 사용
• hybrid cloud
public/private cloud와 물리 서버를 섞어서 운영
17
AWS 소개
• 2004년Amazon 의 고민
• 1년 중에 traffic peak 일 때(예: Christmas season)는
수 많은 서버가 필요하지만 이런 기간은 1년 중에 매우 짧음 (2~3주)
• 평상시에는 상대적으로 적은 수의 서버로도 충분함
• 즉, 평상시에는 많은 서버들의 사용률이 매우 낮은 문제 발생
19
이미지 출처
https://www.sugerendo.com/en/empresa/
nuestras-tecnologias/amazon-web-services/
-> 서버 자원 낭비(waste) 문제
20.
AWS 소개
• 서버자원 낭비(waste) 문제의 심화
• traffic peak 일 때와 그렇지 않을 경우의 격차가 매년 더 커짐
• 언제 traffic peak가 생길지 예측이 어려워짐
• “서버를 필요할 때만 끌어다 쓰고 필요없을 때 반환할 수 없을까?
즉, 서버를 여러 기업에서 공유할 수 있을까?”
20
이미지 출처
https://www.sugerendo.com/en/empresa/
nuestras-tecnologias/amazon-web-services/
AWS 소개
• AWS의 강점
• 가장 오랫동안 운영된 서비스 (Since 2004)
• 가장 많은 use case과 troubleshooting이 축적
-> 개발자 입장에서 공식 문서와
인터넷 검색만으로도 ‘비교적 쉽게’ 사용 가능
28
Gartner’s 2018 Magic Quadrant
for infrastructure as a Service.
거의 de facto 급
29.
AWS 소개
• AWS의 강점
• 활발한 국내 커뮤니티
29
https://www.meetup.com/
awskrug/events/calendar/
https://www.facebook.com/groups/awskrug/
AWS 비용 구조
•AWS 과금 기본 규칙
‘pay-as-you-go’
쓴 만큼 과금되며 언제든지 중단할 수 있는 utility computing 의 과금 방식
• 실생활에서 Utility services 예시
32
이미지 출처
https://www.inmyarea.com/utilities
33.
AWS 비용 구조
•예상 월 과금 계산기
• AWS 서비스마다 다양한 과금 metric
33
https://calculator.s3.amazonaws.com/index.html
34.
AWS 비용 구조
•AWS 서비스마다 다양한 과금 metric
34
computing 시간 storage 공간
network
traffic
35.
AWS 비용 구조
•실제 인공지능 QA 자동화 서비스 'HBSmith' 요금
35
실제 고객사 서비스의 사용자처럼 동작하는
‘hbsmith’ bot을 작성해서 QA 업무를 대체함
36.
AWS 비용 구조
•실제 인공지능 QA 자동화 서비스 'HBSmith' 요금
36
AWS의 다양한 서비스들을 사용 중
37.
AWS 비용 구조
•실제 HBSmith EC2 요금(2018년 12월, 2019년 1월)
37
38.
AWS 비용 구조
•너무 다양한 과금 metric 이 존재하지만, ‘정액제’ 방식은 지원하지 않음
38
잘못 관리하면, 너무 많은 비용이 청구될 위험이 존재
이미지 출처
https://crowdpic.net
비용 절감
• AWS같은 pay-as-you-go 과금 방식의 서비스의 계정 1개를
여러 사람이 공유하면, 실수 또는 도덕적 해이(moral hazard)로
과도한 비용이 발생될 수 있음
42
3단계 deployment phase
‘AWS Consolidated Billing’으로 계정 분리 및 통합 과금 설정
비용 절감
• AWS을쓰는게 과연 비용적으로 유리한가?
• 너무 복잡하고, 다양한 과금 metric
• 실수 또는 도덕적 해이(moral hazard)로 발생하는 문제를 예방하기 위해서
실시간 요금을 주기적으로 확인해야하는 부담
44
45.
비용 절감
• AWS비용 관련 논쟁
-> 비단 AWS 뿐만 아니라 여러 다른 public cloud 인프라도 동일한 이슈
45
46.
비용 절감
• 서버인프라 비용에서 관리 인력의 인건비를 포함할 경우
AWS 같은 public cloud를 쓰는게 비용적으로 유리
46
이미지 출처
https://aws.amazon.com/blogs/database/
part-1-role-of-the-dba-when-moving-to-
amazon-rds-responsibilities/
-> 1~2명의 인력으로 global 서버 인프라 관리도 가능
47.
비용 절감
• IaC(infrastructure as code)
-> AWS 관련된 모든 작업 과정을 code화 할 수 있음.
-> 즉, 인프라 관련 작업을 100% full 자동화가 가능.
-> 최소한 인프라 관리 인력(1~2명)만 필요.
47
https://www.slideshare.net/addnull/
20181108-hbsmith-aws-iac
48.
비용 절감
• IaC예시: new version release 자동화
-> 매일 “blue-green deployment”로 교체 (daily continuous deployment)
48
사람의 개입없이 매일
자동으로 무중단 패치
비용 절감
• ‘johanna’는AWS CLI 기반으로 AWS infra 전체 또는 일부를 provisioning, de-
provisioning 할 수 있는 CLI
• 100% Python3 script 로 작성되어 있으며 OSS 로 공개 개발 (since 2016)
50
https://github.com/HardBoiledSmith/johanna/
51.
비용 절감
• AWS가격 인하 공지 blog 와 비용 최적화 guide
51
https://aws.amazon.com/blogs/
aws/category/price-reduction/
https://aws.amazon.com/
pricing/cost-optimization/
Wrap-Up
• Hello Cloud!
•‘Cloud Computing’ 정의, virtualization, public/private/hybrid cloud
• AWS 소개
• 지난 history, 현재 상황, AWS 의 강점
• AWS 비용 구조
• pay-as-you-go, 다양한 과금 metric
• 비용 절감
• 실시간 비용 관리, 자동화를 통한 인프라 관리 인력 최적화
• dummy EC2 소개, Lambda가 EC2 를 대체하면 좋은 사례
59