AWS 예산 초과 알람 설정 – 라이트세일 사용자를 위한 요금 및 허용 트래픽 임박 미리 알림

11

아마존 웹 서비스(AWS)를 사용하면서 뜻하지 않는 예산 초과로 초과 과금을 미연에 방지하기 위해서는 자신이 얼마나 사용하는지 모니터링할 수단이 필요하기도 하지만 자신의 예산, 트래픽 용량(데이터 전송량)을 미리 설정해두고 그 수치에 다다르면 이메일등으로 알림을 받을 수 있는 수단도 관심이 있을 겁니다.

AWS 예산 정보는  EC2, S3, 클라우드프론트등 모든 AWS 클라우드 서비스에대해 예산을 설정할 수 있고 라이트세일 또한 설정할 수 있으며 자신이 원한다면 전체 계정에 대한 예산 초과 임박 알림부터 서비스별 알림, 사용 타입별 알림등으로 여러개의 예산알림을 만들 수 있습니다.

이 글은 AWS 예산 작성의 전반적인 내용이지만 라이트세일 요금관리 시리즈 연재작의 일환으로 작성됨에 따라, 라이트세일 사용자에 초점이 맞추어져 있습니다.

AWS Budgets (예산 작성) 방법과 요금

AWS 예산 정보는 비용($달러)대비와 사용량 예산(데이터 용량), 그리고 RI(예약 인스턴스) 사용률과 담당률에대한 예산을 설정할 수 있습니다. 이 중 RI에대한 설정은 라이트세일 사용자와는 상관없습니다.

예산 정보는 하루에 최대 3번 업데이트 된다고 하니 실시간 비슷한 알림 사용 용도로는 쓸 수 없겠네요. 그런 용도라면 AWS SNS나 CloudWatch 같은 서비스를 써야하겠습니다. 라이트세일을 위해 사용하기엔 많이 과한 서비스들입니다.

라이트세일에 관련해 예산 작성의 치명적인 단점이라면 인스턴스별로 감시가 불가능하다는 겁니다. 리전별 또는 사용유형, 서비스별로만 될 뿐인데요. 인스턴스같은 언제 없앨지 모를 리소스에 개별 식별자를 붙일 수 있는게 AWS 콘솔에서 사용가능한 Tag Editor(태그 에디터)인데 라이트세일 리소스에는 이 태그를 사용 할 수 없기때문입니다. 특별히 지원 계획이 있는지도 아직은 알 수 없네요.

요금

예산 작성은 최초 만드는 두 개의 예산(Budgets) 항목에 대해선 무료이지만 그 후 추가하는 예산목록은 하루에 $0.02씩 요금이 부과됩니다. 이는 한달이면 $0.6 달러, 1년이면 $7.3이라는 금액이 됩니다. 알림목록 하나에 말이죠.

계정당 최대 2만개의 예산 목록을 작성할 수 있다고 하니 순진하게 마구 만들어 댔다가는 예산 알림 작성만으로도 과금폭탄을 맞을 수 있습니다. 2만개 한달이면 $12000…

그러니 무료 첫 두개의 혜택만으로 알림을 받기위해서 어떻게 자신이 원하는 알림설정을 할 수 있을 지 미리 알고 싶을 거에요. 다행히도, 예산 목록을 만들고나서도 설정을 편집할 수 있습니다.

예산 작성화면은 온통 영어인데다가 AWS 서비스에 익숙하지 않다면 모르는 용어들이 가득하고 어느것이 무엇인지 알 수 없는데, 제가 이번에 알아본 것을 함께 읽어보며 미리 익혀볼 수 있길 바랍니다.

라이트세일을 위한 예산 알림 작성 방법(Create budget)

결제 대시보드의 메뉴 중에 예산을 눌러 예산작성을 통해 자신이 정한 요금 또는 트래픽의 몇 퍼센트에 다다랐을 때 알려주는 기능을 쓸 수 있습니다. 

예산 메뉴에 표시된 AWS Budgets 시작화면

예산 작성화면을 보면 크게 3개의 섹션으로 나눠져있습니다.

1. 예산 세부 정보 설정하기(Budget details)

첫번째 1번 항목부터 시작합니다.

예산유형, 예산 이름, 기간, 시작일과 종료일, 그리고 예산 금액
1단계: 예산 세부 정보

