1. AWS를 활용한 클라우드
기반 웹 개발
1주차
고 강 태
010-8269-3535
james@thinkbee.kr
https://www.linkedin.com/in/thinkbeekr/
http://www.facebook.com/gangtai.goh
2. 강의 전에...
이 강의는 총 4주차로 진행된다.
강의 대상은
•Cloud Computing 이용을 시작하는 분
•AWS 로 클라우드 기반 서비스 시작하려는 분
•물리 서버 운영을 클라우드 기반으로 이전 계획하는 분
•(조건) Linux 기반 클라이언트/서버 활용에 어려움 없는 분
3. 현 IT분야 전문 강의:
- Linux System programming
- IoT Raspberry Pi / Opensource ARM Programming / Arduio
- Python IoT / Python Datascience
- Android App / 스마트TV / Node.js 전문 강사
미주제강 전산팀장
- ERP / Groupware
LG전자 연구소
- Web application / Network engineer / Unix system Admin.
주요 개발 경력
- Android: 신한카드 / KT향 4종 앱 / 메트로놈 / 트윗메모
- 웹 메일 서버, 그룹웨어, 도서/자산/바코드 관리, 채팅, 8좌화상회의용 서버
강사 약력
4. 모바일 하이브리드 & 웹앱 프로그래밍
- 2014/9, 디지털북스, http://goo.gl/9C94gT
Android 기반 태블릿 호환 개발
- 2012, 한빛미디어 eBook, http://goo.gl/NUZEk
마이크로소프트웨어
- 마이크로소프트웨어 Google TV 플랫폼(2012/6)
- 마이크로소프트웨어 LG전자 스마트TV 프로그래밍
- ICS vs. iOS5
삼성전자
- 삼성전자 안드로이드 기반 S Pen SDK 응용과정 교재
- 안드로이드 개발자를 위한 bada 포팅 가이드, 2011, 삼성전자
주요 저술
5. 주요 강의
• 삼성SDK 멀티캠퍼스 / 삼성전자 Mobile SDK 과정
• Node.js 기본 / Express 과정
• Android 기본, 심화, 전문 과정
• Smart TV 과정
• 대외 활동
• 산업인력공단 NCS표준 심의위원
• 삼성전자 Android Developer Guide to bada 저술
• 경희대학교 bada 교재 감수
• 구글코리아 2011 개발자랩 튜터 참여
• NIPA 한국공개소프트웨어협회 멘토 참여
• OSS OpenTech Day 다수 강연
6. 주요 클라우드 기반 강의
2013~14
서강대 게임아카데미 스터디,
신한, KT 등 프리랜서
2009
삼성 Ocean Center
- Startup 준비
- 강의 및 다수 Startup 컨설팅
2016~
Open API 강의
- 대구대, 원광대, 기타
- Cloud, ThinkQ, Azure, AWS
2015~
Open source ERP/CRM
cloud / docker
2015~
MQTT, Open API
- Cloud, ThinkQ, Azure, AWS
7. 강의 내용 1주차
•1주차:
•2주차:
•3주차
•4주차
• 실습: AWS 제품과 계정 활성화
• Cloud Computing 이해
• AWS로 빌릴 수 있는 것...
• AWS Region & Edge Location
• AWS 서비스 사용 튜토리얼
• 실습: AWS 10분 자습서
• 1.리눅스 가상머신 시작
• - ssh authorized_key 이용
• 2. 파일 버켓
• 3. Web Application
23. 클라우드 컴퓨팅 기술은...
"인터넷을 통해 물리적 서버와 네트워크와 같은,
IT 리소스와 (데이터 분석과 같은) 애플리케이션을
원할 때 언제든지(On- demand) 사용한 만큼만 요금을 내는 서
비스입니다" http://aws.amazon.com/ko/what-is-cloud-computing/
https://www.slideshare.net/awskorea/aws-cloud-cost-optimzation-57160936
24. 가상화 대상 '자원’
server, storage, network 같은 물리 hardware 장비 뿐만 아니라
platform과 application이라는 software까지 포함
25. 전통적 컴퓨팅의 가상화
프로세서가 메모리를 이용 처리
원격 프로시저 호출
- Local API 호출이 Remote API 호출을 발생시킨다.
프로세서가 외부 장치와 통신
26. 전통적 컴퓨팅의 가상화
1960년대 메인프레임에서 애플리케이션 사이에 자원을 공유
- 1980년대 SNA 기반 아키텍처
https://player.slideplayer.com/29/9445294/#
27. 전통적 컴퓨팅의 가상화
멀티 프로세서 + 멀티 프로세싱
100%100% 100%100%
100%100% 100%100%
100%100% 100%100%
100%100% 100%100%
multi core multi core multi core multi core
multi core multi core multi core multi core
multi core multi core multi core multi core
multi core multi core multi core multi core
28. 전통적 컴퓨팅의 가상화
비어 있는 공간이 많다...
10%100% 10%20%
0%80% 50%45%
10%10% 15%100%
80%0% 5%0%
multi core multi core multi core multi core
multi core multi core multi core multi core
multi core multi core multi core multi core
multi core multi core multi core multi core
29. 전통적 컴퓨팅의 가상화
유휴 서버의 서비스 앱을 집적해 서비스
https://slideplayer.com/slide/9445294/
32. Host 기반의 Virtual Machine에서 네트워크 트래픽을 스위칭
컴퓨팅의 가상화
http://home.sogang.ac.kr/sites/gsinfotech/study/jgs160724/
33. 전통적 컴퓨팅의 가상화
주요 가상화 기업 및 제품
•IBM System Z/VM, System p/Hypervisor
•VMWare : VMware Server, VMware ESXi
•Microsoft: MS Hyper-V server
•Xen: Open source Hypervisor
Hypervisor 란
"물리적 서버 위에 존재하는 가상화 레이어, 게스트 OS 구동을 위
한 HW환경을 가상으로 제공해서, 프로세서, 메모리 등 컴퓨터
자원에 각 게스트 접근을 통제"
IBM 클라우드 컴퓨팅 기술 및 솔루션 소개 ppt
34. 전통적 컴퓨팅의 가상화
Hypervisor는 크게 두가지 방식:
Bare Metal Hypervisor
O/S
App
Hypervisor
SMP Server
O/S
App
Hosted Hypervisor
O/S
App
SMP Server
Hypervisor
Host O/S
O/S
App
O/S가 Program을 제어하듯이
hypervisor가 해당 H/W에서 직접 실행
되며 Guest O/S는 H/W 위에서 2번째
수준으로 실행됩니다.
Hypervisor는 일반 Program과 같이
O/S 안에서 실행되며 Guest O/S는
H/W에서 3번째 수준으로 실행툅니다.
VMWare V13
Virtual Iron
Microsoft Hyper-V
Microsoft Virtual Server
VMware server
IBM 클라우드 컴퓨팅 기술 및 솔루션 소개 ppt
35. 전통적 컴퓨팅의 가상화
Xen에서 full or Para-Virtualization 지원
GuestOS의 코드수정 없이 기존의 바이너리를 그대로
수행할 수 있다.
VMM은 실제 I/O 장치를 에뮬레이션 하고, GuestOS
의 요청을 해석하여 하드웨어에 전송한다.
구현에 따라 성능저하가 발생할 수 있다
Hypercall이라고 부르는 인터페이스를 통하여
GuestOS는 Hypervisor에 요청 한다.
코드의 해석작업이 생략되기 때문에 성능이 뛰어나다.
Hypercall 호출을 위하여 GuestOS 커널의 수정이 필
요하다.
IBM 클라우드 컴퓨팅 기술 및 솔루션 소개 ppt
Para Virtualization
Full Virtualization
Hypercall Hypercall
36. Billing 가상화 컴퓨터란!
유틸리티 컴퓨팅(utility computing) 에서 컴퓨터 자원을 패키지
화 해서 연산, 저장 등과 서비스를 패키지화 하는 개념
On Demand Computing
PaaS, Iaas, SaaS
Cloud Computing
http://www.igloosec.co.kr/ 블로그
37. 일반적 클라우드 모델
•SaaS : 소프트웨어/어플리케이션을 제공하는 목적으로 만들어진 모델, 표준
화된 어플리케이션 프로세스 제공 (웹메일 서비스, iCloud, Dropbox,
Google Docs, One note 등)
•PaaS : 개발자가 자신의 어플리케이션을 개발, 테스트, 실행 할 수 있는 컴퓨
팅 플랫폼을 제공 제공하는 서비스 (Linux, Apache, PHP, MySQL, MS
Azure, Google Apps 등)
•IaaS : 서버, 스토리지, 네트워크 등 인프라 자원을 사용량 기반으로 제공, 기
본 스토리지와 컴퓨팅 능력을 제공(CPU, Disk 등)(Amazon EC2, S3 등)
47. 피자를 먹는 네 가지 방법
https://medium.com/@pkerrison/pizza-as-a-service-2-0-5085cd4c365e
음식점 피자: 돈만 있으면 OK!
배달 피자: 식탁과 돈 필요
냉동 피자: 전자렌지, 식탁, 돈 필요
홈피자: 집에서 AtoZ 모두 다 필요
48. 피자를 먹는 네 가지 방법
https://medium.com/@pkerrison/pizza-as-a-service-2-0-5085cd4c365e
음식점 피자: Software 통채로 대여
배달 피자: Platform까지대여
냉동 피자: Infrastructure만 대여
홈피자: Cloud 안 씁니다
49. 피자를 먹는 네 가지 방법
http://azuredummies.com/2016/01/05/azure-sql-services-paas-concept-overview/
음식점 피자: Software 통채로 대여
배달 피자: Platform까지대여
냉동 피자: Infrastructure만 대여
홈피자: Cloud 안 씁니다
50. 피자를 먹는 네 가지 방법
AWS 는 - Infrastructor, Platform, Software 제공
http://azuredummies.com/2016/01/05/azure-sql-services-paas-concept-overview/
51. 2004년 Amazon 의 고민
•1년 중에 traffic peak 일 때(예: Christmas season)는 수 많은
서버가 필요.
•하지만 이런 기간은 1년 중에 매우 짧음 (2~3주)
•대부분의 기간은 traffic peak 대비 적은 수의 서버로도 충분함
•이는 대부분의 시간 동안 많은 서버들의 사용률이 매우 낮은 문
제 발생
52. 2004년 Amazon 의 고민
•2004년 아직 ‘Cloud’라는 용어가 흔히 쓰이지 않던 시절
•‘Amazon Web Service’라는 이름으로 SQS 발표
• ‘Amazon Web Service’는 130개가 넘는 service의 집합
65. AWS Edge Location
AWS Edge Location: CDN
https://aws.amazon.com/ko/cloudfront/features/
https://aws.amazon.com/ko/about-aws/global-infrastructure/regions_az/
아시아 태평양(서울) 리전
EC2 가용 영역: 2
2016년에 시작
아시아 태평양(홍콩) 리전
EC2 가용 영역: 3
2019년 출시
아시아 태평양(시드니) 리전
EC2 가용 영역: 3
2012년에 시작
아시아 태평양(도쿄) 리전
EC2 가용 영역: 4*
2011년에 시작
아시아 태평양(싱가포르) 리전
EC2 가용 영역: 3
2010년에 시작
67. Security
Amazon CloudFront, AWS Shield, AWS Web Application
Firewall(WAF), Amazon Route 53은 네트워크 및 애플리케이션 계
층 DDoS 공격을 비롯한 여러 유형의 공격에 대해 유연한 계층형 보안
방어를 구축하고 있다.
https://d0.awsstatic.com/whitepapers/Security/DDoS_White_Paper.pdf
68. Security
네트워크 계층별 공격 유형
https://d0.awsstatic.com/whitepapers/Security/DDoS_White_Paper.pdf
UDP Reflection AttackDDOSAttack
SYN Flood Attacks
Infrastructure Layer Attacks
Application Layer Attacks
HTTP flood attack, cache-busting attacks, and WordPress XML-RPC floods.
69. Security: Protects
네트워크 계층별 대응 사례
https://d0.awsstatic.com/whitepapers/Security/DDoS_White_Paper.pdf
Protecting API Endpoints (BP4)
Detect and Filter Malicious Web Requests (BP1, BP2)
Scale to Absorb (BP6)
Security Groups and Network Access Control Lists (NACLs) (BP5)
Protecting Your Origin (BP1, BP5)
Deliver at Scale Using AWS Edge Locations (BP1, BP3)
70. Security: Protects
Edge & Regions 에서의 공격 대응
https://d0.awsstatic.com/whitepapers/Security/DDoS_White_Paper.pdf
71. 실습: 10분 자습
1. Linux 가상머신 시작
2. 파일 버켓 사용
https://aws.amazon.com/ko/getting-started/tutorials/
72. AWS 서비스 사용 튜토리얼
https://aws.amazon.com/ko/getting-started/tutorials/
73. AWS 튜토리얼 시작!
AWS에서 제일 핵심인 EC2, S3, RDS 를 실습해 보자.
https://aws.amazon.com/ko/getting-started/tutorials/
74. AWS 서비스 포트폴리오
필요한 만큼 원하는 서비스를 사용한다
LEGO 블럭처럼 서비스를 조합해 나만의 인프라를 구축한다.
https://www.slideshare.net/awskorea/aws-9-aws-80631736
100. EC2
Amazon Elastic Compute Cloud(EC2)
https://aws.amazon.com/ko/ec2/?nc2=h_m1
Virtual Machine
재구성이 가능한 컴퓨팅 리소스
쉽게 확장/축소 되는 컴퓨팅 용량
서비스 대상에 따른 다양한 인스턴스
사용한 만큼만 과금(pay-as-you-go)
EC2
113. 4.인스턴스에 연결
인스턴스를 시작한 후에는 SSH를 사용해 연결한다.
•Windows 사용자:
•Windows에서 Git Bash 설치(SSH 포함)
•https://git-scm.com/download/win
•Mac/Linux 사용자:
•Mac / Linux는 터미널 창 사용
115. Windows에 Git Bash 설치
다운로드 설치 프로그램을 실행하고 기본 설정을 선택하면, Git
Bash를 Git의 일부로 설치한다.
116. Windows에 Git Bash 설치
다운로드 설치 프로그램을 실행하고 기본 설정을 선택하면, Git
Bash를 Git의 일부로 설치한다.
117. Windows에 Git Bash 설치
다운로드 설치 프로그램을 실행하고 기본 설정을 선택하면, Git
Bash를 Git의 일부로 설치한다.
데스크톱 아이콘, 혹은 마우스 오른
쪽 버튼으로 클릭하고
Git Bash Here로 실행
118. 4.인스턴스에 연결
클라이언트에서 SSH를 사용해 EC2 인스턴스에 연결한다.
Linux 인스턴스 유형의 시스템 사용자 계정
- Amazon Linux 2, Amazon Linux AMI: ec2-user
- CentOS: centos
- Debian: admin 또는 root
- Fedora: ec2-user 또는 fedora
- RHEL: ec2-user 또는 root
- SUSE: ec2-user 또는 root
- Ubuntu: ubuntu
ssh -i {path of.pem file} ec2-user@{instance IP address}
119. 4.인스턴스에 연결
절대 경로
상대 경로
Authentication 메시지
인스턴스의 Public IP
ssh -i 'c:Usersadamglic.sshMyKeyPair.pem' ubuntu@52.27.212.125
ssh -i '.sshMyKeyPair.pem' ubuntu@52.27.212.125
인스턴스 OS 기본 계정
다운로드한 MyKeyPair.pem
161. 참조
a. 아마존 웹서비스와 함께 하는 클라우드 비용 최적화 전략, slideshare, 윤석찬
https://www.slideshare.net/awskorea/aws-9-aws-80631736
b. Virtualization(https://slideplayer.com/slide/9445294/), Danny Silver
c. AWS Solutions, Case study(https://aws.amazon.com/ko/solution)
d. 자습서: https://aws.amazon.com/ko/getting-started/tutorials/