배포의 첫 단추는 EC2였습니다. 이름은 거창하지만, 쉽게 말하면 인터넷 어딘가에 있는 내 컴퓨터 한 대를 빌리는 것입니다. 이 컴퓨터가 내 앱을 24시간 켜둔 채로 손님을 맞아요. 제 노트북은 잠들어도, 카페에서 전원이 나가도, 이 빌린 컴퓨터는 지구 반대편 어느 데이터센터에서 묵묵히 깨어 있습니다.

저는 코딩을 늦게 시작한 사람입니다. 그래서 "서버를 올린다"는 말이 처음엔 무슨 우주선 조립처럼 들렸어요. 그런데 막상 해 보니, EC2 인스턴스 하나 만드는 건 온라인으로 노트북 한 대 주문하는 것과 거의 똑같더군요. 색상 고르듯 운영체제를 고르고, 사양 고르듯 성능을 고르고, 배송지 고르듯 지역을 고르는 겁니다. 이 글에서는 제가 처음 EC2를 켜던 그 밤을, 겁먹지 않도록 하나하나 손잡고 따라갈 수 있게 풀어 보겠습니다.

EC2 = Elastic Compute Cloud. 풀어 쓰면 "탄력적으로 늘였다 줄였다 할 수 있는, 클라우드 위의 컴퓨터". 어려운 이름 뒤에 있는 건 그냥 내가 원격으로 켜고 끄는 컴퓨터 한 대입니다.

EC2가 대체 뭔가요 — "내 컴퓨터 한 대 빌리기"

제가 가장 좋아하는 비유는 월세방입니다. 내 집(직접 산 서버 컴퓨터)을 짓고 관리하는 건 돈도 시간도 많이 듭니다. 전기세, 인터넷 회선, 고장 나면 수리, 이사 가면 다 버려야 하죠. 대신 월세방을 빌리면 내가 필요한 만큼만 쓰고, 필요 없어지면 방을 빼면 됩니다. EC2가 딱 그 월세방이에요. 아마존이라는 거대한 건물주가 전 세계에 데이터센터라는 거대한 아파트를 지어 놓고, 그 안의 방(컴퓨터) 하나를 시간 단위로 빌려주는 겁니다.

여기서 "가상 서버(Virtual Server)"라는 말이 나옵니다. 무섭게 들리지만 별거 아니에요. 아마존은 진짜 물리 컴퓨터 한 대를 통째로 나에게 주는 게 아니라, 그 큰 컴퓨터를 소프트웨어로 여러 칸으로 쪼개서, 그중 한 칸을 "네 것처럼 쓰라"고 내줍니다. 마치 한 채의 큰 건물을 여러 세대로 나눈 다세대 주택 같아요. 옆방에 누가 사는지 나는 알 필요도 없고, 내 방은 나만의 방처럼 쓸 수 있습니다. 이 "칸 하나"를 EC2에서는 인스턴스(Instance)라고 부릅니다. 이 글에서 "인스턴스를 만든다"는 말은 곧 "빌릴 컴퓨터 한 칸을 켠다"는 뜻입니다.

💡 클라우드(Cloud)가 뭐냐고 겁먹지 마세요. 그냥 "인터넷 너머 누군가의 컴퓨터"라는 뜻입니다. 내 데이터가 구름 위에 뜬 게 아니라, 아마존·구글·마이크로소프트 같은 회사의 데이터센터 컴퓨터에 저장되고 실행될 뿐이에요. "클라우드에 올린다"는 건 "내 노트북 말고 저 회사 컴퓨터에서 돌린다"는 말입니다.

왜 내 노트북이 아니라 EC2일까

처음엔 이런 생각이 듭니다. "내 노트북에서도 앱이 잘 도는데, 굳이 왜 빌려?" 이유는 간단합니다. 손님(사용자)이 내 앱에 접속하려면, 내 앱이 도는 컴퓨터가 항상 켜져 있고, 인터넷에서 찾아올 수 있는 주소를 가지고 있어야 합니다. 그런데 내 노트북은 잠들고, 와이파이가 바뀌고, 주소도 계속 바뀌죠. 손님한테 "제 노트북이 켜져 있을 때만 들어오세요"라고 할 순 없잖아요. EC2는 24시간 깨어 있고, 고정된 주소를 줄 수 있어서 손님을 언제든 맞을 수 있습니다.

