본문 바로가기
개발자/기술스택 도구

개발자가 처음 AWS 만졌을 때 당황한 이유

by 나무011 2026. 8. 14.
개발자 현직자 솔직 경험담

개발자가 처음 AWS 만졌을 때
당황한 이유

서비스가 200개 넘는 줄 몰랐다 — 콘솔 열고 멘붕이 온 그날

Frontend Developer 2026년 6월 약 14분 읽기

AWS 콘솔을 처음 열었을 때

입사 4개월 차였다. 선배 개발자가 배포 자동화 작업을 맡겼다. "S3에 올리고 CloudFront 무효화하면 돼요. EC2는 건드리지 말고." 말은 들었다. S3, CloudFront, EC2. 어디선가 들어본 것들이었다.

AWS 콘솔에 처음 로그인했다. 네비게이션 바에 "서비스"를 눌렀다. 카테고리가 20개 이상 펼쳐졌다. 각 카테고리 안에 서비스가 줄줄이. EC2를 찾으려고 스크롤했는데 비슷하게 생긴 이름들이 너무 많았다. ECS? EKS? ElastiCache? Elastic Beanstalk? 뭐가 뭔지 몰랐다. 처음 5분 동안 아무것도 못 하고 화면만 봤다.

개발자가 처음 AWS 만졌을 때 당황한 이유
개발자가 처음 AWS 만졌을 때 당황한 이유
200+ AWS 서비스 총 수
5분 첫 화면에서 멍한 시간
3번 예상치 못한 과금 경험
6개월 어느 정도 익숙해지기까지

당황한 이유 — 하나씩 정리하면

1
서비스 이름이 너무 많고 비슷하다
EC2 / ECS / EKS / Elastic Beanstalk / ECR — 전부 E로 시작한다

처음 보면 이름이 전부 비슷하게 느껴진다. EC2는 가상 서버, ECS는 컨테이너 오케스트레이션, EKS는 Kubernetes 관리형 서비스, Elastic Beanstalk는 앱 배포 플랫폼, ECR은 컨테이너 이미지 저장소. 기능이 다 다른데 이름이 비슷해서 처음엔 구분이 안 된다. 거기에 Lambda, S3, RDS, DynamoDB, SQS, SNS, API Gateway까지.

2
리전 개념을 몰랐다
서울에서 만들었는데 버지니아에서 찾고 있었다

첫 날 S3 버킷을 만들었다. 분명히 만들었는데 다음 날 찾을 수가 없었다. 30분을 찾다가 선배한테 물어봤다. "리전 확인해봤어요?" 리전이 뭔지도 몰랐다. 콘솔 오른쪽 상단에 있는 지역 선택이 리전이었다. 서울에서 만들었는데 버지니아 북부 리전으로 콘솔이 바뀌어 있었다. 리전마다 리소스가 독립적으로 존재한다는 개념이 처음엔 전혀 없었다.

3
IAM이 왜 있는지 이해를 못 했다
"왜 AWS 안에서 또 권한 설정을 해야 하지?"

EC2 인스턴스에서 S3에 파일을 올리려고 했다. 접근 거부 에러가 났다. AWS 계정으로 로그인했는데 왜 접근이 안 되는지 이해가 안 됐다. IAM 역할(Role)을 EC2에 부여해야 한다는 개념을 몰랐다. AWS 계정 하나로 다 할 수 있는 줄 알았는데, 서비스 간 권한도 별도로 설정해야 한다는 게 낯설었다.

4
무엇을 하면 돈이 나가는지 몰랐다
EC2 인스턴스를 "중지"했는데 청구서가 왔다

테스트용 EC2를 만들고 사용 안 할 때 "중지(Stop)"했다. 프리티어라 괜찮겠지 싶었다. 월말에 5달러 청구서가 왔다. 중지해도 EBS(스토리지) 요금은 나온다는 걸 몰랐다. 완전히 없애려면 "종료(Terminate)"를 해야 했다. Stop과 Terminate의 차이를 처음엔 몰랐다.

5
보안 그룹이 뭔지 몰라서 포트를 전부 열었다
0.0.0.0/0으로 모든 포트 허용 — 나중에 알고 소름 돋았다

EC2 인스턴스에 SSH 접속이 안 됐다. 구글링하니까 "보안 그룹에서 22번 포트 열어요"라고 나왔다. 어떻게 여는지 몰라서 일단 "모든 트래픽 허용"을 선택했다. 0.0.0.0/0으로 전 세계에서 모든 포트가 열린 상태. 나중에 보안 감사 받을 때 그 설정 보고 선배가 표정이 굳었다. 뭘 한 건지 그때 처음 알았다.

6
같은 기능처럼 보이는 서비스가 여러 개였다
SQS vs SNS vs EventBridge — 다 메시지 전달 아닌가?

메시지 큐 서비스를 찾다가 SQS, SNS, EventBridge를 발견했다. 셋 다 뭔가 메시지를 전달하는 것 같았다. 어떤 걸 써야 하는지 몰랐다. 실제로는 완전히 다른 용도지만 이름만 보면 구분이 안 됐다. 이런 경우가 AWS에 수십 개 있었다.

