ݺߣ

ݺߣShare a Scribd company logo
Startup의 한정된 자원(인력, 자금)에서

AWS를 효율적으로 사용하는 방법
14. Feb. 2019
jongwon.han@hbsmith.io
(STAGE9 Seminar)
1
발표자 소개
• 한종원
• 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
Contents
• 발표 대상

- AWS 도입을 검토하는 분

- AWS 사용 초/중급 - 실제 production에서 AWS를 사용하시는 분

- Backend server application 개발자

- Server infrastructure에 대한 경험과 이해가 있는 분
• 발표 목차

- Hello Cloud!

- AWS 소개

- AWS 비용 구조

- 비용 절감
3
(예상 발표 시간: 70분)
Hello Cloud!
4
Hello Cloud!
• ‘Cloud Computing’ 이란 ?!?
• 다양한 정의
• Data 저장과 접근을 인터넷으로 언제 어디서든 접근 가능한 기술
• 바로 사용 가능하고 사용한 만큼 과금되는 전산 기반 시설(infrastructure)들
• 전산 hardware 장비들의 가상화(virtualization) 기술
5
이미지 출처

https://www.tocario.com/
history-of-cloud-computing/
Hello Cloud!
• ‘Cloud Computing’ 이란 ?!?
• 정의
6
왜 'Cloud Computing'이 상업적으로 의미가 있는가?
전산 자원들의 공유하는 기술과 도구의 집합
이미지 출처

https://www.tocario.com/
history-of-cloud-computing/
Hello Cloud!
• 정의
• 전산 자원

-> server, storage, network 같은

infrastructure(물리 hardware 장비)와

platform과 application(software)를 포함
7
이미지 출처
https://en.wikipedia.org/
wiki/Cloud_computing
전산 자원들의 공유하는 기술과 도구의 집합
Hello Cloud!
• 전산 자원을 공유한다?!?
• 피자를 먹는 네 가지 방법
8
이미지 출처

http://www.teenagemutantninjaturtles.com/
fanzone/tmnt-pizza-toppings/
Hello Cloud!
• Abstraction level
• 음식점 피자: 돈만 있으면 OK!
• 배달 피자: 식탁과 돈 필요
• 냉동 피자: 전자렌지, 식탁, 돈 필요
• 홈피자: 집에서 AtoZ 모두 다 필요
9
이미지 출처
http://www.hostingadvice.com/
how-to/iaas-vs-paas-vs-saas/
Hello Cloud!
• Abstraction level
• 음식점 피자:
• 배달 피자:
• 냉동 피자:
• 홈피자:
10
이미지 출처
http://www.hostingadvice.com/
how-to/iaas-vs-paas-vs-saas/
Software 통채로 대여
Platform 까지 대여
Infrastructure만 대여
Cloud 안 씁니다..
Hello Cloud!
• Abstraction level
• 음식점 피자:
• 배달 피자:
• 냉동 피자:
• 홈피자:
11
Software 통채로 대여
Platform 까지 대여
Infrastructure만 대여
Cloud 안 씁니다..
이미지 출처

http://www.hostingadvice.com/
how-to/iaas-vs-paas-vs-saas/
Hello Cloud!
• ‘Cloud Computing’ 은
• ‘Cloud 서비스’는
• Cloud 서비스를 쓴다는 것

-> 서비스 제공 업체가 미리 준비해둔 자원의 일부를 빌린다는 것
12
전산 자원들의 공유하는 기술과 도구의 집합
'Cloud Computing'을 별도의 유무료 서비스 형태로 제3자에게 제공
Hello Cloud!
• application / platform 대여

복사, 전달 과정을 인터넷을 통해 쉽게 해결
• infrastructure 대여

13
물리 장비에 대한 가상화(virtualization) 기술이 필요
Hello Cloud!
• 가상화란?
14
'Matrix (1999)'에서 실제 world를 묘사한 virtual world(software)가 존재
Hello Cloud!
• Cloud 서비스에서 가상화
15
실제 물리 machine을 모사한 virtual machine(VM)을 software로 구현
Hello Cloud!
• Cloud 서비스에서 가상화
• 전 가상화 (vs) 반 가상화
16
실제 물리 machine을 모사한 virtual machine(VM)을 software로 구현
이미지 출처
http://www.cloudvirtualizationspecialist.com/
difference-application-virtualization-
paravirtualization/
Hello Cloud!
• Cloud 서비스 형태
• public cloud

Cloud 서비스의 물리 장비를 Cloud 서비스 업체에서 제공

불특정 다수가 함께 공유해서 씀
• private cloud

Cloud 서비스의 물리 장비를 사용자가 직접 제공

해당 물리 장비를 제공한 사용자 또는 일부 한정된 사용자만 사용
• hybrid cloud

