[고급] 신입은 절대 한번에 통과 못하는 AWS 배포 지옥, IAM과 VPC 삽질 로그

[고급] 신입은 절대 한번에 통과 못하는 AWS 배포 지옥, IAM과 VPC 삽질 로그

결론부터 말한다.

AWS 처음 쓰는 신입 개발자가 IAM 권한이랑 VPC 네트워크 한 번에 뚫는 거 본 적 없다. 나도 그랬고, 지금 이 글 보는 당신도 그럴 거다. 괜히 시간 낭비하지 말고, 자주 빠지는 함정 7가지만 머리에 넣으면 된다. 반나절 삽질할 거 30분으로 줄여준다.

신입 개발자 AWS 배포 필패 공식 7가지

이건 이론이 아니다. 지난 10년간 수많은 프로젝트에서 신입들이 똑같이 저지르는 실수 패턴을 정리한 데이터다.

1. 루트 계정(Root Account) 만능주의

가장 위험하고 가장 흔한 실수. 모든 권한을 가진 루트 계정으로 개발, 테스트, 배포 다 한다. 이건 호텔 전체를 여는 마스터키로 매일 객실 청소하는 것과 같다. 해킹 한 방에 모든 게 날아간다. 절대 쓰지 마라. IAM 사용자 만들어서 필요한 최소 권한만 부여하는 게 기본이다.

2. ‘AdministratorAccess’ 정책 남발

루트 계정 다음으로 위험하다. 귀찮다는 이유로 모든 IAM 사용자에게 ‘AdministratorAccess’ 정책을 붙여준다. 모든 직원에게 법인카드 한도 없이 툭 던져주는 꼴이다. 특정 서비스(S3, EC2 등)에 필요한 액션(GetObject, RunInstances 등)만 콕 집어서 정책을 만들어야 한다. 이게 ‘최소 권한의 원칙’이다.

3. 인라인 정책 vs 관리형 정책 구분 실패

둘의 차이를 모르면 나중에 정책 관리 지옥이 열린다.

  • AWS 관리형 정책: AWS가 미리 만들어 놓은 정책 템플릿. (ex: AmazonS3ReadOnlyAccess) 그냥 가져다 쓰면 되니 편하다.
  • 인라인 정책: 특정 사용자나 그룹에 1:1로 붙이는 맞춤 정책. 이 정책은 오직 그 사용자에게만 종속된다.

초반에는 관리형 정책으로 시작하되, 특정 유저에게만 아주 세밀한 권한 제어가 필요할 때만 인라인 정책을 쓰는 거다. 범용 수트는 기성복을 사고, 특별한 날에만 맞춤 정장을 입는 것과 같은 이치.

4. 보안 그룹(Security Group)과 NACL의 차이점 무시

둘 다 방화벽인데 뭐가 다르냐고 묻는다. 하늘과 땅 차이다.

  • 보안 그룹(SG): EC2 인스턴스 레벨에서 작동하는 ‘상태 기반(Stateful)’ 방화벽. 들어오는(Inbound) 규칙만 허용하면 나가는(Outbound) 트래픽은 알아서 허용해준다. 클럽 입구에서 신분증 검사하고 들여보내 주면, 나갈 땐 검사 안 하는 것과 같다.
  • 네트워크 ACL(NACL): 서브넷 레벨에서 작동하는 ‘상태 비저장(Stateless)’ 방화벽. 들어오는 규칙과 나가는 규칙을 각각 설정해야 한다. 국경 출입국 심사대처럼 들어올 때도 여권 보고, 나갈 때도 여권 본다.

대부분의 상황은 보안 그룹으로 제어한다. NACL은 서브넷 전체를 통제해야 하는 특수한 상황에만 건드리는 거다.

5. ‘0.0.0.0/0’의 유혹

DB 접속이 안 되거나, SSH 접속이 안 될 때 가장 먼저 하는 짓. 보안 그룹 인바운드 소스를 ‘0.0.0.0/0’ (위치 무관)으로 열어버린다. 이건 그냥 ‘우리 집 대문 24시간 활짝 열어둘 테니 누구든 들어오시오’ 하는 것과 같다. 반드시 내 IP나 특정 IP 대역만 지정해야 한다.

6. 퍼블릭 서브넷과 프라이빗 서브넷 개념 부재

모든 인스턴스를 인터넷 게이트웨이(IGW)에 연결된 퍼블릭 서브넷에 때려 넣는다. 특히 DB 서버를. 이건 가게 금고를 길 한복판에 두는 격이다. 웹서버처럼 외부 접속이 필요한 자원은 퍼블릭 서브넷에, DB나 내부 로직을 처리하는 서버처럼 외부 노출이 필요 없는 자원은 프라이빗 서브넷에 두는 게 철칙이다. 프라이빗 서브넷의 자원이 외부 인터넷 통신이 필요하면 NAT 게이트웨이를 쓴다.

7. VPC 엔드포인트의 존재를 모름

가장 돈과 직결되는 실수다. EC2 인스턴스가 S3 버킷에 데이터를 올릴 때, 별도 설정이 없으면 데이터는 공용 인터넷 망을 통해 나갔다가 다시 AWS S3로 들어온다. 불필요한 보안 위협에 노출되고, NAT 게이트웨이를 거치면 데이터 전송 비용까지 발생한다.

이때 쓰는 게 VPC 엔드포인트다. AWS 내부망에 S3로 가는 전용 비밀 통로를 뚫는 개념이다. 인터넷을 거치지 않으니 빠르고, 안전하고, 비용도 절감된다. 건물 안에서 A부서가 B부서에 서류 전달하는데 굳이 건물 밖으로 나갔다 정문으로 다시 들어올 필요 없는 것과 같다.


정리.

이 7가지 다 이해하고 혼자서 트러블슈팅이 가능하다면, 당신은 신입이 아니다. 만약 여기서 하나라도 막혀서 반나절 이상 헤매고 있다면 그게 정상이다.

이건 빙산의 일각일 뿐, 실제 시스템을 구축하다 보면 변수는 훨씬 많다. 더 깊은 백엔드 메커니즘이나 실제 아키텍처 구축 사례가 필요하면, 현재 비공개로 운영 중인 ‘파이프마스터 클럽’ 네이버 카페로 와라. 거긴 이런 이론 말고 실전 기록만 다룬다. 지금은 얼리버드 기간이다.


PipeMaster-Lab 운영정책 및 제보 안내

① 공개된 모든 기록은 특정 기업이나 개인의 청탁 또는 금전적 지원 없이, 시스템 아키텍트의 독립적인 연구 및 실험 결과를 바탕으로 작성됩니다.
② 인용된 외부 콘텐츠 해석에 이의가 있는 경우,
연구실 직통 메일 pipemaster.lab@gmail.com
으로 연락 주시면 24시간 내 회신 및 즉각 조치합니다.
③ 게시된 내용 중 버전 변경으로 인한 정보 불일치나 치명적인 로직 오류를 제보해 주시는 분께는 내부 검토 후 소정의 기프티콘 등 바운티를 지급합니다.
④ 기업 단위의 시스템 아키텍처 컨설팅, 비즈니스 제휴 및 고도화 제안 역시 해당 공식 메일로만 수신 및 회신합니다.
verified

PIPEMASTER RESEARCH LAB

20년 IT 내공과 AI가 결합된 실전 무인 수익 자동화 시스템 연구소
본 콘텐츠는 PipeMaster-Lab 내부 Certified 규격을 엄격히 통과하였음을 증명합니다.

댓글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다