상세 컨텐츠

본문 제목

[AWS/S3] S3를 이용해서 호스팅하고 Cloudflare로 도메인 연결하기(1) - S3 비용 구성알기

DevOps 연구 노트/아마존 웹 서비스

by bydawn25 2022. 3. 27. 14:45

본문

AWS 서비스 비용을 알아보는 방법은 여러가지가 있다. 그 중 Pricing Calculator를 사용해보자.

 

참고로 이 글은 S3의 역활, Storage의 구분 등 아주 기본적인 개념을 알고 있는 개발자를 위해 작성되었다. CTRL+F눌러서 필요한 정보를 찾아 잘 사용하길 바란다.

 

아래 공식홈페이지는 S3의 비용이 어떻게 구성되고 과금되는지 잘 나와있다. 각 비용들의 세금은 제외되어 있다.

https://aws.amazon.com/s3/pricing/?loc=ft#AWS_Free_Tier 

 

Amazon S3 Simple Storage Service 요금 - Amazon Web Services

S3 버킷 및 객체를 대상으로 수행한 요청에 대해 요금을 지불합니다. S3 요청 요금은 요청 유형을 기준으로 하며 아래 표와 같이 요청 수에 따라 요금이 부과됩니다. Amazon S3 콘솔을 사용하여 스토

aws.amazon.com

 

 

 

Free Tier

AWS의 프리티어는 두가지 경우로 나뉜다.

1. 기본 1년동안 제공하는 무료 사용량

2. 항상 무료로 제공해주는 사용량

 

s3같은 경우는 1번의 경우로 계정 생성일을 기준으로 1년동안 무료로 아래와 같은 옵션을 사용할 수 있다.

1. 5GB의 용량의 Standard 저장공간

2. 매달 2만번의 GET, 각 2천번의 PUT,COPY, POST, LIST 명령어 사용

3. 매달 100 GB의 데이터 전송량

 

각 Free Tier의 사용량은 사용하지 않는다고 축적되는게 아니고 달마다 소멸되니 무료로 사용하실 분은 잘 계산해서 사용하여야 한다.

 

 

 

 

S3비용의 종류

S3는 총 6개의 비용으로 이루어져 있다. AWS서비스의 요금을 이해하기 위해서는 각 서비스의 개념을 정확히 알고있어야한다. S3의 관한 포스팅도 기회가 된다면 기초부터 다루어 보고 싶다.(~ ̄▽ ̄)~(~ ̄▽ ̄)~

 

1. 용량

비용의 가장 기본적인 부분! 용량이다. 말 그대로 해당 저장공간에 object가 물리적으로 얼마나 차지하고 있는지에 따라 요금이 청구된다.

 

이때 리전과 Storage Class(Standard, Intelligent 등)에 따라 비용이 나뉜다.

나는 Oregon Standard를 사용하고 있고 50TB를 넘지않는 공간을 사용하고 있으므로 기가당 0.025달러가 청구된다. 기가당 청구가 된다는것은 1GB용량이 넘지 않으면 청구가 되지 않는다는것 .. !! 잘만하면 공짜로 사용할 수도 있다.

 

S3 Class간에 데이터 이동이 일어난다면 그에대한 transfer fee가 추가로 요구된다는 점. Intelligent class를 사용한다면 이 점을 고려하여 비용을 설계하여야 한다.

 

EXAMPLE : 

나의 경우 현재 42.4MB를 3월 20일 부터 사용하고 있으니 아래와 같이 계산할 수 있다. (3월 26일 기준)

바이트-아워 사용량(Byte Hour Usage)
- 0.042GB(42,400,000Byte) x 17days x (24 hours / day) = 17,299,200,000 Byte-Hours

바이트 단위의 사용량을 기가바이트로 환산하기(GB-Months)
- 17,299,200,000 Byte-Hours ÷ 1,073,741,824 bytes ÷ 744 hours = 약 0.022 GB-Months
- byte를 기가로 먼저 환산
- 3월 기준 31일, 744시간으로 나누면 한달에 사용하는 기가 값이 나옴 

마지막으로 위의 이미지에 나오는 값으로 곱해주기
- 0.022 GB-Month * 0.023 = 0 달러
- 50테라 바이트까지는 1GB당 0.023달러가 청구된다고 하였으니 나는 청구되는 금액이 없다 ^0^

 

2. 데이터 요청과 제공

S3에서 데이터를 가져오거나 전송하고자 할 때 청구되는 비용이다. PUT, COST, POST, LIST, GET, SELECT, Lifecycle Transtion과 Data Retrieval 요청들에 해당하고 DELETE와 CANCEL에 대해서는 청구되지 않는다.

 

이 비용은 Storage Class에 따라서 매우 달라지기 때문에 사용하는 빈도수가 적다면 반드시 Infrequent access나 Glacier를 사용하는것을 추천한다.

 

