학습자료 (Udemy)
Stephane Maarek - AWS Certified Solutions Architect Associate
EC2 기초
Amzone EC2
- EC2는 아마존에서 가장 인기 있는 서비스
- EC2 = Elastic Compute Cloud = Infrastructure as a Service
- 하나의 서비스가 아닌 많은 것을 포함한 것
- 가상 머신을 랜트할 수 있음 = EC2 인스턴스
- 데이터를 가상 드라이브나 EBS 볼륨에 저장할 수 잇음
- elastic load balancer(ELB)로 로드를 분산 시킬 수 있음
- auto-scaling group(ASG)를 통해 서비스를 확장할 수 있음
- EC2 사용법을 아는 것은 클라우드 작동 방식을 이해할 때 중요함
- EC2 사이즈 & 옵션
- OS : Linux, Windowm Mac OS
- 컴퓨팅 성능과 코어(CPU 개수) 선택 가능
- 랜덤 액세스 메모르(RAM) 양 선택 가능
- 용량 선택 가능
네트워크를 통해 연결할 스토리지가 필요한지 여부 (EBS/EFS)
하드웨어 (EC2 인스턴스 스토어)
- EC2 인스턴스에 연결할 네트워크 종류 선택 가능 (Netword card, Public IP Address)
- EC2 인스턴스의 방화벽 규칙 선택 (security group)
- 부트스트랩 스크립트 (EC2 User Data)
- 원하는 대로 옵션을 선택이 적용된 EC2를 AWS에서 빌릴 수 있음!!
- EC2 User Data
- 인스턴스를 부트스트래핑 할 수 있음
- bootstrap : 머신이 작동할 때 명령을 시작한느 것
- 스크립트는 처음 시작할 때 한 번만 실행되고 다시 실행되지 않음
- 특정한 목적
: 부팅 작업을 자동화하므로 부트스트래핑이라는 이름을 갖게 됨
: 자동화 해야 되는것 ? update, software 설치, 일반 파일을 인터넷에서 다운로드
- 무엇이든 자동화 시키기 위해 스크립트에 올려 놓아도 되지만, 부팅 시 인스턴스가 할 일이 늘어나는 것은 당연함
- 루트 계정에서 EC2 User Data가 실행됨
: 모든 명령문은 sudo로 실행됨
- EC2 인스턴스 종류(ex)
- t2.micro(AWS free tier로서 한 달에 750시간까지 사용 가능) , t2.xlarge 등
EC2 인스턴스 유형 기본 사항
- AWS 명명 규칙
- ex) m5.2xlarge
- m : 인스턴스 클래스
- 5 : 인스턴스 세대
- 2xlarge : 인스턴스 클래스 크기
크기가 클수록 더 많은 메모리와 CPU를 갖게됨
- 인스턴스 유형
- General Purpose(범용 인스턴스)
- 웹 서버, 코드 저장소 같은 다양한 작업에 적합
- 컴퓨팅, 메모리, 네트워킹 간의 규형도 잘 맞음
- 강의에서 범용 인스턴스이면서 t2.micro를 사용
- Computed Optimized (컴퓨팅 최적화 인스턴스)
- 컴퓨터 집약적인 작업에 최적화된 인스턴스
- 고성능 프로세서는 일부 데이터의 일괄 처리에 사용하거나, 미디어 트랜스코딩 작업 시, 고성능 웹 서버가 필요하거나 고성능 컴퓨팅이라는 HPC 작업을 할 때, 머신러닝, 전용 게임 서버가 있을 경우 사용
- 컴퓨팅 최적화 인스턴스는 'C'로 시작하는 이름 가지고 있음
- Memory Optimized (메모리 최적화 인스턴스)
- 메모리(RAM)에서 대규모 데이터셋을 처리하는 유형의 작업에 빠른 성능을 제공함
- 메모리 최적화 인스턴스는 'R'로 시작하는 이름을 가지고 있음
(단, X1이나 대용량 메모리 Z1도 있음)
- Storage Optimized (스토리지 최적화 인스턴스)
- 로컬 스토리지에서 대규모의 데이터셋에 액세스 할 때 적합한 인스턴스
- 고주파 온라인 트랜잭션 처리(OLTP),관계형과 비관계형 NoSQL, redis, 메모리 데이터베이스의 캐시나 데이터 웨어하우징 애플리케이션, 분산 파일 시스템에 사용됨
- 스토리지 최적화 인스턴스는 'I', 'D', 'H1'으로 시작하는 이름을 가지고 있음
보안 그룹 및 클래식 포트 개요
- 보안 그룹은 AWS 클라우드에서 네트워크 보안을 수행하는데 기본
- 보안 그룹은 EC2 인스턴스 안팎(인바운드/아우터바운드)으로 트래픽이 허용되는 방식을 제어함
- 허용 규칙만 포함되어 있음
- 보안 그룹은 IP 주소나 보안 그룹 기준으로 규칙 설정 가능
(보안그룹은 서로 참조 가능)
- detail
- 보안 그룹은 EC2 인스턴스의 방화벽
- 포트에 대한 액세스를 규제함
- 승인된 IP 범위가 표시됨 (IPv4 & IPv6)
- 인바운드 네트워크를 통제함
(인바운드 : 외부에서 인스턴스로 들어오는 것)
- 아웃바운드 네트워크를 통제함
(아웃바운드 : 인스턴스에서 외부로 나가는 것)
- 알아두면 좋은 점
- 보안 그룹은 여러 인스턴스에 연결할 수 있음 (1:1 관계가 없음)
- 보안 그룹은 특정 지역과 VPC 조합에만 제한됨
(다른 지역으로 전환하는 경우 새 보안 그룹을 생성해야함)
- 보안 그룹은 EC2 외부에 위치한 방화벽
- SSH 액세스를 위해 별도의 보안 그룹을 하나 유지하는 것이 좋음
- 애플리케이션에 접근할 수 없는 경우(= time out), 보안 그룹 문제인 것임
- 하지만, 연결 거부 오류가 발생하면 실제로 연결이 거부되었다는 응답을 받게됨
- 기본적으로 모든 인바운드 트래픽은 처리되고, 모든 아웃바운드 트래픽은 승인됨
- 다른 보안 그룹이 보안 그룹을 참조하는 방법(ppt 다이어그램 참고)
- EC2 인스턴스의 IP에 관계없이 올바른 보안 그룹이 연결되므로 다른 인스턴스와 직접 통신 가능
- 포트 (시험)
- SSH = 22 (Secure Shell)
- 리눅스에서 EC2 인스턴스에 로그인할 수 있음
- FTP = 21 (File Transfer Protocol)
- SFTP = 22 (Secure File Transfer Protocol)
- 파일을 업로드할 예정이므로 안전한 파일 전송 프로토콜로 SSH를 사용
- HTTP = 80
- HTTPS = 443
- RDP = 3389 (Remote Desktop Protocol)
SSH 개요
- 명령줄 인터페이스 도구
- Mac, Linux, Window >= 10에서 사용 가능
(Window < 10 , Window >= 10 - Putty 사용)
- 웹 브라우저로 EC2 인스턴스에 연결
EC2 인스턴스 구매 옵션
- 우리가 원래 사용한 것은
On-Demand Instance : 단기적인 워크로드에 사용하기 좋음 / 비용 예측할 수 있음 / 초 단위로 요금을 지불하면 됨
- 다른 종류의 워크로드
- 예약 인스턴스 사용
- 기간 1년 or 3년
- 장기간의 워크로드를 위한 것
- 오랫동안 DB 실행할 계획일 때 사용하는 것이 좋음
- 유연한 인스턴스 타입
- 절약 플랜
- 1년 or 3년
- 달러 단위로 특정한 사용량을 약정함
- 장기 워크로드를 위한 것
- 스폿 인스턴스
- 짧은 워크로드를 위한 것
- 매우 저렴하지만, 언제라도 인스턴스들이 손실 될 수 있어 신뢰성인 낮음
- 전용 호스트
- 물리적 서버 전체를 예약해서 인스턴스 배치 제어 가능
- 다른 고객이 사용자의 하드웨어를 공유하지 않는다는 의미
- 용량 예약
- 원하는 기간동안 특정한 AZ에 용량 예약 가능
-> 디테일한 설명
- EC2 On Demand(온디맨드)
- 사용자가 사용한대로 지불함 (초단위 / 시간단위)
- 비용이 가장 많이 들지만 바로 지불할 금액이 없고, 장기적인 약정도 필요 없음
- 단기적이고 중단 없는 워크로드를 위한 것
- 애플리케이션의 거동을 예측할 수 없을 때 추천
- EC2 Reserved Instances (예약 인스턴스)
- on-demand에 비해 72% 할인
- 특정한 인스턴스인 인스턴스 타입, 리전,테넌시, OS 예약함
- 예약 기간을 1년 or 3년으로 지정해서 할인을 더 받을 수 있음
- 전부 선결제, 부분 결제, 선결제 없음 중에 선택 가능
(전부 선결제시, 최대 할인 받을 수 있음)
- 범위를 기준으로 특정 리전이나 존으로 할 수 있음
- DB 같이 사용량이 일정한 애플리케이션은 예약 인스턴스를 사용하는게 좋음
- 마켓플레이스에서 살 수 있고, 필요 없어지면 판매 가능
- 특별 유형의 예약 인스턴스
- 전환형 예약 인스턴스
인스턴스 타입, 인스턴스 패밀리, OS, tenacy 변경할 수 있음
유연성이 더 크므로 할인은 약간 적음 (66%까지 할인 가능)
- EC2 Saving Plan (절약 플랜)
- 장기간 사용하면 할인 받을 수 있음
- 70% 할인 받을 수 있음
- 1년 or 3년동안 시간당 10달러로 약정
- 사용량이 한도를 넘어서면 절약 플랜은 온디맨드 가격으로 청구하게됨
- 특정 인스턴스와 패밀리, 리전이 고정됨
ex) M5 in us-east-2
- 사이즈가 유연함
인스턴스 사이즈
ex) m5.xlarge, m5-2xlarge
OS
ex) Linux, Windows 전환 가능
Tenacy
ex) host, dedicatedm default 전환 가능
- EC2 Spot Instances (스폿 인스턴스)
- 할인 폭이 가장 커서 온디맨드에 비해 최대 90%까지 할인
- 하지만, 스폿 인스턴스에 대해 지불하려는 최대 가격을 정의하고 만약 스폿 가격이 그 가격을 넘어서면 인스턴스 손실될 수 있음!!
- AWS에서 가장 비효율적인 인스턴스
- 인스턴스가 고장에 대한 회복력이 있다면 아주 유용
ex) Batch jobs, 데이터 분석, 이미지 처리, 모든 분산형 워크로드, 시작 시간과 종료 시간이 유연한 워크로드 등
- 매우 중요한 작업이나 DB에는 적절하지 않음! (시험)
- EC2 Dedicated Hosts (전용 호스트)
- EC2 인스턴스 용량이 있는 실제 물리적 서버를 받게 됨
- 법 준수 요건에 있는 활용 사례, 소켓, 코어, VM 소프트웨어 등 라이선스 기준으로 청구되는 기존의 서버에 연결된 소프트웨어 라이선스가 있는 경우
- 온디맨드로 초당 비용을 지불하거나 1년 or 3년 동안 예약 가능
- 실제로 물리적 서버를 예약하므로 AWS에서 가장 비싼 옵션
- 활용 사례 : 라이선스 모델과 함께 제공되는 소프트웨어 (BYOL - Bring Your Own License)인 경우 & 규정이나 법규를 반드시 준수해야 하는 회사를 갖고 있는 경우
- EC2 Dedicated Instances
- 사용자의 전용 하드웨어에서 실행되는 인스턴스
- 물리적 서버와 다름
- 같은 계정에서 다른 인스턴스와 함께 하드웨어를 공유할 수 있음
- 인스턴스 배치에 대한 통제권이 없음
(시험)
EC2 Dedicated Hosts vs EC2 Dedicated Instanced
-> '전용 인스턴스'는 자신만의 인스턴스를 자신만의 하드웨어에 갖는 것
-> '전용 호스트'는 물리적 서버 자체에 대한 접근권을 갖고, 낮은 수준의 하드웨어에 대한 가시성을 제공해줌
- EC2 Capacity Reservations
- 원하는 기간 동안 특정한 AZ에서 온디맨드 인스턴스 예약 가능
- 필요할 때만다 해당 용량에 접근 가능
- 기간 약정 없음 (언제라도 용량 예약 및 취소 가능)
- 청구 할인 없고, 단지 용량을 예약하는 것이 유일한 목적
- 만약, 청구 할인을 받으려면 지역별 예약 인스턴스 또는 예약 플랜과 결함해야함
- 인스턴스를 실행하는지와 무관하게 온디맨드 요금 부과됨
(용량을 예약하면 해당 용량에 대한 청구가 되서 지불해야함)
(인스턴스를 실행하기 원하는 것을 확실하게 알고 인스턴스가 제공될 예정이지만, 실행하지 않을 경우에도 요금 부과됨)
- 특정한 AZ에 있어야 하는 단기적이고, 중단 없는 워크로드에 매우 적합
IPv4 과금
- 계정에 생성된 모든 Public IPv4에 대해 사용 여부와 관계없이 과금됨
(2024년 1월부터 시행)
- 시간당 $0.005 요금 부과됨 (1 month : $3.6)
// EC2 인스턴스를 생성하면 IPv4가 자동으로 제공됨
- EC2 service
- AWS 신규 계정에 12개월 Free Tier 제공
- 계정 생성 후 첫 12개월 동안 매달 Public IPv4를 750시간 사용할 수 있음
- 사용량을 초과하면 당연히 비용 청구됨
// 여러 개의 EC2 인스턴스를 사용해도 상관 없지만 모든 인스턴스의 Public IP 사용량을 합쳐서 계산해, 750시간 미만이면 상관 없지만 넘으면 비용 발생
// AZ는 IPv4가 하나씩 생기는데 EC2 서비스가 아니어서 free tier가 없으므로 비용 발생
// RDS DB는 EC2 서비스가 아니므로 DB 를 외부 컴퓨터에서 연결하려면 Public IPv4 주소 생성되어 비용 발생
- EC2 이외의 다른 서비스에서는 free tier가 없어서 비용 부과됨
+)
- 그렇다면 IPv6는?
- 결국 IPv4에 과금을 부여하는 이유는 IPv6로 이전 시켜서 대규모로 운영하기 수월하게 하려는 것
- 하지만 아직 전 세계의 많은 인터넷 서비스 제공업체가 IPv6를 지원하지 않음 (강의에서는 IPv4 사용)
Spot Instance & Spot 집합
- 온디맨드에 비해 최대 90% 할인 받을 수 있음
- 스팟 인스턴스에 대해 지불할 수 있는 최대 스팟 가격 정의(max spot price)
- current spot price < 우리가 지불하고자 하는 최대 가격
-> 해당 인스턴스 유지
- 시간당 스팟을 offer & capcity에 따라 달라지
- current spot price > 우리가 지불하고자 하는 최대 가격
-> 두 가지 옵션
2분의 유예 기간 = 작업을 수행할 수 있는 약간의 시간이 주어짐
1) 인스턴스 중지 (하던 작업 모두 중지)하고, 어느 날 스팟 가격이 최대 가격 아래로 내려가면 다시 인스턴스 시작해서 중단했던 곳부터 재개
2) 인스턴스가 필요 없다면 그냥 종료하기
다시 작업 시작할 때 새로운 인스턴스로 시작 가능