[AWS] EC2란?

gyeol·2025년 8월 29일

AWS

목록 보기
2/20
post-thumbnail

EC2 (Elastic Compute Cloud)

AWS에서 제공하는 가상 서버 서비스이다. 필요한 만큼 서버(=인스턴스)를 즉시 빌려서 사용하고, 사용한 만큼만 비용을 지불하는 온디맨드 방식이 특징이다.
기존에는 물리 서버를 직접 구매·설치해야 했지만, EC2는 몇 분 만에 원하는 서버 사양을 선택하고 실행할 수 있다.

인스턴스 유형

보통 AWS EC2 인스턴스 유형을 보면 m5.large와 같은 형태로 이루어져 있다.

  • 맨 앞 알파벳은 인스턴스 패밀리를 의미하며 용도에 따라 알맞게 선택
  • 가운데 숫자는 인스턴스 세대를 의미하며 숫자가 클수록 최신 버전
  • 뒤의 small, large와 같은 단어는 인스턴스 사이즈 의미
    사이즈가 커질수록 용량, 가격이 2배씩 증가
종류설명
범용(M5, M4)컴퓨팅, 메모리, 네트워크 리소스의 균형적 사용
컴퓨팅(C5, C4)EC2에서 최고 성능의 프로세스이며 성능 대비 가격 저렴
메모리(R5, R4, X1)메모리 용량이 많이 필요한 애플리케이션용
성능 순간 확장(T2, T3)성능을 순간적으로 확장 가능한 인스턴스
GPU(G3, P3)그래픽 및 일반 목적의 GPU 컴퓨팅 애플리케이션
높은 I/O(I2)SSD 기반 초고속 인스턴스 스토리지
고밀도 스토리지(D2)높은 디스크 처리량, 단위 당 최소 가격

EC2인스턴스 접근 방법

이렇게 만들어진 인스턴스에 대해 접근할 수 있는 방법이 2가지 있다.

SSH

SSH 키를 등록한 후 SSH 포트를 사용해 접속한다.

SSM (Session Manager)

Session Manager는 SSH 키·점프서버 없이, 포트도 열지 않고, 로깅까지 제공하는 EC2 원격 접속 방식이다.

기존 SSH 방식

  • 인스턴스에 접속하려면 SSH 키(.pem 파일)를 관리해야 했고,
  • 보통 보안상 이유로 직접 인터넷에 인스턴스를 노출하지 않으려고 Bastion Host(점프 서버)를 별도로 운영해야 했다.

SSM 방식은 인바운드 포트를 열 필요없으며 SSH 키나 Bastion Host 필요하지 않으며
세션 활동이 자동으로 기록되어 감사와 보안성 강화할 수 있다.
즉, 운영 부담 ↓ / 보안성 ↑ 이라는 장점이 있다.

흐름

  1. 사용자 인증
    사용자는 AWS에 접속하기 위해 먼저 IAM을 통해 인증을 받는다.
    접속을 위해 권한 부여는 필수이다.

  2. 인스턴스 권한 확인
    사용자의 연결 요청을 받은 Session Manager는 대상 EC2 인스턴스와 통신을 시작한다.
    인스턴스 자체에 연결된 SSM Agent Role이라는 IAM 역할의 권한을 확인해 통신을 준비한다.

  3. 인스턴스와 연결
    EC2 인스턴스 내부에는 SSM Agent라는 소프트웨어가 항상 실행중이다. 이 Agent가 SSM Agent Role의 권한을 사용해 Session Manager 서비스와 암호화된 통신 채널을 오픈한다. 이렇게 되면 원격 세션이 시작된다.

  4. 세션 활동 기록 (로깅)
    연결이 수립된 후 사용자가 인스턴스에서 수행하는 모든 명령어와 활동은 Session Manager에 의해 기록된다.

EC2 인스턴스 구매 옵션

보통 안정적인 기본 용량에는 예약 인스턴스를 사용하고 예측 불가능한 피크 용량에는 스팟 인스턴스를 섞어 사용하는 혼합 전략이 적합하다.

온디맨드 인스턴스

  • 장기 약정 없이 사용한 시간(초/시간 단위)만큼만 비용 지불
  • 인스턴스를 시작했다가 중단/종료하면 과금도 멈춤
  • 예측 불가능하거나 단기적인 워크로드: 갑작스럽게 서버를 띄워야 하는 경우
  • 개발/테스트 환경: 임시로만 서버가 필요한 경우

예약 인스턴스

  • 1년 또는 3년 약정을 통해 온디맨드 요금보다 할인 제공
  • 지속적으로 실행되는 워크로드에 적합
종류설명
Standard RI인스턴스 유형, 리전, AZ를 고정해 가장 큰 할인 제공
Scheduled RI특정 시간대에만 필요한 워크로드에 적합
Convertible RI인스턴스 패밀리, 유형 등을 변경할 수 있는 유연성 제공

스팟 인스턴스

  • AWS의 남는 EC2 용량을 경매처럼 저렴하게 제공
  • 온디맨드 대비 최대 90% 저렴
  • AWS가 용량을 회수하면 언제든 인스턴스가 중단될 수 있음
  • 상태 비저장 애플리케이션(중단돼도 문제 없는 경우)