위 그림에서 맨 아래에 있는 예산 금액은 맨 위에있는 예산 유형에 따라 달라지는데 아래와 같습니다.

  • 예산 유형비용으로 선택시: 예산 금액란은 요금 단위($ 달러)가 되고
  • 예산 유형사용량으로 선택시: 예산 금액란은 GB 단위의 데이터(트래픽, 저장용량)가 됩니다.

예산 유형 중 RI(Reserved Instace)는 예약 인스턴스로, 라이트세일과는 관련이 없습니다.

이름은 자신이 원하는데로 지어주면 되고, 기간은 예산을 잡을 기간으로 월별,매분기, 매년 중에 선택하면 되는데 라이트세일은 월단위로 사용량 허용치가 리셋되므로, 월별 트래픽 초과과금 예방 차원의 알림이라면 월별을 선택하면 되겠습니다.

시작일과 종료일은 현재 예산 알림의 시작과 종료일이고 예산목록을 새로 작성시 무료 숫자를 넘어설 것이므로, 종료일은 그냥 두었다가 알림 요소를 바꾸고 싶다면 편집하면 되겠습니다. 그럴때 주의할 건 편집가능한 항목이 제한되어있다는 것입니다.

차후에 편집해서 바꿀 수 없는 항목: 예산 유형, 이름

2. 예산 구체화 설정하기(Refine your budget)

예산 구체화 항목에서는 어떤 서비스에대한 비용을 예산에 포함시킬지 선택하는 설정인데 라이트세일만 쓰는 사용자라면 서비스, 리전, 사용 유형, 고급 필터까지 4개만 알면 됩니다. 1번 항목에서 사용량 선택시에는 서비스 항목과 요금 별 고급 필터는 나오지 않네요.

어떤 서비스에대한 비용을 포함할 지에 대한 선택 목록
예산 구체화 – 서비스 및 리전, 사용유형과 고급필터를 사용한 요금종류를 고를 수 있다

이중에서 아무것도 선택 하지 않는 다면 고급 필터에 있는 요금 종류만 선택되므로 결국 사용중인 모든 AWS 서비스에 대한 예산을 편성하는 것이 될 것입니다.

각 항목 세부 선택은 중복 선택할 수 있는데요. 현재 자신이 사용 가능한 항목만 나옵니다. 예를 들어 라이트세일에서 DDB 를 사용한 적이 없다면 DynamoDB 같은 항목은 목록에 없을 것이고, 미국 리전을 선택하지 않았다면 리전 세부항목에서 US East 같은게 나오지 않을 거예요.

서비스, 리전, 사용 유형 별로 현재 선택가능한 하위항목들이 보여지고 있다
항목별 세부 선택

 

서비스(service): AWS 전체 서비스중에 어떤걸 감시할지 선택합니다. 라이트세일에대한 요금만 보려면 Amazon Lightsail 을 선택하면 되는데 서비스에서 선택하지 않더라도 사용 유형을 통해 고를 수 있습니다. 세금도 함께해야 전체요금이 맞겠죠. 

선택 서비스: Amazon Lightsail, 세금
라이트세일과 세금 복수 선택

 

리전(region): 자신이 사용 중인 리전만 나오는데 라이트세일만의 리전은 아닙니다. EC2 같은걸 다른곳에 쓰고 있다면 해당 리전도 이곳에 나오게 되는데요.

 global 항목같은 경우 청구서 세부항목에서 말한 것처럼 라이트세일 서버로 들어오는 데이터들을 분류한 리전이라서 포함시켜도 되겠지만 라이트세일은 인바운드 데이터 전송초과치에 대한 요금은 없으니 요금에대한 알림설정에서는 선택하지 않아도 됩니다.

하지만 1번 항목에서 사용량 감시를 선택했다면 허용량을 갉아먹는 인바운드 데이터량도 함께 감시해야하는데, 말했듯 global은 모든 리전으로 들어오는 데이터라는 점에서 리전별 구분을 하려면 차라리 사용 유형에서 선택해주는 게 더 용도에 맞을 것같습니다.

 

사용 유형(Usage Type): 이 하위 항목들은 한 번에 알아보기 어렵겠지만 지난 글 청구서 세부항목에서 말했던 규칙을 가지고 있습니다. 자신의 청구서 세부항목을 유심히 보면 이 목록의 글자들이 있을 겁니다. 자신이 사용하지 않는 서비스는 이 목록에 나오지 않아요.

