클라우드/AWS

AWS EC2에 대해 알아보자

codingreewon 2026. 7. 2. 23:45

(Stephane Maarek의 Udemy AWS Certified Solutions Architect Associate 강의를 참고했습니다.)

 

EC2(Elastic Compute Cloud)는 AWS에서 가장 유명한 서비스 중 하나로, AWS에서 제공하는 대표적인 IaaS(Infrastructure as a Service)이다. IaaS란, 클라우드 공급자가 서버, 스토리지, 네트워크 같은 IT 인프라를 가상화된 형태로 제공하는 서비스를 의미한다. 필요할 때마다 컴퓨팅 자원을 대여할 수 있다는 점에서 EC2를 이해하는 것은 클라우드의 작동 방식을 이해하는 데에 필수적이다.

 

EC2에서 설정할 수 있는 옵션은 정말 다양하다.

  • 운영체제: Linux가 가장 인기가 많으며, Windows와 macOS도 가능
  • 필요한 CPU 자원과 RAM 용량
  • 필요한 스토리지 공간 및 스토리지 방식(EBS, EFS, Instance Store 등)
  • EC2 인스턴스에 연결할 네트워크의 종류
  • 보안 그룹을 통한 방화벽 규칙 설정
  • 부트스트랩 스크립트(EC2 User Data)

EC2 유저 데이터 스크립트를 이용해 인스턴스를 부트스트래핑할 수 있다. 부트스트래핑이란, 인스턴스가 최초로 부팅될 때 실행되는 스크립트로, 소프트웨어 설치나 환경 설정 자동화에 활용된다. 모든 스크립트는 루트 권한으로 실행된다.

1. EC2 인스턴스 종류

대표적인 EC2 인스턴스 종류

AWS에서는 여러 유형의 EC2 인스턴스를 제공한다. 그 목록은 https://aws.amazon.com/ko/ec2/instance-types/에서 확인할 수 있다.

 

AWS에서는 다음과 같은 인스턴스 명명법이 존재한다. 예를 들어, m5.2xlarge라는 이름의 인스턴스가 있다면, m은 인스턴스 범주를, 5는 몇 세대인지를, 2xlarge는 인스턴스의 크기를 나타낸다.

 

AWS에서 구분한 주요 인스턴스 범주로는 범용, 컴퓨팅 최적화, 메모리 최적화, 가속 컴퓨팅, 스토리지 최적화가 있다.

  • 범용 인스턴스: 웹 서버나 코드 저장소 같은 다양한 작업에 적합하며, 컴퓨팅과 메모리, 네트워킹의 균형을 지원한다.
  • 컴퓨팅 최적화: 배치 프로세스 작업을 처리하거나 고성능 웹 서버, 미디어 트랜스코딩, 머신러닝 추론 작업, 게임 서버 같은 컴퓨팅 집약적인 작업에 적합하다.
  • 메모리 최적화: 메모리에서 대용량 데이터셋을 빠르게 처리하는 작업에 적합하다. 대표적인 사용 예시로는, 고성능의 관계형 데이터베이스 혹은 NoSQL, 분산 웹 캐시 저장소, 실시간 비정형 빅데이터 처리 등이 있다.
  • 스토리지 최적화: 로컬 스토리지에서 대규모 데이터셋에 액세스할 때 적합한 인스턴스로, OLTP 시스템, 관계형&NoSQL 데이터베이스, 데이터 웨어하우징 어플리케이션이나 분산 파일 시스템에 사용된다.

2. EC2 보안 그룹

보안 그룹은 EC2 인스턴스의 방화벽으로, 포트에 들어오고 나가는 트래픽을 규제한다. 접근 가능한 포트, 승인된 IP 범위와 인바운드/아웃바운드 네트워크를 설정할 수 있다. 이때, 보안 그룹과 EC2 인스턴스는 다대다 관계가 가능하며, 보안 그룹은 특정 지역과 VPC에 제한되기 때문에 새로운 지역에서는 새롭게 설정해야 한다. 기본적으로 모든 인바운드 트래픽은 차단되고, 아웃바운드 트래픽은 승인되도록 설정된다.

 