👍 내 노트북 대신 EC2를 쓰면

  • 24시간 꺼지지 않고 앱이 살아 있어요
  • 전 세계 어디서든 접속 가능한 주소를 줘요
  • 사양이 부족하면 몇 분 만에 더 큰 급으로 갈아탈 수 있어요
  • 고장·정전·인터넷 끊김을 아마존이 관리해 줘요

👎 대신 신경 쓸 것

  • 켜 둔 시간만큼 요금이 나가요 (안 쓰면 꺼야 함)
  • 보안 설정을 내가 챙겨야 해요 (문 단속)
  • 접속용 열쇠 파일을 잃으면 번거로워져요
  • 처음엔 용어가 낯설어 겁이 나요 (이 글로 해결!)

전체 그림 먼저 — 우리가 지금 뭘 만드는가

세부 단계로 들어가기 전에, 큰 흐름을 한 장의 지도로 봅시다. 저는 뭐든 "지금 내가 전체 여정의 어디쯤에 있는지"를 알면 덜 무섭더라고요.

리전 선택
서버가 놓일 동네
AMI(OS)
우분투 설치
인스턴스 타입
사양·급 고르기
키페어
접속 열쇠(.pem)
보안 그룹
열 문 정하기
시작
공인 IP로 접속

이 여섯 칸이 오늘의 전부입니다. 하나씩 보면 정말 별거 아니에요. 아래 단계별 실전 가이드에서는 화면에서 실제로 무엇을 누르는지까지 그대로 따라갈 수 있게 정리했습니다.

단계별 실전 가이드 — 화면 따라 EC2 켜기

AWS 콘솔(관리 화면)에 로그인한 뒤, 검색창에 EC2를 치고 들어갑니다. 그다음 오른쪽 위 주황색 인스턴스 시작(Launch instance) 버튼을 누르면, 아래 순서대로 항목이 쭉 나옵니다. 하나씩 채워 봅시다.

1

리전(Region)부터 맞추기

화면 오른쪽 위에 지역 이름이 떠 있어요. 한국 손님이 많다면 서울(ap-northeast-2)로 바꿉니다. 여기서 만든 서버는 이 지역에만 생겨요. 지역을 잘못 두면 나중에 "내 서버가 어디 갔지?" 하며 헤맵니다.

2

이름 붙이기(Name)

맨 위 이름 칸에 my-first-server처럼 알아볼 이름을 적어요. 나중에 인스턴스가 여러 개가 되면 이름이 생명입니다. 저는 사주앱-prod처럼 용도를 넣어 짓습니다.

3

AMI(운영체제) 고르기

"Application and OS Images" 칸에서 우분투(Ubuntu)를 고릅니다. 프리 티어(무료 사용 대상)라는 표시가 있는 최신 LTS 버전이면 무난해요. 이게 서버 안에 깔릴 운영체제, 즉 서버의 "윈도우/맥" 역할입니다.

4

인스턴스 타입(사양) 고르기

연습·소규모라면 작고 저렴한 t3.micro 급이면 충분합니다. 여기서 CPU·메모리 같은 "급"이 정해져요. 나중에 부족하면 더 큰 걸로 갈아탈 수 있으니 처음엔 작게 시작하세요.

5

키페어(.pem) 만들고 내려받기

"Key pair" 칸에서 새 키페어 생성을 눌러 이름을 정하고, .pem 파일을 다운로드합니다. 이 파일이 서버에 들어가는 열쇠예요. 이 순간이 유일한 다운로드 기회입니다. 안전한 폴더에 잘 보관하세요.

6

보안 그룹(문) 설정

"Network settings"에서 어떤 포트를 열지 정합니다. 웹 서버라면 80(HTTP)·443(HTTPS)을 열고, 관리 접속용 22(SSH)는 가능하면 내 IP에만 열어요. 22번을 전체(0.0.0.0/0)에 열면 공격 시도가 금방 들어옵니다.

7

스토리지(디스크) 정하기

"Configure storage"에서 서버의 하드디스크 용량을 정합니다. 처음엔 기본값(프리 티어 범위)이면 충분해요. 사진·로그가 쌓이는 앱이라면 조금 넉넉히 잡되, 무작정 크게 하면 요금이 늘어납니다.