APN1-BundleUsage::0.5GB 같은 어려운말이 쓰여있다
사용유형별 세부 항목

 

고급 필터(Advanced Filters)를 펼쳐보면 요금 종류별 선택이 있긴 하지만 분할 상환 요금이나 혼합 요금, 환급금, 크레딧, 선결제 예약 요금, 세금, 지원요금등으로 세부항목을 예산에 포함킬 것인지 선택하는 항목들입니다.

일반요금, 환급금, 크레딧, 세금, 지원요금등이 나온다
예산에 포함할 요금 선택 목록

3. 알림(선택 사항) – Notifications (optional)

이제 실제 또는 예상 사용요금이나 사용량이 1번 예산 세부 정보 항목에서 설정한 금액의 몇퍼센트 또는 사용유닛에 다다랐을 때 어느 이메일(복수 입력 가능)로 알림을 전송 할 지 작성해줍니다.

알림 선택 사항. 요금이나 사용량이 예산금액의 몇퍼센트일때 알림
알림 수단으로 이메일 선택

 +새 알림 추가 버튼을 통해 다른 조건(%, 이메일등)을 복수 추가 할 수 있네요. 그리고 작성을 누르면 예산알림 목록이 만들어 진 것입니다.

위 그림에서 SNS 주제 ARN이라는 항목은 텍스트 문자(통신사), 이메일, HTTP등 여러가지 수단을 통해 알릴 수 있는 AWS SNS(Simple Notification Service)를 이용한 알림 등록입니다. 예전에 듣기론 AWS에서 한국으로는 문자메시지(SMS)를 보낼 수 없다고 들은 것같네요.

AWS SNS는 매달 100만 건 알림까지는 무료이긴 하지만 1GB를 넘어서는 데이터 송신량에대한 요금이 별개이고, 좀더 복잡한 설정과 알아야할 것들이 많으므로 이 글에서 다루진 못할 것같습니다.

SNS는 시스템 경보용으로도 쓸수있게 만들긴 했다지만 방대한 대규모 엔드유저에게 푸시 알림용으로 적합한 서비스라고 보여지고 단순히 소규모 사업가 개인이 라이트세일 비용 알림용으로 쓰기엔 설정, 관리해야할 서비스가 추가되므로 너무 과하다는 생각도 듭니다.

상황별 AWS 예산 알림 설정 케이스 스터디

위에서 각 항목별로 설명한게 아직 아리송하다면 제가 설정하는 case-by-case를 따라해보는 것도 좋은 생각 일 거예요. 라이트세일 사용자에게 맞춘 설정을 몇가지 해보면서 AWS 예산 설정에 더욱 익숙해져 보겠습니다.

라이트세일 데이터 전송량(트래픽) 제한치에 임박했을 때 알림

 한 리전에 단 하나의 인스턴스만 유지하는 분이라면 들오어고 나가는 트래픽 사용량이 허용량에 가까워졌을 때 알림을 받고 싶을 겁니다. 

  1.  예산 세부 정보
    • 예산유형: 사용량
    • 이름:라이트세일 서울리전 트래픽 허용량
    • 기간: 월별
    • 종료일: 없음
    • 예산 금액: 1000
      • *예산유형이 사용량이므로 예산 금액은 GB단위이고 $3.5짜리 인스턴스의 허용량이 1TB 이니까 1000이라고 적었습니다.
  2. 예산 구체화
    • 사용 유형: Amazon Lightsail 선택 후 아래 두가지 Data Transfer(트래픽) 사용량 항목선택(서울리전 기준)
      • APN2-DataXfer-Out-Free-Bytes (GB)
      • APN2-TotalDataXfer-In-Bytes (GB)
    • 리전: 사용 유형에서 이미 서울리전(APN2)의 데이터 트래픽만 선택했으니 리전 선택은 할 필요가 없겠죠.
  3. 알림
    • 다음의 경우에 알림 실제 사용량이 > 80
      • 예상 사용량이 1번에서 설정한 1000GB의 80%, 그러니까 800GB보다 크면 알림을 받게 됩니다.
    • 이메일 주소: mine@gmail.com, mine2@gmail.com
      • 위 예시처럼 알림을 받을 이메일 주소를 써줍니다.

