Cloud & Platform
3강. EC2
3강. EC2 학습 내용을 정리한 백필 노트입니다.
이 글은 2025년 학습 기록을 블로그 형식으로 정리한 백필 노트입니다.
AWS 서비스의 3대장
- EC2
- RDS
- S3
1. EC2 (Elastic Compute Cloud)
클라우드에서 탄력적으로 컴퓨팅 자원을 제공하는 서비스입니다.
특징
- 가상 서버 서비스 (Virtual Machine): 사용자에게 가상의 컴퓨터를 제공합니다.
- 재구성 가능한 컴퓨팅 리소스: 필요에 따라 사양을 변경할 수 있습니다.
- 쉬운 확장/축소: 컴퓨팅 용량을 쉽게 늘리거나 줄일 수 있습니다.
- 다양한 인스턴스 타입: 사용 용도에 맞는 다양한 서버 타입을 제공합니다.
- 사용한 만큼 과금 (Pay-as-you-go): 사용한 시간에 대해서만 비용을 지불합니다.
EC2 인스턴스 패밀리 종류
- 범용 (M): 컴퓨팅, 메모리, 네트워크 리소스가 균형 잡힌 유형입니다.
- 컴퓨팅 최적화 (C): CPU 성능이 중요한 작업에 적합하며, 성능 대비 가격이 저렴합니다.
- 메모리 최적화 (R): 메모리 사용량이 많은 애플리케이션을 위한 유형입니다.
- 성능 순간 확장 (T): 평소에는 기본 성능으로 동작하다가 필요시 순간적으로 성능을 높일 수 있는 인스턴스입니다.
- GPU 인스턴스 (G, P): 그래픽 처리 및 머신러닝 등 GPU 가속이 필요한 작업에 사용됩니다.
- 높은 I/O (I): SSD 기반의 초고속 스토리지가 필요한 애플리케이션에 적합합니다.
- 고밀도 스토리지 (D): 디스크 처리량이 높고, 데이터 저장 비용이 저렴한 유형입니다.
EC2 인스턴스의 구분 (예: t3.large)
- t: 인스턴스 패밀리 (용도)
- 3: 인스턴스 세대 (출시 버전)
- large: 인스턴스 사이즈 (사양)
EC2 과금 옵션
- On-Demand (온디맨드):
- 약정 없이 사용한 만큼 초 단위로 비용을 지불합니다.
- 트래픽 예측이 어렵거나 신규 서비스를 테스트할 때 유용합니다.
- Reserved Instances (RI, 예약 인스턴스):
- 1년 또는 3년 사용을 약정하여 큰 할인(40~70%)을 받는 방식입니다.
- 지속적으로 사용할 안정적인 서버에 적합합니다.
- Spot Instances (스팟 인스턴스):
- AWS의 유휴 컴퓨팅 자원을 경매 방식으로 저렴하게(최대 80~90% 할인) 사용하는 방식입니다.
- AWS가 해당 자원을 필요로 할 경우 중단될 수 있어, 단기적이고 중단 가능성이 있는 작업에 유리합니다.
2. Elastic IP (탄력적 IP)
클라우드 환경을 위해 설계된 정적(고정) IPv4 주소입니다.
특징
- AWS 계정에 연결: 특정 인스턴스가 아닌 AWS 계정에 할당됩니다.
- 탄력성: 생성된 IP 주소를 다른 EC2 인스턴스에 자유롭게 붙였다 뗄 수 있습니다.
- 리전당 5개 제한: 기본적으로 한 리전에서 계정당 5개까지 생성할 수 있습니다.
- 주요 용도: EC2 인스턴스에 장애가 발생하면, 새로운 인스턴스를 생성하고 기존에 사용하던 탄력적 IP를 연결하여 IP 주소 변경 없이 서비스를 빠르게 복구할 수 있습니다.
- 과금:
- 실행 중인 EC2 인스턴스에 연결되어 있으면 무료입니다.
- 인스턴스에 연결되어 있지 않거나, 중지된 인스턴스에 연결된 경우 시간당 약간의 비용(0.005$)이 과금됩니다.
3. Security Group (보안 그룹)
EC2 인스턴스에 대한 트래픽을 제어하는 가상 방화벽 역할을 합니다.
특징
- 트래픽 제어:
- 인바운드(Inbound): 외부에서 인스턴스로 들어오는 트래픽을 제어합니다.
- 아웃바운드(Outbound): 인스턴스에서 외부로 나가는 트래픽을 제어합니다.
- 허용 규칙만 생성 가능: "특정 IP와 포트의 접근을 허용"하는 규칙만 설정할 수 있으며, "거부" 규칙은 생성할 수 없습니다.
- 기본 아웃바운드 정책: 기본적으로 모든 아웃바운드 트래픽을 허용합니다.
- 유연한 규칙 변경: 언제든지 필요에 따라 규칙을 추가하거나 제거할 수 있습니다.
4. 실습 과정 요약
(실습 1) EC2 인스턴스 생성
- 이름 설정: 식별하기 쉬운 이름(예:
MyFirstServer)을 지정합니다. - AMI 선택: 인스턴스에 설치할 운영체제 템플릿(예:
Ubuntu Server 22.04 LTS)을 선택합니다. - 인스턴스 유형 선택: 서버 사양(예:
t2.micro- 프리티어)을 선택합니다. - 키 페어 생성: SSH 접속에 사용할 키 페어(암호화 키)를 생성하고, 프라이빗 키 파일(
.pem또는.ppk)을 다운로드합니다. 이 파일은 최초 생성 시에만 받을 수 있으므로 안전하게 보관해야 합니다. - 네트워크 설정: 방화벽 역할을 할 보안 그룹을 생성하고, SSH 접속(22번 포트)을 허용하는 인바운드 규칙을 추가합니다.
- 스토리지 구성: 운영체제가 설치될 루트 볼륨의 크기(기본값 8GiB)를 설정합니다.
- 인스턴스 시작: 설정을 최종 확인하고 인스턴스를 시작합니다.
(실습 2) SSH로 EC2 인스턴스 접속
Linux/macOS
- 생성된 EC2 인스턴스의 퍼블릭 IPv4 주소를 복사합니다.
- 터미널에서
chmod 600 my-key.pem명령어로 키 파일의 권한을 변경합니다. ssh -i my-key.pem ubuntu@<퍼블릭_IP_주소>명령어를 입력하여 접속합니다.
Windows (PuTTY 사용)
- PuTTY를 실행하고 Host Name에 인스턴스의 퍼블릭 IP 주소를 입력합니다.
Connection > SSH > Auth > Credentials메뉴로 이동하여 다운로드한.ppk키 파일을 지정합니다.- Open 버튼을 눌러 접속합니다.
(실습 3) Elastic IP 주소 사용
- EC2 메뉴의 탄력적 IP에서 새 주소를 할당받습니다.
- 할당된 IP를 선택하고 탄력적 IP 주소 연결을 클릭합니다.
- 생성해 둔 EC2 인스턴스를 선택하여 연결합니다.
- 인스턴스의 퍼블릭 IP가 할당된 탄력적 IP로 변경된 것을 확인하고, 이 IP로 SSH 접속을 테스트합니다.
- 테스트 후에는 연결 해제와 릴리스를 통해 자원을 반납하여 불필요한 과금을 방지합니다.
(실습 4) 보안 규칙 추가/삭제
- 보안 그룹 메뉴에서 인스턴스와 연결된 보안 그룹을 선택합니다.
- 인바운드 규칙 편집으로 이동하여 규칙 추가를 누릅니다.
- 예를 들어,
사용자 지정 TCP유형, 포트8000, 소스Anywhere-IPv4 (0.0.0.0/0)규칙을 추가하고 저장합니다. - 규칙을 삭제하려면 다시 편집 화면으로 들어가 해당 규칙 옆의 삭제 버튼을 누르고 저장합니다.
(실습 5) EC2 인스턴스 종료
- EC2 인스턴스 목록에서 종료할 인스턴스를 선택합니다.
- 인스턴스 상태 메뉴에서 **인스턴스 종료(Terminate)**를 선택합니다.
- 확인 창에서 종료를 누르면 인스턴스가 영구적으로 삭제됩니다.
- 주의: 클라우드는 사용한 만큼 요금을 청구하므로, 실습이 끝난 후에는 사용하지 않는 모든 리소스(EC2, Elastic IP 등)를 제거하는 것이 중요합니다.