
AWS EC2 입문: 나만의 첫 클라우드 서버 구축하기
나만의 서버가 필요해!
프로그래밍을 공부하고 첫 웹 애플리케이션을 만들었을 때의 기쁨은 이루 말할 수 없습니다. 하지만 내 컴퓨터의 로컬 호스트(localhost:3000)에서만 작동한다면 반쪽짜리 완성에 불과하겠죠. 전 세계 누구나 접속할 수 있도록 하려면 항상 켜져 있고 인터넷에 연결된 컴퓨터, 즉 **서버(Server)**가 필요합니다.
과거에는 서버용 컴퓨터를 직접 구매하고 네트워크 선을 연결하는 복잡한 과정이 필요했지만, 이제는 클라우드 컴퓨팅 덕분에 클릭 몇 번이면 5분 만에 강력한 가상 서버를 대여할 수 있습니다. 그중에서도 전 세계 1위 클라우드 서비스인 Amazon Web Services(AWS)의 가장 핵심적이고 기본적인 서비스, **EC2(Elastic Compute Cloud)**에 대해 알아보고 직접 인스턴스를 생성하는 과정을 살펴보겠습니다.
EC2(Elastic Compute Cloud)란 무엇인가?
EC2는 AWS에서 제공하는 크기를 탄력적으로 변경할 수 있는 가상 서버 호스팅 서비스입니다. 쉽게 말해 **"아마존의 거대한 데이터 센터에 있는 고성능 컴퓨터의 자원(CPU, RAM, 디스크)을 내가 원하는 만큼 쪼개서 빌려 쓰는 것"**입니다.
EC2의 주요 특징
- 탄력성(Elastic): 트래픽이 몰릴 때는 서버의 성능을 높이거나 개수를 늘리고(Scale-up/out), 트래픽이 줄어들면 다시 축소(Scale-down/in)하여 비용을 최적화할 수 있습니다.
- 다양한 운영체제: Linux(Ubuntu, Amazon Linux 등)는 물론 Windows Server까지 원하는 운영체제(AMI)를 선택하여 설치할 수 있습니다.
- 초 단위 과금: 서버를 켜놓은 시간만큼만 비용을 지불하는 종량제(Pay-as-you-go) 방식을 채택하고 있어 초기 인프라 구축 비용이 전혀 들지 않습니다.
- 프리티어(Free Tier): 신규 가입자는 1년 동안
t2.micro사양의 인스턴스를 매달 750시간(사실상 한 달 내내) 무료로 사용할 수 있습니다. 학습용으로 완벽하죠!
EC2 인스턴스 생성 프로세스 요약
AWS 콘솔 화면이 자주 변경되어 복잡해 보일 수 있지만, 핵심적인 설정 단계는 항상 다음과 같습니다.
1. 리전(Region) 선택
AWS 데이터 센터가 위치한 물리적인 장소를 선택합니다. 한국 사용자가 주 타겟이라면 네트워크 지연(Latency)을 최소화하기 위해 반드시 우측 상단에서 **'아시아 태평양 (서울) - ap-northeast-2'**을 선택해야 합니다.
2. AMI(Amazon Machine Image) 선택
스마트폰을 살 때 안드로이드와 iOS를 고르듯, 서버의 운영체제를 고르는 단계입니다. 초보자에게는 커뮤니티 지원이 가장 방대하고 사용하기 편한 Ubuntu Server 최신 LTS 버전을 추천합니다. 반드시 '프리 티어 사용 가능' 마크가 있는지 확인하세요.
3. 인스턴스 유형(Instance Type) 선택
서버의 하드웨어 스펙(CPU 코어 수, 메모리 용량)을 결정합니다. 프리티어가 적용되는 **t2.micro**를 선택합니다. (t3.micro가 프리티어인 리전도 있으니 마크를 꼭 확인하세요.)
4. 키 페어(Key Pair) 생성 및 다운로드
이 단계가 보안상 가장 중요합니다! EC2 서버에 원격으로 접속(SSH)하기 위한 마스터키(비밀번호 대신 사용)를 생성합니다. RSA 방식을 선택하고 .pem 형식으로 다운로드합니다.
주의: 이 키 파일은 단 한 번만 다운로드할 수 있으므로, 분실하거나 외부에 유출되지 않도록 안전한 곳에 보관해야 합니다. GitHub에 실수로 올리지 않도록 극도로 주의하세요.
5. 네트워크 및 보안 그룹(Security Group) 설정
보안 그룹은 서버를 감싸고 있는 가상의 방화벽입니다. 어떤 포트(Port)로 들어오는 트래픽을 허용할지 결정합니다.
- SSH (포트 22): 내가 원격으로 접속하여 관리하기 위해 반드시 열려 있어야 합니다. 가급적 소스 유형을 '내 IP'로 설정하여 나만 접속할 수 있게 막아두는 것이 안전합니다.
- HTTP (포트 80) / HTTPS (포트 443): 웹 서버를 구동하여 일반 사용자들이 접속하게 하려면 이 포트들을 '위치 무관(Anywhere)'으로 열어두어야 합니다.
6. 스토리지(EBS) 구성
서버의 하드디스크(SSD) 용량을 설정합니다. 프리티어는 최대 30GB까지 무료로 사용할 수 있으므로, 기본값(8GB) 대신 30GB로 늘려서 생성하는 것이 좋습니다.
터미널로 EC2 인스턴스 접속하기 (Mac/Linux 기준)
인스턴스 생성이 완료되고 '실행 중' 상태가 되면, 할당받은 '퍼블릭 IPv4 주소'를 메모해 둡니다. 이제 터미널을 열고 다운로드해둔 키 페어(.pem)를 사용하여 접속해 봅시다.
# 1. 키 페어 파일의 권한을 나만 읽을 수 있도록 변경합니다. (매우 중요!)
chmod 400 my-key-pair.pem
# 2. SSH 명령어로 서버에 접속합니다. (Ubuntu AMI의 기본 사용자 이름은 ubuntu입니다.)
ssh -i /경로/my-key-pair.pem ubuntu@퍼블릭_IP_주소
처음 접속할 때 지문을 계속할 것인지 묻는 프롬프트가 나오면 yes를 입력합니다. 터미널의 프롬프트가 ubuntu@ip-172-xx-xx-xx:~$ 형태로 변경되었다면, 축하합니다! 드디어 나만의 클라우드 서버에 접속 성공한 것입니다.
마무리
이제 이 텅 빈 우분투 서버 위에 Node.js를 설치하고 Git으로 코드를 가져와 서버를 띄울 수 있습니다. EC2는 가장 기초적인 서비스이지만, 클라우드 인프라를 이해하는 첫 단추입니다. 사용하지 않을 때는 인스턴스를 꼭 '중지'하거나 '종료(삭제)'하여 요금 폭탄을 방지하는 습관도 잊지 마세요!





