Type something to search...
AWS EC2 입문: 나만의 첫 클라우드 서버 구축하기

AWS EC2 입문: 나만의 첫 클라우드 서버 구축하기

Amazon EC2는 클릭 몇 번으로 AWS 데이터 센터의 가상 서버를 빌려 쓰는 서비스이고, 프리티어 덕분에 학습용으로도 부담이 적습니다. 첫 인스턴스는 리전, AMI, 인스턴스 유형, 키 페어, 보안 그룹, 스토리지 여섯 가지만 설정하면 만들 수 있고, 이후 터미널에서 SSH로 접속합니다.

웹 애플리케이션에 왜 서버가 필요할까?

내 컴퓨터의 로컬 호스트(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는 가장 기초적인 서비스이지만, 클라우드 인프라를 이해하는 첫 단추입니다. 사용하지 않을 때는 인스턴스를 꼭 '중지'하거나 '종료(삭제)'하여 요금 폭탄을 방지하는 습관도 잊지 마세요!

Related Post

GitHub Actions로 시작하는 완벽한 CI/CD 파이프라인 자동화

GitHub Actions로 시작하는 완벽한 CI/CD 파이프라인 자동화

CI/CD는 실수하기 쉬운 수동 배포를 자동화된 빌드·테스트·릴리즈로 바꾸는 방법론이고, GitHub Actions는 GitHub 리포지토리 안에서 바로 동작하기 때문에 가장 쉽게 도입할 수 있는 도구 중 하나입니다. .github/workflows/에 YAML 파일 하나만 두면 푸시할 때마다 테스트가 자동으로 돌아갑니다. 수동 배포는 왜 문제

백엔드 개발자를 위한 필수 리눅스(Linux) 터미널 명령어 총정리

백엔드 개발자를 위한 필수 리눅스(Linux) 터미널 명령어 총정리

클라우드 서버나 도커 환경을 다루려면 몇 가지 핵심 리눅스 터미널 명령어만 알면 됩니다. 탐색(pwd, ls, cd), 파일 조작(mkdir, cp, mv, rm), 로그 확인(cat, less, tail, grep), 시스템 관리(sudo, ps, kill, chmod)입니다. 처음부터 모든 명령어를

클라우드 네이티브 아키텍처 핵심 가이드: MSA부터 쿠버네티스까지

클라우드 네이티브 아키텍처 핵심 가이드: MSA부터 쿠버네티스까지

클라우드 네이티브(Cloud Native)는 클라우드의 유연성, 확장성, 탄력성을 100% 활용할 수 있도록 애플리케이션의 설계 방식과 운영 문화 자체를 처음부터 클라우드 환경에 맞게 새로 구축하는 패러다임입니다. 핵심 기둥은 마이크로서비스(MSA), 컨테이너와 쿠버네티스, CI/CD, 데브옵스 문화 네 가지입니다. 왜 모두가 '클라우드 네이티브'

웹어셈블리(WebAssembly)의 혁신: 브라우저를 넘어 클라우드 네이티브로

웹어셈블리(WebAssembly)의 혁신: 브라우저를 넘어 클라우드 네이티브로

웹어셈블리(Wasm)는 이제 브라우저를 벗어났습니다. WASI 덕분에 서버, 엣지 플랫폼, 플러그인 시스템에서도 실행되며, 가볍고 샌드박스로 격리되며 이식성이 높은 도커 컨테이너의 대안 혹은 보완재로 떠올랐습니다. 2026년 현재 서버리스·엣지 컴퓨팅·플러그인 아키텍처에서 가장 성숙했고, 도구와 언어 지원은 아직 따라잡는 중입니다. 웹어셈블리란 무

제로 트러스트 아키텍처(ZTA): 클라우드 시대의 보안 패러다임 전환

제로 트러스트 아키텍처(ZTA): 클라우드 시대의 보안 패러다임 전환

제로 트러스트 아키텍처(ZTA)는 "내부는 안전하고 외부는 위험하다"는 낡은 모델을 하나의 원칙으로 대체합니다. 어떤 사용자·기기·애플리케이션도 기본적으로 신뢰하지 않고 모든 요청을 검증하라는 것입니다. 2026년 현재 이는 지속적인 인증, 최소 권한, 마이크로 세그멘테이션, VPN을 대신하는 ZTNA, 그리고 AI와 SASE 기반 통합 플랫폼으로 구체화

플랫폼 엔지니어링(Platform Engineering): DevOps의 다음 진화 단계

플랫폼 엔지니어링(Platform Engineering): DevOps의 다음 진화 단계

플랫폼 엔지니어링은 인프라의 복잡성을 '골든 패스' 뒤로 감춘 셀프 서비스형 내부 개발자 플랫폼(IDP)을 만들어, 애플리케이션 개발자가 인프라 전문가가 되지 않고도 안전하고 빠르게 배포할 수 있게 하는 분야입니다. DevOps를 대체하는 것이 아니라 DevOps 철학을 조직 전체 규모로 확장하는 것입니다. "You build it, you run

엣지 컴퓨팅(Edge Computing)의 부상: 클라우드의 한계를 극복하는 초저지연 아키텍처

엣지 컴퓨팅(Edge Computing)의 부상: 클라우드의 한계를 극복하는 초저지연 아키텍처

엣지 컴퓨팅이란 무엇이고, 왜 중요한가? 엣지 컴퓨팅(Edge Computing) 은 연산의 중심을 중앙 클라우드에서 데이터가 생기는 현장 가까이(Edge)로 옮겨, 기기가 먼 서버를 기다리지 않고 밀리초 단위로 반응하게 하는 기술입니다. 중앙 집중식 클라우드의 가장 큰 문제인 '지연 시간(Latency)' 과 **'네트워크 대역폭

클라우드 탈출 러시: 2026년, 기업들이 AWS를 떠나 베어메탈로 돌아가는 이유

클라우드 탈출 러시: 2026년, 기업들이 AWS를 떠나 베어메탈로 돌아가는 이유

**클라우드 탈출(Cloud Repatriation)**은 AWS나 Azure 같은 하이퍼스케일 클라우드에 올려 둔 워크로드를 베어메탈(Bare Metal) 서버나 코로케이션 시설로 되돌리는 흐름입니다. 2026년 기업들이 이 길을 택하는 가장 큰 이유는 비용입니다. 트래픽이 안정적이고 예측 가능한 서비스라면 하드웨어를 직접 소유하는 편이 클라우드

클라우드 주권 시대의 생존법: 2026년 지오패트리에이션(Geopatriation) 실전 가이드

클라우드 주권 시대의 생존법: 2026년 지오패트리에이션(Geopatriation) 실전 가이드

**지오패트리에이션(Geopatriation)**은 지정학적 리스크를 줄이기 위해 기업의 데이터, 인프라, 개발 환경을 우호적인 권역이나 자사가 속한 규제 관할권 안으로 전략적으로 옮기는 움직임입니다. 가트너(Gartner)가 2026년 핵심 전략 기술 트렌드로 지목했으며, '우리 데이터는 법적으로 어디에 있는가'를 인프라 의사결정의 첫 질문으로 만들고

쿠버네티스(Kubernetes) 완벽 이해: 도커를 넘어선 컨테이너 오케스트레이션

쿠버네티스(Kubernetes) 완벽 이해: 도커를 넘어선 컨테이너 오케스트레이션

쿠버네티스(Kubernetes, k8s)는 수십, 수백 개의 컨테이너를 여러 서버에 걸쳐 배포·확장·관리하는 일을 자동화하는 컨테이너 오케스트레이션 도구입니다. 도커가 애플리케이션 하나를 패키징한다면, 쿠버네티스는 선언한 상태대로 컨테이너 무리를 유지하며 재시작·재배치·확장을 알아서 처리합니다. 쿠버네티스(Kubernetes)란 무엇인가? 쿠버네

구글 드라이브(Google Drive) 활용 팁

구글 드라이브(Google Drive) 활용 팁

구글 드라이브의 업무 효율을 가장 빠르게 높이는 방법은 오프라인 모드, 단축키, 고급 검색, 버전 기록을 활용하는 것입니다. 여기에 실시간 동시 편집과 데스크톱용 구글 드라이브까지 더하면, 드라이브는 단순한 저장소를 넘어 협업 플랫폼이 됩니다. 구글 드라이브, 어떤 기능부터 쓰면 좋을까? 다음 네 가지 기능이 가장 빠르게 효과를 냅니다. 1.