그렇다면 알아야 할 포트 번호는 무엇이 있을까? SSH의 포트 번호는 22번으로, 이를 통해 리눅스에서 EC2 인스턴스에 로그인할 수 있다. 윈도우 인스턴스용 RDP는 3389번을 사용한다. 파일 공유에 사용되는 파일 전송 프로토콜(FTP)은 21번을, SSH를 이용한 안전한 파일 업로드를 위해 사용되는 SFTP도 22번 포트를 사용한다. HTTP용 포트는 80번, HTTPS용 포트는 443번이다.

3. EC2 인스턴스 구매 옵션

EC2 인스턴스에는 다음과 같은 다양한 구매 옵션이 존재한다.

 

  • EC2 온디맨드: 사용한대로 지불하는 방식으로, 장기 약정 없이 필요할 때 즉시 사용 가능하다. 단기적이거나 예측하기 어려운 워크로드, 혹은 초기 개발 및 테스트 환경에 적합하다.
  • 예약 인스턴스: 1년 또는 3년 동안 특정 인스턴스 사용을 약정하여 온디맨드 대비 최대 약 72%까지 할인받을 수 있는 방식이다. 일정한 사용량을 유지하는 데이터베이스나 운영 서버 등에 적합하다. 표준 예약 인스턴스(Standard RI)는 AWS Reserved Instance Marketplace에서 판매할 수 있지만, 모든 예약 인스턴스를 거래할 수 있는 것은 아니다.
  • EC2 절약 플랜: 1년 또는 3년 동안 시간당 일정 금액을 사용하겠다고 약정하면 할인받는 방식이다. 약정한 사용량까지는 할인된 요금이 적용되고, 이를 초과하는 사용량은 온디맨드 요금이 적용된다. 장기간 안정적으로 EC2를 사용하는 경우 적합하며, 예약 인스턴스보다 유연하게 인스턴스 유형이나 크기를 변경할 수 있다.
  • 스폿 인스턴스: AWS의 유휴 EC2 용량을 활용하는 방식으로, 온디맨드 대비 최대 90%까지 저렴하게 사용할 수 있다. AWS는 필요에 따라 유휴 용량을 회수할 수 있으며, 이 경우 약 2분 전에 중단 알림을 제공한 후 인스턴스를 종료하거나 중지한다. 따라서 배치 작업, 데이터 분석, 이미지·영상 처리, CI/CD, 분산 처리 등 중단에 대한 복원력이 있는 워크로드에 적합하며, 데이터베이스와 같이 지속적인 가용성이 필요한 서비스에는 적합하지 않다.
  • 전용 호스트: 하나의 물리 서버를 특정 고객이 전용으로 사용하는 방식이다. 소프트웨어 라이선스(BYOL) 요구사항이나 규제 준수가 필요한 경우 사용하며, EC2 인스턴스의 물리적 배치를 직접 관리할 수 있다. 일반적으로 가장 비용이 높은 옵션 중 하나이다.
  • 전용 인스턴스: 다른 AWS 계정과 물리 서버를 공유하지 않고, 고객 전용 하드웨어에서 실행되는 EC2 인스턴스이다. 다만 물리 서버 자체를 직접 제어하거나 관리할 수는 없으며, 전용 호스트 방보다 관리 범위는 제한적이다.
  • EC2 용량 예약: 특정 가용 영역(AZ; Availability Zone)에서 필요한 EC2 용량을 미리 확보해 두는 방식이다. 실제 인스턴스를 실행하지 않아도 예약한 용량에 대해서는 비용이 발생한다. 필요한 시점에 즉시 EC2를 실행해야 하는 중요한 서비스에 적합하다.

추가적으로, 스팟 인스턴스를 종료하기 위해서는 스팟 요청(Spot Request)를 우선 철회한 후에 종료해야 한다. 만약 반대의 순서대로 스팟 인스턴스를 먼저 종료하면, 스팟 요청에 따라 인스턴스가 재생성되기 때문에 이 부분은 주의해야 한다.

 

또한 Spot Fleet이라는 개념이 있는데, 현재 AWS에서는 신규 사용을 권장하지 않는 레거시 기능이다. Spot Fleet란, 여러 종류의 Spot 인스턴스를 적절히 조합해 필요한 컴퓨팅 용량을 자동으로 확보하는 기능이다. Spot에는 인스턴스 타입과 AZ를 조합한 여러 개의 Spot Pool이 존재하는데, 이 중 가장 적절한 Pool에서 EC2를 실행한다. 풀 할당 방식은 가장 저렴한 풀을 선택하는 방식(lowestPrice), 여러 풀에 분산하여 실행하는 방식(diversified), 가격이 조금 비싸더라도 회수 위험이 적은 풀을 선택하는 방식(capacityOptimized), 여유 용량이 많은 풀들 중 가장 저렴한 풀을 선택하는 방식(priceCapacityOptimized)이 있다.

