본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
Amazon Elastic Compute Cloud; Amazon EC2; 아마존 EC2
AWS 클라우드에서 크기를 조정할 수 있는 가상 서버(인스턴스)를 필요한 만큼 빌려 쓰는 AWS의 기본 컴퓨팅 서비스

아마존 EC2는 이용자가 운영 체제, 인스턴스 유형, 스토리지, 네트워크를 직접 골라 서버를 띄우는 IaaS 서비스이다. 클라우드 서비스 모델로 보면 OS 패치와 애플리케이션 운영은 이용자 몫이고, 물리 호스트와 하이퍼바이저는 AWS가 관리한다. 현재 세대 인스턴스 대부분은 AWS 나이트로 시스템 위에서 동작한다. 컨테이너나 함수 단위 실행이 필요하면 아마존 ECS, AWS Lambda를 쓰지만, OS 수준 제어가 필요하거나 기존 서버를 그대로 옮기는 경우에는 EC2가 기본 선택지가 된다.

항목 설명
인스턴스 EC2에서 실행 중인 가상 서버 한 대. 시작(launch)할 때 AMI, 인스턴스 유형, 서브넷, 보안 그룹, 키 페어를 지정한다.
인스턴스 유형 vCPU, 메모리, 네트워크, 인스턴스 스토어 조합. 패밀리(용도)와 크기로 구성된다.
AMI 인스턴스를 부팅하는 데 필요한 OS·소프트웨어 이미지
스토리지 영구 블록 스토리지인 아마존 EBS 볼륨, 호스트에 붙은 임시 디스크인 인스턴스 스토어
네트워크 아마존 VPC의 서브넷에 배치되며, 보안 그룹으로 트래픽을 제어한다.
구매 옵션 온디맨드, Savings Plans, 예약 인스턴스, 스팟 인스턴스, 전용 호스트 등. 아마존 EC2 구매 옵션 참고

인스턴스 유형

편집 원본 편집

AWS는 인스턴스 유형을 용도별 패밀리로 묶는다. 시험에서는 워크로드 설명을 보고 맞는 패밀리를 고르는 문제가 자주 나온다.

분류 대표 시리즈 특징 적합한 워크로드
범용(General purpose) M, T, Mac CPU·메모리·네트워크 균형. T는 기준 성능 위로 순간 성능을 내는 버스트 가능 인스턴스 웹 서버, 소·중규모 DB, 개발·테스트 환경
컴퓨팅 최적화(Compute optimized) C vCPU 대비 높은 연산 성능 배치 처리, 미디어 인코딩, 고성능 웹 서버, 과학 계산
메모리 최적화(Memory optimized) R, X, U(고용량 메모리), z1d 메모리 대비 가격이 유리 인메모리 DB·캐시, 대용량 메모리 분석
스토리지 최적화(Storage optimized) I, D, H, Im, Is 대용량·고IOPS 로컬 스토리지(인스턴스 스토어) NoSQL DB, 데이터 웨어하우스, 분산 파일 시스템
가속 컴퓨팅(Accelerated computing) P, G, Inf, Trn, F GPU, AWS Inferentia·Trainium 칩, FPGA 같은 하드웨어 가속기 기계 학습 훈련·추론, 그래픽 처리, 영상 변환
고성능 컴퓨팅(HPC) Hpc 대규모 HPC 작업에 맞춘 가격·성능 시뮬레이션, 유체 역학 등 HPC

T 계열의 CPU 크레딧 동작은 AWS CPU 버스트 문서에 정리되어 있다.

이름 읽는 법

편집 원본 편집
인스턴스 유형 이름(c7gn.xlarge)의 각 부분: 패밀리, 세대, 프로세서·추가 기능, 크기

m7g.large를 예로 들면 다음과 같다.

  • m: 시리즈(범용)
  • 7: 세대. 숫자가 클수록 최신 세대이다.
  • g: 옵션. g는 AWS Graviton(ARM 기반) 프로세서, a는 AMD, i는 인텔, d는 인스턴스 스토어 포함, n은 네트워크·EBS 최적화, e는 추가 메모리 또는 스토리지를 뜻한다.
  • large: 크기. nano, micro, small, medium, large, xlarge, 2xlarge 순으로 커지고, metal은 베어메탈 인스턴스이다.

Amazon Machine Image

편집 원본 편집

AMI(Amazon Machine Image)는 인스턴스를 부팅하는 데 필요한 OS와 소프트웨어, 그리고 연결할 블록 디바이스 매핑을 담은 이미지이다.

  • AMI는 리전, OS, 프로세서 아키텍처, 루트 볼륨 유형, 가상화 유형에 종속된다. 다른 리전에서 쓰려면 AMI를 그 리전으로 복사해야 한다.
  • 운영 중인 인스턴스에서 AMI를 만들어 같은 구성의 서버를 반복 생성할 수 있다. 미리 설정을 끝낸 AMI(골든 AMI)를 쓰면 부팅 후 설치 시간이 줄어 오토 스케일링 속도가 빨라진다.
  • AMI를 다른 계정과 공유하거나 AWS Marketplace에서 판매할 수도 있다.

인스턴스 스토어와 EBS

편집 원본 편집
구분 인스턴스 스토어 아마존 EBS
위치 호스트에 물리적으로 붙은 디스크 네트워크로 연결되는 독립 볼륨
데이터 수명 재부팅 때는 유지되지만 중지, 최대 절전 모드, 종료 시 사라짐 인스턴스와 별개로 유지(종료 시 삭제 여부는 설정)
연결 시작할 때만 붙일 수 있고 다른 인스턴스로 옮길 수 없음 같은 가용 영역 안에서 분리·재연결 가능, 스냅샷 지원
비용 인스턴스 요금에 포함 볼륨 용량·성능에 따라 별도 과금
용도 버퍼, 캐시, 스크래치 데이터, 여러 노드에 복제되는 임시 데이터 루트 볼륨, DB 데이터 등 영구 데이터