EC2 Auto Scaling

애플리케이션 수요에 따라 자동으로 EC2 인스턴스를 늘리거나 줄여 성능을 유지하고 비용을 최적화하는데 필수적인 서비스이다. 이때, 정확한 수의 인스턴스를 보유하는게 핵심이다.

수직 확장 방식

  • Scale up : 컴퓨팅 파워(CPU, Memory) 증가
  • Scale Down : 컴퓨팅 파워 낮춤

수평 확장 방식

  • Scale out : 인스턴스 수 늘림
  • Scale in : 인스턴스 수 줄임

구성 요소

1. Auto Scaling Group
동일한 특성을 가진 EC2 인스턴스들의 논리적 그룹으로 사용자가 정의한 최소/최대 용량 내에서 지정된 수의 인스턴스 수를 유지한다.

2. 시작 템플릿 (Launch Template)

Auto Scaling 그룹이 새로운 EC2 인스턴스를 시작할 때 사용할 구성 정보를 정의해둔 것이다.

3. AMI (Amazon Machine Image)
EC2 인스턴스 생성에 사용되는 이미지로, 사전 구성된 AMI를 사용하면 Auto Scaling 그룹이 인스턴스를 신속하게 시작할 수 있다.

아키텍처

  1. 사용자가 인터넷을 통해 서비스에 접속
  2. CloudFront가 요청을 가장 먼저 받아 이미지, 영상 등은 S3에서 바로 빠르게 전송
  3. 실제 애플리케이션 요청은 ELB로 전달되어 여러 서버에 골고루 분배
  4. Auto Scaling Group 내 서버들이 요청을 받아 처리. 이때 서버들은 EFS를 통해 파일 공유
  5. 서버는 RDS 데이터베이스에 데이터를 저장하거나 읽어옴

성능 최적화

배치 그룹 (Placement Groups)

늘어나는 인스턴스가 어느 물리적 위치에 생성될지에 대한 전략을 말한다.

1. 클러스터 배치 그룹

  • 동일 AZ 내 물리적 서버와 최대한 가깝게 배치
  • 저지연, 고대역폭 네트워크
  • 속도는 빠르지만 서버가 죽어버리면 끝남

2. 스프레드 배치 그룹

  • 가능한 서로 다른 물리호스트에 분산해 단일 서버 장애 리스크 최소화

3. 파티션 배치 그룹

  • 인스턴스를 파티션 그룹 별로 분리해 각 파티션은 다른 물리 호스트에서 실행
  • 대규모 분산 시스템 같은 장애 도메인은 분리 필요

웜 풀

Warm Pool은 Auto Scaling Group(ASG)에서 사용하는 기능으로, 인스턴스를 미리 실행(프로비저닝)해 대기 상태로 유지하는 방법이다.

기존 방식은 Auto Scaling Group이 인스턴스를 새로 늘릴 때 AMI 기반으로 인스턴스 생성, OS/애플리케이션 초기화 등의 과정을 거쳤으며 수십 초~수 분의 워밍업(초기화 지연 시간)이 발생했다.
이렇게 되면 트래픽 급증 시 즉각적인 대응이 어려워진다.

Warm Pool을 사용하게 되면 미리 준비된 인스턴스들을 대기 상태로 유지한다.

  • Scale Out 필요 시 → 바로 활성화 시켜 트래픽 처리에 투입.
  • 덕분에 워밍업 시간이 거의 0에 가까워짐.

라이프사이클 훅

인스턴스가 시작되거나 종료될 때 특정 작업을 수행하도록 구성해 감사 시스템에 보고서를 전송하는 등의 자동화 작업을 수행한다.

서버가 켜질 때 (Scale out)

  1. 서버 생성 : 트래픽이 많아져 새 서버가 켜짐
  2. 일시 정지 (준비): 서비스에 투입되기 전, 필요한 프로그램 설치 시간
  3. 서비스 시작: 준비가 끝나면 실제 서비스에 투입

서버가 꺼질 때 (Scale in)

  1. 서버 제거: 트래픽이 줄어 서버를 끄기로 결정
  2. 일시 정지 (마무리): 완전히 꺼지기 전, 중요한 데이터를 백업
  3. 완전 종료: 모든 작업이 끝나면 서버가 완전히 사라짐

비용 절감 방법

개발 환경의 Auto Scaling Group의 최대 인스턴스 수를 줄여 불필요한 비용을 절감한다.
주말 등 사용하지 않는 시간에 Auto Scaling 그룹의 최소/최대/원하는 용량 등을 0으로 변경하면 비용을 절감할 수 있다.

백업 전략

상태 비저장 웹 애플리케이션의 경우 Auto Scaling Group을 사용한다면 EC2 인스턴스의 AMI만 최신으로 유지하고 데이터베이스는 RDS의 자동 백업 포인트 타입 복구 기능을 사용하는 것이 더 효율적이다.

profile
공부 기록 공간 '◡'

0개의 댓글