4. EC2 인스턴스 배치 그룹

AWS EC2 인스턴스 배치 그룹은 워크로드 요구 사항에 맞춰 인스턴스의 물리적 하드웨어 배치를 제어하는 기능이다. 클러스터, 분산, 파티션의 3가지 배치 전략 중 선택이 가능하다.

  • 클러스터: 동일한 가용 영역(AZ) 내에서 인스턴스들을 서로 가깝게 배치하여 네트워크 지연이 적고, 처리량이 높다. 다만, 물리적인 하드웨어 장애 발생 시 서비스 이용이 불가능할 수 있다. 고성능 컴퓨팅처럼 네트워크 통신이 많은 워크로드에 적합하다.
  • 분산: 인스턴스들을 완전히 독립된 별개의 하드웨어에 분산시켜 동시 장애 위험을 최소화한다. 소규모 인스턴스로 고갸용성ㅇ ㅣ필요한 환경에 적합하다.
  • 파티션: 인스턴스를 논리적 파티션으로 나눠 각 그룹이 서로 다른 기본 하드웨어(렉)를 공유하지 않도록 한다. Hadoop이나 Kafka, Cassandra 같은 대규모 분산 및 복제 워크로드에 좋다.

5. 탄력적 네트워크 인터페이스 (ENI; Elastic Network Interfaces)

탄력적 네트워크 인터페이스(ENI)는 EC2의 가상 네트워크 카드로 IP 주소, MAC 주소, 보안 그룹 등의 네트워크 설정을 포함한다. 즉, ENI 하나가 네트워크 설정을 모두 가지고 있는 객체라고 보면 된다. EC2를 생성하면 Primary ENI(eth0)가 자동으로 생성되어 연결되며, 필요에 따라서 추가적인 ENI를 생성하여 다른 EC2에 연결하거나 분리해 재사용할 수 있다. 다만, 하나의 ENI는 동시에 하나의 EC2에만 연결될 수 있다.

6. EC2 최대 절전 모드 (Hibernate)

EC2 최대 절전 모드는 인스턴스 메모리(RAM) 상태를 루트 EBS 볼륨에 암호화하여 저장한 후에 인스턴스를 중지하는 기능이다. 따라서 인스턴스를 다시 시작할 때 RAM 데이터가 복원되어 종료 전 작업 상태를 그대로 이어갈 수 있으며, 부팅 시간을 단축할 수 있다. 따라서 사용자 입장에서는 작업이 종료된 적이 없는 것처럼 보인다. 참고로 인스턴스의 RAM 크기는 150GB 미만이어야 한다.

7. EC2 스토리지 옵션

1) EBS 볼륨 (Elastic Block Store)

인스턴스가 실행 중일 때 연결 가능한 네트워크 드라이브로, 인스턴스가 종료된 후에도 데이터를 유지할 수 있도록 한다. 한 번에 하나의 인스턴스에 마운트될 수 있으며, 특정 가용 영역에서만 사용 가능하다. 다만, 스냅샷을 사용하면 다른 가용 영역으로 이동할 수 있다. 또한 원하는 용량을 미리 설정해야 한다. 인스턴스가 종료될 때 EBS의 삭제 여부도 설정할 수 있다.

 

스냅샷은 특정 시간의 EBS 볼륨의 특정 시점에 대한 백업이다. EBS 스냅샷은 다른 가용 영역이나 리전에 복사할 수도 있다. 스냅샷의 대표적인 기능으로는 자주 쓰지 않는 스냅샷을 저렴한 스토리지 계층으로 옮겨 비용을 최대 75%까지 절감할 수 있는 EBS 스냅샷 아카이브, 실수로 삭제된 스냅샷을 영구 삭제 전 최대 365일까지 보관해 복구할 수 있게 해주는 EBS 스냅샷용 휴지통, 스냅샷에서 볼륨 복원 시 발생하는 I/O 지연시간을 제거해 복원된 볼륨이 즉시 최대 성능을 발휘할 수 있게 해주는 빠른 스냅샷 복원(Fast Snapshot Restore; FSR) 기능이 있다.

 