탄력적 IP 주소

편집 원본 편집

탄력적 IP 주소(Elastic IP address)는 계정에 할당되어 해제할 때까지 유지되는 고정 퍼블릭 IPv4 주소이다. 인스턴스에 장애가 나면 같은 주소를 다른 인스턴스로 다시 연결해 빠르게 전환할 수 있다.

  • 기본 할당량은 리전당 5개이다.
  • 사용 중이든 유휴 상태든 모든 퍼블릭 IPv4 주소에 요금이 붙는다. 쓰지 않는 탄력적 IP는 해제하는 것이 비용상 맞다.
  • 노드 간 통신은 고정 IP보다 DNS 이름이나 Elastic Load Balancing을 쓰는 편이 권장된다.

사용자 데이터와 인스턴스 메타데이터

편집 원본 편집
  • 사용자 데이터(user data): 시작할 때 넘기는 스크립트나 cloud-init 지시문이다. 기본적으로 처음 시작할 때 한 번 root 권한으로 실행되며, 크기는 base64 인코딩 전 16KB까지이다. 패키지 설치, 설정 파일 배포 같은 부트스트랩에 쓴다.
  • 인스턴스 메타데이터 서비스(IMDS): 인스턴스 안에서 링크 로컬 주소 169.254.169.254로 자신의 인스턴스 ID, AMI ID, IAM 역할 임시 자격 증명 등을 조회한다.
  • IMDSv2는 PUT 요청으로 세션 토큰을 먼저 받고, 이후 요청 헤더에 토큰을 실어 보내는 세션 방식이다. 토큰 유효 시간은 1초부터 6시간까지 정할 수 있다. 열린 리버스 프록시나 SSRF 취약점을 통한 자격 증명 탈취를 막기 위해 IMDSv2만 허용하도록 설정하는 것이 권장된다.
TOKEN=$(curl -s -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600")
curl -s -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/instance-id

EC2 배치 그룹

편집 원본 편집

배치 그룹(placement group)은 인스턴스를 물리 하드웨어에 어떻게 배치할지 정하는 논리적 묶음이다.

전략 배치 방식 장점 제약·용도
클러스터 한 가용 영역 안에서 서로 가까운 하드웨어에 모음 낮은 지연 시간, 높은 네트워크 처리량 여러 AZ에 걸칠 수 없음. HPC, 노드 간 통신이 많은 작업
파티션 그룹을 파티션으로 나누고 파티션마다 별도 랙 사용 랙 단위 장애가 다른 파티션에 번지지 않음 가용 영역당 최대 7개 파티션. HDFS, HBase, Cassandra 같은 대규모 분산·복제 워크로드
분산 인스턴스 하나하나를 서로 다른 랙에 배치 동시 장애 위험 최소화 가용 영역당 실행 인스턴스 최대 7개. 소수의 핵심 인스턴스

이 밖에 마이크로초 단위 시간 동기화가 필요한 워크로드를 위한 정밀 시간 배치 그룹도 있다.

EC2 최대 절전 모드

편집 원본 편집

최대 절전 모드(hibernation)는 OS에 디스크 일시 중단을 지시해 메모리(RAM) 내용을 EBS 루트 볼륨에 저장한 뒤 인스턴스를 중지하는 기능이다. 다시 시작하면 RAM 내용이 복원되어 실행 중이던 프로세스가 그대로 이어지고 인스턴스 ID도 유지된다.

  • 부팅과 캐시 적재에 오래 걸리는 애플리케이션을 미리 데워 두었다가 빠르게 재개할 때 쓴다.
  • 중지 상태 동안에는 인스턴스 사용 요금이 없고 EBS 저장 요금만 낸다.
  • 시작할 때 활성화해야 하며 실행 중인 인스턴스에 나중에 켤 수 없다. 루트 볼륨은 암호화된 EBS여야 하고, RAM 크기는 Linux 기준 150GiB 미만이어야 한다.
  • 최대 절전 상태로 60일을 넘겨 두는 것은 지원하지 않는다.
  • 워크로드 설명으로 패밀리를 고른다. 연산 집약은 C, 인메모리 DB·캐시는 R/X, 높은 로컬 IOPS는 I, GPU 학습·추론은 P/G/Inf/Trn, 꾸준하지 않은 낮은 CPU 사용은 T이다.
  • 노드 간 초저지연이 요구되면 클러스터 배치 그룹, 소수 핵심 인스턴스의 하드웨어 분리면 분산 배치 그룹, 대규모 분산 DB의 랙 인식이면 파티션 배치 그룹이다.
  • 인스턴스 스토어는 중지·종료 시 데이터가 사라진다. 영구 데이터를 두라는 보기는 오답이다.
  • 부팅이 오래 걸리는 서버를 빠르게 재개해야 하면 최대 절전 모드나 Auto Scaling 웜 풀을 떠올린다.
  • 인스턴스 안의 애플리케이션에 AWS 권한이 필요하면 액세스 키를 사용자 데이터에 넣지 말고 IAM 역할(인스턴스 프로파일)을 붙인다. 메타데이터는 IMDSv2만 허용한다.
  • 비용 문제는 아마존 EC2 구매 옵션, 확장 문제는 아마존 EC2 Auto Scaling과 함께 묻는다.