AWS CLF — Elastic Compute Cloud (EC2)


EC2 개요

  • 안전하고 크기 조정이 가능한 컴퓨팅 파워를 클라우드에서 제공하는 웹 서비스(Iaas)
  • 클라우드하면 가장 흔히 생각하는 가상 컴퓨터 대여 서비스
  • AWS가 관리하는 가상 서버를 제공하여 사용자의 필요에 따라 컴퓨팅 리소소를 사용 가능
  • EC2 서버는 ‘인스턴스’ 라고 불리기도 함

EC2 인스턴스 유형

  • Amamzon EC2는 각 사용 사례에 최적화된 다양한 인스턴스 유형을 제공
  • 인스턴스를 시작할 때 지정하는 인스턴스 유형에 따라 인스턴스에 사용되는 호스트 컴퓨터의 하드웨어가 결정
  • 인스턴스 유형은 CPU,메모리,스토리지,네트워킹 용량 등의 조합으로 구성되며 인스턴스 패밀리로 묶임
  • 인스턴스 유형에 따라 인스턴스의 스펙 및 가격이 다르기 때문에 사용자의 목적에 맞는 적합한 유형 선택이 필요

EC2 인스턴스 네이밍 규칙

c : Instance Family(Instance Class)

  • 목적에 따른 인스턴스 분류(메모리 최적화,스토리지 최적화,컴퓨팅 최적화 등)

5 : Instance Generation

  • 유형별 서버에 대한 세대(버전)

a : Processor families

  • EC2에 사용된 프로세서의 종류

large : Instance Size

  • 인스턴스가 가지고 있는 하드웨어적인 스펙(CPU, Memory)

EC2 인스턴스 분류

범용

  • 균형 있는 컴퓨팅,메모리 및 네트워킹 리소스를 제공하며, 다양한 여러 워크로드에 사용
  • 웹 서버 및 코드 Repo와 같이 리소스를 동등한 비율로 사용하는 앱에 적합

컴퓨팅 최적화

  • 고성능 프로세서를 활용하는 컴퓨팅 집약적인 앱에 적합 인스턴스 배치 처리 워크로드

    고성능 웹 서버

    고성능 컴퓨팅

    과학적 모델링, 기계 학습 추론

    전용 게임 서버 및 광고 서버 엔진

메모리 최적화

  • 메모리에서 대규모 데이터 세트를 처리하는 워크로드 작업에 대한 빠른 성능 제공

가속 컴퓨팅

  • 하드웨어 액셀러레이터 또는 보조 프로세서를 사용하여 CPU에서 실행되는 소프트웨어보다 훨씬 효율적인 계산 수행을 위해 설계 부동 소수점 수 계산

    그래픽 처리

    데이터 패턴 일치

스토리지 최적화

  • 로컬 스토리지에서 매우 큰 데이터 세트에 대해 많은 순차적 읽기 및 쓰기 액세스를 요구하는 워크로드를 위해 설계
  • 애플리케이션에 대해 대기 시간이 짧은,초당 수만 단위의 I/O 작업 수(IOPS)를 지원하도록 최적화

HPC 최적화

  • High Performance Computing
  • HPC 워크로드를 대규모로 실행할 때 최고의 가격 대비 성능을 제공하도록 설계
  • 대규모의 복잡한 시뮬레이션 및 딥 러닝 워크로드와 같이 고성능 프로세서가 유용한 앱에 적합

EC2 네트워크 인터페이스 (ENI)

  • 네트워크 인터페이스 -> 컴퓨터와 네트워크간에 상호작용이 가능하도록 하는 기기
  • EC2의 ENI는 가상의 네트워크 인터페이스로 이를 통해 EC2 인스턴스는 VPC 내에서 네트워크 트래픽을 주고받을 수 있음
  • 인스턴스에 접속하여 네트워크 통신을 수행하는 역할
  • 인스턴스 생성 시 IP 주소 등의 정보가 할당된 기본 네트워크 인터페이스가 생성
  • ENI는 서브넷의 보안 그룹과 연결되어 있으며, 보안 그룹을 통해 인바운드 및 아웃바운드 네트워크 트래픽을 제어
  • 여러 개의 추가 네트워크 인터페이스를 EC2에 연결하는 것 또한 가능 다중 네트워크 구성

    로드 밸런싱

VPC(Virtual Private Cloud)란?

  • VPC(Virtual Private Cloud)는 AWS라는 거대한 퍼블릭 클라우드 공간 안에 논리적으로 완전히 분리된 사용자만의 가상 네트워크 환경을 만드는 서비스

서브넷 이란?

  • VPC라는 큰 네트워크 공간을 더 작은 단위로 나눈 것을 ‘서브넷’이라고 함