EBS 볼륨에는 6가지 종류가 있다.

  • General Purpose SSD (gp2 / gp3)
    • 대부분의 EC2 서버에서 기본으로 사용하며, 가격이 저렴하고 응답 속도가 빠르다. 시스템 부트 볼륨이나 가상 데스크톱 서비스, 개발 및 테스트 등에 사용된다. 최신 버전인 gp3는 gp2와 달리 필요한 용량과 성능을 독립적으로 설정할 수 있다는 것이 특징이다.
  • Provisioned IOPS SSD (io1 / io2 Block Express)
    • 매우 높은 디스크 성능이 필요한 시스템을 위한 EBS SSD이며, 항상 높은 IOPS를 유지해야 하는 데이터베이스 워크로드나 은행 시스템, 결제 시스템 등에 사용된다. gp3의 최대 IOPS는 16,000으로 이보다 더 높은 성능이 필요하다면 io1이나 io2를 사용해야 한다. io1에 비해 io2는 더 높은 내구성과 안정적인 성능, 긴 수명을 제공하며, 용량, IOPS, 응답시간이 우수하다. 여러 EC2 인스턴스에 동시 연결할 수 있다.
  • Hard Disk Drives (st1 / sc1)
    • SSD는 빠르지만 비싸다는 특징이 있고, HDD는 느리지만 저렴하다는 특징이있다. st1과 sc1은 운영체제를 설치하는 디스크, 즉 부팅 볼륨으로는 사용할 수 없다. 용량은 st1과 sc1 모두 125GB~16TB까지 지원한다.
    • st1은 처리량에 최적화된 HDD로 큰 파일을 빨리 읽고 쓰는 데에 집중하여 빅데이터, 데이터 웨어하우스, 로그 처리 등의 작업에 활용된다. sc1은 가장 저렴한 EBS로 Cold HDD라고도 불린다. Cold란, 거의 접근하지 않는 데이터를 뜻한다. 즉, 속도보다 가격이 가장 중요한 경우에 사용되는 방법이다.

EBS 다중 연결은 동일한 가용 영역(AZ)에 있는 여러 EC2 인스턴스가 하나의 Provisioned IOPS SSD(io1 또는 io2) EBS 볼륨을 동시에 연결할 수 있는 기능이다. 연결된 모든 EC2 인스턴스는 해당 볼륨에 대해 읽기와 쓰기를 수행할 수 있으며, 주로 고가용성 클러스터 환경에서 사용된다.

 

EBS 암호화(EBS Encryption)를 활성화하여 볼륨을 생성하면, 볼륨에 저장되는 데이터가 자동으로 암호화된다. 또한 EC2 인스턴스와 EBS 볼륨 간에 전송되는 데이터도 암호화되며, 암호화된 볼륨의 스냅샷과 해당 스냅샷으로부터 생성된 새로운 볼륨도 모두 암호화된다.

2) EC2 인스턴스 스토어

EC2 인스턴스 스토어는 EC2 서버에 물리적으로 연결된 로컬 디스크이다. 쉽게 말해, EBS가 네트워크를 통해 연결된 저장소라면, 인스턴스 스토어는 EC2 컴퓨터 내부에 직접 장착된 SSD/HDD라고 생각하면 된다. 인스턴스 스토어는 초고속 데이터 처리, 대용량 캐시, 임시 파일 저장이나 버퍼 등과 같이 매우 빠른 디스크 성능이 필요할 때 사용한다.

 

다만, 인스턴스 스토어는 영구적인 저장소가 아니다. 즉, EC2를 중지하거나 종료하면 안에 있던 데이터가 사라진다. 따라서 캐시나 버퍼, 스크래치 데이터, 임시 파일 등의 저장용도로 사용하기 적당하다. 이때, 인스턴스 스토어의 백업을 AWS가 자동으로 지원해주지 않기 때문에 필요하면 S3나 EBS로 직접 복사해서 백업해야 한다.

3) Amazon EFS (Elastic File System)

EFS

 

