改めてAWSの「無料利用枠」を知ろう

621件のシェア(とっても話題の記事)

先日、珍しく土日に外出し(!)、東京国立博物館で開催していた「三国志」展に行ってきました。
小学生の頃に三国志演義から入り、高校の頃には正史の方の三国志を読みまくる程度には「三国志」がずっと大好きでした。

そんな過去もあり、今回の展覧会はいつか行きたい!と思っていたのでギリギリのタイミングでしたが行けて良かったです。

▲ 「三国志」でいらすとやを検索すると何故か劉備だけが引っかかる(曹操も諸葛亮もいるのに)

大抵好きになる歴史上の人物は知将なのに、自分自身は脳筋格闘人間なAWS事業本部のShirotaです。憧れと現実は一致しないものです。

AWSの無料利用枠「全て」、ご存知ですか?

さて今日は「無料利用枠」についてお話ししたいと思います。
今更?と思われた方。「無料利用枠」知っているし、もう使っているよ!と思われた方。

皆さんは、AWSが提供している「全ての無料利用枠」について知っていますか?
AWSアカウントを新規発行してから1年間存在する12ヶ月の無料利用枠が、AWSの無料利用枠と言った場合に一番早く思い浮かぶのではないでしょうか。
AWSの無料利用枠は、これだけでは無いんです。
今回は、様々な無料利用枠について余す事なくお話したいと思います。

AWSの「無料利用枠」には3種類ある

早速、今回心に留めておきたい大事な内容に入ります。 AWSの「無料利用枠」には、 3種類 の無料利用枠が存在します。
それぞれの無料利用枠の定義について、AWS公式にあるAWS 無料利用枠を見ながらまとめてみました。

3種類の無料利用枠比較表

忙しい方は、この図をとりあえず見て頂けると分かりやすいかなと思います。

12ヶ月無料枠 無期限無料枠 トライアル
期限 12ヶ月間 無期限 有限(サービス毎に異なる)
開始条件 AWSアカウント作成後 対象サービスを利用 対象サービスの初回利用時

それぞれの無料利用枠については、次から詳しく解説していきます。

12ヶ月無料枠

冒頭で軽くお話しした、AWSアカウントを 新規作成した日から1年間 有効な無料枠です。
例えば、EC2インスタンスを 750時間/月 無料で利用できるといったものがあります。
ただし、使用できるリソースについては制限がある事があり、EC2インスタンスの場合ですと

  • インスタンスタイプは t2.micro
  • OSは Amazon Linux 1,2、Windows Server、Red Hat Enterprise Linux、SUSE Linux、Ubuntu Server

を指定する必要があります。

▲ コンソール上で対象のAMIを確認できます

「月に750時間」と言われると、「そもそも1ヶ月は何時間存在するんだ」という疑問が湧くので調べてみます。

  • 1ヶ月が28日(最短): 24時間/日 × 28日 = 672時間
  • 1ヶ月が31日(最長): 24時間/日 × 31日 = 744時間

サマータイムを考慮したとしても、750時間は超えない計算です。
この事から、 1台のt2.micro EC2インスタンスを1ヶ月起動したままにしておいても、料金が発生する事が無い という事が分かります。
ここで、 EC2インスタンス1台ごとに750時間/月の無料利用枠が与えられている訳では無い という事を忘れがちになりやすいので気を付けておきましょう。
他にも、

  • Amazon S3
    • 5GBの標準ストレージ
    • 20,000件のGetリクエスト
    • 2,000件のPutリクエスト
  • Amazon RDS
    • 750時間/月分のSingle-AZ マイクロ DB インスタンス利用
    • インスタンスタイプはdb.t2.micro指定
    • OSはMySQL、PostgreSQL、MariaDB、Oracle BYOL、SQL Serverから選択

といったように、無制限の無料利用では無いですが様々な無料利用枠が用意されています。
EC2とRDSに無料利用枠がある事からも分かるように、AWSアカウント開設後の1年間は無料に近い状態でAWSを利用して簡単なサービスを提供する事も可能なのでは無いでしょうか。
勿論、無料利用枠のみでやり切ろうと思うとどうしても冗長化構成が取れなくなったりはしてしまいますが、「とりあえずWordPressが動く環境を作ってみる」といった目的ですと既に上記に記載したサービスだけでも可能である事が分かるかと思います。
因みに、無料利用枠の利用が可能な期間が終わりそうになると、AWSがメール通知を送ってくれるので、見落とさないようにしましょう。