가장 당황스러웠던 순간 — 예상치 못한 청구서

 
 
 
AWS Cost Explorer — 청구서 확인

# 테스트 목적으로 만든 리소스들

# "다 프리티어인 줄 알았음"

─────────────────────────────────────────

EC2 t2.micro (중지 상태) $0.00 (인스턴스 중지 시 무료)

EBS gp2 30GB (삭제 안 함) $3.00 ← 이게 나올 줄 몰랐음

탄력적 IP (미사용) $3.60 ← 이것도 과금됨

S3 표준 스토리지 (10GB) $0.23 (프리티어 초과)

CloudFront 데이터 전송 $0.18 (프리티어 초과)

NAT Gateway (실수로 생성) $32.40 ← 가장 충격

─────────────────────────────────────────

이번 달 청구 예상: $39.41

# "뭘 만든 건지도 잘 모르는데 이게 청구됐다"

# NAT Gateway: 시간당 $0.045 + 데이터 전송 요금

# 해결: Cost Anomaly Detection 설정 + Budget Alert

💸
NAT Gateway 사건
뭔지도 모르는 게 시간당 요금이 나가고 있었다

VPC 설정을 따라하다가 NAT Gateway를 만들었다. 가이드에서 "Private Subnet이 인터넷에 접근하려면 NAT Gateway가 필요하다"고 나왔다. 그냥 따라 만들었다. 그게 시간당 $0.045에 데이터 전송까지 과금된다는 걸 몰랐다.

한 달 뒤 청구서에 $32가 나와 있었다. 정확히 뭔지도 모르는 리소스에서. 급하게 삭제했다. 삭제해도 그달 청구는 막을 수 없었다. 그 이후부터 뭔가 만들기 전에 요금 계산기를 먼저 보는 습관이 생겼다.

🔴 AWS 처음 쓸 때 절대 하면 안 되는 것

NAT Gateway는 시간당 과금. 탄력적 IP(Elastic IP)는 인스턴스에 연결 안 되어 있으면 과금. EC2 인스턴스 중지해도 EBS 스토리지 요금은 계속 나감. 처음엔 반드시 AWS Budget Alert를 설정해서 월 $10 초과 시 알림을 받도록 설정해야 한다. 이걸 모르고 시작하면 실수로 수십만 원이 나갈 수 있다.

처음에 꼭 알아야 했던 서비스들

200개 넘는 서비스가 있지만 프론트엔드 개발자가 처음 접하는 상황에서 실제로 쓰이는 건 10개 미만이다. 이것만 먼저 알았어도 훨씬 덜 당황했을 것이다.

🗄️
저장소
S3

파일, 이미지, 정적 웹사이트 호스팅. 가장 먼저 쓰게 되는 서비스. 프리티어 5GB.

💻
컴퓨팅
EC2

가상 서버. 리눅스/윈도우 인스턴스. t2.micro 프리티어. Stop ≠ Terminate 주의.

🌐
CDN
CloudFront

S3 앞에 붙이는 CDN. 전 세계 캐싱. S3 직접 공개 없이 배포 가능.

🔐
권한 관리
IAM

사용자, 역할, 정책 관리. 처음엔 귀찮지만 가장 중요한 개념. 최소 권한 원칙.

서버리스
Lambda

서버 없이 함수 실행. 호출당 과금. 백엔드 없이 간단한 API 만들기 좋음.

🗃️
데이터베이스
RDS

관리형 관계형 DB. MySQL, PostgreSQL 등. 프리티어 t2.micro 750시간.

🔌
API
API Gateway

HTTP API 엔드포인트 관리. Lambda와 세트로 쓰는 경우 많음.

🔑
비밀 관리
Secrets Manager

DB 비밀번호, API 키 저장. 코드에 하드코딩하면 안 되는 값들.

보안 그룹 사건 — 소름 돋았던 그날

🔓
보안 사건
모든 포트를 전 세계에 열어놨던 EC2

SSH가 안 된다고 "모든 트래픽"을 0.0.0.0/0으로 열었다. 그 상태로 며칠이 지났다. 나중에 선배가 AWS 설정 리뷰하다가 발견했다. "이 인스턴스 보안 그룹 왜 이래요?" 내가 만든 거라고 했다. 표정이 굳었다.

그 인스턴스에 들어가서 auth.log를 보니까 수백 개의 SSH 브루트포스 시도가 있었다. 전 세계에서 자동화된 봇들이 열린 22번 포트를 스캔하고 있었던 것이다. 다행히 키 기반 인증이어서 실제 침입은 없었지만, 그날 이후로 보안 그룹 설정을 배우는 게 최우선이 됐다.