EC2 탄력적 IP

  • EC2 인스턴스에 대한 정적 IPv4 주소
  • EC2의 IP -> private IP(필수) + public IP(선택)
  • 특정 IP 주소를 비용 지불 후 점유해서 사용
  • 일반적으로 인스턴스가 중지되었다가 다시 시작하면 기존의 public IP가 변경되는데 이러한 상황을 방지
  • 탄력적 IP 주소는 특정 리전에서만 사용할 수 있으며 다른 리전으로 이전할 수 없음
  • 아마존의 IP 풀 또는 AWS 계정으로 가져온 사용자 지정 IPv4 주소 풀에서 탄력적 IP 주소를 할당할 수 있음
  • 인스턴스와 연결되어 있지 않더라도 이미 IP를 점유하고 있기 때문에 비용은 계속 지불됨

EC2 보안 그룹

  • 인스턴스 수준의 방화벽 역할을 하는 가상 방화벽
  • 특정 네트워크 트래픽을 허용하거나 차단함으로써 네트워크 보안을 관리
  • 인스턴스로 들아오는 인바운드 및 아웃바운드 트래픽에 대한 규칙을 정의
  • 허용 규칙만 지정하고 특정 트래픽에 대한 거부 규칙은 지정 할 수 없음
  • 처음에 만들어지면 아웃바운드는 다 열려있고 인바운드는 기본적으로 막혀있음
  • 인바운드 규칙을 보수적으로 잡는 것이 중요
  • 제어 규칙 트래픽 유형(예: SSH,HTTP 등)

    프로토콜(TCP,UDP 등)

    포트(예: SSH 22,HTTP 80, HTTPS 443 등)

    대상(개별 IP 주소,IP 주소 대역,다른 보안 그룹)

EC2 Key Pairs

  • Amazon EC2 인스턴스에 접속하기 위해 사용화된 파일
  • Public Key와 Private Key로 구성되어 Public Key를 인스턴스에 저장하며 Private Key는 사용자가 저장
  • Private Key를 이용하여 인스턴스에 SSH 접근이 가능
  • Private Key를 소유하는 사람은 누구나 인스턴스에 연결할 수 있으므로 반드시 보안된 위치에 키를 저장

EC2에 접속하는 방법

  • SSH를 통한 접속
  • EC2 직렬 콘솔을 사용한 접속
  • AWS Session Manager를 통한 접속
  • EC2 Instance Connect를 사용한 접속

EC2 인스턴스 역할

  • EC2 인스턴스에서 접근 가능한 리소스들에 대한 권한 정책이 연결된 역할
  • IAM에서 역할 생성 후 해당 역할을 인스턴스에 부여 가능
  • EC2 인스턴스가 권한을 받아 AWS 리소스에 대한 액세스를 안전하게 수행

EC2 구매 옵션

온디맨드 (On-Demand)

  • 선 결제 없이 사용한 만큼만 비용을 지불하는 인스턴스
  • 처음 60초 이후 초당 과금
  • 시간당 비용은 가장 높지만 선불로 결제되는 금액이 없음
  • 단기간 동안 예측할 수 없는 워크로드 및 중단되어서는 안되는 애플리케이션에 적합

스팟 (Spot)

  • 사용하지 않는 예비 EC2용량을 경매 방식으로 구매하여 사용하는 방식
  • 온디맨드 인스턴스보다 최대 90% 저렴하여 가장 비용 효율적
  • 다른 사용자가 해당 스펙의 EC2를 현재 가격보다 높게 입찰시 인스턴스가 중단될 수 있음
  • 언제든 인스턴스가 종료될 수 있어, 서버가 지속적으로 실행되어야하는 경우에 부적합
  • 배치작업,데이터분석,이미지처리,분산처리 등의 단발성 작업에 적합

절감형 플랜 (Savings Plan)

  • 1년 또는 3년 기간에 특정 사용량 약정으로 구매하는 옵션으로 온디맨드에 비해 최대 72% 저렴
  • Savings Plan으로 약정한 사용량 이상으로 사용한 부분은 온디맨드 가격이 청구한 시간에 10의 컴퓨팅 사용량 약정시 할인된 컴퓨팅 사용량에 대해 10까지 Savings Plan 가격이 청구되고 그 이외의 사용량은 온디맨드 요금 청구
  • Compute Saving Plans 서버의 컴퓨팅 사용량에 대한 약정

    인스턴스 패밀리,크기,AZ,리전,OS와 관계없이 사용량에 적용

    AWS Fargate 및 Lambda에서의 컴퓨팅 사용량에도 적용 가능

  • EC2 Instance Saving Plans 특정 리전의 개별 인스턴스 패밀리에 한정된 약정

    동일 리전의 인스턴스 패밀리 내에선 약정을 유지하며 인스턴스 자유롭게 변경 가능