8

요약 확인 후 시작(Launch instance)

오른쪽 요약 패널에서 리전·타입·키페어·보안 그룹을 눈으로 한 번 훑고, 주황색 인스턴스 시작 버튼을 누릅니다. 1~2분 뒤 상태가 "실행 중(running)"으로 바뀌면 성공!

💡 8단계가 많아 보이지만, 실제로 처음 4개(리전·이름·OS·타입)는 클릭 몇 번이고, 진짜 신경 쓸 곳은 키페어(5)보안 그룹(6) 딱 둘입니다. 이 둘만 실수 없이 하면 나머지는 거의 기본값으로 넘어가도 돼요.

리전 — 서버가 놓일 "동네" 고르기

EC2를 만들 때 가장 먼저 정하는 건 리전(Region), 즉 서버가 놓일 동네입니다. 한국 사용자가 대부분이라면 서울(ap-northeast-2)을 고르면 응답이 빨라집니다. 가까울수록 빠르다 — 딱 그 느낌이에요.

왜 거리가 중요할까요? 인터넷 데이터도 결국 물리적으로 이동하는 신호입니다. 서울 손님이 서울 서버에 접속하면 신호가 몇십 km만 오가면 되지만, 미국 서버에 접속하면 태평양을 왕복해야 해요. 그만큼 화면이 늦게 뜹니다. 저는 이걸 택배 배송지로 이해했어요. 같은 물건이라도 서울 창고에서 보내면 다음 날 오고, 미국 창고에서 보내면 일주일 걸리잖아요. 서버 리전이 그 창고 위치입니다.

대표 리전코드이럴 때 좋아요
서울ap-northeast-2손님 대부분이 한국일 때. 가장 무난한 첫 선택.
도쿄ap-northeast-1일본 손님이 많거나, 서울에서 특정 서비스가 없을 때
싱가포르ap-southeast-1동남아 사용자가 많을 때
버지니아(미국)us-east-1글로벌 서비스·미국 손님 중심, 신기능이 가장 먼저 열리는 곳
💡 리전 실수 1위: 화면 오른쪽 위 지역이 미국(us-east-1 등)으로 되어 있는 줄 모르고 서버를 만든 뒤, 다음 날 "내 인스턴스가 사라졌다"며 당황하는 경우입니다. 인스턴스는 지역별로 따로 보여요. 만들기 전에 지역부터 서울로 맞추는 습관을 들이세요.

AMI — 서버에 깔 "운영체제" 고르기

AMI는 Amazon Machine Image의 약자인데, 어렵게 생각할 것 없이 서버에 미리 깔려 나올 운영체제(그리고 기본 소프트웨어) 한 세트라고 보면 됩니다. 새 노트북을 살 때 "윈도우 깔린 걸로 주세요, 맥OS로 주세요" 고르는 것과 똑같아요. 저는 무난하고 자료 많은 우분투(Ubuntu)를 골랐습니다.

우분투는 리눅스라는 운영체제의 한 종류입니다. 개발자 세계에서 서버용으로 가장 흔하게 쓰이는 무료 OS라, 막히면 검색했을 때 나오는 해결법이 압도적으로 많아요. 초보에겐 이 "자료가 많다"는 게 어마어마한 안전망입니다. 에러 메시지를 그대로 복사해 검색하면 대개 누군가 이미 같은 문제를 겪고 답을 남겨 놨거든요.

AMI 종류느낌초보 추천도
Ubuntu서버용 표준. 자료·예제가 가장 많음★★★★★ (이 글의 선택)
Amazon Linux아마존이 만든 리눅스. AWS와 궁합 좋음★★★★
Debian우분투의 뿌리. 안정적이나 예제는 조금 적음★★★
Windows Server윈도우 환경이 꼭 필요할 때. 요금이 더 나감★★ (특수 목적)
고민되면 우분투 최신 LTS를 고르세요. LTS는 "Long Term Support", 즉 오래 관리해 주는 안정 버전이라는 뜻입니다. 초보가 최신 실험 버전을 쓸 이유는 전혀 없어요.

인스턴스 타입 — 서버의 "급" 고르기

