AWS BudgetsでAWSの想定外コストを監視する
目次
AWSにおけるコスト管理の概要
AWS(Amazon Web Services)などのパブリッククラウドを利用することは、オンプレミスのサーバーを利用していた従来のIT環境と比較して、QCD(Quality:品質、Cost:費用、Delivery:調達速度)の大幅な改善につながります。その中でもCost面でのメリットを享受するには、AWSにおけるコスト管理の考え方を理解しておく必要があります。AWSはオンプレミスのサーバーと異なり、コスト管理の考え方にどのような違いがあるのでしょうか。
従量課金であり予測しにくい
まず大きな違いとしては、、従量課金であり、課金額を予測しにくい点が挙げられます。例えばEC2などのサービスは、AutoScalingによりサーバーの台数が増減したり、増加するデータに対応してストレージ容量が増えていったりして、当初予定していた金額とずれが生じる可能性がありますし、いつAutoScalingが実施されるのかを正確に予測しておくことは不可能です。
思わぬ課金が発生する
加えて、AWSのサービスは100以上もあり、料金体系を全量正確に把握しておくことは困難です。Amazon Athenaのような、知識が乏しいユーザーが利用すると思わぬ高額課金を招くようなサービスも中にはあるため、ちょっとした利用でも料金が高額化してしまう可能性があります。また、AWSのサポートプラン変更など、数クリックで高額な課金が発生することもあります。
値下げプランが発表される
AWSはサービス開始後70回以上の値下げが実施されています。また、リザーブドインスタンスやSaving Plansの発表など、ユーザーにとって割引効果が享受できるサービス・機能も順次発表されています。このように、値下げプランを適切にシステムの本番ワークロードに適用し続ける必要があります。
AWS運用コストの削減のご相談も可能 運用コストを引き下げるスタイルズのAWS導入・移行サービスはこちら→
AWSにおけるコスト管理で重要なこととは?
これらのAWSのコスト管理の考え方から、AWSにおけるコスト管理は、情報収集と改善を繰り返していく必要があります。現状を可視化して監視するとともに、利用が多いサービスや利用状況を監視、分析し、適切なサービスを利用して環境の最適化を行っていく必要があります。つまり、監視→分析→最適化のPDCAを回し続ける必要があります。本記事では、AWSのコスト監視のサービスについて記載をしていきます。
コスト監視ツールAWS Budgetの概要
AWSのコスト管理ツールとして、AWS Budgetsが提供されています。AWS BudgetsはAWS上で使用している各種リソースの使用状況を監視して、アラート設定した金額に近づいた、または超えた場合は通知してくれるサービスです。AWSアカウント全体の予算管理だけでなく、Amazon EC2の利用料金を毎月いくらまでに抑えたい、といった要件にも対応が可能です。
AWS Budgetsのメリット
AWS Budgetsにはどのような機能があり、どのようなメリットがあるのでしょうか。具体的に記載していきます。
アラートの設定が可能
予算と閾値を設定し、閾値を超えた場合にメールなどでアラートを発生させることが可能です。予算の閾値は要件に合わせて柔軟に設定することが可能です。
条件に基づいた予算管理が可能
サービス毎やアプリケーション(コスト配分タグ毎)アカウント毎、使用しているリージョン毎など様々な単位で予算と利用実績を管理することが可能です。これにより、さまざまな要件や利用状況、組織に対しても導入することができます。
レポートの作成が可能
毎日、週ごと、月ごとのレポートを作成することが可能です。各AWSリソース毎にレポートの作成が可能であり、利用状況を可視化することができます。
AWS Budgetsのアラート設定の流れ
具体的に、どのように設定を行うのか、手順を記載します。
1. マネジメントコンソールの右上にあるユーザー名をクリックし、『請求ダッシュボード』をクリックしてBillingの画面を表示させます。その後、左側に表示されるナビゲーションペインにある「Budgets」をクリックします。
2. AWS Budgetsのトップ画面になったら、画面右側の『予算を作成する』画面をクリックします。
3. ラジオボタンの 『コスト予算』をクリックします。予算の設定画面に遷移します。
4. ここで予算名、間隔、予算有効日、開始月、予算の作成方法を選択、予算額などを入力します。
5. 次に、アラートの設定を行います。アラートの閾値の追加をクリックし、閾値、トリガー(実績か予測かが選択可能です)、閾値を超えた時に送信するEメールのアドレスまたは送信者を設定します。
6. 確認画面で設定を確認し、作成ボタンをクリックします。
これにより、設定した閾値を利用量が超えてしまった場合、アラートとしてEメールを送信する設定が完了しました。
尚、通知先として指定できる対象はメールアドレスかAmazon SNSのトピックが指定可能です。Amazon SNSと他のAWSコンポーネント(AWS Lambdaなど)と組み合わせることで、SlackやDiscordのWebhookに通知する、といった使い方も可能です。
フィルターを使って色々な予算監視
柔軟な予算監視を行うためには、フィルター機能を利用します。フィルタの種類を組み合わせることで細かい予算が設定できます。組み合わせられるフィルタは以下の通りです。
- AWSサービス
AWSのサービスごとにフィルタリングの設定が可能です。2022年現在対応しているサービスは下記の通りです。
Amazon EC2
Amazon Redshift
Amazon RDS
Amazon ElastiCache
Amazon OpenSearch Service(ElasticSearch Service)
また、EC2であればMarketPlace等で公開されている一部のAMIから作成したインスタンスも対象となります。 - タグ
コスト配分タグと同様に、タグ別でフィルタリングを行うことが可能です。対象リソースには事前にタグを付与しておく必要があります。 - メンバーアカウント
AWS Organizationsを利用している場合には、メンバーアカウントをフィルタリング対象とすることができます。 - 購入オプション
オンデマンド、リザーブドインスタンス、Savingplansなどの購入オプション別で監視が可能です。 - リージョン、アベイラビリティーゾーン(AZ)
予算を作成するリソースが実行されているリージョン、AZを選択することができます。 - インスタンスタイプ、インスタンスファミリー
EC2などのインスタンスタイプやインスタンスファミリー別での予算追跡が可能です。 - プラットフォーム
RIが動作するOSとしてLinux、Windowsが選択できます。 - 使用タイプ
S3などは予算ではなく使用している容量やデータ転送量(GB)の監視が可能になっています。
AWS Budgetsの注意事項
AWS Budgetsを利用する上で注意しておくべき制約事項を記載します。
- ルートユーザ―、マスターアカウントでの設定が必要
AWS初期設定では、ルートユーザーで権限の変更が必要となります。また、AWS Organizationsを利用している場合はマスターアカウントのみでの設定が可能です。 - コスト予測の利用開始条件
予測コストの算出には、最低5週間の利用データが必要となります。利用データが不足している状態ではアラームは実行されません。したがって初めのうちは実績ベースでのアラートを利用しましょう。 - 予算の更新周期
AWS請求データの更新周期(1日1回以上)と連動しています。したがって、リソースを大量展開したような日があれば、アラートが飛んでくる可能性もあります。また、周期はユーザ側で指定は出来ません。
AWS運用コストの削減のご相談も可能 運用コストを引き下げるスタイルズのAWS導入・移行サービスはこちら→
まとめ
AWS Budgetsは利用料監視のための様々な機能が備わっています。どのような料金や利用状況を監視・分析したいか、適切に設定を行い、AWSのコスト管理を実施しましょう。少々複雑な部分や制約も存在しているので、困った場合はAWSに詳しいベンダーに相談するといいでしょう。