▲ 件名で結構ビビる

無期限無料枠

はじめに紹介した無料枠がAWSアカウント作成後12ヶ月有効という期限付きだったのに対して、こちらの無料枠は無期限となっています。
例えば、AWS Lambdaだと 100万リクエスト/月 が無料で利用できます。
こちらも

  • 毎月400,000GB-秒まで有効 → 最大3,200,000秒のコンピューティング時間が無料利用可能

と、利用する関数のメモリ割り当て次第でコンピューティング時間が変動する制限が存在しています。

他にも、

  • AWS Well-Architected Tool
    • ワークロードのレビューが無制限(!)
  • Amazon CloudWatch
    • 基本モニタリングのメトリクス(5分間隔)
    • 詳細モニタリングのメトリクス10個(1分間隔)
    • 100万件のAPIリクエスト
    • ダッシュボード(最大50個のメトリクスに対応)3つ
    • 10件のアラームメトリクス
    • 5GBのログデータ
    • カスタムイベントを除くすべてのイベント

などが AWSアカウントを利用している限り無料で利用できます。
是非、AWSを利用している方は利用してみて下さい。

最大コンピューティング時間の計算方法

因みに、コンピューティング時間は以下の数式で求められます。

コンピューティング時間(秒) = 400,000GB-秒(無料利用枠) / {関数のメモリ割り当て(MB,128MB~3,008MB) / 1024(MB) }

トライアル

これは、初めて該当のサービスを使う場合、一定期間だけ使える 無料利用枠です。
例えば、Amazon Guard​Dutyは初めて使用する場合、 30日間無料 で利用する事ができます。この期間中は、全ての機能が無料で利用できます。

因みに、Amazon Guard​Dutyの料金に関する公式ページには以下のような文面があります。

GuardDuty コンソールは、試用期間に何日残っているかを示し、分析したデータ量に基づいて、アカウントの 1 日の平均費用を推定します。これにより、Amazon GuardDuty を無料で簡単に体験でき、無料トライアル後も使用した場合のサービスの料金を簡単に予測できます。

実際に1ヶ月無料で使ってみる事で、無料利用期間後のAmazon GuardDutyを利用する場合の費用が想定しやすいようになっています。
「GuardDuty使ってみようかな……でもどれくらいの費用になるか分からなくて怖いな……」となっている場合は、1ヶ月無料トライアルを試す事で、GuardDutyの性能を体感しつつ費用感も掴める筈です。

他にも、

  • Amazon Redshift
    • 2ヶ月間無料
    • 750時間/月 のdc2.large使用量
  • Amazon WorkSpaces
    • 2ヶ月間無料
    • 80GBのルートボリュームおよび50GBのユーザーボリュームを備えた2つのスタンダードバンドルをAutoStopモードで合計最大40時間/月 の使用

などがあります。

どんなサービスが無料利用枠に該当するの?

AWS無料利用枠に関しては、各サービス毎のページの「料金」欄からも確認できますが、公式の概要ページにまとめてあるものを確認するのが一番楽で分かりやすいです。

AWS 無料利用枠

こちら、以下のようにフィルタリングする事によって簡単にお目当ての無料利用枠を調べる事ができます。

▲ データベース関連のサービスの無期限利用枠はこんな感じ

無料利用枠を確認する際のコツ

例えばEC2インスタンスを利用する場合、「EC2」の項目だけ確認していると無料利用枠が切れた後で発生する料金が案外多くて驚いたりする可能性があります。
この場合、関連しそうなサービスを意識してみると想像し易くなるかもしれません。
まずは、利用したいサービスの名称でフィルタリングしてみます。

▲ どの項目に注目するか

例えば、t2.microのAmazon Linux2のEC2インスタンスを1台立てる際、ストレージを40GBにしてみたとします。
EC2インスタンスの利用としては、無料利用枠に収まっていますが EBSの利用枠の上限である30GBを超えています
このような場合は、料金が発生してしまいます。

