この記事は、CAST AI社により公開されたブログ記事を元に翻訳・作成したものです。元の記事については以下をご覧ください。
(記事最終更新日:2021年1月27日)
クラウドの請求書にビックリ?よくある5つの問題点と対処法
公開日:2022年11月28日
更新日:2022年11月28日
これは、クラウドコスト最適化シリーズのパート 1 です。
では初めに、あなたがどこに立っているか確認してみましょう。このbin(go)に勝てますか?対処しなければならなかった問題の数に注目してください。
タイルにひとつも該当しなかった方は、その秘密を我々に教えてください。そうでない場合は、このビンゴに負けてDevOpsで勝つ方法を読んでみてください。
コストの最適化は、クラウドの請求額を理解することから始まります。しかし、一般的なクラウドの請求書が次のようになっている場合、どのように開始すればよいでしょうか?
目次
クラウドは高額の請求が発生する場合があります。その理由は?
クラウドの請求額が恒常的に計画した予算を超えていたとしても、あなたがひどいDevOps エンジニアとしいうわけではありません。 Flexera の 2020 State of the Cloud Reportでは、一般的なパブリッククラウドの支出は平均で23% 予算を上回っていることを明らかにしています。
これはまったく驚くべきことではありません。結局のところ、月末にクラウドの請求書を受け取るまで、いくら支払う必要があるかわかりません。そして、これらの費用を予測することは、簡単なことではありません。
でも実際こんなことが、なぜ発生するのでしょうか?クラウド料金の管理が難しいのはなぜでしょう?
IT の黎明期、人はコストを管理する人とコードを書く人は分かれていました。後者は、多くの場合、そのコードを実行するコストに直接的な影響を与えませんでした。もちろん、ソフトウェアの効率は重要ですが、それは少し脇に置きましょう。
従来のソフトウェアデリバリーは、役割と責任が明確でした。インフラストラクチャのデプロイと継続的な運用コストを管理するのは、システム管理グループ(後に DevOps または SRE と呼ばれる)でした。
このデリバリーは、ソフトウェアを月に 1 回または数カ月ごとにリリースするのが一般的でした。従来のソフトウェアを本番環境に提供する方法は、イノベーションを促進するものではありませんでした。そしてサービスチームが登場します。自らコードを記述し、自動的にテストし、デプロイし、24 時間年中無休の運用を担当するエンジニアのグループです。
ソフトウェア エンジニアはソフトウェア イノベーションに従事していたため、リソースへのアクセスが必要でした。彼らはクラウドのおかげで、Infrastructure-as-a-Service プラットフォームを通じて必要なインフラストラクチャをオーダーし、Infrastructure-as-Code を通じてデプロイを自動化することができました。
これにより、イノベーション サイクルが大幅に短縮されました。好景気の時代には、この種の急速なイノベーション、インフラストラクチャのデプロイ、およびそれに付随する潜在的な浪費も、多くの企業にとって受け入れられていました。
何度も振り子が戻るように、近年、時代が変化しています。CFO、経理部長たちや、財務部門は、さまざまな部門で使用されるクラウド リソースにより発生するコストについて、より多くのことを知る必要がある時代に突入しています。
これはとても難問です。チームからのオーダーは十分か、多すぎるか、少なすぎるか? クラウドのコストは最適化されているか? 予測されるビジネス指標と成長に基づいてクラウドのコストを予測するにはどうすればよいか?
財務部門は、クラウドサービスを使用するすべてのチーム/グループ/部門について、これらの質問に解答しなければなりません。そして、理想的なシナリオとしては、エンジニアリングサービスチームがそれらの一部にも回答できなければなりません。
何故クラウドコストを最適化するのか?また、オーバープロビジョニングの危険性
私たちは皆、クラウド サービスの料金を抑えたいと考えています。しかし、コストの最適化はそれだけではありません。クラウドの請求書を運命に任せた場合にチームが直面する可能性のある 3つの問題を次に示します。
クラウドの浪費
クラウドの費用をしっかり把握しないと、リソースを浪費してしまう場合があります。これは、アプリケーションをクラウドに移行して、必要なリソースをオンプレミスでのソフトウェア保守と同じやり方で行うチームに発生しがちで、オーバープロビジョニングにつながる可能性があります。
実際の使用率を可視化せずにクラウドの費用を計画すると、最良の場合でも、未使用の CPU の海に溺れてしまうことがあります。
さらに悪いことに、プロビジョニングが不足した場合、リソースが足りずにアプリケーションがクラッシュすることもありえます。どちらで失敗したとしても、あなたを救ってくれるセーフティネットはありません。
間延びしたリソース
プロジェクト用に、インスタンスを立ち上げて、そのシャットダウンを忘れてしまうのはよくあることです。多くのチームが、誰も自分のものという認識がなく、コストだけが発生し続ける、孤立したインスタンスの対処を行っています。このようなシャドーITプロジェクトが、クラウド上のリソースを説明が難しいものにしています。
チームによっては、リソースを過剰にプロビジョニングして、「念のため」のバッファを作る傾向があります。これらのリソースの可視性やコントロールが限られていると、月末に雪だるま式に大きな問題が発生する可能性があります。
限られた情報の中で行く先を決定
最近の傾向として、クラウドからオンプレミスに戻る企業が多く、その主な理由はコスト管理のしやすさにあると言われています。移行には、計画やデータ移行、サービス継続やディザスタリカバリ計画の再調整などの、コストも発生します。
クラウドからオンプレミスへの移行は、イノベーションと変化への迅速な対応に影響を与え、大きな代償を払うことになります。
次のシナリオを考えてみましょう
クラウドにお金を払いすぎています。これらのコストを管理し、見積もるのは大変なことです。そこで、再びデータセンターに移行し、ようやくインフラ費用を把握できるようになりました。最高!すごいですね!!(原文:You’re killing it!)しかし、それとともに、イノベーションも殺している(原文:killing)のです。)
これは、多くのエンジニアが身をもって感じている痛みです。オンプレミスになると、インフラチームやDevOpsチームが数カ月先のキャパシティを計画し、拡張するシナリオをブロックするため、チームはもはや柔軟で実験的であることはできません
遅かれ早かれ遭遇するクラウド請求書の5つ問題点
1.クラウドの請求書はわかりにくい
長く、複雑で、解読も理解するのも難しいです。先に紹介した例は、それを物語っています。
請求書に含まれるすべてのサービスには、それぞれごとに課金指標が定義されています。AWS Simple Storage Serviceを例にすると、一部のサービスはリクエスト数によって課金されますが、ほかのサービスは GB を使用します。そのため、クラウドの請求書を理解することは非常に困難な作業になります。
クラウドの使用量とコストを把握するには、CSP(Cloud Service Provider)が提供するコンソールのさまざまな場所を調べなければなりません。
AWS Billing and Cost Managementのダッシュボードを見てみてください。より詳細なビューを取得するには、Cost Explorerを確認し、特定の属性でコストをグループ化してレポートする必要があります(たとえば、リージョンやサービスごとにグループ化します)。
これには時間がかかり、人間の操作に大きく依存しています。
同じクラウド サービスを使用して、複数のチームまたは部門でこれを行うことを想像してみてください。
2. 複数のクラウドの請求はさらに難しい
上記の請求の問題に、使用するクラウドの数を掛けます。AWS を使用しているとしましょう。もう慣れました。そのコストは管理可能です。しかし、別の部門が予期せず、シャドー IT プロジェクトで Microsoft Azure の使用を開始した場合はどうなるでしょうか?
AWS と Azure のクラウド請求書を比べてみましょう。それらはもう世界が違います。
3. 1つの金融口座で作業する複数のチーム
CFOとその財務チームの立場になってみましょう。
あなたは、クラウドの請求に関係するいくつかの部門を扱っています。どうすればそれを理解できますか?誰がどのリソースを使用しているでしょうか?
クラウドサービスプロバイダーは、アカウント、組織、プロジェクトごとに支出を分類し、チームや部門が支出の範囲内に収まるようにするための仕組みを提供しています。
AWS
-
Organizations
この機能は、AWS リソースをスケーリングする際に環境を一元的に管理および管理するのに役立ちます。AWSアカウントの新規作成とリソースの割り当て、アカウントのグループ化によるワークフローの整理、アカウントやグループへのバジェットやポリシーの適用、単一の支払い方法による請求の簡素化などが可能です。
-
リソースのタグ付け
リソースに直接タグを付けることはできますが、請求書に表示されることは期待しないでください。タグごとにデータを分類するのはあなたの仕事です。Cost Explorerでレポートを書いたり、S3からデータをダウンロードして直接使ったりと、手軽な作業ではありませんが、それを行うことができます。CloudHealth by VMWareのように、請求書をわかりやすく表現するツールの開発に精を出している企業もあります。
Azure
- リソースグループ-リソースグループとは、グループとして管理したいリソースをまとめた入れ物のことです。Azureでは、同じライフサイクルを共有するリソースをまとめて、グループとしてデプロイ、更新、削除を行うことを推奨しています。
- タグ付けを、Azure の利用者向けオプションとして利用できます。
Google Cloud Platform
- プロジェクト-GCPでは、プロジェクトには、ユーザー、有効なAPI、課金設定、認証、およびそれらのAPIの監視設定が含まれます。複数のプロジェクトを作成して、クラウドリソースを論理的なグループに整理することで、コストの把握に役立てることができます。
- Google Cloud は請求用のタグもサポートしています。これらはラベルと呼ばれます。一部の GCP リソースはまだ、ラベル付け機能を実装していませんが、そのギャップはいずれ解消されるでしょう。
このように、各CSPは、コストや課金へのアプローチが異なります。これでは、ただでさえ複雑なリソースや使用状況、関連コストを手作業で把握する作業が、さらに拍車がかかります。
4. クラウドの予算編成
CFOとその財務チームの立場になってみましょう。
各クラウド プロバイダーは、CFOとその財務チームが予算に合わせてプロジェクトで使用できるリソースを制限するのに役立つ予算作成ツールを提供しています。
にもかかわらず、クラウドの予算はオーバーする傾向があります。実際にあった例として、シリコンバレーのスタートアップMilkie Way は、Firebase + Cloud Run のテストで 72,000 ドルを使い果たし、破産寸前になりました。
この例の問題は、Googleは一日の終わりに課金額を評価するのですが、彼らは数時間で予算を使い果たしてしまったことです。
同様のインシデントで、Adobe のソフトウェア開発者チームは、予定外のクラウド コストで 1 日 8 万ドルを負担し、最終的な請求額は50 万ドルを超えました。つまり企業によっては、簡単に数百万ドルのクラウド請求が発生する可能性があるということです。
クラウドの予算がオーバーする原因は?
- 正式な調査が完了した後、コストのかかるリクエストが見つかる。
- システム要件を事前に把握できず、システム機能がどのように動作し、拡張されるかについて誤った仮定をしている。
- アプリケーションの自動スケーリング設計の漏れ。
IaCによるプロビジョニング処理のバグにより制御不能となる。 - 並列スケーリングを考慮しないサーバーレス(関数)の使用。
- 予算への関心の欠如、つまり誰も見ていない。
- 通知とアラートの構成が不十分。
一考すべき取り組み: Netflixにおけるコストとビジネス価値の相関
コスト削減のために、主要なビジネス目標を犠牲にすることはできません。Netflixで行われている良い例があります。彼らは、アクティブストリーム数(現在何人がコンテンツを見ているか)の合計でビジネス価値を測定しています。このKPIをクラウドのコストと関連付けることで、Netflixは支出の増加がアクティブストリームの増加を上回らないようにすることができます。
5. クラウドコストの予測
クラウドの請求額は、使用状況に応じて変動するため、予測が困難です。
予測は重要な課題です。将来のリソース要求を把握することは、コストを抑制するのに役立ちます。
一定量を継続的利用することに対するリスクを許容できる場合は、サービス料金を安することができる可能性はあります。しかし、これは、ベンダーロックインが数年続くことを意味します。
予測を支援するために、CSPはさまざまなツールを提供しています。
AWS
-
このツールでは、カスタム予算を設定して、さまざまなユースケースのコストと使用量を追跡することができます。実際のコストや予測コストが予算のしきい値を超えたときや、実際のRIやセービングプランの利用率やカバー率が設定したしきい値を下回ったときにアラートが表示される機能も備えています。
-
AWS Cost Explorerは、コストと使用量を時系列で可視化し、理解し、管理するのに役立ちます。カスタムレポートの作成、データの高度な分析、コストドライバーや異常の検出が可能です。
-
このレポートでは、AWSの価格、サービス、リザーブドインスタンス、およびセービングプランに関する追加のメタデータを含む、コストと使用データの包括的なセットが含まれており、さまざまな粒度のレベルで表示されます。アカウントまたは組織レベルで使用状況を項目別に表示し、Cost AllocationタグとCost Categoriesを使用してコストをさらに整理することができます。
Azure
-
このダッシュボードは、AzureとAWSの両方のクラウドサービスにおけるコストの追跡と管理を支援します。コスト分析および最適化のためのオプションが含まれています。Microsoft Power BIコネクタやAzure Cost Management and Billing APIを使用して拡張することができます。
-
Azureのさまざまな構成のコストをチェックするための便利なツールです。製品別や、Advanced analytics on Big DataやCI/CD for Containersなどの既成のシナリオを使ってコストを見積もることができます。
Google Cloud Platform
-
コスト予測機能により、ユーザーはコストがどのように推移しているか、また、ある月にどれくらいの支出が予測されるかを確認することができます。請求アカウント全体から、1つのプロジェクトの1つのSKUに至るまで、特定の支出グループの月末コストを予測するために使用することができます。また、課金データセット全体をGoogle Big Queryにエクスポートして、Google Data Studioなどのツールを使ってカスタム分析を行うこともできます。
クラウド費用に関する適切なデータがあれば、クラウド費用の予測に関するさまざまなテクニックを試すことができます。
クラウドコストの予測テクニック
-
使用状況レポートの分析
支出を明確に可視化できなければ、予測は不可能です。リソースの使用状況レポートを定期的に監視し、電子メールやその他のアラートを設定しましょう。CSPの中には、今後数カ月間の支出を予測し、予約済みインスタンスや節約プランに関する推奨事項を得ることができるツールを備えているものもあります。
-
クラウドコストのモデル化
総所有コストを計算するには、CSP の価格モデルを分析し、時間の経過に伴うキャパシティ要件を正確に計画してコストを予測します。アプリケーションまたはワークロードに固有のコストを測定し、アプリケーションレベルのコストプランを作成します。これらのデータを一カ所に集約することで、コストと傾向をよりよく理解することができます。
-
ピーク時のリソース使用シナリオの特定
これは、定期的な分析を行い、使用データに対してレポートを実行することで可能です。季節ごとの顧客の需要パターンなど、ほかのデータソースも考慮してください。そのパターンは、リソースのピーク使用量と相関していますか?もしそうであれば、これらを事前に特定することができます。
自動化は可能ですか?
サードパーティーのソリューションはどうだろううか?コスト管理・最適化ツールは、クラウドの請求書をより早く理解するためにあるのではないか?
サードパーティーのコスト報告ソリューションは、よりよい可視性を提供しますが、自動化されたアクションを行う助けにはなりません。
サードパーティーのツールには、クラウドのコストの全体像を把握するのに役立つものがあります。最悪でも、使用状況を報告してくれるため、コストがどこから来ているのかを知ることができます。よく言えば、人間が実行する必要のある静的な推奨事項を教えてくれます。
専用ツールで実現できることのほとんどを、追加費用なしで行うことができます。
リアルタイムでコストを削減・最適化するためには、煩雑な作業を代行する自動化されたAIOpsプラットフォームを使用する必要があります。CAST AIにはこの機能が含まれています。ユースケースをご覧になり、貴社に適しているかどうかをご確認ください。
このシリーズの次のパートでは、ワークロードに適したクラウドコンピューティングリソースを選択する際に考慮すべき点についてご紹介します。
-
クラウド請求書とは何ですか?
クラウド請求書とは、各請求期間の終わりにクラウドサービスプロバイダーから受け取る請求書のことです。AWS、Google Cloud、Microsoft Azureの請求書の見た目はまったく異なりますが、共通しているのは「複雑さ」です。請求書は通常、解読や分析が困難で、クラウドにかかる費用の内訳や、毎月の請求額が大きくならないようクラウドコストを最適化することは容易ではありません。
-
なぜ多くの企業がクラウド請求ショックを経験するのでしょうか?
クラウドのリソースを迅速に把握し、継続的に最適化することは困難です。この理由の一つには、クラウドのコスト管理が、個々のリソースのレベルではなく、より高いレベルでの最適化を目的としたポイント・イン・タイムの活動であることが多いことが挙げられます。企業は、リアルタイムでコストを監視し、異常があれば通知し、より正確にコストを予測する方法を見つける必要があります。クラウド最適化自動化ソリューションであれば、リアルタイムで需要の変化に対応することで、リソースをシームレスに調整し、ワークロードを実行するためのよりよいインスタンスを常に探すことができます。
-
AWS で予期しない料金が発生しないようにするにはどうすればよいですか?
クラウドの請求書に予期しないコスト項目が表示される場合があります。請求書の解読に苦労しているのはあなただけではありません。ただし、それを回避するためにできることがいくつかあります。
- 調査プロセス中にコストのかかる要件を確実に発見する。
- システム要件を 事前に把握する。
- システムがどのように機能し、スケーリングするかの想定を明確にする。
- アプリケーションの自動スケーリングを作りこむ。
- 発生コストを監視して、異常が発生したらすぐにキャッチします(ここではリアルタイムのアラート機能が非常に役立ちます)。
-
クラウドで予期しないコストを適切に管理するにはどうすればよいでしょうか?
クラウドの請求を抑制し、コストを削減するための予防手段がいくつかあります。
- 使用されていないインスタンス、環境、およびその他のクラウドリソースをシャットダウンする。
- インスタンスのオーバープロビジョニングを回避し、性能と価格の最適化を行います。
- シャドーITプロジェクトを排除することで、リソースがより制御可能になります
- アプリケーションの自動スケーリングを作りこむ。
- 自動スケーリングを上手く利用する - ワークロードがどの程度のスケーリングを必要とするかを定義し、プロバイダの価格モデルを検討し、需要が低下したときにはワークロードがちゃんとスケールダウンするようにします。
オラクルのセキュリティ製品OCIの元副社長であるLeonは、IBM、Truition、HostedPCIなどの企業にまたがる20年余りの経験があります。
LeonはZenedgeを設立し、Oracleに買収されたCTOを務めました。
タグ一覧