EXAMPLE : 

계산하기 위해서는 몇개의 파일들이 요청되는지 알아야 한다. 나는 넉넉잡아 30개 정도의 파일이 매달 아마존 밖으로 요청되어야 한다고 가정했다. 현재 예시 사이트에 아마존으로 들어오는 파일(업로드 등)은 없다.

총 파일 요청 사용량
- 300개의 파일 X 31 Days = 9100개
- 하루 사용자가 10명이라고 가정했을때 하루에 송신되는 양은 300파일이고 이를 한달로 잡으면 9000개가 된다.
- 9100개의 요청 x 0.0004$ ÷ 1000개의 요청 = 0.00364$

 

3. 데이터 송신

S3와 통신하는데 돈이든다. 다만 몇가지 항목들은 제외된다.

  • 처음 인터넷에 송신하는데 사용되는 100GB
  • 인터넷에서 S3로 통신이 들어올 때
  • S3 Bucket들 사이에 데이터를 주고 받을 때
  • S3와 다른 AWS서비스들 사이에 데이터를 주고 받을 때(다만 같은 Region이여야 함)
  • CloudFront로 S3가 데이터를 보낼때

 

 

꽤 많은 항목들에서 S3는 무료로 통신이 가능하다. 위의 표에서 보면 확인 가능하겠지만 Data를 인터넷으로 내보내는 금액과 다른 AWS Service들과 통신하기 위하여 사용하는 금액이 다르다.

 

이번에 확인해보니 CloudFront(AWS CDN Service)와 통신하는데 무료(!)라서 통신의 퀄리티를 위해 CDN과 혼합하여 호스팅을 설계하는것도 좋은 전략일 것 같다.

 

참고로 아주 기본적인 transfer비용 외에도 multi region access point기능이나 transfer accelrating기능을 추가로 사용한다면 당연히 추가적으로 과금된다.

 

 

혹시 궁금하다면 자신의 Account에서 사용량을 확인할 수 있다.

 

EXAMPLE : 

지금 나의 경우에는 통신 Bandwidth가 100GB를 넘지 않을 정도로 작은 경우라 이 항목은 제외하도록 하겠다.

 

4. 관리와 분석

S3 사용량을 관리하고 분석하는 툴(Amazon S3 Inventory, S3 Storage Class Analysis, S3 Storage Lens, and S3 Object Tagging)을 사용하고 있다면 추가로 비용이 청구된다.

 

S3를 자주, 많이 사용하고 있다면 약간의 과금이 되더라도 잘 따져 해당 서비스들은 사용하는것을 추천한다.

 

EXAMPLE : 

S3를 분석하고 효율적으로 튜닝하는 과정은 필수적이라 S3 Storage Lens의 free기능들은 사용하고 있다.
청구 금액은 없다.

 

5. 복제

여기서 복제란 한 Region, 한개의 Bucket에 올라가 있는 파일들을 안전상의 이유 혹은 기능상의 이유로 여러 region에 자동으로 복제하는 기능을 말한다. 필요에 따라 활성화 할 수 있다.

EXAMPLE : 

현재는 사용하지 않으므로 제외하도록 하겠다.

 

6. Lambda 기능

이 기능을 사용하면 S3에서 데이터를 불러올 때 Lambda 코드를 활용하여 custom할 수 있는 기능을 말한다. Oregon의 경우는 기가당 0.005$가 청구된다.

EXAMPLE : 

현재는 사용하지 않으므로 제외하도록 하겠다.

 

 

 

 

최종정리

1. 용량
- 0.022 GB-Month * 0.023 = 0 달러

2. 데이터 요청과 제공
- 9100개의 요청 x 0.0004$ ÷ 1000개의 요청 = 0.00364$

3. 데이터 송신(제외)
4. 관리와 분석(제외)
5. 복제(제외)
6. Lambda 기능(제외)

내 서비스의 사용량, 사용예측량, 차지하는 용량 등 여러가지를 자세하게 알고 있을수록 정확한 비용을 예측할 수 있다. 계산을 조금더 간단하게 할 수 있도록 위 정보들을 가지고 Pricing Calculator를 사용해보자. 

 

 

 

 

 

 

다음편으로 넘어가기 전에

다음편은 위 정보를 활용한 Pricing Calculator 사용 튜토리얼을 진행하도록 하겠다. 이번 포스팅을 하면서 S3 Billing question과 공식 안내 페이지를 처음으로 자세히 읽어볼 수 있었다. 😂(반성 ...)

 

AWS를 사용하면서 항상 느끼는 점은 비용과의 싸움이다. 알면 알수록 절약하고 조금 더 알차게 사용할 수 있는것 같다. 여기까지 읽으셨다면 포기하지 말고 S3의 사용을 계속해보자!!

 

 

 

 

 

 

 

관련글 더보기