1. 2분 만에 전 세계 어디든 서버를 만들 수 있다
과거에는 서버를 준비하는 데 몇 주가 걸렸습니다. 장비를 주문하고, 배송을 기다리고, 설치하고, 운영체제를 올리는 과정이 필요했습니다.
AWS EC2를 사용하면 이 모든 과정이 단 2분으로 줄어듭니다. 몇 가지 옵션을 선택하고 버튼을 클릭하면 인터넷에 연결된 서버가 즉시 준비됩니다.
2. EC2 인스턴스란?
**EC2(Elastic Compute Cloud)**는 AWS에서 가상 서버를 빌려주는 서비스입니다. 여기서 만들어지는 각각의 가상 서버를 **인스턴스(Instance)**라고 부릅니다.
EC2의 Elastic(탄력적)이라는 단어는 서버 사양을 언제든지 자유롭게 바꿀 수 있다는 의미입니다. 트래픽이 갑자기 늘어나면 더 큰 인스턴스로 업그레이드하고, 트래픽이 줄면 다시 작은 인스턴스로 다운그레이드할 수 있습니다.
3. 인스턴스 유형 선택 – t2.micro와 프리티어
인스턴스 유형은 서버의 CPU, 메모리, 네트워크 성능을 결정합니다. 이름에 패턴이 있습니다.
t는 범용 버스트 가능 유형, m은 범용, c는 컴퓨팅 최적화, r은 메모리 최적화를 나타냅니다. 뒤의 숫자는 세대(높을수록 최신)이고, micro, small, medium, large는 크기입니다.
t2.micro 또는 t3.micro는 vCPU 1개, 메모리 1GB의 가장 작은 사양입니다. 프리티어로 월 750시간 무료 사용이 가능합니다. 한 달이 약 720시간이므로 인스턴스 하나를 1년 내내 무료로 운영할 수 있습니다.
4. AMI(운영체제) 선택하기
**AMI(Amazon Machine Image)**는 인스턴스의 운영체제와 기본 소프트웨어가 담긴 이미지입니다.
처음 사용자에게는 Ubuntu Server 22.04 LTS를 추천합니다. 무료이고 커뮤니티 자료가 풍부합니다. 프리티어 사용 가능 배지를 확인합니다.
다른 선택지로는 Amazon Linux 2(AWS 최적화 버전), Debian, CentOS 등이 있습니다. 기존에 익숙한 운영체제를 선택해도 됩니다.
5. 보안 그룹 – 서버의 방화벽 설정
**보안 그룹(Security Group)**은 EC2 인스턴스에 들어오고 나가는 트래픽을 제어하는 가상 방화벽입니다.
인스턴스 생성 시 기본으로 SSH(22번 포트)가 허용됩니다. 용도에 따라 아래 포트를 추가로 열어줍니다.
웹 서버를 운영할 경우 HTTP(80번)와 HTTPS(443번)를 추가합니다. 소스(출처)를 0.0.0.0/0으로 설정하면 전 세계 어디서든 접속 가능합니다.
보안 강화를 위해 SSH(22번) 포트의 소스는 내 IP로 제한하는 것이 좋습니다. 전 세계에서 SSH 로그인 시도가 들어오는 것을 막아줍니다.
보안 그룹 설정은 인스턴스 생성 후에도 언제든지 수정할 수 있습니다.
6. 키 페어 발급과 SSH 접속
AWS EC2는 비밀번호 대신 **키 페어(Key Pair)**를 사용해 SSH로 접속합니다.
인스턴스 생성 시 새 키 페어 만들기를 선택하고 이름을 입력합니다. RSA 방식으로 .pem 파일을 다운로드합니다. 이 파일은 딱 한 번만 다운로드되며 분실하면 복구할 수 없습니다.
SSH 접속 방법입니다. Mac/Linux 터미널에서 키 파일 권한을 먼저 변경합니다.
chmod 400 ~/downloads/내키파일.pem
이후 아래 형태로 접속합니다.
ssh -i ~/downloads/내키파일.pem ubuntu@인스턴스공인IP
7. 탄력적 IP로 고정 주소 확보하기
EC2 인스턴스는 기본적으로 재시작할 때마다 퍼블릭 IP가 바뀝니다. 도메인을 연결했다면 IP가 바뀔 때마다 DNS를 다시 설정해야 하는 번거로움이 생깁니다.
**탄력적 IP(Elastic IP)**를 할당하면 재시작해도 동일한 IP를 유지합니다.
EC2 콘솔 좌측 메뉴에서 탄력적 IP를 클릭합니다. 탄력적 IP 주소 할당 버튼을 클릭합니다. 생성된 IP를 선택하고 작업 > 탄력적 IP 주소 연결을 클릭합니다. 연결할 인스턴스를 선택합니다.
주의사항으로, 탄력적 IP는 인스턴스에 연결해서 사용할 때는 무료이지만 연결하지 않은 채 방치하면 시간당 요금이 발생합니다. 인스턴스를 종료할 때 탄력적 IP도 함께 해제(릴리즈)해야 합니다.
8. 인스턴스 절약하는 방법
**인스턴스 중지(Stop)**를 활용합니다. 사용하지 않을 때 인스턴스를 중지하면 EC2 요금이 발생하지 않습니다. EBS 스토리지 요금만 계속 청구됩니다.
**인스턴스 종료(Terminate)**는 인스턴스를 완전히 삭제합니다. 모든 요금이 중단되지만 데이터도 함께 삭제됩니다.
중지와 종료를 헷갈리지 않도록 주의합니다. 연습 목적으로 만든 인스턴스는 작업이 끝난 후 반드시 종료(Terminate)해야 불필요한 비용을 막을 수 있습니다.
9. 정리 및 다음 단계
오늘 배운 핵심을 정리합니다.
- EC2는 AWS의 가상 서버 서비스이며 필요에 따라 사양을 자유롭게 조정할 수 있습니다.
- 프리티어로 t2.micro 또는 t3.micro 인스턴스를 1년간 무료 사용할 수 있습니다.
- 보안 그룹은 인스턴스의 방화벽으로 필요한 포트만 열어야 합니다.
- 탄력적 IP로 재시작해도 IP가 바뀌지 않게 할 수 있습니다.
- 사용하지 않는 인스턴스는 중지 또는 종료해 비용을 절약합니다.
다음 글에서는 AWS S3로 파일 저장소를 만들고 이미지를 업로드하는 방법을 알아보겠습니다.