인스턴스 타입은 서버의 "급"입니다. 연습이라면 작고 저렴한 t3.micro 급이면 충분합니다. 자동차로 치면 경차냐 SUV냐 트럭이냐를 고르는 거예요. 처음부터 트럭(고사양)을 빌릴 필요는 없습니다. 손님이 몰리기 시작하면 그때 갈아타면 되니까요.

타입 이름을 읽는 법만 알면 덜 헷갈립니다. t3.micro에서 t는 계열(평상시엔 적게 쓰다 잠깐 확 몰릴 때 순간 성능을 내주는 "버스터블" 계열), 3은 세대(숫자가 클수록 최신), micro는 크기입니다. 크기는 대략 nano → micro → small → medium → large 순으로 커지고, 커질수록 CPU·메모리가 늘고 요금도 오릅니다.

크기 표기대략 이런 느낌이럴 때
nano / micro경차. 가볍고 저렴연습, 개인 프로젝트, 작은 앱 (t3.micro가 여기)
small / medium준중형. 조금 더 여유손님이 슬슬 늘어난 서비스
large 이상SUV·트럭. 무거운 작업용트래픽 많은 서비스, 데이터 처리
💡 "처음부터 크게 잡으면 안전하지 않나요?"라고 자주 물으세요. 답은 "아니요"입니다. 큰 인스턴스는 놀고 있어도 켜 둔 시간만큼 요금이 나가요. 클라우드의 진짜 장점은 작게 시작해서 필요할 때 키우는 것입니다. t3.micro로 시작해 부족함을 느낀 뒤 올려도 전혀 늦지 않아요. 인스턴스 타입은 몇 분이면 바꿀 수 있습니다.

키페어(.pem) — 서버로 들어가는 "열쇠"

키페어는 서버에 접속할 때 쓰는 열쇠 파일(.pem)입니다. 다운로드해서 꼭 보관해야 해요 — 잃으면 재발급이 번거롭습니다. 이걸 저는 집 열쇠로 이해했습니다. 서버라는 집에 들어가려면 이 열쇠가 있어야 하고, 이 열쇠는 세상에 사실상 한 벌뿐이에요.

"페어(pair, 한 쌍)"라는 이름이 붙은 이유가 있습니다. 열쇠가 사실 두 조각으로 되어 있거든요. 공개 키는 아마존이 서버 안에 넣어 두는 자물쇠 역할이고, 비공개 키가 바로 내가 다운로드하는 .pem 파일, 즉 그 자물쇠를 여는 열쇠입니다. 이 열쇠는 서버를 만드는 그 순간 딱 한 번만 내려받을 수 있어요. 그 창을 닫고 나면 아마존도 다시 주지 않습니다(아마존도 사본을 안 갖고 있어요).

🔑

생성할 때 바로 다운로드

키페어 생성 버튼을 누르면 .pem 파일이 딱 한 번 내려받아집니다. 이 창을 그냥 닫지 마세요. 반드시 다운로드부터 확인하세요.

📁

안전한 곳에 보관

다운로드 폴더에 방치하지 말고, 눈에 띄는 전용 폴더나 비밀번호 관리 앱의 첨부에 보관하세요. 이름도 사주앱-key.pem처럼 알아보게 지어 둡니다.

🚫

절대 공유·업로드 금지

이 파일을 카톡·이메일·깃허브(GitHub)에 올리면 남이 내 서버에 들어올 수 있어요. 소스코드 저장소에 실수로 올리는 사고가 정말 흔합니다.

🔒

권한 좁히기(리눅스/맥)

맥·리눅스에서는 chmod 400 키파일.pem 명령으로 "나만 읽기" 권한을 줘야 접속이 됩니다. 권한이 너무 열려 있으면 접속이 거부돼요(보안장치입니다).

💡 만약 .pem 파일을 잃어버렸다면? 세상이 끝난 건 아닙니다. 다만 기존 열쇠로는 그 서버에 다시 못 들어가요. 새 키페어를 만들어 서버에 다시 연결하는 복구 절차를 거쳐야 하는데, 초보에겐 꽤 번거롭습니다. 그래서 "잃지 않는 것"이 최선의 대책이에요.

보안 그룹 — 어떤 "문"을 열지 정하기

제가 가장 헷갈렸던 게 보안 그룹(Security Group)입니다. 서버로 들어오는 "문"을 어느 것만 열지 정하는 설정이에요. 저는 이걸 건물 경비실로 이해했습니다. 어떤 손님(어떤 통신)을, 어떤 문(포트)으로, 어디서 온 사람에게 열어 줄지를 정하는 방문객 명단이라고 보면 됩니다. 명단에 없는 손님은 문 앞에서 돌려보냅니다.

