amazon ec2 제대로 사용하기(김상필) - aws 웨비나 시리즈 2015

59
기초 웨비나 시리즈 | 세 번째 강연 2015년 7월 7일 수요일 | 오전 10http://aws.amazon.com/ko Amazon EC2 제대로 사용하기

Upload: amazon-web-services-korea

Post on 05-Aug-2015

755 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

기초 웨비나 시리즈 | 세 번째 강연 2015년 7월 7일 수요일 | 오전 10시

http://aws.amazon.com/ko

Amazon EC2 제대로 사용하기

Page 2: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

이번 웨비나 에서 들으실 내용..

본 강연에서는 Amazon  EC2의 기초 개념과 클라우드 컴퓨팅으로 빠르고 가볍게 가상머신을 실행하는 법에 대해 알아봅니다.  

Page 3: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

김상필, Solutions Architect

Page 4: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  

AWS EC2 제대로 사용하기 EC2 기초 인스턴스 수명주기 EC2 인스턴스 종류 AMI(Amazon Machine Image) 사용 EC2 인스턴스 부트스트래핑(Bootstrapping) CloudWatch를 통한 EC2 모니터링 오토스케일링 (Autoscaling)

Page 5: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  

AWS EC2 제대로 사용하기 EC2 기초 인스턴스 수명주기 EC2 인스턴스 종류 AMI(Amazon Machine Image) 사용 EC2 인스턴스 부트스트래핑(Bootstrapping) CloudWatch를 통한 EC2 모니터링 오토스케일링 (Autoscaling)

Page 6: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  클라우드 내 가상 서버들 •  한 개에서 수천개의 인스턴스들로 확장 •  모든 공개 AWS 지역 (region) •  필요에 따라 생성, 시작, 중단, 구성, 모니터링 •  모든 소프트웨어 설치 : 웹, 비지니스 애플리케이션,

클라이언스/서버, 배치 프로세싱 •  사용한 용량에 대해서만 비용 지불 •  다양한 비용 모델 Amazon EC2

EC2 기초

Page 7: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  온디맨드

(On-demand) 예약

(Reserved) 스팟

(Spot) 전용

(Dedicated) 1년 또는 3년 예약

온디맨드보다 최대 75% 저렴한 시간 당 비용

시간 당 컴퓨팅 용량 비용 지불 장기 계약 필요 없음

사용되지 않는 EC2 용량에 대하여 비용 입찰

고객 전용 하드웨어 상의 VPC에 인스턴스 런치

고객은 현재 상황 및 용량 수요 예측에 따라 비용을 최적화하기 위하여 다양한 구매 옵션을 고려할 수 있음

증감하는 부하 확정된 사용률 시간 무관한 부하 매우 민감한 부하

EC2 기초: 비용 모델

Page 8: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  

AWS EC2 제대로 사용하기 EC2 기초 인스턴스 수명주기 EC2 인스턴스 종류 AMI(Amazon Machine Image) 사용 EC2 인스턴스 부트스트래핑(Bootstrapping) CloudWatch를 통한 EC2 모니터링 오토스케일링 (Autoscaling)

Page 9: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  

• 생성(Create) -> 시작(Start) -> 중지(Stop) -> 종료(Terminate)

• 콘솔에서 수동관리 • API(또는 기타 툴)로 자동관리 • 디맨드 기반의 자동화 (수요 곡선)

프로비저닝 및 수명주기

Page 10: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  

AWS EC2 제대로 사용하기 EC2 기초 인스턴스 수명주기 EC2 인스턴스 종류 AMI(Amazon Machine Image) 사용 EC2 인스턴스 부트스트래핑(Bootstrapping) CloudWatch를 통한 EC2 모니터링 오토스케일링 (Autoscaling)

Page 11: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  

인스턴스 종류

HS1

M1

C1

CC2

HI1 CG1 M2

CR1

38개의 “현재 세대” 인스턴스 종류