인스턴스별 구분은 할 수 없으므로 한 리전에 두 개 이상의 인스턴스를 쓰는 사람은 아쉽게도 별로 효과적이진 못하겠죠. 그래도 한 리전 전체의 인스턴스에서 발생하는 트래픽에 대해선 총 데이터량이라거나 평균값이라거나 평소에 사용하는 양을 생각해서 입력해 알림을 받아보는 것도 괜찮을 것같네요.

아래는 제가 일부러 트래픽량을 작게 잡고 수신해본 알람 입니다. 이메일 발송자가 @amazon.com 이어야 스팸이 아닌게 맞겠죠.

amazon.com에서 온 이메일. 제목이 Budget Notification 으로 시작한다.
라이트세일 도쿄리전 데이터 전송량이 예산을 초과할 것에 대한 알림 이메일 수신본

위처럼 제가 작성한 알림 이름을 빼고는 모두 영어로 안내되네요.

라이트세일 한달 예산 초과 예상 알림 설정

이번엔 라이트세일 특정 리전에서 인스턴스 하나라거나 $5 짜리 두개라거나 평소 정해진 비용이 $10일때를 가정해서 비용초과가 예상될 때 알림을 받을 수 있는 설정을 알아보겠습니다.

이는 스냅샷 저장 비용까지 $1이라고 생각해봐야 하겠네요. 평소 자신이 사용하는 리전의 금액을 생각해 예산 금액을 넣어주면 되겠죠.

  1.  예산 세부 정보
    • 예산유형: 비용
    • 이름:라이트세일 전체 비용초과 예상
    • 기간: 월별
    • 종료일: 없음
    • 예산 금액: $11.20
      • 평소 나오는 것보다 $0.2 높게 잡아줬습니다.
  2. 예산 구체화
    • 서비스: Amazon Lightsail, 세금
    • 사용 유형: 사용 유형은 고르지 않습니다.
    • 리전: Asia Pacific (Seoul)
      • 서울 리전
    • 고급 필터: 일반요금, 모든 비용 포함 선택
  3. 알림
    • 다음의 경우에 알림 예상 비용이 > 100 % 
    • 이메일 주소: mine@gmail.com, mine2@gmail.com
      • 위 예시처럼 알림을 받을 이메일 주소를 써줍니다.

예산 금액을 평소비용보다 약간 높게 잡고 예상 비용이 100%가 되면 알리도록 설정을 했는데요. 저도 데이터가 초과되어 본적은 없어서 전송량 초과할껄 예상해서 비용을을 계산해 주는지는 모르겠습니다. 위에서 트래픽에대한 예상은 알려주니 이럴때도 비용을 계산해서 알려주길 바라고 이렇게 설정해봅니다.

그렇게까지 안해준다고 해도 스냅샷을 너무 많이 유지해서 평소보다 초과한다거나 자신이 쓰고싶은 비용보다 인스턴스 유지비용이 웃돌지 않게(예: 추가 인스턴스를 만들고 없애고 반복) 할 때 상기시켜주는 용도로 쓸 수 있을 것같습니다. 아무래도 비용이 가장 와닿으니까요.

AWS CloudWatch를 사용한 라이트세일 요금 모니터링

AWS 서비스 중에 CloudWatch(클라우드워치)라는 게 있거든요. 이를 통해서도 요금을 모니터링 할 수 있다는데 이건 저도 다음에 기회에나 알아볼까 합니다. 대략 개요는 아래와 같아요.

Amazon CloudWatch는 12개월의 AWS 프리 티어 기간이 끝나도 종료되지 않는 기본 무료 사용량을 제공하므로 무료혜택 이내에서라면 사용해볼만 하지만, 공부해야할 것이 늘겠죠. 클라우드와치는 아래 항목 만큼의 무료지표가 제공됩니다.

  • 사용자 지정 지표 10개
  • 사용자 지정 경보 10개
  • API 요청 100만 건
  • 로그 데이터 수집 5GB
  • 로그 데이터 아카이브 5GB
  • 월별 최대 50개 지표를 제공하는 대시보드 3개

클라우드와치는 실시간에 가까운 단위로 AWS의 모든 서비스에대해 시스템 모니터링, 사용량알림등 제법 방대한 내용이므로 더이상 다루지는 않겠습니다.

다음단계