💡 보통 웹 서버라면 80번(http)·443번(https)을 열고, 관리 접속용 22번(SSH)은 가능하면 내 IP에만 열어두는 게 안전합니다. 22번을 모두에게 열어두면 자동 공격 시도가 금방 들어와요.

포트가 뭔가요 — 건물의 여러 출입문

"포트(Port)"는 서버라는 건물에 뚫린 여러 개의 출입문 번호라고 생각하세요. 같은 건물이라도 정문(80), 후문(443), 직원 전용문(22)이 다른 것처럼, 서버도 통신 종류마다 다른 번호의 문으로 받습니다. 각 문마다 "누구에게 열어 줄지"를 따로 정할 수 있어요.

포트용도누구에게 열까
22 (SSH)관리자가 서버 안으로 원격 접속(명령 입력)내 IP에만 (전체 개방 위험!)
80 (HTTP)일반 웹 접속(암호화 안 됨)전체(누구나) — 손님을 받아야 하니까
443 (HTTPS)보안 웹 접속(자물쇠 표시, 암호화)전체(누구나)

SSH가 뭔가요 — 서버 안으로 걸어 들어가기

웹(80·443)은 손님이 앱 화면을 보러 오는 문이라면, SSH(22번)내가 서버 내부로 들어가 직접 명령을 내리는 관리자 전용 문입니다. 아까 만든 .pem 열쇠를 쓰는 곳이 바로 여기예요. 맥·리눅스라면 터미널에서 이런 식으로 들어갑니다.

ssh -i 키파일.pem ubuntu@서버의공인IP

풀어 보면, "이 열쇠(-i 키파일.pem)를 들고, ubuntu라는 이름으로, 이 주소의 서버에 접속하겠다"는 뜻입니다. 우분투 서버의 기본 사용자 이름이 ubuntu라서 그렇게 적어요. 접속이 되면 마치 그 먼 서버 앞에 앉아 키보드를 두드리는 것처럼 명령을 내릴 수 있습니다. 처음 이게 연결됐을 때, 저는 "지구 반대편 컴퓨터에 내가 지금 들어와 있다니" 싶어 소름이 돋았어요.

22번 SSH 문을 "전체 개방(0.0.0.0/0)"으로 열면, 전 세계 자동 공격 프로그램이 밤새 열쇠를 무작위로 두드립니다. 그래서 22번은 내 IP에만 여는 게 철칙이에요. 집·회사 IP가 바뀌면 그때그때 명단을 갱신하면 됩니다.

공인 IP vs 탄력적 IP(Elastic IP) — 서버의 "주소"

서버를 켜면 아마존이 공인 IP 주소 하나를 붙여 줍니다. 이게 인터넷에서 내 서버를 찾아오는 주소예요. 마치 건물에 붙은 도로명 주소 같은 거죠. 그런데 여기 함정이 하나 있습니다. 이 기본 공인 IP는 서버를 껐다 켜면 바뀔 수 있어요. 이사 갈 때마다 집 주소가 달라지는 셈이라, 손님한테 알려 준 주소가 어느 날 안 통하게 됩니다.

그래서 나온 게 탄력적 IP(Elastic IP)입니다. 아마존에서 고정된 주소 하나를 발급받아 내 서버에 딱 붙여 두는 기능이에요. 이렇게 하면 서버를 껐다 켜도 주소가 그대로 유지됩니다. 도메인(예: myapp.com)을 연결하거나 손님에게 주소를 안내할 거라면, 이 탄력적 IP를 붙여 두는 게 마음이 편해요.

구분기본 공인 IP탄력적 IP(Elastic IP)
주소 고정서버 재시작 시 바뀔 수 있음고정 (계속 유지)
도메인 연결불안정(주소가 바뀌면 끊김)안정적으로 연결 가능
주의점발급만 하고 서버에 안 붙여 두면 요금이 붙을 수 있음
💡 탄력적 IP는 실제로 서버에 연결해 쓰고 있을 때가 정상입니다. 발급만 받아 놓고 아무 서버에도 안 붙여 방치하면(놀리면) 오히려 요금이 붙을 수 있어요. 정확한 과금 방식은 바뀔 수 있으니 결제 전 AWS 공식 요금 페이지를 꼭 확인하세요.