15개의 “이전 세대” 인스턴스 종류

M4 C3

I2 G2

R3

C4 D2

Page 12: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  

다양한 종류의 인스턴스

M3

범용

M1

컴퓨팅 최적화

C3

C1 CC2

스토리지 최적화

D2 I2

HI1

G2

GPU

CG1

메모리 최적화

R3

M2 CR1

C4

HS1

M4

Page 13: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  

AWS EC2 제대로 사용하기 EC2 기초 인스턴스 수명주기 EC2 인스턴스 종류 AMI(Amazon Machine Image) 사용 EC2 인스턴스 부트스트래핑(Bootstrapping) CloudWatch를 통한 EC2 모니터링 오토스케일링 (Autoscaling)

Page 14: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  

AMI(아마존 머신 이미지)

사용자 머신 이미지

사용자가 EC2 인스턴스로부터 생성한 AMI로 다른 계정에 공개 가능

Amazon 관리

각 지역에서 Amazon에 의해 관리되는 Linux 및 Windows 이미지들

커뮤니티 관리

다른 AWS 사용자 및 마켓플레이스 파트너에 의해 관리되고 유지되는 공개

이미지들

Page 15: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  

AMI(아마존 머신 이미지)

Page 16: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  

AWS EC2 제대로 사용하기 EC2 기초 인스턴스 수명주기 EC2 인스턴스 종류 AMI(Amazon Machine Image) 사용 EC2 인스턴스 부트스트래핑(Bootstrapping) CloudWatch를 통한 EC2 모니터링 오토스케일링 (Autoscaling)

Page 17: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  

부트스트래핑: 메타데이터 및 사용자데이터

• 모든 EC2 인스턴스는 로컬 인스턴스의 메타데이터 및 사용자 데이터 서비스에 접근권한을 가짐

인스턴스 요청

User data

Instance

Meta-data service

Page 18: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  

부트스트래핑: 메타데이터 및 사용자데이터 •  메타데이터(Metadata): 인스턴스에 대한 불변의 데이터 •  인스턴스 내에서 HTTP를 통하여 접근 가능 http://169.254.169.254/latest/meta-data/ •  인스턴스 내에서 동작하는 스크립트는, 해당 인스턴스에 대한 유용한 정보를 제공할 수

있음 : •  Hostname •  AMI ID •  Instance ID •  Public/Private DNS •  Availability Zone

•  호스트명을 조회하기 위한 메타데이터 사용 예 : # curl http://169.254.169.254/latest/meta-data/hostname ip-10-0-1-13.ap-northeast-1.compute.internal

Page 19: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  

부트스트래핑: 메타데이터 및 사용자데이터

• 사용자데이터(User Data): 인스턴스 생성 시 최대 16KB 텍스트 까지 인스턴스에 전달

• 인스턴스 내에서 HTTP를 통하여 접근 가능http://169.254.169.254/latest/user-data/

• 텍스트는 인스턴스 상의 스크립트에 의하여 파싱(Parsing) 되어 머신을 구성하기 위하여 사용 가능

Page 20: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  

AMI 내 커스텀 스크립트 (script_runner.py) 가 사용자데이터를 읽고 파싱하여, 부트 시 EC2 인스턴스를 구성

부트스트래핑: 메타데이터 및 사용자데이터

Page 21: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  • 사용자데이터의 내용이 다음과 같이 시작하면 최초 부트 시 CloudInit 이 이를 실행 :

•  #! (Linux) •  <script> (Windows; 기술적으로 CloudInit이 아닌 EC2Config가 실행)

• CloudInit는 Amazon Linux, Ubuntu 및 RHEL AMI들에 설치 됨 • EC2Config는 Windows Server AMI들에 설치 됨 • CloudInit 및 EC2Config 모두 package repo 또는 source 를 통하여 다른 배포판에 설치될 수 있음

부트스트래핑: 사용자데이터 및 CloudInit