public/private cloud와 물리 서버를 섞어서 운영
17
AWS 소개
18
AWS 소개
• 2004년 Amazon 의 고민
• 1년 중에 traffic peak 일 때(예: Christmas season)는

수 많은 서버가 필요하지만 이런 기간은 1년 중에 매우 짧음 (2~3주)
• 평상시에는 상대적으로 적은 수의 서버로도 충분함
• 즉, 평상시에는 많은 서버들의 사용률이 매우 낮은 문제 발생
19
이미지 출처
https://www.sugerendo.com/en/empresa/
nuestras-tecnologias/amazon-web-services/
-> 서버 자원 낭비(waste) 문제
AWS 소개
• 서버 자원 낭비(waste) 문제의 심화
• traffic peak 일 때와 그렇지 않을 경우의 격차가 매년 더 커짐
• 언제 traffic peak가 생길지 예측이 어려워짐
• “서버를 필요할 때만 끌어다 쓰고 필요없을 때 반환할 수 없을까?

즉, 서버를 여러 기업에서 공유할 수 있을까?”
20
이미지 출처
https://www.sugerendo.com/en/empresa/
nuestras-tecnologias/amazon-web-services/
AWS 소개
• “공유 오피스처럼 IDC(서버)도 나눠서 쓸 수 있을까?”
21
AWS 소개
• 2004년 최초의 AWS 서비스인 SQS를 출시

-> 물리 서버를 가상화(software)하여 공유
22
이미지 출처
https://www.engadget.com/2015/08/20/
google-reveals-server-info/
AWS 소개
• AWS는 여러개의 서비스들의 집합
23
Computing
Storage
Database
Networking
이미지 출처
https://aws.amazon.com/architecture/icons/
AWS 소개
• AWS는 여러개의 서비스들의 집합
24
LEGO 블럭처럼 여러 개의 AWS components를 조합해서 나만의 Infra 구축
AWS 소개
• AWS는 여러개의 서비스들의 집합
25
LEGO 블럭처럼 여러 개의 AWS components를 조합해서 나만의 Infra 구축
AWS 소개
• 매년 12월에 re:Invent 라는 행사에서 10~20개의 신규 서비스가 출시됨
26
AWS 소개
• 2004년 SQS 출시 이후

2019년 2월 현재
27
약 174개 서비스의 집합
AWS 소개
• AWS 의 강점
• 가장 오랫동안 운영된 서비스 (Since 2004)
• 가장 많은 use case과 troubleshooting이 축적

-> 개발자 입장에서 공식 문서와

인터넷 검색만으로도 ‘비교적 쉽게’ 사용 가능
28
Gartner’s 2018 Magic Quadrant
for infrastructure as a Service.
거의 de facto 급
AWS 소개
• AWS 의 강점
• 활발한 국내 커뮤니티
29
https://www.meetup.com/
awskrug/events/calendar/
https://www.facebook.com/groups/awskrug/
AWS 소개
• AWS 의 단점: 비싸다 ?!?!
30
AWS 비용 구조
31
AWS 비용 구조
• AWS 과금 기본 규칙

‘pay-as-you-go’

쓴 만큼 과금되며 언제든지 중단할 수 있는 utility computing 의 과금 방식
• 실생활에서 Utility services 예시
32
이미지 출처
https://www.inmyarea.com/utilities
AWS 비용 구조
• 예상 월 과금 계산기
• AWS 서비스마다 다양한 과금 metric
33
https://calculator.s3.amazonaws.com/index.html
AWS 비용 구조
• AWS 서비스마다 다양한 과금 metric
34
computing 시간 storage 공간
network

traffic
AWS 비용 구조
• 실제 인공지능 QA 자동화 서비스 'HBSmith' 요금
35
실제 고객사 서비스의 사용자처럼 동작하는

‘hbsmith’ bot을 작성해서 QA 업무를 대체함
AWS 비용 구조
• 실제 인공지능 QA 자동화 서비스 'HBSmith' 요금
36
AWS의 다양한 서비스들을 사용 중
AWS 비용 구조
• 실제 HBSmith EC2 요금(2018년 12월, 2019년 1월)
37
AWS 비용 구조
• 너무 다양한 과금 metric 이 존재하지만, ‘정액제’ 방식은 지원하지 않음
38
잘못 관리하면, 너무 많은 비용이 청구될 위험이 존재
이미지 출처
https://crowdpic.net
비용 절감
39
비용 절감
• AWS 같은 pay-as-you-go 과금 방식의 서비스는