요금 감각 — 그리고 "안 쓸 땐 끄기"

클라우드 요금의 기본 원리는 딱 하나입니다. 켜 둔 만큼, 쓴 만큼 낸다. 전기요금이랑 똑같아요. 불(인스턴스)을 켜 두면 계량기가 돌고, 끄면 멈춥니다. 그래서 초보가 가장 먼저 들여야 할 습관은 연습이 끝나면 인스턴스를 중지(stop)하는 것입니다.

여기서 "중지(stop)"와 "종료(terminate)"를 꼭 구분하세요. 헷갈리면 큰일 납니다.

동작무슨 일이 일어나나언제 쓰나
중지(Stop)서버를 잠재움. 컴퓨팅 요금은 멈추고, 저장된 디스크는 남음. 다시 켜면 이어서 사용잠깐 안 쓸 때 (밤·주말). 데이터는 보존됨
종료(Terminate)서버를 완전히 삭제. 기본 설정이면 안의 데이터도 함께 사라짐이 서버를 아예 없앨 때. 되돌릴 수 없음
연습이 끝나면 Terminate(종료)가 아니라 Stop(중지)을 누르세요. 종료를 눌렀다가 애써 만든 설정과 데이터가 통째로 날아간 초보를 여럿 봤습니다. "오늘은 그만" = Stop, "이건 영영 안 써" = Terminate. 이 한 줄만 기억해도 사고를 막습니다.

정확한 시간당 단가는 인스턴스 타입·리전·시점에 따라 계속 달라집니다. 그래서 이 글에는 구체적인 금액을 적지 않겠습니다(지어낸 숫자만큼 위험한 게 없어요). 결제 전 반드시 AWS 공식 요금 페이지에서 최신 단가를 확인하시고, 신규 가입자라면 일정 조건에서 무료로 쓸 수 있는 프리 티어(Free Tier) 범위도 함께 챙겨 보세요. 또 요금 알림(Billing 알람)을 걸어 두면, 예상보다 요금이 오를 때 메일로 알려 줘서 마음이 놓입니다.

💡 제가 초보 시절 가장 많이 한 실수: 연습하고 인스턴스를 안 끄고 자러 감. 계량기는 밤새 돌아가죠. "안 쓰면 끈다"를 양치질처럼 습관화하세요. 그리고 매달 초 결제 내역을 한 번씩 들여다보는 것만으로도 돈이 새는 걸 막을 수 있습니다.

자주 묻는 질문(FAQ)

Q. 서버를 껐다 켜면 그동안의 데이터가 사라지나요?
A. 중지(Stop)는 데이터를 보존합니다(연결된 디스크가 남아요). 다만 종료(Terminate)는 기본 설정에서 데이터가 함께 삭제됩니다. 중요한 데이터는 따로 백업하는 습관을 들이세요.

Q. 공인 IP로 접속했는데 앱이 안 떠요.
A. 십중팔구 보안 그룹에서 80·443 포트를 안 열었거나, 앱(웹 서버)이 아직 안 켜진 경우입니다. 문(포트)이 닫혀 있으면 손님은 문 앞에서 돌아갑니다. 보안 그룹의 인바운드 규칙부터 확인하세요.

Q. SSH 접속이 자꾸 거부돼요(Permission denied).
A. 세 가지를 보세요. ① 사용자 이름이 우분투면 ubuntu가 맞는지, ② .pem 파일 권한을 chmod 400으로 좁혔는지(맥·리눅스), ③ 22번 포트가 지금 내 IP에 열려 있는지. 인터넷 IP는 바뀌기 때문에, 어제 되던 접속이 오늘 막히면 대개 IP가 바뀐 겁니다.

Q. t3.micro로 시작했는데 느려요. 어떻게 하죠?
A. 인스턴스를 중지한 뒤 인스턴스 타입을 더 큰 급으로 변경하고 다시 켜면 됩니다. 몇 분이면 끝나요. 클라우드의 장점이 바로 이 "필요할 때 키우기"입니다. 처음부터 크게 잡느라 돈 쓸 필요 없어요.

