Amazon Web Services 한국 블로그

AWS 프리 티어 사용량 확인용 API 출시

오늘부터 새로운 AWS 프리 티어 API를 사용하여 AWS 프리 티어 사용량을 확인할 수 있습니다. 이 API는 AWS Command Line Interface(AWS CLI)에서 바로 사용하거나 AWS SDK를 사용하여 애플리케이션에 통합할 수 있습니다.

AWS 프리 티어 프로그램을 통해 각 서비스별로 지정된 한도까지 AWS 서비스를 무료로 살펴보고 사용해볼 수 있습니다. AWS 프리 티어에는 다음과 같은 세 가지 유형의 오퍼링이 포함됩니다.

  • Always free 오퍼의 경우, AWS 고객 자격을 유지하는 한 지정된 한도까지 서비스를 무료로 사용할 수 있습니다.
  • 12 Months Free 오퍼의 경우, 계정이 활성화된 날로부터 1년 동안 지정된 한도까지 무료로 서비스를 사용할 수 있습니다.
  • Short-term trials의 경우, 서비스에 따라 지정된 기간 동안 또는 최대 1회 한도까지 무료로 사용할 수 있습니다.

AWS 리소스를 활성화하고 프리 티어를 제공하는 AWS 서비스를 이용하기 시작하면, 프리 티어 한도에 얼마나 도달했는지를 추적하여 사용량에 따른 요금제로 전환되는 예상 시점을 파악할 수 있어야 합니다.

AWS 프리 티어 사용량은 다음과 같은 몇 가지 방법으로 추적할 수 있습니다.

이제 이 새로운 API가 실제로 어떻게 작동하는지 알아보겠습니다.

AWS CLI에서 AWS 프리 티어 API 사용
제게는 지난 몇 개월 동안 만든 새 계정에 대한 액세스 권한이 있습니다. 여기서 AWS Command Line Interface(AWS CLI)를 사용하여 GetFreeTierUsage API를 직접 호출합니다.

aws freetier get-free-tier-usage

이 결제 기간 동안 이 계정에 적용되는 각 오퍼의 현재 사용량에 대한 설명이 포함된 JSON 문서가 응답으로 반환됩니다. 설명의 편의를 위해 여기서는 몇 가지 오퍼만 보여드리겠습니다.

{
    "freeTierUsages": [
        {
            "service": "Amazon Simple Queue Service",
            "operation": "",
            "usageType": "Requests",
            "region": "global",
            "actualUsageAmount": 294387.0,
            "forecastedUsageAmount": 679354.6153846154,
            "limit": 1000000.0,
            "unit": "Requests",
            "description": "1000000.0 Requests are always free per month as part of AWS Free Usage Tier (Global-Requests)",
            "freeTierType": "Always Free"
        },
        {
            "service": "Amazon Elastic Compute Cloud",
            "operation": "",
            "usageType": "EBS:VolumeUsage",
            "region": "global",
            "actualUsageAmount": 9.0,
            "forecastedUsageAmount": 33.0,
            "limit": 30.0,
            "unit": "GB-Mo",
            "description": "30.0 GB-Mo for free for 12 months as part of AWS Free Usage Tier (Global-EBS:VolumeUsage)",
            "freeTierType": "12 Months Free"
        },
        {
            "service": "Amazon Elastic Compute Cloud",
            "operation": "RunInstances:0002",
            "usageType": "BoxUsage:freetier.micro",
            "region": "global",
            "actualUsageAmount": 476.0,
            "forecastedUsageAmount": 851.0,
            "limit": 750.0,
            "unit": "Hrs",
            "description": "750.0 Hrs for free for 12 months as part of AWS Free Usage Tier (Global-BoxUsage:freetier.micro)",
            "freeTierType": "12 Months Free"
        },
        {
            "service": "Amazon Elastic Compute Cloud",
            "operation": "RunInstances",
            "usageType": "BoxUsage:freetier.micro",
            "region": "global",
            "actualUsageAmount": 225.0,
            "forecastedUsageAmount": 485.0,
            "limit": 750.0,
            "unit": "Hrs",
            "description": "750.0 Hrs for free for 12 months as part of AWS Free Usage Tier (Global-BoxUsage:freetier.micro)",
            "freeTierType": "12 Months Free"
        },
        {
            "service": "Amazon Redshift",
            "operation": "RunComputeNode:0001",
            "usageType": "Node:dc2.large",
            "region": "global",
            "actualUsageAmount": 367.0,
            "forecastedUsageAmount": 735.0,
            "limit": 750.0,
            "unit": "Hrs",
            "description": "750.0 Hrs for free per month during a short-term trial as part of AWS Free Usage Tier (Global-Node:dc2.large)",
            "freeTierType": "Free Trial"
        },
        ...
    ]
}

freeTierUsages 목록에 가장 일반적인 오퍼를 찾을 수 있습니다.

이러한 오퍼의 속성을 몇 가지 살펴보겠습니다.

  • description은 오퍼의 내용을 알 수 있는 설명을 제공합니다.
  • freeTierTypeAlways Free, 12 Months Free 또는 Free Trial(단기)과 같은 오퍼 유형을 나타냅니다.
  • unit는 오퍼의 사용량을 측정하는 데 사용되는 단위를 나타냅니다. 예를 들어 EC2 인스턴스의 경우 Hrs(시간), EBS 볼륨의 경우 GB-Mo(월간 GB), Amazon SQS의 경우 Requests를 단위로 사용합니다.

