1. 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분)
5. Hello Cloud!
• ‘Cloud Computing’ 이란 ?!?
• 다양한 정의
• Data 저장과 접근을 인터넷으로 언제 어디서든 접근 가능한 기술
• 바로 사용 가능하고 사용한 만큼 과금되는 전산 기반 시설(infrastructure)들
• 전산 hardware 장비들의 가상화(virtualization) 기술
5
이미지 출처
https://www.tocario.com/
history-of-cloud-computing/
6. Hello Cloud!
• ‘Cloud Computing’ 이란 ?!?
• 정의
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!
• Abstraction level
• 음식점 피자: 돈만 있으면 OK!
• 배달 피자: 식탁과 돈 필요
• 냉동 피자: 전자렌지, 식탁, 돈 필요
• 홈피자: 집에서 AtoZ 모두 다 필요
9
이미지 출처
http://www.hostingadvice.com/
how-to/iaas-vs-paas-vs-saas/
12. Hello Cloud!
• ‘Cloud Computing’ 은
• ‘Cloud 서비스’는
• Cloud 서비스를 쓴다는 것
-> 서비스 제공 업체가 미리 준비해둔 자원의 일부를 빌린다는 것
12
전산 자원들의 공유하는 기술과 도구의 집합
'Cloud Computing'을 별도의 유무료 서비스 형태로 제3자에게 제공
13. Hello Cloud!
• application / platform 대여
복사, 전달 과정을 인터넷을 통해 쉽게 해결
• infrastructure 대여
13
물리 장비에 대한 가상화(virtualization) 기술이 필요
15. 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
19. 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/
28. 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/
32. 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
42. 비용 절감
• AWS 같은 pay-as-you-go 과금 방식의 서비스의 계정 1개를
여러 사람이 공유하면, 실수 또는 도덕적 해이(moral hazard)로
과도한 비용이 발생될 수 있음
42
3단계 deployment phase
‘AWS Consolidated Billing’으로 계정 분리 및 통합 과금 설정
44. 비용 절감
• 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
/addnull/
20181108-hbsmith-aws-iac
48. 비용 절감
• IaC 예시: new version release 자동화
-> 매일 “blue-green deployment”로 교체 (daily continuous deployment)
48
사람의 개입없이 매일
자동으로 무중단 패치
49. 비용 절감
• EC2 서버 1EA 생성도 모두 자동화 (Python script)
49
50. 비용 절감
• ‘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/
59. 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