이렇게 Lightsail 사용자에게 도움이 될만한 AWS Bugets(예산) 알림 서비스에대해 알아봤습니다. AWS 예산 알림에대해 스마트폰으로 모바일 푸시알림이 필요하다면 이메일 앱의 푸시 기능등을 사용하면 되걸 같습니다. 연재작 다음편에서는 원치않는 요금이 과금되었을 때 물어볼 공식 포럼과 AWS 고객센터에 문의하는 방법을 알아보겠습니다.

11 댓글

  1. 감사합니다. 제가 궁금한건 그냥 어느정도 트래픽이 되었을 때 딱! 하고 끊는방법인데 그건 없는걸까요? 그것만되면 디도스나 등등… 여러가지 면에서 요금 걱정할 필요가 없으니 바로 가입해서 워드프레스를 설치해 볼 수 있을 것 같은데요.

    • 라이트세일 인스턴스 과금을 멈추는 방법은 인스턴스 삭제 뿐입니다. 트래픽 감시후 자동으로 삭제하는 방법은 AWS에서 제공하진 않습니다.
      삭제전에는 스냅샷 백업을 해둬야겠고요. 스냅샷 비용조차 원치 않는다면 수동으로 DB와 워드프레스 폴더를 백업해서 내려받아야겠죠.

      그리고 디도스 방어는 AWS Shield( 스탠다드:무료, Advanced: 유료)로 96% 공격유형은 방어된다는 군요.
      https://aws.amazon.com/ko/shield/ddos-attack-protection/
      라이트세일 출시 초기에 스탠다드옵션이 기본으로 제공된다는 글을 봤던 것같은데 지금은 찾을 수 없네요.

      그리고 인스턴스의 방화벽 설정에서 HTTP 와 HTTPS를 빼주면 인터넷으로 응답이 끊어지고, 22번 포트로 CLI 접속을 통해 서버로그등을 점검할 수 있겠습니다.
      https://swiftcoding.org/lightsail-firewall

      • 자세한 답글 덕분에 더 궁금해지려고 했던것까지 알게 되었습니다.감사합니다. ㅠㅠ

  2. 감사합니다. 질문이 있는데요. 실시간으로 남은 트래픽 양은 어디서 확인할 수 있는지가 궁금합니다.

    이번달부터 3.50달러 짜리를 사용중에 있는데, 한달간 트래픽이 1TB로 알고 있고요.

    지금 현재 남은 트래픽을 어디서 봐야할지 도통 모르겠네요.ㅠ

    • 아래링크에 설명한 비용탐색기에서 리전별 트래픽 용량은 나와도 인스턴스별 트래픽은 나오지 않습니다.
      https://swiftcoding.org/aws-cost-explorer

      이 연재작을 작성할때까지만해도 인스턴스별 트래픽감시는 방법이 없었습니다.그런데 최근 AWS 라이트세일 기능이 없데이트되면서 태그 기능이 생겼는데 이걸 사용하면 비용탐색기에서 가능할 것으로 예상되네요.

      저도 아직 태그기능은 알아보지 않아서 방법은 말씀드리기 어렵군요. 제 예상처럼 될지도 모르겠고요.

      • 답변 감사합니다. 현재 한개 사이트에서 하나의 인스턴스를 일단 사용중인데요.
        그럼 이 글에서 나온 부분만 일단 정리해 해봤을 때

        예산설정 – 사용 유형 – APN2-TotalDataXfer-In-Bytes (GB) 이 부분을 체크하고 예산금액은 1000GB(1TB)로 설정해서

        나온 값이 0.172 GB로 나오는데요.

        이 수치가 이번달 현재 트래픽 사용량으로 보면 되는 걸까요?

      • 예산 작성은 최초 만드는 두 개의 예산 항목에 대해선 무료이지만 그 후 추가하는 예산목록은 하루에 $0.002씩 요금이 부과됩니다. 이는 한달이면 $0.062 달러, 1년이면 $22.63이라는 금액이 됩니다. 알림목록 하나에 말이죠.

        이 부분에 대해 말씀드린겁니다.

        • 당시 다른 포스트글로 착각했네요. 잘못 쓰여있던 것이 맞네요. 혼란을 드려 죄송합니다. 다시 수정했습니다. 하루 $0.02가 맞습니다.

댓글은 익명이나 SNS, wordpress.com 로그인 지원). 마크다운 문법 사용가능(Shift+~ 키로 특정문구 혹은 위아래 ~~~으로감싸서 여러줄을 코드블락으로 작성)