▲ ローンチ前に注意はしてくれる

なので、今回ならEC2の項目に併せて、 Amazon Elastic Block Storage もチェックしておくと想定外の課金に焦る事が無くなるでしょう。
このようにサービス名でフィルタリングして併せて使う可能性のあるサービスを確認する事が、上記ページで無料利用枠を確認する際のコツです。

念には念を入れて確認する方法

そうは言っても、どのサービスがどれだけ利用されているかなんて実際に利用しても見落とししがちなものです。
こんな公式サポートページが存在するくらいです。

インスタンスがすべて削除されているのに EC2 料金を請求されるのはなぜですか?

実際に、各リソースの利用状況を確認するにはどうしたら良いかをまとめてみました。

Billing & Cost Management Dashboard から確認する

AWSの無料利用枠をどれだけ利用しているのかは、Billing & Cost Management Dashboardから確認する事ができます。
今回、私は無料利用枠が使えるアカウントを持っていない状況で実際に検証はできなかったのですが、分かりやすい公式チュートリアルのページがあったのでこちらを紹介させて頂きます。

AWS コストの管理

上記ページの「3.コストと無料利用枠の使用量を確認する」で、Billing & Cost Management Dashboardから確認する方法が紹介されています。

上限近くなると送信されるアラートメールを確認する

AWSアカウントはデフォルトで、無料利用枠の上限の85パーセントを超えた時にアラートメールを送信するように設定してあります。

▲ 「Billing preferences」に設定がある

実際に届くメールはこんな感じになっています。

▲ 使用率が約85.9パーセントくらいの時のアラートメール

AWS Budgetsを設定する

AWS Budgetsは予算を設定する事でコストを超えた時、もしくは超えると予測された時にアラートを発信する事ができるAWSのサービスです。
AWS Budgets自体は、 2つの予算 までは無料で設定する事が可能です。
それ以上の予算の設定は、それぞれに0.02USD/日の課金が発生します。

試しに、「t2.microのEC2インスタンスの起動時間が、750時間/月に達するペースで利用している時にアラートを発生させる」予算を作成してみました。

まずは、「Budgets」のカラムを選択して、新規の予算を作成します。

▲ 未作成だとこんな画面になります

次に、予算のタイプを選択します。
今回は、利用量ベースで設定したいので、「Usage budget」を選択しました。

▲ 他にも料金ベースやRIベースでも設定可能

予算の詳細を設定します。
今回は、「2019年9月の1ヶ月間」に、「t2.micro」のEC2インスタンスが「750時間」利用されるかどうかを追跡するように設定します。

▲ 期間とリソースを設定。Usage Typeにはデータ転送量も設定できるようになっていた!

▲ t2.microに絞り込む

最後に、アラートの発報条件を設定します。
今回は、「今のペースで使い続けると月末には750時間の利用を超える」と分かった時にメールが送信されるように設定しました。

▲ 今回は設定していませんが、SNSのトピックも用意しておくと設定できます

以上で、設定は完了です。

実際に、作成した予算を見ていきます。

▲ 作成後数分でデータが上がってきていた

予算名をクリックすると、より詳細にデータが参照できます。

▲ このペースで利用すれば、今月は13.58パーセントの利用率で済みそうだと分かりました

今回はコンソール上で予算を作成してみましたが、CloudFormationで一撃作成する方法もあります。

CloudFormation一撃で予算アラート(Budgets)を作成してみた

また、AWS Budgetsに関するアップデートや様々な設定に関しては良さそうなブログが沢山あったので弊社ブログの検索欄から「AWS Budgets」で検索する事をお勧めします。

Developers.IOを「AWS Budgets」で検索

無料利用枠マスターへの道を行こう!

普段何気無く利用している「無料利用枠」でしたが、改めて調べてみると とてつもなく奥が深かったです

全てを網羅する事は大変ですが欲しい情報を調べる手段を網羅する事なら出来るのではないかと思い、今回はAWS無料利用枠の定義や調べ方、そしてサービスの利用状況の確認方法をまとめてみました。
皆さんが一つでも「これ知らなかった!」に巡り会う事ができ、無料利用枠マスターへの道を少しでも進む事ができましたら幸いです。