✅ 보안 그룹 올바른 설정 예시 — SSH, HTTP, HTTPS만 허용
# ❌ 절대 하면 안 되는 설정 Type: All traffic Source: 0.0.0.0/0 # 전 세계 모든 포트 허용 → 위험
# ✅ 올바른 설정 # SSH: 내 IP만 허용 Type: SSH (Port 22) Source: 1.2.3.4/32 # 내 IP 주소만
# HTTP/HTTPS: 웹 서버라면 전체 허용 Type: HTTP (Port 80) Source: 0.0.0.0/0 # 웹이니까 전체 허용
Type: HTTPS (Port 443) Source: 0.0.0.0/0 # 웹이니까 전체 허용
# 나머지 포트는 전부 닫혀 있어야 함 # 필요한 것만 열고, 출처도 최소화

AWS는 기능이 많아서 어렵다기보다, 각 개념이 낯설어서 어렵다. 리전, IAM, 보안 그룹, 과금 구조 — 이 네 가지만 이해해도 처음 당황함의 80%가 해결된다.

알고 나면 당연한데 처음엔 몰랐던 것들

💡
개념 정리
AWS 이해의 핵심 — 이걸 먼저 알았으면 좋았을 것

리전과 가용 영역(AZ)의 차이. 리전은 지리적 위치 (서울, 도쿄, 버지니아). 가용 영역은 리전 안의 데이터센터들. 서울 리전(ap-northeast-2)에 ap-northeast-2a, 2b, 2c 세 개의 AZ가 있다. 가용성을 위해 여러 AZ에 분산 배포하는 게 권장 사항이다.

VPC가 왜 있는지. Virtual Private Cloud. AWS 안에서 내 사설 네트워크를 만드는 것. 퍼블릭 서브넷(인터넷 접근 가능)과 프라이빗 서브넷(내부 통신만)으로 나눈다. DB는 프라이빗, 웹 서버는 퍼블릭에 두는 게 기본 아키텍처.

프리티어의 함정. 프리티어는 12개월 한정 + 서비스마다 제한이 다름. EC2는 t2.micro 월 750시간이지만 NAT Gateway, 탄력적 IP 등은 프리티어 없음. "이거 프리티어인가요?"를 항상 AWS 요금 페이지에서 확인해야 한다.

지금 AWS 처음 시작하는 분들에게

1
Budget Alert부터 설정한다

콘솔에서 Billing → Budgets → Create budget. 월 $10 초과 시 이메일 알림 설정. 이걸 안 하면 실수로 수십만 원이 나갈 수 있다. AWS 처음 배울 때 가장 먼저 해야 하는 일이다.

2
루트 계정 대신 IAM 사용자를 만들어서 쓴다

루트 계정은 모든 권한이 있어서 유출되면 끝이다. IAM 사용자를 만들고, 필요한 권한만 부여해서 평소에 그걸로 쓴다. MFA(2단계 인증)도 반드시 설정한다.

3
리소스 만들기 전에 요금 계산기 확인

AWS Pricing Calculator(calculator.aws)에서 어떤 서비스를 얼마나 쓸 건지 미리 계산해본다. 특히 NAT Gateway, 데이터 전송, 탄력적 IP는 생각보다 비싸다.

4
테스트하고 반드시 삭제한다

연습으로 만든 리소스를 삭제하지 않으면 요금이 계속 나간다. EC2는 Stop이 아니라 Terminate. NAT Gateway 삭제 후 탄력적 IP도 해제. S3 버킷은 비워야 삭제 가능. 리소스 청소 습관이 중요하다.

5
서울 리전 (ap-northeast-2)으로 고정한다

실수로 다른 리전에서 작업하면 리소스를 못 찾는다. 콘솔 오른쪽 상단 리전 항상 확인. 처음엔 서울 리전만 쓰고 다른 리전은 건드리지 않는 것이 안전하다.

✅ 프론트엔드 개발자 AWS 시작 최소 경로

S3 버킷 만들기 → 정적 웹사이트 호스팅 → CloudFront 연결. 이 세 가지만 해봐도 AWS의 기본 개념 대부분이 나온다. 리전, IAM 권한, 보안 설정, 요금 구조까지 경험할 수 있다. 처음엔 EC2나 VPC 같은 복잡한 것보다 이것부터 시작하는 게 맞다.


처음 AWS 콘솔을 열고 5분 동안 멍하게 서 있던 그 순간이 지금도 기억난다. 200개 넘는 서비스가 있다는 걸 그때는 몰랐다. 지금도 그 중 20개도 안 쓴다. 처음부터 다 알아야 한다는 압박이 필요 없다는 걸 이제는 안다.

당장 필요한 것 하나씩 배우다 보면 어느 순간 익숙해진다. 그 과정에서 실수하고, 과금되고, 소름 돋는 경험도 있었지만 그게 다 배움이었다. Budget Alert만 설정해두면 그 실수들이 큰 피해로 이어지지 않는다. 일단 시작하면 된다.

💬 AWS 처음 만졌을 때 당황했던 경험이 있으신가요?

예상치 못한 청구서, 헷갈렸던 서비스 이름, 실수로 만든 설정 — 어떤 경험이든 댓글로 나눠주세요. 지금 처음 AWS를 배우는 분들에게 가장 현실적인 가이드가 될 것 같습니다.


소개 및 문의 · 개인정보처리방침 · 면책조항

© 2026 나무핀