예약 인스턴스 (Reserved Instance)

  • 1년(365일) 또는 3년(1095일) 기간에 대해 최대 72% 저렴한 가격으로 선구매하는 것
  • 기간이 길수록 할인율이 더 높아짐
  • 지불방법은 전액 선결제/부분 선결제/선결제 없음이 있는데 전액을 먼저 지불하는 것이 더 저렴
  • 수요가 꾸준하고 예측이 가능한 경우에 구매하는 것이 효율적
  • Reserved Instance의 경우 사용하고 남은 부분을 AWS Marketplace에서 사거나 판매 가능
  • Reserved Instance 유형 Standard: 가장 큰 할인 혜택(온디맨드 대비 최대 72%)을 제공하며 사용량이 꾸준한 경우 적합

    Convertible: 사용중에 RI의 속성 변경 가능(금액이 크거나 같은 경우에만)

    Scheduled: 예약한 기간 범위 내에서 인스턴스를 시작

구분 (Category) Reserved Instance (RI) Savings Plans (SP)
핵심 개념 특정 인스턴스 사양’에 대한 할인 쿠폰 ‘컴퓨팅 사용량 금액’에 대한 약정 할인
약정 대상 인스턴스 패밀리, 크기, OS, 리전 등 ‘사양’ 시간당 지출’금액’ (예: $10/hour)
유연성 낮음 (정해진 사양과 정확히 일치해야 할인 적용) 매우 높음(인스턴스 크기나 패밀리가 바뀌어도 약정 금액 내에서 자동 적용)
적용 범위 EC2, RDS, ElastiCache, Redshift 등 다양함 EC2, AWS Fargate, AWS Lambda (컴퓨팅 서비스에 집중)
관리 편의성 복잡함(사용량 변화에 맞춰 RI를 직접 교환(Convertible)하거나 매매해야 함) 매우 간편함(한 번 구매하면 약정 금액까지 알아서 최적의 할인을 적용해 줌)
추천 대상 RDS처럼 수년간 사양이 거의 변동 없는 워크로드 대부분의 현대적인 EC2 워크로드 (변화가 잦고 유연성이 필요할 때)

용량 예약 (Capacity Reservation)

  • 일반적으로 EC2 타입에 따라 가용 영역별 할당량 제한이 있음
  • 특정 가용 영역의 EC2 인스턴스에 대해 원하는 기간만큼 컴퓨팅 용량을 예약할 수 있음
  • 용량의 제약이 있는 경우 온디맨드 용량을 확보하지 못할 위험을 줄일 수 있음
  • 1년 또는 3년 기간의 약정에 가입하지 않고도 언제든지 용량 예약을 생성할 수 있음

전용 인스턴스 (Dedicated Instances)

  • 일반적인 EC2 인스턴스 -> AWS가 관리하는 동일한 물리적 하드웨어(호스트)를 공유하여 사용
  • AWS 계정 사용자 전용 하드웨어에서 실행되는 EC2 인스턴스
  • 동일한 AWS 계정의 다른 인스턴스와 하드웨어(호스트) 공유 가능
  • 재부팅시 다른 호스트에 인스턴스가 배치될 가능성 있음
  • 인스턴스에 대한 과금 발생

전용 호스트(Dedicated Hosts)

  • 사용자를 위한 완전 전용인 물리적 서버
  • 물리적 서버 용량 내에서 다양한 크기의 인스턴스를 자유롭게 배치하여 사용 가능
  • 호스트 서버 전체에 대한 과금 발생

EC2 전용 인스턴스 vs. 전용 호스트 비교

구분 인스턴스 수준의 격리 전용 호스트 (Dedicated Host)
핵심 개념 인스턴스 수준의 격리 물리적 서버(호스트) 수준의 격리
제어 수준 낮음 (AWS가 호스트 자동 배치) 높음 (사용자가 특정 호스트 선택 및 제어)
서버 가시성 없음 (호스트 ID 등 확인 불가) 있음 (소켓, 코어, 호스트 ID 확인 가능)
과금 단위 인스턴스별 과금 호스트별 과금
주요 사용 사례 단순 물리적 격리가 필요한 규정 준수 소프트웨어 라이선스(BYOL) 관리, 강력한 규제 준수

EBS (Elastic Block Store)

  • EC2 인스턴스가 실행되면서 연결되는 영구 블록 스토리지 볼륨
  • 볼륨이 인스턴스에 연결되면 해당 볼륨을 컴퓨터에 연결된 로컬 하드 드라이브처럼 사용가능
  • 서버의 데이터를 저장하며,인스턴스 종료 후에도 지속됨
  • EC2 종료 후 EBS가 같이 삭제되지 않으면 사용 비용이 청구됨
  • 여러 개의 EBS 볼륨을 생성하여 EC2에 추가 연결 가능
  • EBS와 EC2는 동일한 가용영역에 있어야 연결 가능
  • 스냅샷 기능을 통해 EBS 볼륨 백업 가능
  • AWS Key Management Service (KMS)를 이용해 EBS 볼륨 암호화 가능