EFS란, AWS에서 제공하는 관리형 파일 스토리지 시스템으로 여러 EC2 인스턴스가 동시에 공유해서 사용할 수 있는 네트워크 드라이브이다. AWS가 NFS(Network File System) 서버를 직접 관리해준다는 의미는 디스크 관리, 백업, 장애 처리 등등을 할 필요 없이 EFS를 생성해서 EC2에 연결하기만 하면 되는 것이다. EFS는 여러 AZ에 데이터를 자동으로 저장하기 때문에, 장애에 강하고 고가용성을 제공한다. 또한 자동 확장 기능을 제공하며, 사용한 만큼 비용을 지불한다. 다만 가격이 EBS보다 비싸다는 단점이 있다.

 

EFS는 여러 웹 서버가 같은 이미지나 파일 등을 사용해야 하는 경우, 워드프레스, 데이터 공유 등의 작업에 사용되며, 보안 그룹으로 EC2의 접근을 제어한다. NFS v4.1 프로토콜을 사용하며, 리눅스 기반 AMI를 지원하기 때문에 윈도우는 지원하지 않는다. AWS KMS를 이용해 암호화 가능하고, 리눅스 표준 파일 시스템 인터페이스를 지원한다.

 

EFS는 수천 개의 EC2 인스턴스가 동시에 하나의 EFS를 사용할 수 있고, 초당 10GB 이상의 데이터를 읽고 쓸 수 있으며, Petabyte 크기까지 자동 확장이 가능하다. EFS는 생성 시 Performance Mode에서 동작 방식을 설정할 수 있는데, 빠른 응답 속도에 초점을 맞춘 것이 기본값이고, Throughput에 초점을 맞춘 Max I/O 모드를 선택할 수도 있다. 또한, Throughput Mode를 통해 초당 얼마나 데이터를 읽고 쓸 것인지를 정할 수 있는데, 기본 모드인 Bursting은 1TB 당 50MB/s를 지원하며, 순간적으로 100MB/s까지 빨라질 수 있다. Provisioned 모드에서는 직접 Throughput을 지정할 수 있으며, Elastic 모드에서는 AWS가 자동으로 속도를 늘렸다 줄였다 할 수 있다.

 

EFS에는 3가지의 스토리지 계층이 존재한다. 자주 사용하는 파일을 저장하는 가장 기본적인 저장소인 Standard, 가끔 사용하는 파일을 저장하는 EFS Infrequent Access (EFS-IA), 거의 사용하지 않는 데이터를 저장하는 Archive로 구성된다. 수명주기 정책을 사용자가 설정하면 AWS가 자동으로 정책에 따라 데이터를 스토리지 계층마다 이동시킨다. 예를 들어, 30일동안 액세스되지 않은 파일이 있다면 EFS-IA로 자동으로 옮길 수 있다. EFS가 EBS보다 비싸지만, 스토리지 계층을 잘 활용하면 비용을 절약할 수 있다.

8. AMI

AMI 사용 예시

 

AMI(Amazon Machine Image)란, EC2 인스턴스를 생성하기 위한 템플릿, 즉 미리 세팅한 컴퓨터의 복사본이라 생각하면 된다. AMI를 사용하면 매번 EC2를 만들 때마다 필요한 과정을 생략하고 빠르게 원하는 서버를 생성할 수 있다. AMI는 운영체제, 설치한 프로그램, 설정, 모니터링 도구, 라이브러리 등이 저장된다. 이때, AMI는 특정 리전에서만 사용할 수 있기 때문에 필요하면 AMI를 다른 리전으로 복사해서 사용할 수 있다.

 

EC2에서 사용하는 AMI에는 여러 종류가 있다. 우선, Public AMI는 AWS가 기본적으로 제공하는 이미지로, Amazon Linux, Ubuntu, Red Hat 등이 있다. 직접 AMI를 커스텀하여 저장하는 것도 가능하며, 다른 회사나 개발자가 만든 AMI를 가져와 사용할 수도 있다.

'클라우드 > AWS' 카테고리의 다른 글

Elastic Beanstalk란?  (0) 2026.07.12
Route 53에 대해 알아보자  (0) 2026.07.12
Amazon RDS, Aurora, Elastic Cache  (0) 2026.07.11
AWS의 Load Balancing 도구를 알아보자  (0) 2026.07.10
AWS IAM에 대해 알아보자  (1) 2026.06.21