EC2(Elastic Compute Cloud)는 AWS에서 제공하는 가상 서버 서비스입니다. 물리적 서버를 구매하지 않고도 몇 분 안에 원하는 사양의 서버를 시작하고, 필요 없어지면 바로 종료하여 비용을 절감할 수 있습니다. EC2는 AWS에서 가장 기본이 되는 컴퓨팅 서비스입니다.
Instance는 실제로 실행 중인 EC2 가상 서버 하나를 의미합니다. 인스턴스를 시작하면 선택한 AMI를 기반으로 운영체제가 부팅되고, 지정한 사양의 컴퓨팅 자원이 할당됩니다.
인스턴스 유형은 t3.micro, m5.large, c6i.xlarge처럼 계열과 크기로 표현됩니다.
인스턴스 유형 명명 규칙
c 6 i . x l a r g e
| | | |
| | | +-- 크기 (nano/micro/small/medium/large/xlarge/2xlarge ...)
| | +--------- 세대 추가 속성 (i=NVMe, g=GPU, a=ARM 등)
| +------------ 세대 번호
+--------------- 계열 (t=범용/m=메모리균형/c=컴퓨팅최적/r=메모리최적 등)
주요 인스턴스 계열은 다음과 같습니다.
AMI(Amazon Machine Image)는 인스턴스를 시작하는 데 필요한 운영체제, 소프트웨어, 설정이 담긴 템플릿입니다.
AMI는 세 종류로 나뉩니다.
AMI는 Region 단위로 존재합니다. 다른 Region에서 사용하려면 AMI를 복사해야 합니다.
Key Pair는 EC2 인스턴스에 SSH로 접속하기 위한 공개키/개인키 쌍입니다.
인스턴스 생성 시 Key Pair를 선택하면, 공개키는 EC2 서버의 ~/.ssh/authorized_keys에 저장됩니다. 개인키(.pem 파일)는 사용자가 로컬에 보관합니다.
로컬 PC EC2 인스턴스
+------------------+ +------------------+
| 개인키 (*.pem) | SSH 인증 | 공개키 |
| |--------------->| (authorized_keys)|
+------------------+ +------------------+
접속 명령: ssh -i "my-key.pem" ec2-user@<IP주소>
개인키는 한 번만 다운로드할 수 있으며, 분실하면 재발급이 불가능합니다. 분실 시에는 새 Key Pair를 생성하고 AMI를 통해 인스턴스를 재생성해야 합니다.
EC2 인스턴스를 시작할 때 기본으로 할당되는 공인 IP는 인스턴스를 중지·재시작하면 변경됩니다. Elastic IP는 AWS 계정에 고정된 공인 IP를 할당받아 언제든 원하는 인스턴스에 연결할 수 있는 기능입니다.
Elastic IP는 인스턴스에 연결되지 않은 상태로 방치하면 비용이 발생합니다. 사용하지 않을 때는 릴리스(반납)해야 합니다.
User Data는 인스턴스가 처음 부팅될 때 자동으로 실행되는 스크립트입니다.
#!/bin/bash
# 아래 스크립트가 인스턴스 최초 부팅 시 자동 실행됨
yum update -y
yum install -y nginx
systemctl enable nginx
systemctl start nginx
이를 통해 인스턴스 시작 직후 웹 서버 설치, 환경 변수 설정, 애플리케이션 배포 등을 자동화할 수 있습니다. Auto Scaling과 함께 사용할 때 특히 유용합니다.
Pending(준비) --> Running(실행중) --> Stopping(중지중) --> Stopped(중지)
| |
| v
+---------> Shutting-down --> Terminated(삭제)