Page 22: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  • 부트 시 Apache 및 MySQL을 설치하고 EIP를 할당하는 사용자 데이터: #!/bin/bash # Install Apache, PHP, and MySQL yum install –y httpd mysql-server # Attach an Elastic IP to this instance ec2-associate-address \ 23.34.45.56 \

-i $(curl http://169.254.169.254/latest/meta-data/instance-id)

부트스트래핑: 사용자데이터 및 CloudInit

Page 23: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  

부트스트래핑: 예제

• 최신 소프트웨어 설치 • S3로부터 데이터 복사 • DNS 등록 • 서비스 기동 • 패키지 업데이트 • 재기동 • 80 포트 오픈 • 로드밸런서에 등록 • 장치 마운트

Page 24: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  

동적으로 구성

•  인스턴스 시작

•  인스턴스 시작 시 액션을 수행하기 위하여 메타데이터 서비스 및 cloud-init 사용

•  Puppet/Chef/Opsworks 와 같은 구성관리도구 사용

vs AMI 생성

•  인스턴스 시작

•  인스턴스 구성

•  인스턴스로부터 AMI 생성

•  AMI로부터 새 인스턴스 시작

부트스트래핑

Page 25: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  

동적으로 구성

•  커스텀 정보의 전달 및 인스턴스 생성 이후 태스크 수행을 위하여 부트스트래핑 사용  

+ AMI 생성

•  인스턴스 시작

•  인스턴스 구성

•  인스턴스로부터 AMI 생성

•  AMI로부터 새 인스턴스 시작

부트스트래핑

스윗 스팟(Sweet  spot)  

Page 26: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  

Linux

JEE

Your Code

Log4J

Spring

Hibernate

Struts

Tomcat

Apache

Java App Stack

사용자 애플리케이션을 구동하기 위해 필요한 전체 구성 요소 예제 3가지 AMI/부트스트래핑 기술의 사용

부트스트래핑: AMIs

Page 27: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  사전 빌드 및 AMI 인벤토리로부터 배포할 수 있도록 전체적으로 동작하는(Fuylly-functional) AMI를 준비

AMIs 인벤토리

Linux

JEE

Your Code

Log4J

Spring

Hibernate

Struts

Tomcat

Apache

Amazon EC2

Linux

JEE

Your Code

Log4J

Spring

Hibernate

Struts

Tomcat

Apache

Linux

JEE

Your Code

Log4J

Spring

Hibernate

Struts

Tomcat

Apache

Linux

JEE

Your Code

Log4J

Spring

Hibernate

Struts

Tomcat

Apache

Linux

JEE

Your Code

Log4J

Spring

Hibernate

Struts

Tomcat

Apache

Java AMI

부트스트래핑: AMI 생성

Page 28: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  기본 OS AMI 최소한의 구성 요소(OS, J2EE 및 Chef/Puppet)를 가진 AMI가 배포됨. 그외 모든 구성은 인스턴스 배포 후 Chef/Puppet 등과 같은 구성관리도구를 통하여 일어남

Inventory of AMIs

Amazon EC2

OS AMI

Fetch on boot

Linux

JEE

Your Code

S3

Hibernate

Tomcat

Log4J

Spring

Struts

Apache

Linux

JEE

Linux

JEE

Chef/Puppet

Chef/Puppet

scripts

부트스트래핑: 동적 구성

Page 29: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  부분적으로 구성된 AMI 부트 시 애플리케이션 코드 및 다른 지원 구성요소를 읽어와서 설치하는 스크립트를 가진 “골든 이미지(Golden image)”가 배포

AMIs 인벤토리

Amazon EC2

Java AMI

Your Code

S3

Log4J

Spring

Struts

Linux

JEE

Hibernate

Tomcat

Apache

Fetch on boot

Fetch on boot

Linux

JEE

Hibernate

Tomcat

Apache

Linux

JEE

Hibernate

Tomcat

Apache

Linux

JEE

Hibernate

Tomcat

Apache

Linux

JEE

Hibernate

Tomcat

Apache

부트스트래핑: Sweet spot

Page 30: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

Why do this?

자동화 손이 덜 갈수록, 실수가 적음

가용성 자가 치유 능력을

통하여 가용성 향상

보안 인스턴스는 기본적으로 보안 구성

유연성 Shell, Powershell, CloudFormation,

Chef, Puppet, OpsWorks 확장성

대규모 배포 관리 및 오토스케일링

효율성 적은 시간과 노력으로 자산을 관리

및 감사

Page 31: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

Do Don’t

Some dos and don’ts

IAM 롤 사용

가능한 키없이 사용

AMI와 동적 부트스트래핑 사이의 밸런스 유지

API 액세스 키를 코드에 삽입 (그리고 GIT에 퍼블리시) 또는 AMIs

생성에 포함 (그리고 공유)

L

Page 32: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  

AWS EC2 제대로 사용하기 EC2 기초 인스턴스 수명주기 EC2 인스턴스 종류 AMI(Amazon Machine Image) 사용 EC2 인스턴스 부트스트래핑(Bootstrapping) CloudWatch를 통한 EC2 모니터링 오토스케일링 (Autoscaling)

Page 33: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  

CloudWatch를 통한 EC2 모니터링

Page 34: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  

AWS EC2 제대로 사용하기 EC2 기초 인스턴스 수명주기 EC2 인스턴스 종류 AMI(Amazon Machine Image) 사용 EC2 인스턴스 부트스트래핑(Bootstrapping) CloudWatch를 통한 EC2 모니터링 오토스케일링 (Autoscaling)

Page 35: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  

Scaling의 종류

• 수직적 Scaling(Scale Up/Down) •  인스턴스 종류를 변경 •  EBS 용량 증가

• 수평적 Scaling(Scale Out/In) •  인스턴스 추가/제거 •  ELB •  오토스케일링(Autoscaling)

r3.8xlarge

c3.2xlarge

m3.medium

m3.medium m3.medium m3.medium

m3.medium m3.medium m3.medium

Page 36: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  

수직적 스케일링

• 다른 EC2 인스턴스 종류 •  High memory instances •  High CPU instances •  High I/O instances •  High storage instances

• 인스턴스의 크기 변경이 용이 • 결국 한계점에 도달 • 인스턴스 Stop/Start가 필요

r3.8xlarge

c3.2xlarge

m3.medium

Page 37: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  

전통적 IT 리소스 사용 패턴

On and Off Fast Growth

Variable peaks Predictable peaks

Page 38: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  

전통적 IT 리소스 사용 패턴

On and Off Fast Growth

Variable peaks Predictable peaks Poor Service

WASTE

Page 39: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  

클라우드 IT 리소스 사용 패턴(Auto Scaling)

On  and  Off   Fast  Growth  

Variable  peaks   Predictable  peaks  

Page 40: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  • 워크로드의 요구에 맞게 컴퓨터 클러스터의 크기를 조정 • 인스턴스의 최대/최소 숫자를 정의 • 언제 스케일 아웃 및 스케일 인이 발생할지 정의 • 스케일링 구동을 위해 Amazon CloudWatch를 통해 메트릭 정보 수집

• 온 디맨드 및 스팟 인스턴스 유형에 대한 오토 스케일링 실행 •  It’s Free!

오토 스케일링 Auto  Scaling  

Page 41: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

인스턴스 추가 시 오토스케일링이 생성하는 것 정의 – ec2-run-instances API 커맨

드와 유사

AMI 인스턴스 종류

보안 그룹 인스턴스 키 쌍

한 번에 오직 하나의 활성화된

배포 구성

오토스케일링은 오래된 배포구성으로 생성된 인스턴스를 먼저

종료

오토스케일링에 의해 관리되는 EC2 인스턴스들의 그

풀 크기를 관리하기 위한 자동 헬스 체크

정책에 따라 자동으로 인스턴스의 숫자를 확장 및 축소 –

Min, Max, Desired

ELB와 자동으로 통합

복수 가용 영역에 자동 분산 및 밸런스

오토스케일링 동작 수행을 위한 파라미터

스케일 아웃/인 및 개수

ChangeInCapacity (+/- #)

ExactCapacity (#) ChangeInPercent (+/- %)

쿨 다운 (초)

CloudWatch 이벤트에 의하여

정책이 트리거됨

배포 구성 오토스케일링 정책 오토스케일링 그룹

Page 42: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  • 수요 기반 스케일링 • 수동 스케일링 • 일정 기반 스케일링 • 항상 현재 인스턴스 수준을 유지

스케일링 계획

Page 43: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  

오토스케일링 수명주기

Page 44: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  

오토스케일링

Page 45: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  

오토스케일링

Page 46: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  

오토스케일링

Page 47: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  

오토스케일링

Page 48: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  

오토스케일링

Page 49: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  

Availability Zone A Availability Zone B

오토스케일링: 오토스케일링 그룹

Page 50: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  

Availability Zone A Availability Zone B

오토스케일링: 오토스케일링 그룹

Page 51: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  

Availability Zone A Availability Zone B

오토스케일링: 오토스케일링 그룹

Page 52: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  

Availability Zone A Availability Zone B

오토스케일링: 오토스케일링 그룹

Page 53: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  

Availability Zone A Availability Zone B

오토스케일링: 오토스케일링 그룹

Page 54: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  Latency

CloudWatch Auto Scaling

ELB

Auto scaling Group

오토스케일링: ELB + CloudWatch

Page 55: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

Stop doing these: 서버를 정적으로 배포/운영

컴퓨팅 파워를 물리적인 자원으로 취급 컴퓨팅 파워를 제한된 약정으로 생각

Page 56: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

and start doing these

보안 기본적으로 안전한 시스

템을 구축

탄력성 스태이트리스 오토스케

일링 애플리케이션

수정보다는 대체 문제가 있는 곳을 수정하는 대신, 손쉽게 재구성 자유로운 계획 수립

전통적인 용량 산정방식 극복

비용 고려 리소스 태깅, 다양한 인

스턴스 유형 활용

Automation 자동화

필요 시 인스턴스를 생성하고 필요없을때

삭제

Page 57: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

v  

다음 단계

• AWS 계정 생성하기 •  http://aws.amazon.com/ko

• 무료로 1년 클라우드 체험해보기 •  http://aws.amazon.com/ko/free

• 직접 사용해보기!

AWS

Page 58: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

온라인 자습 및 실습

다양한 온라인 강의 자료 및 실습을 통해 AWS에 대한 기초적인 사용법 및 활용 방법을 익히

실 수 있습니다.

강의식 교육

AWS 전문 강사가 진행하는 강의를 통해 AWS 클라우드로 고가용성,

비용 효율성을 갖춘 안전한 애플리케이션을 만드는 방법을 알아보세요. 아키텍쳐 설계 및 구현에 대한 다양한 오프라인 강의가 개설되어

있습니다.

인증 시험을 통해 클라우드에 대한 자신의 전문 지식 및 경험을 공인받고 개발 경력을 제시할 수 있습

니다.

AWS 공인 자격증

http://aws.amazon.com/ko/training

다양한 교육 프로그램

Page 59: Amazon EC2 제대로 사용하기(김상필) - AWS 웨비나 시리즈 2015

AWS 기초 웨비나 시리즈에 참여해 주셔서 감사합니다! 이번 웨비나가 여러분의 궁금증 해소에 도움이 되었길 바랍니다. 이후 이어질 설문 조사를 통해 오늘 웨비나에 대한 의견을 알려주세요. [email protected] http://twitter.com/AWSKorea http://facebook.com/AmazonWebServices.ko http://youtube.com/user/AWSKorea http://slideshare.net/AWSKorea