GN⁺ 5달전 | parent | ★ favorite | on: $1,000짜리 AWS 실수(geocod.io)
Hacker News 의견
  • 세 개의 주요 클라우드 관련 서브레딧에서 이런 비용 폭탄 사례가 하루에 한 번꼴로 올라오는 걸 자주 봄
    클라우드 업체들은 항상 지연된 알림만 제공하고, 사용자는 그저 기도와 구제 요청밖에 할 수 없는 상황임
    게다가 일부는 “기술적으로 하드캡 계정을 제공하는 건 불가능하다”고 주장하지만, 실제로 Azure에는 이미 그런 계정이 존재함

    • 나는 이게 악의적인 의도라기보다는 무능과 인센티브 부재의 조합이라고 생각함
      10년 넘게 AWS를 써왔는데, 서비스 간 설계 불연속성과 조직 내 사일로화가 심각했음
      큰 조직에서는 KPI를 해칠 문제를 해결하려는 임원이 없고, 대신 AI나 블록체인 같은 유행 서비스 출시로 승진 점수를 쌓는 데 집중함
    • AWS가 어제 초과 요금 없는 정액제 요금제를 발표했음
      월 $0, $15, $200 플랜 중 선택하면, 예기치 못한 요청이나 데이터 전송 증가로 인한 요금 폭탄을 막을 수 있음
      AWS 공식 블로그 링크
    • 같은 소식인데, 이번엔 CDN용 정액제 요금제임. S3 스토리지와 대역폭도 포함된 $0 티어가 있음
      관련 HN 스레드
      비용 상한을 설정하면서 서비스 안정성을 유지하는 게 어렵긴 하지만, 이번 사례로 기술적으로 가능함이 증명됨
    • AWS는 고객이 실수로 과금되면 나중에 환불해주는 쪽을 택함
      서비스 중단이나 인프라 장애로 인한 평판 리스크를 피하기 위해서임
    • 이런 글에서 가장 슬픈 건 “우리가 청구서를 더 잘 이해했어야 했다”는 결론으로 끝나는 것임
      하지만 문제는 클라우드 자체일 수도 있음. 예측 가능한 비용 구조가 필요한 소규모 사업자에게는 클라우드가 적합하지 않을 수도 있음
  • 이런 일이 너무 자주 일어나서, S3 VPC 엔드포인트는 VPC 생성 시 기본으로 설정돼야 한다고 생각함
    그리고 NAT 게이트웨이 대신 fck-nat 같은 대안을 쓰면 GB당 트래픽 요금을 절약할 수 있음

    • 하지만 S3 Gateway 엔드포인트는 리전 간 S3 작업을 깨뜨림, 기본값 변경은 고객을 망가뜨릴 수 있음
    • IPv6로 전환하고 Egress Gateway를 쓰는 방법도 있음
    • 콘솔에서 VPC를 만들 때는 체크박스 하나로 설정 가능함
    • 콘솔이 아니라 IAC(Infrastructure as Code) 로 구축하는 경우엔 모든 구성을 명시적으로 작성하는 게 맞음
    • 기본적으로 VPC는 보안 우선 구조로 설계되어야 함
      기본 접근 거부 상태에서 명시적으로 인터넷 접근을 허용해야 하며, 그렇지 않으면 공격자가 데이터를 유출할 수 있음
  • 나도 비슷한 실수를 한 적 있음
    AWS 추천 알고리즘에 테스트용 데이터를 업로드하고 잊어버렸는데, 몇 달 뒤 은행에서 잔고 부족 알림을 받았음
    알고리즘이 계속 돌아가면서 매달 1천 달러 이상이 청구되어, 결국 5천 달러가 사라졌음

    • 나는 청구 부서에서 일한 적이 있어서 이런 일에 건전한 편집증을 가지게 됨
      매일 잔고를 확인하고, 모든 청구 메일을 중요 표시함
      그리고 각 서비스마다 가상 카드 한도를 설정해두는 습관을 들였음
  • 나도 같은 실수를 해서 6만 달러를 날린 적 있음
    왜 S3 엔드포인트가 기본으로 배포되지 않는지 이해할 수 없음

    • 내부 회의에서 “이걸 기본으로 넣자” 하면 “수익이 줄어든다”는 이유로 미뤄질 것 같음
    • “그게 1년치 연봉이지만, 직접 인프라를 셀프호스팅하는 복잡함을 생각해보라”는 식의 농담도 나옴
  • “왜 AWS 요금이 폭발했는가”라는 질문을 자주 받는데, 대부분 NAT + S3 + 잘못된 가정 조합임
    EC2→S3 전송은 무료지만, NAT를 거치면 유료가 됨
    그래서 나는 다음 체크리스트를 줌

    1. S3나 DynamoDB와 자주 통신하는 프라이빗 서브넷은 Gateway Endpoint 사용 고려
    2. NAT 비용을 별도 대시보드로 모니터링
    3. 대용량 데이터 이동 전에는 요금 흐름 다이어그램을 그려볼 것
      Cost Anomaly Detection이 제때 작동한 건 다행이었음. 1천 달러 손실도 아프지만, 2만 달러보다 낫음
  • AWS에서 데이터를 다운로드할 때 GB당 $0.09를 내야 한다는 걸 보고 놀람
    데이터를 업로드할 땐 무료인데, 다시 꺼내려면 돈을 내야 함?

    • 이건 락인 전략의 일환임. 들어오긴 쉽지만 나가긴 비쌈
      이번 사례는 NAT 설정 오류로 인해 내부 전송이 외부 전송으로 계산된 특이 케이스임
    • GB당 9센트는 거의 휴대폰 요금제 수준의 바가지 같음. 이런 이유로 Cloudflare가 인기를 얻는 듯함
    • 업로드는 싸지만 다운로드는 비쌈. 고객이 데이터를 사용자에게 제공할 때마다 AWS가 그 일부를 가져가는 구조임
    • 소비자용 서비스는 월정액에 포함되지만, AWS는 직접 비용을 인식하게 만드는 구조
    • “캘리포니아산, 나갈 수는 있지만 떠날 수는 없다”는 농담이 떠오름
  • Amazon이 이런 실수에 대해 환불해주는지 궁금함

    • 금액과 상황에 따라 다름. 나도 예전에 큰 금액을 환불받았지만, 여러 차례 소명과 재발 방지 계획을 제출해야 했음
    • 작성자가 “AWS가 계정 크레딧을 줄지도 모르니 결과를 업데이트하겠다”고 함
    • 실제로 AWS는 이런 경우 환불해주는 편임. 데이터가 실제로 외부로 나간 게 아닐 가능성이 높기 때문임
    • 나도 몇 번 환불받은 적 있음. 다만 재발 방지 조건이 붙음
    • 결국 고객 규모와 지불 능력에 따라 다름. 월 20달러 고객은 1천 달러를 못 내지만, 월 3천 달러 고객은 신경 안 씀
  • VPC NAT Gateway는 악명 높음
    예전에 Amazon 재직 중 비슷한 문제를 겪었지만, 회사 계정이라 돈은 안 냈음
    실제로 돈을 내야 하는 사람들은 정말 안타까움

    • 개인적으로 NAT 게이트웨이가 왜 이렇게 흔한지 이해가 안 됨. 대부분의 경우 Internet Gateway면 충분함
  • 이번 사례에는 직접 도움이 안 되지만, AWS가 어제 CDN용 정액제 요금제를 출시함
    S3 스토리지와 대역폭이 포함된 $0 티어도 있음
    관련 링크
    앞으로 다른 서비스에도 확대되길 기대함

  • 나도 22살 때 인프라를 처음 만지다 이틀 만에 300달러 요금을 맞은 적 있음
    AWS는 훌륭하지만, 초보자에게 비용 계산이 너무 불투명함

    • 왜 그걸 개선하지 않는지 궁금함