EC2
EC2 — 클라우드의 가상 머신
EC2 (Elastic Compute Cloud) 는 AWS 가 가장 처음 공개한 컴퓨팅 서비스로, 클라우드의 "가상 머신" 추상을 대중화했습니다. 매니지드 서비스가 늘어나면서 직접 사용 비중은 다양해졌지만 자유도와 비용 통제에서 기본이 되는 자리입니다.
1. EC2 에 대한 이야기
| 시기 | 사건 |
|---|---|
| 2006-08 | EC2 베타 공개. |
| 2008 | EBS (Elastic Block Store). |
| 2009 | Reserved Instance · Spot Instance. |
| 2017 | Nitro 시스템 — 가상화 오버헤드 축소. |
| 2018~ | Graviton (Arm) — g1·g2(2020)·g3+(2021~). |
| 2019 | Savings Plans. |
EC2 는 가상 머신 + 부속 자원 (EBS · ENI · Security Group) 으로 구성된 컴퓨팅 단위입니다.
2. AMI
인스턴스를 만들 때 사용하는 이미지. OS + 사전 설치된 소프트웨어 + 부트로더가 묶인 형태입니다. AWS 공식 AMI (Amazon Linux · Ubuntu · Debian · Windows Server) 와 사용자 커스텀 AMI 가 있습니다.
같은 AMI 에서 만든 인스턴스는 같은 초기 상태에서 시작합니다. 운영에서는 빌드 파이프라인 (Packer 등) 으로 골든 AMI 를 만드는 흐름이 흔합니다.
3. 인스턴스 타입 family
이름 첫 글자가 워크로드 종류를 가리킵니다.
| family | 성격 |
|---|---|
| t (t3 · t4g) | 버스터블. 평소 baseline + 크레딧 기반 버스트. 저비용. |
| m (m5 · m6g · m7i) | 범용. CPU·메모리·네트워크 균형. |
| c (c6g · c7g) | 컴퓨팅 최적화. 높은 vCPU 대 메모리 비율. |
| r (r6g · r7i) | 메모리 최적화. |
| x · z | 초고메모리. |
| g · p | GPU. ML · 그래픽. |
| i · d | 스토리지 최적화. NVMe · HDD. |
세대 번호가 클수록 새 하드웨어. g 접미사 (예: c7g) 는 Arm (Graviton). 같은 vCPU·메모리에서 Graviton 이 가격 대비 성능이 좋다는 보고가 자주 있습니다.
4. 키 페어
EC2 SSH 접근의 기본 인증. 인스턴스 시작 시 공개키가 OS 의 ~/.ssh/authorized_keys 에 주입됩니다 (Amazon Linux 기준 ec2-user).
chmod 400 my-key.pem
ssh -i my-key.pem ec2-user@<public-ip>
운영에서는 키 페어 대신 SSM Session Manager 가 자주 권장됩니다 — 22 포트 노출 없이 IAM 인증으로 셸을 엽니다.
5. 사용자 데이터
인스턴스 시작 시 OS 위에서 한 번 실행되는 스크립트. 부트스트랩 (패키지 설치 · 서비스 시작) 에 씁니다.
#!/bin/bash
dnf install -y docker
systemctl enable --now docker
같은 결과를 골든 AMI 또는 cloud-init 설정으로 더 결정적으로 만들 수 있습니다.
6. IAM 인스턴스 프로파일
EC2 가 다른 AWS 서비스 (S3 · KMS · SSM) 를 호출할 때 자격을 부여하는 방식. 인스턴스에 액세스 키를 직접 박지 않고 역할을 붙입니다.
7. EBS 와 인스턴스 스토어
| 종류 | 메모 |
|---|---|
| EBS | 네트워크 연결 블록 스토리지. 인스턴스 종료 후에도 데이터 유지. 스냅샷. |
| 인스턴스 스토어 | 호스트의 로컬 디스크. 정지/종료 시 사라짐. 일부 타입만. |
EBS 의 볼륨 타입 (gp3 · io2 · st1 · sc1) 에 따라 IOPS · 처리량 · 비용이 다릅니다. gp3 가 일반 워크로드의 기본값.
8. 가격 모델
| 옵션 | 약정 | 할인 |
|---|---|---|
| On-Demand | 없음 | 0% |
| Reserved Instance | 1·3 년 + 타입 고정 | 큰 폭 |
| Savings Plans | 1·3 년 + 사용량 | RI 비슷, 더 유연 |
| Spot | 없음 (중단 가능) | 매우 큰 폭 |
Spot 은 잉여 용량을 사용하는 모델이라 AWS 가 회수할 수 있습니다. 회수 알림 후 약 2 분 안에 graceful shutdown. 배치 잡 · 재시작 가능한 워크로드에 어울립니다.
9. Lightsail
EC2 가 옵션이 많고 가격 계산이 복잡한 데 비해, Lightsail (2016) 은 정액제로 작은 VPS 를 빌리는 단순한 서비스입니다. 작은 사이드 프로젝트 · 블로그 · 간단 웹앱에 자주 거론됩니다. 한계는 EC2 만큼의 자유도 · 통합이 없다는 점 (VPC peering 으로 EC2 와 연결은 가능).
10. 인스턴스 시작의 일반 흐름
- AMI 선택 (Amazon Linux 2023 · Ubuntu LTS).
- 인스턴스 타입 (
t3.small같은 작은 것부터). - VPC · 서브넷.
- 키 페어 또는 SSM 활성화.
- Security Group (SSH 는 좁게, 80/443 만 공개).
- EBS 볼륨 타입·크기.
- IAM 인스턴스 프로파일.
- (옵션) 사용자 데이터 스크립트.
Auto Scaling Group — 여러 인스턴스를 같은 모양으로 띄우고 헬스체크 · 교체 · 스케일을 관리. ALB 와 결합해 가용성 · 확장성을 얻습니다.
11. 자주 걸리는 자리
t 시리즈 CPU 크레딧 소진 — 평소 사용량이 baseline 을 초과하면 크레딧이 떨어져 성능이 급락. CPU 사용률 높은 워크로드는 m/c 시리즈로.
루트 볼륨 자동 삭제 — 인스턴스 종료 시 루트 EBS 를 지우는 옵션이 기본 ON. 의도와 다르면 콘솔에서 끕니다.
퍼블릭 IP 변경 — 정지/시작 시 퍼블릭 IP 가 바뀝니다. 고정이 필요하면 EIP (미사용 EIP 는 시간당 과금).
운영 호스트의 즉흥 변경 — SSH 로 들어가 패키지를 깔고 잊어버리면 재현 불가능한 인스턴스가 됩니다. 사용자 데이터 · AMI 빌드 · IaC 로 흐름 고정.
하고픈 말
EC2 는 자유도가 높은 만큼 운영 책임도 큽니다. 작은 워크로드는 Lightsail 또는 App Runner 가 더 단순한 답이 됩니다. 본격 운영은 Auto Scaling + ALB + IAM 역할 + SSM 의 조합이 표준이고, 골든 AMI 또는 IaC 로 인스턴스의 결정성을 확보하는 편이 안전합니다.
Next
- deploying-options
- iam
EC2 문서 · 인스턴스 타입 · EBS 문서 · Spot 가이드 · Auto Scaling · SSM Session Manager · Lightsail 을 참고합니다.