Q. 리전을 나중에 바꿀 수 있나요?
A. 기존 인스턴스를 다른 리전으로 "이동"하는 건 간단치 않습니다(이미지를 떠서 옮기는 절차가 필요). 그래서 처음 만들 때 리전을 제대로 고르는 게 중요합니다. 한국 손님 중심이면 처음부터 서울로 시작하세요.

Q. 키페어를 잃어버렸어요.
A. 기존 열쇠로는 그 서버에 다시 못 들어갑니다. 새 키페어를 만들어 서버에 다시 연결하는 복구 절차가 필요하고, 초보에겐 번거로워요. 그래서 다운로드 직후 안전한 곳에 보관하는 게 최선입니다.

초보가 흔히 하는 실수 & 해결법

제가 직접 겪었거나, 수강생·독자에게서 가장 자주 본 실수들입니다. 미리 알면 안 밟을 수 있어요.

👎 이런 실수 조심

  • 22번(SSH) 전체 개방 — 온 세상에 관리자 문을 열어 둠
  • 키페어(.pem) 분실 — 다운로드 창을 그냥 닫아 버림
  • 인스턴스 안 끄고 방치 — 밤새 계량기가 돎
  • Stop 대신 Terminate — 데이터까지 통째로 삭제
  • 리전을 미국에 둔 채 생성 — "내 서버 어디 갔지?"
  • .pem을 깃허브에 업로드 — 열쇠가 만천하에 공개

👍 이렇게 해결

  • 22번은 내 IP에만, 웹은 80·443만 전체 개방
  • 생성 즉시 다운로드→안전 폴더, 이름도 알아보게
  • "안 쓰면 끈다" 습관 + 요금 알림 설정
  • "오늘은 그만"은 Stop, "영영 안 씀"만 Terminate
  • 만들기 전에 오른쪽 위 리전=서울 먼저 확인
  • 키파일은 절대 저장소·메신저에 올리지 않기

떠오른 순간

생성 버튼을 누르고 1–2분 뒤, 서버가 받은 공인 IP 주소를 브라우저에 쳤더니 — 내 앱이 떴습니다. 별거 아닌 것 같은데, 코딩 모르던 사람이 자기 서버를 직접 올린 경험은 꽤 짜릿했습니다.

그 순간이 저는 아직도 생생해요. 검은 터미널 화면에 명령어를 한 줄 한 줄 겁먹으며 치던 사람이, 몇 분 뒤 브라우저 주소창에 낯선 숫자 주소를 넣고 엔터를 쳤을 때, 지구 어딘가의 컴퓨터에서 내가 만든 화면이 응답해 온 겁니다. 앱이 "인터넷에 떠오른" 그 느낌은, 비유가 아니라 정말로 무언가가 물 위로 부웅 떠오르는 것 같았어요. 여러분도 곧 이 순간을 맞을 겁니다. 그때 이 글이 옆에서 손잡아 준 안내서였길 바랍니다.

마무리 체크리스트

서버를 켜기 전, 그리고 켠 뒤에 이 목록을 한 번씩 훑어보세요. 오늘 배운 걸 사고 없이 마무리하는 안전벨트입니다.

여기까지 왔다면 여러분은 이제 "인터넷 어딘가의 내 컴퓨터 한 대"를 직접 켜고, 문을 여닫고, 열쇠를 관리하고, 요금까지 챙길 줄 아는 사람입니다. 처음의 그 막막함을 떠올리면 정말 큰 걸음이에요.

다음 편엔 이 서버 앞에 로드밸런서를 두어, 손님이 많아져도 끊기지 않게 만든 이야기를 적겠습니다. 서버 한 대로 감당이 안 될 만큼 손님이 몰릴 때, 여러 대의 서버에 손님을 골고루 나눠 주는 "교통정리 담당" 이야기예요. 오늘 만든 EC2 한 대가, 다음 편에서 여러 대의 든든한 팀이 됩니다.

(2026년 7월 기준 작성 — AWS 화면 구성과 요금은 바뀔 수 있으니, 실제 진행 시 공식 콘솔·요금 페이지를 함께 확인하세요.)

「코딩 몰라도 AI로 사주앱 만들기」기획부터 AWS 배포·도메인 연결까지 손잡고 가는 237쪽 실전 가이드
교보 → YES24 →
← 기술 블로그 목록으로