오퍼의 한도(limit), 오퍼의 실제 사용량(actualUsageAmount), 결제 기간 종료 시(현재 달) 예상 사용량(forecastedUsageAmount)이라는 세 가지 흥미로운 속성이 있습니다. 모두 오퍼에 사용되는 단위를 기준으로 합니다. 예를 들어 Windows 및 Linux 컴퓨팅 오퍼는 각각 월 750시간으로 제한됩니다. 스토리지 오퍼의 경우 한도는 월 30GB입니다. Amazon SQS의 경우 오퍼 한도는 월 백만 건의 요청입니다.

무료로 제공되는 한도 및 서비스에 대한 자세한 내용은 AWS 프리 티어 페이지의 각 카드와 각 서비스의 요금 페이지에 자세히 나와 있습니다. AWS 프리 티어 API에서 제공하는 실제 및 예상 사용량은 AWS 비용 및 사용 보고서와 마찬가지로 하루에 최대 3회까지 계산됩니다.

예상 사용량이 오퍼 한도보다 큰 경우, 동일한 방식으로 서비스를 계속 사용하면 결제 기간이 끝나기 전에 사용량에 따른 요금으로 전환될 것으로 예상할 수 있습니다. 한도에 도달하면 GetFreeTierUsage API가 실제 사용량을 더 이상 추적할 수 없습니다. 즉, 실제 사용량은 한도보다 클 수 없습니다. 이 경우 API는 해당 오퍼를 반환하지 않습니다.

예를 들어 AWS CLI의 --query 옵션을 사용하여 예측이 한도보다 큰 오퍼를 찾습니다.

aws freetier get-free-tier-usage --query 'freeTierUsages[?forecastedUsageAmount > limit]' 
{
    "freeTierUsages": [
        {
            "service": "Amazon Elastic Compute Cloud",
            "operation": "",
            "usageType": "EBS:VolumeUsage",
            "region": "global",
            "actualUsageAmount": 9.0,
            "forecastedUsageAmount": 33.0,
            "limit": 30.0,
            "unit": "GB-Mo",
            "description": "30.0 GB-Mo for free for 12 months as part of AWS Free Usage Tier (Global-EBS:VolumeUsage)",
            "freeTierType": "12 Months Free"
        },
        {
            "service": "Amazon Elastic Compute Cloud",
            "operation": "RunInstances:0002",
            "usageType": "BoxUsage:freetier.micro",
            "region": "global",
            "actualUsageAmount": 476.0,
            "forecastedUsageAmount": 851.0,
            "limit": 750.0,
            "unit": "Hrs",
            "description": "750.0 Hrs for free for 12 months as part of AWS Free Usage Tier (Global-BoxUsage:freetier.micro)",
            "freeTierType": "12 Months Free"
        }
    ]
}

프리 티어 한도를 초과하지 않으려는 경우에는 이 결과를 통해 Windows에서 EBS 볼륨과 Amazon EC2 컴퓨팅의 사용 추세를 확인할 수 있습니다.

예를 들어 이 예에서는 현재 1개월 동안 사용할 수 있는 750시간 중 476시간을 Windows EC2 인스턴스로 사용하고 있습니다. 이 속도라면 사용량이 한도를 넘어서 약 851시간에 도달할 것으로 예상됩니다. 비용이 걱정된다면 사용하지 않을 때나 야간에 Windows 인스턴스를 비활성화할 수 있습니다.

알아야 할 사항
이전에는 프리 티어 API가 일반에 제공되지 않았고, AWS 빌링 콘솔의 프리 티어 페이지에서 내부적으로 사용되었습니다. 이 페이지에는 동일한 데이터가 표시됩니다. 이번에 GetFreeTierUsage API가 일반에 제공됨에 따라, 걱정 없이 AWS를 사용하고, AWS 프리 티어 오퍼를 더 잘 활용하고, 무료로 제공되는 항목과 한도에 근접하거나 한도를 초과했을 때 대처 방법을 이해하는 데 도움이 되기를 바랍니다.

이 정보를 활용하여 비즈니스 요구 사항에 따른 맞춤형 보고서를 작성할 수 있습니다. 예를 들어 컴퓨팅 비용을 피하려면 프로그래밍 방식으로 EC2 인스턴스를 중지 또는 하이버네이트하거나 EC2 Auto Scaling 그룹의 크기를 0으로 설정할 수 있습니다. 원하는 AWS SDK를 사용하여 웹 앱을 만들거나 이 데이터를 모니터링 솔루션에 통합할 수 있습니다.

일반적으로 오퍼 사용량이 한도에 가까워지면 추가 이메일이나 알림을 보낼 수 있습니다(예: Amazon SES 또는 Amazon SNS를 사용하여 알림 전송). 그러면 추가 비용을 들이지 않고도 오퍼의 혜택을 최대한 활용할 수 있습니다. 사용량 예산 금액을 프리 티어 한도로 설정한 경우 AWS Budgets에서도 이 작업을 수행할 수 있습니다.

오퍼가 이 계정에 더 이상 적용되지 않는 경우(예: 이전 달 말에 만료된 경우), 해당 품목은 목록에 포함되지 않습니다. 이전에 API를 간접 호출한 결과를 저장한 경우, 오퍼 목록을 이전 결제 주기 동안 보고된 오퍼와 비교하여 최근에 만료된 오퍼를 확인할 수 있습니다.

AWS 프리 티어 사용량을 추적하는 방법에 대해 자세히 알아볼 수 있도록, AWS 전문가로부터 배우고 온라인으로 클라우드 스킬을 익힐 수 있는 온라인 학습 센터인 AWS Skill Builder에서 10분 분량의 교육 과정 3개를 제공합니다.

Danilo