EBS (Elastic Block Store) 스냅샷

  • 볼륨 자체와 관계없이 지속되는 Amamzon EBS 볼륨의 특정 시점에 대한 백업본
  • 스냅샷을 사용하여 저장 시점의 EBS 볼륨 데이터 복원 가능
  • 증분식 백업이므로 가장 최근 스냅샷 이후 변경된(추가/삭제/업데이트)디바이스의 블록만 저장
  • 스냅샷을 복사하여 다른 리전이나 가용영역에서도 사용가능
  • 수명 주기 관리자(Data Life Cycle Manager)정책을 통해 스냅샷 생성 일정을 자동화 가능

EC2 AMI(Amazon Machine Image)

  • 소프트웨어 구성에 대한 내용이 기재된 템플릿으로 OS,애플리케이션,서버 프로그램 설정 등이 미리 구성된 서버에 대한 스냅샷
  • 특정 리전에 종속되어 있으며 리전 간 복제도 가능
  • AMI 사용하여 EC2 시작 시 OS 설치나 서버 소프트웨어 설정 등을 추가로 할 필요없이 원하는 설정이 된 서버가 바로 구동됨
  • 유저의 운영 상황에 맞게 커스텀한 AMI를 생성하여 사용할 수 있음
  • AMI 이용 경로 AWS 기본제공

    마켓 플레이스

    사용자 커스텀 AMI

EC2 Image Builder

  • AWS 또는 온프레미스에서 사용할 가상 머신 및 컨테이너 이미지를 간편하게 구축,테스트 및 배포할 수 있는 도구
  • 일반적으로 가상머신 및 컨테이너 이미지를 최신 상태로 유지하기 위해서는 많은 시간과 리소스가 사용
  • 간단한 그래픽 인터페이스,기본 자동화 및 AWS 제공 보안 설정을 통해 이미지를 최신 상태로 유지하고 보안을 강화
  • 콘솔에서 직관적으로 자동화된 파이프라인을 생성해 Linux 및 Windows 이미지를 생성
  • 이미지 생성 스케쥴링 가능
  • 이미지를 생성,저장 및 공유하는 데 사용되는 기본 AWS 리소스 비용 외에는 모두 무료로 제공

인스턴스 스토어

  • 일반 하드디스크와 같은 블록 레벨의 스토리지
  • 호스트 컴퓨터에 물리적으로 연결된 디스크에 위치하여 IOPS 성능이 매우 높은 고성능 스토리지
  • 인스턴스에 직접 연결되어 인스턴스에 종속적이므로 인스턴스가 삭제되면 함께 삭제됨
  • 삭제의 위험이 있기 때문에 장기 보관이 필요한 데이터의 경우 EBS,S3 등을 활용
  • 버퍼,캐시,스크래치 데이터,기타 임시 콘텐츠와 같이 자주 변경되는 정보의 임시 저장에 적합
  • 초당 수백 만개의 트랜잭션을 지원하는 I/O처리량이 높은 데이터베이스의 데이터의 임시 스토리지 옵션으로 사용가능

EFS(Elastic File System)

  • EC2 인스턴스에서 연결하기 위한 리눅스용 네트워크 파일 스토리지
  • 완전히 탄력적인 serverless파일 스토리지로 동일 리전에 있는 여러 개의 인스턴스와 연결되어 파일 데이터 공유 가능
  • 애플리케이션을 중단하지 않고 페타바이트급까지 온디맨드 규모로 확장 가능
  • 온프레미스의 NAS나 NFS 같은 서비스로 Network File System(NFS)프로토콜을 지원
  • EC2 보안그룹에서 EFS 보안그룹을 허용해주어야 마운트 가능 | 구분 | AWS EFS (Elastic File System) | AWS S3 (Simple Storage Service) | | — | — | — | | 스토리지 종류 | 파일 스토리지 (File Storage) | 객체 스토리지 (Object Storage) | | 비유 | 네트워크 공유 폴더 / NAS | 인터넷 파일 보관함 / Dropbox | | 주요 접근 방식 | NFS 프로토콜 (EC2 인스턴스에 마운트) | HTTP/HTTPS 프로토콜 (API, URL) | | 동시성 | 여러 EC2 인스턴스가 동시에 읽고 쓰기(수정) 가능 | 여러 사용자가 동시에 읽고 쓰기 가능 (덮어쓰기) | | 파일 수정 | 가능 (파일의 일부만 수정 가능) | 불가능 (수정하려면 전체 파일을 새로 업로드) |