잘못 관리하면, 너무 많은 비용이 청구될 위험이 존재
• 결국 ‘실시간 요금’ dashboard인 ‘AWS Cost Explorer’를 매일 확인하는게 중요
40
비용 절감
41
https://console.aws.amazon.com/cost-reports/home?#/custom?
groupBy=Service&hasBlended=false&hasAmortized=false&excludeDiscounts=true&excludeTaggedResources=false&timeRangeOption=Cust
om&granularity=Monthly&reportName=&reportType=CostUsage&isTemplate=true&filter=%5B%7B%22dimension%22:%22Service%22,
%22values%22:%5B%22APN%20Annual%20Program%20Fee%22%5D,%22include%22:false,%22children%22:null%7D,
%7B%22dimension%22:%22RecordType%22,%22values%22:%5B%22Refund%22,%22Credit%22%5D,%22include%22:false,
%22children%22:null%7D%5D&forecastTimeRangeOption=None&usageAs=usageQuantity&chartStyle=Stack&startDate=2018-01-01&en
dDate=2099-01-01
“매일 AWS Cost Explorer 꼭 보세요. 두 번 보세요.”
비용 절감
• AWS 같은 pay-as-you-go 과금 방식의 서비스의 계정 1개를

여러 사람이 공유하면, 실수 또는 도덕적 해이(moral hazard)로

과도한 비용이 발생될 수 있음
42
3단계 deployment phase
‘AWS Consolidated Billing’으로 계정 분리 및 통합 과금 설정
비용 절감
43
https://console.aws.amazon.com/cost-reports/home?#/custom?
groupBy=LinkedAccount&hasBlended=false&hasAmortized=false&excludeDiscounts=true&excludeTaggedResources=false&timeRangeOpti
on=Custom&granularity=Monthly&reportName=&reportType=CostUsage&isTemplate=true&filter=%5B%7B%22dimension%22:%22Servic
e%22,%22values%22:%5B%22APN%20Annual%20Program%20Fee%22%5D,%22include%22:false,%22children%22:null%7D,
%7B%22dimension%22:%22RecordType%22,%22values%22:%5B%22Refund%22,%22Credit%22%5D,%22include%22:false,
%22children%22:null%7D%5D&forecastTimeRangeOption=None&usageAs=usageQuantity&chartStyle=Stack&startDate=2018-01-01&en
dDate=2099-01-01
“(다시 한번) 매일 AWS Cost Explorer 꼭 보세요. 두 번 보세요.”
비용 절감
• AWS을 쓰는게 과연 비용적으로 유리한가?
• 너무 복잡하고, 다양한 과금 metric
• 실수 또는 도덕적 해이(moral hazard)로 발생하는 문제를 예방하기 위해서

실시간 요금을 주기적으로 확인해야하는 부담
44
비용 절감
• AWS 비용 관련 논쟁

-> 비단 AWS 뿐만 아니라 여러 다른 public cloud 인프라도 동일한 이슈
45
비용 절감
• 서버 인프라 비용에서 관리 인력의 인건비를 포함할 경우

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 서버 인프라 관리도 가능
비용 절감
• IaC (infrastructure as code)

-> AWS 관련된 모든 작업 과정을 code화 할 수 있음.

-> 즉, 인프라 관련 작업을 100% full 자동화가 가능.

-> 최소한 인프라 관리 인력(1~2명)만 필요.
47
/addnull/
20181108-hbsmith-aws-iac
비용 절감
• IaC 예시: new version release 자동화

-> 매일 “blue-green deployment”로 교체 (daily continuous deployment)
48
사람의 개입없이 매일
자동으로 무중단 패치
비용 절감
• EC2 서버 1EA 생성도 모두 자동화 (Python script)
49
비용 절감
• ‘johanna’는 AWS CLI 기반으로 AWS infra 전체 또는 일부를 provisioning, de-
provisioning 할 수 있는 CLI
• 100% Python3 script 로 작성되어 있으며 OSS 로 공개 개발 (since 2016)
50
https://github.com/HardBoiledSmith/johanna/
비용 절감
• AWS 가격 인하 공지 blog 와 비용 최적화 guide
51
https://aws.amazon.com/blogs/
aws/category/price-reduction/
https://aws.amazon.com/
pricing/cost-optimization/
비용 절감
• ‘Reserved Instances’라는 선 결제 할인 plan을 활용
52
비용 절감
• ‘Reserved Instances’의 사용률 역시 주기적으로 확인해야함
53
비용 절감
• 개발 환경은 dummy EC2 를 사용
54
https://app.vagrantup.com/
hbsmith/boxes/awslinux
비용 절감
• 개발 환경은 dummy EC2 를 사용
55
비용 절감
• EC2 의 일부 기능(예: 가끔 실행되는 batch job)은 Lambda 로 대체
56
EC2 Elastic
Beanstalk
Lambda
비용 절감
• EC2 의 일부 기능(예: 가끔 실행되는 batch job)은 Lambda 로 대체
57
Global 원격 QA를 지원하는
HBSmith 서비스
2018년 11월에 Lambda 사용을 확장
Wrap-Up
58
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
감사합니다
jongwon.han@hbsmith.io
010-9166-6855
60

More Related Content

20190214 Startup의 한정된 자원(인력, 자금)에서 AWS를 효율적으로 사용하는 방법