7. Amazon EC2 인스턴스 유형 및 표기법
인스턴스 패밀리
인스턴스 세대
인스턴스 크기
c4.large
애플리케이션 요구에 따라 인스턴스
패밀리, 세대 및 크기 결정:
① 인스턴스 패밀리
• M, T, C, X, R, IO, I, D, G, P, F
② 인스턴스 세대
• 인스턴스 패밀리에 따라 1~5 세대
③ 인스턴스 크기
• 인스턴스 패밀리 및 세대에 따라
다양한 크기 제공
Œ Ž
8. P2M4 D2 X1 G2T2 R4 I3 C4
범용 GPU고밀도 저장소 대용량 메모리
그래픽 집약메모리 집약 높은 I/O
연산 집약버스팅
범용
광범위한 컴퓨팅 스팩트럼 (인스턴스 패밀리)
F1
FPGA
9. Amazon EC2 인스턴스 패밀리별 특징
애플리케이션 요구에 적합한 인스턴스 선택:
범주 특징 적용 사례
범용(M) 컴퓨팅, 메모리 및 네트워크 리소스를 균형 있게 제공
중소형DB, 기타 엔터프
라이즈 애플리케이션
마이크로 (T)
인스턴스 크기별 기본 수준의 CPU 성능 제공, CPU 크레딧에
의한 순간 성능 버스팅 제공
개발환경, 소규모 웹,
마이크로 서비스
컴퓨팅 최적화 (C) 가장 높은 수준의 컴퓨팅 성능을 제공
고성능 프론트 엔드, 웹
서버, 배치, 게임
스토리지 최적화 (I와 D)
(I) SSD 기반의 초고속 랜덤 I/O 성능에 최적화된 인스턴스
스토리지를 제공, (D) HDD 기반 높은 디스크 처리량을 제공
I: NoSQL DB, DW, 하
둡 및 분산파일시스템
D: MPP DW, 맵리듀스
메모리 최적화 (X와 R)
(X) 인-메모리 DB, 메모리 기반의 빅 데이터 처리 엔진 및
HPC 애플리케이션에 적합, (R) 메모리를 집중적으로 사용하
는 애플리케이션에 최적화된 인스턴스
X: SAP HANA, Apache
Spark 및 Presto
R: 고성능 DB, 분산 메
모리 캐시, 게놈 분석
가속화된 컴퓨팅 (G, P 및 F) GPU 및 FPGA 를 이용한 높은 컴퓨팅 애플리케이션 3D 앱 스트리밍, ML
10. T2 인스턴스
§ 최저 비용 EC2 인스턴스 (t2.nano 기준 $0.008/시간)
§ 12달간 t2.micro 750시간/월 프리 티어 제공
§ 버스팅 기능 제공 (CPU 크래딧 고정 할당)
인스턴스 타입 vCPUs 기본성능 플랫폼 메모리(GiB) CPU크레딧/시간 시간당 가격
t2.nano 1 5%
32-bit
또는 64-bit
0.5 3 $0.008
t2.micro 1 10%
32-bit
또는 64-bit
1 6 $0.016
t2.small 1 20%
32-bit
또는 64-bit
2 12 $0.032
t2.medium 2 40%
32-bit
또는 64-bit
4 24 $0.064
t2.large 2 60% 64-bit 8 36 $0.128
t2.xlarge 4 90% 64-bit 16 54 $0.256
t2.2xlarge 8 135% 64-bit 32 81 $0.512
서울리전기준
11. 크레딧의 작동 원리
§ CPU 크레딧 하나는 1분 동안의 전체 CPU
코어 성능 제공
§ 인스턴스는 CPU 크레딧을 일정한 속도로 획득
§ 인스턴스는 활동적일 때 크레딧 소비
§ 크레딧은 24시간 후에 만료
Baseline rate
Credit
balance
Burst
rate
13. Amazon EC2 인스턴스 크기
c4.8xlarge c4.4xlarge x 2
≈
c4.2xlarge x 4
≈
c4.xlarge x 8
≈
14. 본 세션의 주요 주제
1. Amazon EC2 개요
2. Amazon EC2 생성 및 시작하기
3. AMI (Amazon Machine Image) & 부트스트래핑
4. 유지 관리와 모니터링
5. 오토스케일링
6. 비용 모델
15. Amazon EC2 인스턴스 생성 및 이용 개요
…
Amazon S3
Amazon EBS
가상 블록 디스크
AWS 관리 콘솔 AWS 명령줄
인터페이스
AWS API
인터넷
윈도우
가상 머신
리눅스
가상 머신
EC2 가상머신
생성, 삭제 및 관리
SSH 공개키 인증을
통한 원격 접속
AMI 윈도우 이미지
AMI 리눅스 이미지
서울 리전
Œ
Ž
17. Amazon EC2 인스턴스 기본 구성 요소
AMI
Elastic IP
키 페어
스냅샷EBS 볼륨
VPC
인스턴스 스토어
부트스트래핑
EC2 인스턴스
........................................
보안 그룹
18. Amazon EC2 인스턴스 스토리지 장치
호스트 서버
하이퍼바이저
EC2
인스턴스
EC2
인스턴스
EC2
인스턴스
ephemeral0 ephemeral1
ephemeral2 ephemeral3
ephemeral4 ephemeral5
인스턴스 스토어
Amazon
EBS
스냅샷
Amazon
S3
…
볼륨2
영구 블록 스토어
오브젝트 스토리지
버킷 내
오브젝트
인스턴스 스토어
• 임시 블록 스토어
• 호스트 서버에 내장 된 디스크
• 리붓을 제외한 EC2 정지나 종료 시 데이터 손실
• 스냅샷 기능 없음
• 스토리지 사용에 대한 별도의 추가 비용 없음
• 사용 사례: 버퍼, 캐시, 테스트용 초기 데이터 및 분산
파일 시스템 (예: HDFS, MapR-FS)
Amazon EBS
• 네트워크로 연결된 영구 블록 스토어
• EC2가 정지 및 종료되어도 데이터 유지
• 볼륨마다 성능과 용량 정의 가능
• 스냅샷 기능을 통한 백업
• EBS 별도 비용 발생
• 용도에 따라 범용 SSD(GP2), 프로비저닝된 IOPS
(IO1), 처리량 최적화 HDD(ST1) 및 콜드 HDD(SC1)
유형 선택
볼륨1
볼륨3
19. EC2 인스턴스 접속 및 키 페어(Key Pair)
• 리눅스 시작 (첫 부팅)
• 공개키는 메타데이타를 통해서 접근 가능
• 공개키는 ~/.ssh/authorized_keys에 삽입됨
• 사용자는 개인키를 사용하여 ssh 연결
인스턴스
메타데이터
RSA
공개키
인스턴스
20. 키 페어(Key Pair)
• EC2 인스턴스에 접근하기
위한 인증 방식
• ID/비밀번호 인증보다
안전한 인증 방식
• AWS는 공개키만 보관.
인스턴스가 시작할 때
내부로 복사
• 개인키는 사용자가
안전하게 보관 및 관리
서울 리전
Œ
EC2 키페어 생성
개인키 전송Ž 공개키#z 공개키#x
AWS는 공개키만 보관
동일 키페어로
인스턴스 접속
다른 키페어를 가지고 있는
인스턴스 접속 불가능
‘
$ ssh –i ./newprivatekey.pem ec2-user@public-ip
개인키
인스턴스 시작 시,
공개키 복사
사용자
21. 본 세션의 주요 주제
1. Amazon EC2 개요
2. Amazon EC2 생성 및 시작하기
3. AMI (Amazon Machine Image) & 부트스트래핑
4. 유지 관리와 모니터링
5. 오토스케일링
6. 비용 모델
22. AMI (아마존 머신 이미지)
• 인스턴스 시작에 필요한 OS
및 애플리케이션이 구성된
이미지
• 이미지는 S3에 저장
• AWS 이외의 파트너,
커뮤니티 및 사용자도 직접
AMI 생성 가능
• 다른 계정과 공유 가능
• 다른 리전 AMI 복사 지원
Amazon S3
인스턴스
서울 리전
기본 AMI로
인스턴스 생성
Œ
변경 및 구성 후, 사용자
정의 AMI 작성
Ž
사용자 정의 AMI 를 사용하여
필요한 인스턴스들 생성
커스텀 인스턴스
23. 사용자 관리
EC2 인스턴스로부터 사용자가 직접
생성한 AMI
My AMIs
AWS 관리
AWS가 직접 각 리전마다
관리하는 리눅스와 윈도우 이미지
Quick Start
커뮤니티 관리
AWS를 이용하는 다른 사용자들 및
마켓플레이스 파트너에 의해
관리되고 유지되는 공개 이미지
Community AMIs
AWS Marketplace
AMI (아마존 머신 이미지)
Windows
Other Linux
Tomcat SAP
Amazon Linux
Windows Java Runtime
커스텀 이미지
Tomcat
커스텀이미지
윈도우 IIS
커스텀 이미지
LAMP 스택
커스텀 이미지
.NET 스택
커스텀 이미지
Amazon Linux
… …
25. • 인스턴스 생성 시, 사용자가 입력한 스크립트를 실행하는 기능
• 최대 16KB 텍스트 까지 인스턴스에 전달
• 사용자 데이터로 사용할 수 있는 2가지 형식:
• 스크립트
• cloud-init 지시문 (리눅스 인스턴스)
• 인스턴스 내에서 HTTP를 통하여 접근 가능
• $curl http://169.254.169.254/latest/user-data/
• AMI로 어려운 동적인 설정 구현:
• 인스턴스가 생성될 때 스크립트 시작
• chef, puppet 및 외부 프로그램에 매개 변수 값 전달
부트스트래핑: User data
• 리눅스:
• #!로 시작
• 윈도우:
• <script></script> 또는
<powershell></powershell> 태그이용
26. • 사용자데이터의 내용이 다음과 같이 시작하면 최초 부트 시
CloudInit 이 이를 실행 :
• #! (Linux)
• <script> (Windows; 기술적으로 CloudInit이 아닌 EC2Config가
실행)
• CloudInit는 Amazon Linux, Ubuntu 및 RHEL AMI들에 설치
됨
• EC2Config는 Windows Server AMI들에 설치 됨
• CloudInit 및 EC2Config 모두 package repo 또는 source 를
통하여 다른 배포판에 설치될 수 있음
부트스트래핑: User data : CloudInit & EC2Config
27. • 부트 시 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)
부트스트래핑: User data : CloudInit 예
28. • 실행 중인 인스턴스의 운영체제와 애플리케이션 환경을 동적으로 구성하기 위해
활용되는 EC2 인스턴스의 환경 데이터
• 인스턴스 메타데이터로 참조할 수 있는 유용한 정보 예:
• 호스트명, AMI ID, 인스턴스 ID, 공인 및 사설 IP 및 DNS, 인스턴스 서브넷 ID, 가용 영역
• 인스턴스 내에서 HTTP를 통하여 접근 가능
• $ curl http://169.254.169.254/latest/meta-data/
• 호스트명을 조회하기 위한 메타데이터 사용 예 :
• $ curl http://169.254.169.254/latest/meta-data/hostname
ip-172-16-10-181.ap-northeast-2.compute.internal
• 사용 사례: 인스턴스 생성 시, 네트워크 정보를 취득하여 DNS에 동적으로 등록
부트스트래핑: 인스턴스 메타데이터
30. 부트스트래핑: 예제
• 최신 소프트웨어 설치
• S3로부터 데이터 복사
• DNS 등록
• 서비스 기동
• 패키지 업데이트
• 재기동
• 로드밸런서에 등록
• 장치 마운트
31. • 사용자 정의 정보를 전달 받기
위해 부트스트래핑 사용
• 형상관리 시스템(예:SVN, Git
등)으로부터 코드를 가져오는
포스트-론치 작업
vsAMI 생성
• 자신의 기본 이미지를
구축하고 사용자 지정 초기화
스크립트 설정
• 사용자 ‘골든 이미지’ 관리
AMI vs 부트스트래핑
부트스트래핑 동적 구성
32. 기본 OS AMI
최소한의 구성 요소(OS, J2EE 및
Chef/Puppet)를 가진 AMI 배포
그외 구성은 부팅시 패치, Git으로부터
필요 코드를 다운로드
Chef/Puppet 등과 같은 구성 관리도구
활용
AMI 인벤토리
Amazon EC2
OS AMI
부팅 시, 패치
Linux
JEE
Your Code
S3
Hibernate
Tomcat
Log4J
Spring
Struts
Apache
Linux
JEE
Linux
JEE
Chef/Puppet
Chef/Puppet
스크립트
AMI & 부트스트래핑 동적 구성
33. 왜 이것을 할까?
자동화
손이 덜 갈수록, 실수가 적음
가용성
자가 치유 능력을
통하여 가용성 향상
보안
인스턴스는
기본적으로 보안
구성
유연성
Shell, Powershell,
CloudFormation,
Chef, Puppet,
OpsWorks 확장성
대규모 배포 관리
및 자동 확장
효율성
적은 시간과
노력으로 자산을
관리 및 감사
34. 하세요! 하지 마세요!
IAM 역할 사용
가능한 키없이 사용
AMI와 동적 부트스트래핑
사이의 밸런스 유지
API 액세스 키를 코드에 삽입
후 GIT에 퍼블리시 또는 AMI
생성에 포함 후 공유
L
해야 할 것과 하지 말아야 할 것
35. 본 세션의 주요 주제
1. Amazon EC2 개요
2. Amazon EC2 생성 및 시작하기
3. AMI (Amazon Machine Image) & 부트스트래핑
4. 유지 관리와 모니터링
5. 오토스케일링
6. 비용 모델
36. Amazon EC2 Systems Manager
Amazon EC2 또는 온-프레미스
Windows 및 Linux 워크로드에서
대규모 시스템 자동 구성 및
지속적인 관리 가능
37. Amazon EC2 Systems Manager 요구 사항
Windows 서버
• 지원되는 Windows 서버 2003-2016 및
R2 버전
리눅스 시스템 (64&32비트)
• Amazon Linux 2014.09, 2014,03 이상
• Ubuntu Server 14.04 LTS 또는 12.04 LTS
• Red Hat Enterprise Linux 6.5 이상
• CentOS 6.3 이상
운영체제
• Systems Manager 요청 처리
• SSM 에이전트를 EC2 인스턴스, 온-프레미스 서
버, 다른 클라우드 공급자의 호스트 VM에 설치
• AWS에서 제공하는 Windows 서버 인스턴스는
기본 설치 됨
SSM 에이전트 (EC2Config 서비스)
• AmazonEC2RoleforSSM (instance
trust policy): Run Command API
• AmazonSSMFullAccess (user trust
policy): 관리자 및 파워 유저
• AmazonSSMReadOnlyAccess (user
trust policy): 읽기 전용 일반 유저
IAM 역할
인터넷 연결
• EC2에서 아웃바운드 인터넷 허용
필요
38. Amazon EC2 Systems Manager 기능
Run Command 유지 관리 기간
인벤토리
스테이트 매니저 파라미터 스토어
패치 매니저
자동화
배포, 구성 및
원격관리
추적 및
업데이트
공유 기능
39. Run Command
• 예: 셸 및 PowerShell 스크립트 실행
• AWS 및 광범위한 커뮤니티 통해 작성된 커맨드 문서 활용 손쉬운 CLI
• IAM 통합 (SSM Policy) 통해 세분화된 권한 적용
• SSH 또는 RDP의 필요성을 제거하여 보안 상태를 향상
• Run command 통해 수행되는 모든 작업 AWS CloudTrail에 기록하여
변경 감사
일반적인 관리 작업을 원격에서 대규모로 수행
40. Run Command
…
AWS 관리 콘솔 명령어 및 스크립트 AWS API
인터넷
통합 제어 관리
온-프레미스 데이터 센터
…
서울 리전
다른 클라우드
…
43. State Manager
• 예: 방화벽 구성 및 맬 웨어 방지 정의 업데이트
• 간단한 JSON 기반 문서(Document)를 사용하여 새 정책 정의
• 구성이 적용되고 유지되는 방법과 시기를 제어
• 전사적으로 구성 정책을 준수하도록 지원
운영체제 및 애플리케이션의 일관된 구성 정의 및 유지
관리
44. Automation Service
• 아마존 머신 이미지(AMI) 구축 및 유지 관리 최적화
• 특정 AMI로 인스턴스 시작 à 운영체제 패치 및 드라이브
업데이트와 같은 자동화 단계 수행 à 새로운 AMI 생성
• 자동화 단계들을 JSON 기반 문서(Document)내에 표현하여 자신의
워크로드 구성
• Run Command, Lambda 함수 지원
• ‘Golden’ 엔터프라이즈 이미지 관리의 오버헤드 제거
간소화한 워크플로를 사용하여 일반적인 작업 자동화
45. Parameter Store
• Run Command, 스테이트 매니저 및 자동화 서비스를 통해
참조되는 파라미터
• 세밀한 액세스 제어로 원치 않는 데이터 접근 제한
• 자신의 KMS 키를 사용하여 중요하고 민감한 정보 암호화
• 주요한 기업 자산에 대해 지속적으로 유지 보수해야 하는 과제 제거
암호, 라이선스 키 및 커넥션 문자열과 같은 주요 보안
정보의 중앙 집중식 관리
46. Maintenance Window
• 업무 중단이 필요한 반복되는 작업을 허용하는 유지 관리 기간 정의
• Run Command 및 패치 매니저와 통합 기능 제공
• 잘 정의된 시간대에 자동으로 작업을 수행하여 워크로드의
가용성과 안정성 향상
다운타임을 최소화하기 위해 잘 정의된 유지 관리 기간에
업무 중단이 필요한 작업들 예약
47. Patch Manager
• 패치 기준선(Baseline)으로 사용자 정의 패치 정책을 표현(예: 첫날에
중요 패치 적용 그러나 중요하지 않은 패치는 7일 대기)
• 예약된 유지 관리 기간에 패치 수행
• 내장된 패치 컴플라이언스 보고 기능
• 중요 업데이트 및 제로-데이 취약점에 대한 수동 개입을 제거하고
배포 시간 단축
사용자 정의 규칙 및 예약된 유지 관리 기간을 사용하여
Windows 운영체제 패치 롤-아웃
49. CloudWatch를 통한 일반적인 모니터링 항목
모니터링 항목 Amazon EC2 지표
모니터링 스크립트/
CloudWatch Logs
CPU CPUUtilization
메모리 사용률, 사용된 메모리 및
가용 메모리
성능카운터를 CloudWatch로, 로
그를 CloudWatch Logs로 전송
네트워크 사용률 NetworkIn
NetowkrOut
디스크 성능 DiskReadOps
DiskWriteOps
Page 파일 사용률(Windows) 성능카운터를 CloudWatch로, 로
그를 CloudWatch Logs로 전송
52. CloudWatch 활용 EC2 자동 복구
- EC2 인스턴스 장애 시 자동 복구 설정
- 복구된 인스턴스는 기존 인스턴스와 동일하며 인스턴스 ID, IP 주소
및 모든 인스턴스 메타데이터 동일함
- C3, C4, M3, M4, R3, T2, X1 인스턴스 타입
- StatusCheckFailed_System metric 활용
53. 본 세션의 주요 주제
1. Amazon EC2 개요
2. Amazon EC2 생성 및 시작하기
3. AMI (Amazon Machine Image) & 부트스트래핑
4. 유지 관리와 모니터링
5. 오토스케일링
6. 비용 모델
54. • 수직적 확장 (Scale Up/Down)
• 인스턴스 종류를 변경
• EBS 용량 증가
• 물리적 한계
• 수평적 확장 (Scale Out/In)
• 인스턴스 추가/제거
• ELB
• 자동 확장(Autoscaling)
확장의 종류
59. • 업무 요구에 맞게 컴퓨터 클러스터의 크기를 자동 조정
• 인스턴스의 최대/최소 숫자를 정의
• 언제 스케일-아웃 및 스케일-인이 발생할지 정의
• 스케일링 구동을 위해 Amazon CloudWatch를 통해 메트릭 정보
수집
• 온-디맨드 및 스팟 인스턴스 유형에 대한 자동확장 실행
• 무료!
오토스케일링
67. 좀 더 세밀한 반응으로 확장할 수 있는
새로운 스탭 정책
aws.amazon.com/blogs/aws/auto-scaling-update-new-scaling-policies-for-more-responsive-scaling
68. 본 세션의 주요 주제
1. Amazon EC2 개요
2. Amazon EC2 생성 및 시작하기
3. AMI (Amazon Machine Image) & 부트스트래핑
4. 유지 관리와 모니터링
5. 오토스케일링
6. 비용 모델
69. 인스턴스 비용 모델 진화
온디맨드
(2006)
예약
(2009)
스팟
(2009)
선결제 없음
(2014)
부분 선결제
(2014)
전체 선결제
(2014)
일정 기반
(2016)
스팟 집합
(2015)
스팟 블록
(2015)
70. 온디맨드
(On-demand)
예약
(Reserved)
스팟
(Spot)
전용
(Dedicated)
1년 또는 3년 예약
온디맨드보다 최대 75% 저렴한
시간 당 비용
시간 당 컴퓨팅 용량 비용
지불 장기 계약 필요 없음
사용되지 않는 EC2 용량에
대하여 비용 입찰
최대 90% 절약
고객 전용 하드웨어 상의
VPC에 인스턴스 런치
고객은 현재 상황 및 용량 수요 예측에 따라 비용을 최적화하기 위하여 다양한 구매 옵션을 고려할 수 있음
증감하는 부하 확정된 사용률 시간 무관한 부하 매우 민감한 부하
• 개발 테스트
• 단기, 스파이키,
예측 불가능
• 꾸준한 상태
• 용량 예약
• 선결제로 비용
절약
• 비용에 민감한
실험적인 구축
• 긴급한 컴퓨팅
요구나 추가적인
용량이 필요한
사용자
• 규정 준수 요구
사항
• 라이선스 (전용
호스팅)
EC2 비용 모델
71. • How do we explain the costs?
• How do we allocate the charges
to the right team?
• How do we save money?
Tagging의 중요성
72. 스팟 인스턴스 개요
• Amazon EC2 컴퓨팅 예비 용량에 입찰
• 온디맨드 요금과 비교하여 할인된
요금으로 사용
• 수요 / 공급에 기반한 스팟 가격
• 최대 입찰 가격(price/hour) 지정
입찰 가격 > 시장 가격 : 인스턴스 시작
입찰 가격 < 시장 가격 : 인스턴스 종료
• 종료 2분전 사전 공지
• 사용 예 :
분석, 배치 프로세싱, 빅데이터(Amazon EMR),
웹 크롤러, 테스트, 이미지&미디어 인코딩,
슈퍼 컴퓨팅 등
73. 스팟 규칙
수요와 공급에 따라 컴퓨팅 가격이 변화하는 시장
입찰 가격보다 더 많이 지불하지 않는다!
온-
디맨드(OD)
가격의 50%
입찰
온-디맨드(OD)가격의
75% 입찰
온-디맨드(OD)가격의
25% 입찰
¢
시장 가격을 지불
87% 할인!
74. Spot Bid Advisor
1) Spot bid advisor를
사용하여 쉽게 입찰 가능
2) 원하는 풀 선택과 입찰을
통해, 스팟 인스턴스를
필요한 만큼 오래 유지
가능
3) 스팟 집합(Spot fleet)와
같은 신규 기능을 이용하면
스팟 관리를 위한 추가
작업을 덜어 줌
¢
76. 스팟 블록
$1
¢
최대 6시간
지속적으로 실행
온-디맨드 가격의
50%까지 절약
추가 파라미터
하나로 쉽게 이용
가능
스팟 시장 가격 변동에 따라서
인스턴스가 강제 종료되니 불편합니다!
그럼, 스팟 인스턴스 가격
정책은 어떻게 되나요?
스팟 유형이 다양한데,
이용하기 불편하지는 않나요?
77. 1. 잘 알려지고 일정한 상태
작업은 예약 인스턴스 사용
2. 여러 개의 확장 그룹 설정
3. 스팟, 온-디맨드 또는 둘
모두를 이용하여 확장
0
2
4
6
8
10
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
/Spot
스팟
온-디맨드
예약 인스턴스
3가지 적절히 조합하여 사용