AWS Certified Developer Associate 자격증 준비 - EC2편
AWS Certified Developer Associate 자격증을 준비하면서, 알게 된 내용을 정리했습니다.
© 스테판 마렉 [Udemy강의] https://www.udemy.com/course/aws-certified-developer-associate-dva-c01/?couponCode=OF83024D
Amazon EC2 – Basics
Amazon EC2
• EC2는 AWS의 가장 인기 있는 서비스 중 하나입니다
• EC2 = 탄력적 컴퓨팅 클라우드 = 서비스형 인프라
• 주로 : - 가상 머신 대여 기능으로 구성됩니다(EC2)
• 가상 드라이브에 데이터 저장(EBS)
• 여러 시스템에 부하 분산(ELB)
• 자동 확장 그룹을 사용하여 서비스 확장(ASG)
• EC2를 아는 것은 클라우드 작동 방식을 이해하는 데 필수적인 요소입니다
EC2 sizing & configuration options
• 운영 체제(OS): Linux, Windows 또는 Mac OS - 컴퓨팅 성능 및 코어(CPU) 양
• 랜덤 액세스 메모리(RAM)의 양
• 저장 공간의 양:
• 네트워크 연결(EBS 및 EFS) - 하드웨어(EC2 인스턴스 스토어)
• 네트워크 카드: 카드 속도, 공용 IP 주소
• 방화벽 규칙: 보안 그룹
• 부트스트랩 스크립트(처음 시작할 때 구성): EC2 사용자 데이터
EC2 User Data
• EC2 사용자 데이터 스크립트를 사용하여 인스턴스를 부트스트랩할 수 있습니다.
• 부트스트래핑은 기계가 시작될 때 명령을 실행하는 것을 의미합니다
• 이 스크립트는 인스턴스 처음 시작할 때 한 번만 실행됩니다
• EC2 사용자 데이터는 다음과 같은 부팅 작업을 자동화하는 데 사용됩니다:
- 업데이트 설치
- 소프트웨어 설치
- 인터넷에서 일반 파일 다운로드
- 생각나는 모든 것
- EC2 사용자 데이터 스크립트는 루트 사용자와 함께 실행됩니다
EC2 Instance Types - Overview
최적화된 다양한 유형의 EC2 인스턴스를 사용할 수 있습니다
다양한 사용 사례(https://aws.amazon.com/ec2/instance-types/)
• AWS에는 다음과 같은 명명 규칙이 있습니다:
• 5: generation (AWS improves them over time)
• m: instance class
• 2xlarge: size within the instance class
EC2 Instance Types - General Purpose (범용)
웹 서버 또는 코드 저장소와 같은 다양한 워크로드에 적합
• Balance between:
- Compute
- Memory
- Networking
EC2 Instance Types – Compute Optimized
• 고성능 프로세서가 필요한 컴퓨팅 집약적인 작업에 적합합니다:
- 배치 처리 워크로드
- 미디어 트랜스코딩
- 고성능 웹 서버
- 고성능 컴퓨팅(HPC)
- 과학적 모델링 및 머신 러닝
- 전용 게임 서버
EC2 InstanceTypes – Memory Optimized
• 메모리에서 대규모 데이터 세트를 처리하는 워크로드의 빠른 성능
• 사용 사례:
- 고성능 관계형/비관계형 데이터베이스
- 분산형 웹 스케일 캐시 스토어
- BI(비즈니스 인텔리전스)에 최적화된 인메모리 데이터베이스
- 빅 비정형 데이터의 실시간 처리를 수행하는 애플리케이션
EC2 InstanceTypes – Storage Optimized
• 로컬 스토리지의 대규모 데이터 세트에 대한 높은 순차적 읽기 및 쓰기 액세스가 필요한 스토리지 집약적 작업에 적합합니다
• 사용 사례:
- 고주파 온라인 거래 처리(OLTP) 시스템
- 관계형 및 NoSQL 데이터베이스
- 메모리 내 데이터베이스용 캐시(예: Redis)
- 데이터 웨어하우스 애플리케이션
- 분산 파일 시스템
Introduction to Security Groups
보안 그룹은 AWS 네트워크 보안의 기본입니다
• EC2 인스턴스에 트래픽이 들어오고 나가는 방식을 제어합니다. 인바운드 트래픽
• 보안 그룹에는 규칙만 포함되어 있습니다
• 보안 그룹 규칙은 IP 또는 보안 그룹별로 참조할 수 있습니다
Security Groups Deeper Dive
• 보안 그룹이 EC2 인스턴스의 '방화벽' 역할을 하고 있습니다
• 규제합니다:
- 포트 액세스
- 공인 IP 범위 - IPv4 및 IPv6
- 인바운드 네트워크 제어(다른 네트워크에서 인스턴스로)
- 아웃바운드 네트워크 제어(인스턴스에서 다른 인스턴스로)
Security Groups Good to know
• 여러 인스턴스에 연결할 수 있습니다
• 지역/VPC 조합으로 잠금
• EC2가 "외부"에 존재하는지 - 트래픽이 차단되면 EC2 인스턴스에 표시되지 않습니다
• SSH 액세스를 위해 하나의 개별 보안 그룹을 유지 관리하는 것이 좋습니다
• 애플리케이션에 액세스할 수 없는 경우(타임아웃) 보안 그룹 문제입니다
• 응용 프로그램에 "연결 거부" 오류가 발생하면 응용 프로그램 오류이거나 실행되지 않습니다
• 모든 인바운드 트래픽은 기본적으로 차단됩니다
• 모든 아웃바운드 트래픽은 기본적으로 승인됩니다
Classic Ports to know
• 22 = SSH(보안 쉘) - Linux 인스턴스에 로그인합니다
• 21 = FTP(파일 전송 프로토콜) - 파일 공유로 파일 업로드
• 22 = SFTP(보안 파일 전송 프로토콜) - SSH를 사용하여 파일 업로드
• 80 = HTTP - 보안되지 않은 웹사이트 액세스
• 443 = HTTPS - 보안 웹사이트 액세스
• 3389 = RDP(원격 데스크톱 프로토콜) - Windows 인스턴스에 로그인합니다
EC2 Instances Purchasing Options
• On-Demand Instances - 워크로드, 예측 가능한 가격, 초당 급여
• 예약(1년 및 3년)
• 예약된 인스턴스 - 긴 워크로드
• 전환 예약 인스턴스 - 유연한 인스턴스가 포함된 긴 워크로드
• 절약 계획(1년 및 3년) - 사용량에 대한 헌신, 긴 워크로드 - 스팟 인스턴스 - 짧은 워크로드, 저렴하고 인스턴스가 손실될 수 있음(신뢰성 저하)
• 전용 호스트 - 전체 물리적 서버 예약, 인스턴스 배치 제어
• 전용 인스턴스 - 다른 고객은 하드웨어를 공유하지 않습니다
• 용량 예약 - 특정 AZ의 모든 기간 동안 용량 예약
EC2 On Demand
• 사용하는 것에 대한 비용 지불:
- Linux 또는 Windows - 초당 청구, 첫 1분 후 - 기타 모든 운영 체제 - 시간당 청구
- 비용은 가장 높지만 선불은 없습니다
- 장기 약정 없음
- 애플리케이션의 동작을 예측할 수 없는 단기 및 중단 없는 워크로드에 권장됩니다
EC2 Reserved Instances
온디맨드 대비 최대 72% 할인
특정 인스턴스 속성(인스턴스 유형, 지역, 테넌트, OS)을 예약합니다
예약 기간 - 1년(+할인) 또는 3년(++할인)
결제 옵션 - 선불 없음(+), 부분 선불(++), 모두 선불(++)
예약된 인스턴스의 범위 - 지역 또는 지역(AZ의 예약 용량)
정상 상태 사용 애플리케이션(데이터베이스 생각)에 권장됩니다
예약 인스턴스 마켓플레이스에서 사고 팔 수 있습니다
컨버터블 예약 인스턴스
EC2 인스턴스 유형, 인스턴스 제품군, OS, 범위 및 테넌트를 변경할 수 있습니다
최대 66% 할인
EC2 Savings Plans
• 장기 사용량에 따라 할인 받기(최대 72% - RI와 동일)
• 특정 유형의 사용량(1년 또는 3년 동안 시간당 10달러)에 약정하기
• EC2 저축 플랜 이상의 사용량은 On-Demand price으로 청구됩니다
• 특정 인스턴스 패밀리 및 AWS 지역(예: 미국 동부 1의 M5)에 잠금됨
• 유연한 범위:
• 인스턴스 크기(예: m5.xlarge, m5.2xlarge) - OS(예: Linux, Windows)
EC2 Spot Instances
• 온디맨드 대비 최대 90% 할인받을 수 있습니다
• 최대 가격이 현재 현물 가격보다 낮은 경우 언제든지 "lost" 인스턴스
• AWS에서 가장 비용 효율적인 인스턴스
- 장애에 탄력적인 워크로드에 유용 - 배치 작업
- 데이터 분석
- 이미지 처리
- 모든 분산 워크로드
- 시작과 종료 시간이 유연한 워크로드
• 중요한 작업이나 데이터베이스에 적합하지 않음
EC2 Dedicated Hosts
• 사용자 전용 EC2 인스턴스 용량을 갖춘 물리적 서버
• 규정 준수 요구 사항을 해결하고 기존 서버 기반 소프트웨어 라이선스(소켓당, 코어당, pe-VM 소프트웨어 라이선스)를 사용할 수 있습니다
• 구매 옵션:
- On-demand – 활성 전용 호스트에 대한 초당 비용 지불
- Reserved - 1년 또는 3년(선불 없음, 부분 선불, 모두 선불)
• 가장 비싼 옵션
• 라이선스 모델이 복잡한 소프트웨어(BYOL - Bring Your
자체 라이선스)
• 또는 강력한 규제 또는 규정 준수 요구 사항이 있는 기업의 경우
배포용이 아님
EC2 Dedicated Instances
• 전용 하드웨어에서 실행되는 인스턴스
• 하드웨어를 같은 계정의 다른 인스턴스와 공유할 수 있습니다
• 인스턴스 배치에 대한 제어 없음(정지/시작 후 하드웨어 이동 가능)
EC2 Capacity Reservations (EC2 용량 예약)
• 특정 AZ의 온디맨드 인스턴스 용량 예약하기
지속
• 필요할 때 항상 EC2 용량에 액세스할 수 있습니다
• 시간 약정(언제든지 생성/취소), 청구 할인 없음
• 지역 예약 인스턴스 및 저축 플랜과 결합하여 청구 할인 혜택 제공
• 인스턴스 실행 여부에 관계없이 온디맨드 요금으로 요금이 청구됩니다
• 다음 단계에 있어야 하는 단기 중단 없는 워크로드에 적합합니다
특정 AZ
Which purchasing option is right for me?
• On demand: 원하는 시간에 리조트에 방문하여 숙박하면 전액을 지불합니다
• Reserved: 미리 계획하는 것과 같이 오래 머물 계획이라면 좋은 할인 혜택을 받을 수 있습니다.
• Savings Plans: 일정 기간 동안 시간당 일정 금액을 지불하고 모든 객실 유형(예: King, Suite, Sea View 등)에 머무릅니다
• Spot instances: 호텔은 사람들이 빈 방에 입찰할 수 있도록 허용하고 가장 높은 입찰자가 방을 보관하며 언제든지 쫓겨날 수 있습니다
• Dedicated Hosts: 리조트 전체 건물을 예약합니다
• Capacity Reservations: 숙박하지 않더라도 정가로 일정 기간 동안 방을 예약할 수 있습니다
Amazon EC2 - Instance Storage
What's an EBS Volume?
EBS (Elastic Block Store)Volume은 인스턴스가 실행되는 동안 인스턴스에 연결할 수 있는 네트워크 드라이브입니다
• 인스턴스가 종료된 후에도 데이터를 유지할 수 있습니다
• 한 번에 한 인스턴스에만 마운트할 수 있습니다(CCP에서)
레벨)
• 특정 가용성 영역에 묶여 있습니다
• 유추: "네트워크 USB 스틱"이라고 생각하세요
• 무료 계층: 범용(SSD) 또는 유형의 무료 EBS 스토리지 30GB
월별 마그네틱
EBS Volume
• 네트워크 드라이브입니다(즉, 물리적 드라이브가 아닙니다)
- 네트워크를 사용하여 인스턴스를 통신하므로 지연 시간이 약간 발생할 수 있습니다
- EC2 인스턴스에서 빠르게 분리하여 다른 인스턴스에 연결할 수 있습니다
• 가용 영역(AZ)에 고정되어 있습니다
- us-east-1a의 EBS 볼륨은 us-east-1b에 연결할 수 없습니- 볼륨을 이동하려면 먼저 스냅샷을 만들어야 합니다
• 프로비저닝된 용량(GB 및 IOPS 단위)
- 프로비저닝된 모든 용량에 대해 청구됩니다
- 시간이 지남에 따라 드라이브의 용량을 늘릴 수 있습니다
EBS – Delete on Termination attribute
• EC2 인스턴스가 종료될 때 EBS 동작을 제어합니다
- 기본적으로 루트 EBS 볼륨은 삭제됩니다(속성 활성화)
- 기본적으로 다른 첨부된 EBS 볼륨은 삭제되지 않습니다(속성 비활성화)
• 이 기능은 AWS 콘솔 / AWS CLI로 제어할 수 있습니다
• 사용 사례: 인스턴스가 종료될 때 루트 볼륨 유지
EBS Snapshot
• 한 시점에 EBS 볼륨 백업(스냅샷)하기
• 스냅샷을 위해 볼륨을 분리할 필요는 없지만 권장 사항
• AZ 또는 Region에서 스냅샷을 복사할 수 있습니다
EBS Snapshots Features
• EBS 스냅샷 아카이브
- 스냅샷을 "아카이브 계층"으로 이동합니다
- 아카이브 복원에 24~72시간 이내 소요
• EBS 스냅샷용 휴지통
- 실수로 삭제된 스냅샷을 복구할 수 있도록 삭제된 스냅샷을 보관하는 규칙 설정
- 보존 지정(1일에서 1년)
• 빠른 스냅샷 복원(FSR)
- 스냅샷을 완전히 초기화할 때 처음 사용할 때 지연 시간이 없도록 강제($$$)
AMI Overview
• AMI = Amazon Machine Image
• AMI는 EC2 인스턴스의 사용자 지정입니다
• 나만의 소프트웨어, 구성, 운영 체제, 모니터링... - 모든 소프트웨어가 사전 패키지되어 있어 부팅/구성 시간 단축
• AMI는 특정 지역을 위해 구축되었으며 여러 지역에 걸쳐 복사할 수 있습니다
• EC2 인스턴스는 다음에서 시작할 수 있습니다:
- 공개 AMI: AWS 제공
- 나만의 AMI: 직접 만들고 유지 관리합니다
- AWS 마켓플레이스 AMI: 다른 사람이 만든(그리고 잠재적으로 판매할 수 있는) AMI
AMI Process (from an EC2 instance)
• EC2 인스턴스 시작 및 사용자 지정
• 인스턴스 중지(데이터 무결성을 위해)
• AMI 구축 - EBS 스냅샷도 생성됩니다 - 다른 AMI에서 인스턴스 실행
EC2 Instance Store
• EBS 볼륨은 좋지만 "제한된" 성능을 가진 네트워크 드라이브입니다
_• 고성능 하드웨어 디스크가 필요한 경우 EC2 인스턴스 스토어 사용
_• 더 나은 I/O 성능
• EC2 인스턴스 스토어가 중지되면 스토리지가 손실됩니다(일시적)
• 버퍼/캐시/스크래치 데이터/임시 콘텐츠에 적합
• 하드웨어 장애 시 데이터 손실 위험
• 백업 및 복제는 사용자의 책임입니다
Local EC2 Instance Store
EBS Volume Types
EBS 볼륨은 6가지 유형으로 제공됩니다
• gp2 / gp3 (SSD): 다양한 워크로드에 대한 가격과 성능의 균형을 맞추는 범용 SSD 볼륨
• o1 / io2 Block Express (SSD): 미션 크리티컬 저지연 또는 고처리량 워크로드를 위한 최고 성능의 SSD 볼륨
• st1(HDD): 자주 액세스하는 처리량 집약적인 워크로드를 위해 설계된 저비용 HDD 볼륨
• sc1(HDD): 액세스 빈도가 낮은 워크로드를 위해 설계된 최저가 HDD 볼륨
• EBS 볼륨은 크기 | 처리량 | IOPS(초당 I/O Ops) - 의심스러울 때 항상 AWS 설명서를 참조하면 좋습니다!
• 부팅 볼륨으로 사용할 수 있는 것은 gp2/gp3 및 io1/io2 블록 익스프레스뿐입니다
EBS Volume Types Use cases General Purpose SSD
• 비용 효율적인 스토리지, 짧은 지연 시간
• 시스템 부팅 볼륨, 가상 데스크톱, 개발 및 테스트 환경
- 1Gb - 16TiB
gp3:
• 3,000 IOPS의 기본 및 125 MiB/s의 처리량
• IOPS를 최대 16,000까지 높이고 처리량을 독립적으로 최대 1000 MiB/s까지 늘릴 수 있습니다gp2:
• 작은 gp2 볼륨으로 IOPS를 3,000으로 폭발시킬 수 있습니다
• 볼륨 크기와 IOPS가 연결되어 있으며 최대 IOPS는 16,000입니다
• GB당 3 IOPS, 즉 5,334GB에서 최대 IOPS를 달성했습니다.
EBS Volume Types Use cases Provisioned IOPS (PIOPS) SSD
• 지속적인 IOPS 성능을 갖춘 중요 비즈니스 애플리케이션
• 또는 16,000 IOPS 이상이 필요한 애플리케이션
• 데이터베이스 워크로드에 적합(스토리지 성능 및 일관성에 민감)
io1 (4 GiB - 16TiB):
• 최대 PIOPS: 니트로 EC2 인스턴스의 경우 64,000개, 기타 인스턴스의 경우 32,000개 - 스토리지 크기와 독립적으로 PIOPS를 늘릴 수 있습니다
io2 블록 익스프레스(4Gb - 64TiB):
• 밀리초 미만의 지연 시간
• 최대 PIOPS: 256,000, IOPS:GiB 비율 1,000:1
Supports EBS Multi-attach•
EBS Volume Types Use cases Hard Disk Drives (HDD)
• 부팅 볼륨이 될 수 없습니다
• 125 GiB to 16TiB
Throughput Optimized HDD (st1)
• 빅 데이터, 데이터 웨어하우스, 로그 처리
• 최대 처리량 500 MiB/s - 최대 IOPS 500
콜드 HDD(sc1):
• 액세스 빈도가 낮은 데이터의 경우
• 최저 비용이 중요한 시나리오
• 최대 처리량 250 MiB/s - 최대 IOPS 250
EBS –VolumeTypes Summary
EBS Multi-Attach – io1/io2 family
• 동일한 AZ의 여러 EC2 인스턴스에 동일한 EBS 볼륨 연결
• 각 인스턴스에는 고성능 볼륨에 대한 전체 읽기 및 쓰기 권한이 있습니다
• 사용 사례:
- 클러스터에서 더 높은 애플리케이션 가용성 달성
Linux 애플리케이션(예:Teradata) - 애플리케이션은 동시 쓰기 작업을 관리해야 합니다
• 한 번에 최대 16개의 EC2 인스턴스
• 클러스터 인식이 가능한 파일 시스템을 사용해야 합니다(아니오)
XFS, EXT4, etc...)
Amazon EFS – Elastic File System
• 많은 EC2에 마운트할 수 있는 관리형 NFS(네트워크 파일 시스템)
• EFS는 다중 AZ에서 EC2 인스턴스와 함께 작동합니다
• 가용성이 높고 확장 가능하며 비용이 많이 드는(3배 gp2), 사용당 비용
Amazon EFS – Elastic File System
• 사용 사례: 콘텐츠 관리, 웹 서비스, 데이터 공유, Wordpress
• Uses NFSv4.1 protocol
• 보안 그룹을 사용하여 EFS에 대한 액세스 제어
• Linux 기반 AMI(now Windows)와 호환됩니다
• KMS를 사용한 암호화 대기 중
EFS – Performance & Storage Classes
• EFS Scale
- 1000개의 동시 NFT 클라이언트, 10GB 이상/s 처리량
- 페타바이트 규모의 네트워크 파일 시스템으로 자동 확장
• Performance Mode (set at EFS creation time)
- 지연 시간에 민감한 사용 사례(웹 서버, CMS 등)
- 최대 I/O - 지연 시간, 처리량, 고도로 병렬적(빅 데이터, 미디어 처리)
• Throughput Mode
- Bursting – 1TB = 50MiB/s + burst of up to 100MiB/s
- Provisioned – set your throughput regardless of storage size, ex: 1 GiB/s for 1 TB storage
- Elastic – 워크로드에 따라 처리량을 자동으로 확장합니다
• 읽기의 경우 최대 3Gb/s, 쓰기의 경우 최대 1Gb/s
• 예측할 수 없는 워크로드에 사용됨
EFS – Storage Classes
• 스토리지 계층(라이프사이클 관리 기능 - N일 후 파일 이동)
- Standard: 자주 액세스하는 파일용
- Infrequent access (EFS-IA): 파일 검색 비용, 저렴함
- Archive: rarely accessed data 거의 액세스하지 않는 데이터(매년 몇 번), 50% 저렴
- 스토리지 계층 간에 파일을 이동하는 라이프사이클 정책 구현
• 가용성 및 내구성
- Standard: Multi-AZ,greatforprod
- OneZone:OneAZ,greatfordev,백업이 기본적으로 활성화되어 IA와 호환됩니다 (EFS One Zone-IA)
• 90% 이상의 비용 절감
EBS vs EFS – Elastic Block Storage
• EBS 볼륨...
- 한 인스턴스(멀티 attach io1/io2 제외)
- 가용성 영역(AZ) 수준에서 잠겨 있습니다
- gp2: 디스크 크기가 증가하면 IO가 증가합니다
- gp3 및 io1: 독립적으로 IO를 늘릴 수 있습니다
• AZ 전체로 EBS 볼륨을 마이그레이션하려면
- 스냅샷 만들기
- 스냅샷을 다른 AZ로 복원
- EBS 백업은 IO를 사용하므로 애플리케이션이 많은 트래픽을 처리하는 동안에는 실행해서는 안 됩니다
• 루트 EBS EC2 인스턴스가 종료되면 기본적으로 인스턴스 볼륨이 종료됩니다. (사용하지 않도록 설정할 수 있습니다.)
EBS vs EFS – Elastic File System
• AZ 전역에 걸쳐 100개의 인스턴스 마운트 - EFS 공유 웹사이트 파일(WordPress)
• Linux 인스턴스 전용(POSIX)
• EFS는 EBS보다 가격대가 높습니다
• 비용 절감을 위해 StorageTier를 활용할 수 있습니다
• Remember: EFS vs EBS vs Instance Store