![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
もしあなたがこのページにたどり着いたのが、一攫千金の計画で金持ちになれると思ってのことだとしても、残念に思います。この記事では、クラウド コストを 100 万ドル削減する方法について説明します。そうすることで、実質的に 100 万ドルの収益が追加で得られることになります。その収益は、AWS で金持ちになる方法に関する私のオンライン コース (コースへのリンクはこちら) の購入に充てることができます。
クラウドコストは、企業のプロジェクト開始時に見落とされたり、考慮されなかったりすることがよくあります。2021年のHashiCorpの調査によると、2021年に約40%の企業がクラウドコストを過剰に支出していました[ 1 ]。2023年には、ほぼすべての企業(94%)がクラウドに無駄なお金を使っていたことを認め[ 1 ]、クラウドコストの少なくとも30%が無駄になりました[ 2 ]。2022年のクラウド支出はほぼ5,000億ドルでした。つまり、年間1,500億ドルが無駄になっていることになります。
これは収益の損失だけでなく、持続可能性の実践の悪さも懸念されます。1,500億ドルのエネルギーが無駄になりました。
これらの調査結果は、クラウド成熟度の高い企業から低い企業まで、大企業と中小企業の両方に当てはまります。これは AWS に関するものですが、同じ原則は他のクラウド プロバイダーにも適用できます。したがって、仕事の一部がクラウドである場合は、この記事が役に立ちます。
私はデータ エンジニアの観点から話していますが、同じ学習は他のソフトウェア エンジニアリングの実践にも適用できます。
さあ、始めましょう。
この種のクラウド請求は、通常、何百万もの顧客を抱えて世界規模で事業を展開している非常に大規模な企業に限定されます。
たとえば、Spark ETL ジョブが 1 時間あたり約 1.5 テラバイトを 1 年 365 日、24 時間 365 日処理すると、クラウド料金が 100 万ドルになる可能性があります。別の例としては、世界中の複数の場所から 1 日に数十億件のリクエストを受信するアプリケーションが挙げられます。
大企業では、この規模のアプリケーションが何百もあり、クラウドプロバイダーとの契約額は数十億ドルに上ります。例えば、Airbnbは2019年末までに5年間で12億ドルをクラウドリソースに費やすことを約束していました[3 ]。
Expedia では、最適化手法を実装することで、年間 110 万ドルかかるデータ処理 ETL のコストを、年間わずか 10 万ドルにまで削減しました。これは 91% のコスト削減です。
すべての企業がこのような巨大なサイズのアプリケーションを持っているわけではありませんが、単一のアプリケーションまたは企業全体のクラウド コストを 90% 削減できることを想像してみてください。
最もコストのかかるアプリケーションのリストを入手し、設計上の仮定を検証してください。
これらすべての質問は、最も重要な質問に戻ります。アプリケーションはどのように使用されるのか? アプリケーションが存在するビジネス価値は何か? アプリケーションは特定の目標の達成にどのように役立つのか?
もちろん、プロジェクトの開始時には、これらすべての答えが不明確であることがよくあります。しかし、だからこそ、設計は常に反復的なプロセスであるべきであり、変更が可能な限りシームレスに行われるようにする必要があります。エンジニアは、進化と変化を受け入れ、アプリケーション開発をインパクトに合わせて調整する必要があります。
2 番目のステップでは、アプリケーションに適切なリソースを提供し、適切なインフラストラクチャに合わせて調整します。
エンジニアとして、クラウドのコストがどのように計算されるかを知っておく必要があります。たとえば、AWS はスポットインスタンスを提供しており、クラスターの価格を入札することができます。これは、フォールトトレラントで柔軟なアプリケーションがある場合に特に便利です。可能であればスポットインスタンスを使用してください。AWS はコストを最大 90% 削減できると主張しています [ 4 ]。
他に考慮すべき事項としては、次のようなものがあります。
AWS Gravitonインスタンスを利用することには、ほとんど欠点はありません。AWSは、最もコスト効率の高いプロセッサの開発に多額の投資を行ってきました。IntelベースのプロセッサからARMベースのプロセッサに切り替えるだけで、クラウドの支出を最大40%削減できます[ 10 ]。
唯一の注意点は、アプリケーションが Graviton が動作する ARM ベースのプロセッサと互換性がある必要があることです。RDS や OpenSearch などのマネージド サービスを扱っている場合、切り替えにはまったく問題はありません。基盤となる OS とアプリケーションの互換性は AWS が処理します。独自のアプリケーションを構築している場合は、使用している言語に応じてパッケージを再コンパイルする必要がある場合があります。Java やその他の言語では変更は必要ありませんが、Python では多少の注意が必要です。
最後に、予期しないピークや驚きがないか、コストを継続的に監視することを忘れないでください。アプリケーションの 0 日目のコストは、170 日目のコストとは異なります。変更を追跡し、変更が起こっている理由を理解してください。S3 ストレージ コストが積み重なっているのか、それとも 1 回限りの急上昇なのか。
必要なアラートと運用ガイドブックを設定してください。
重要なのは、部門、プロジェクト、または環境ごとに支出を追跡するためのコスト割り当てタグを実装することです。コストが追跡不可能であったり、さまざまなログ システムをまたいで長い道のりをたどる必要があるデータ スワンプを作成するリスクを回避します。任意のアプリケーション コストに戻るのは迅速かつ簡単である必要があります。
どこで仕事をしていても、新機能の提供と既存の機能の最適化のバランスを取るのは困難です。光の速さで新しい奇抜な機能を提供するプレッシャーを感じたことがない人はいないでしょう。
ただし、エンジニアとマネージャーの両方が、現在のプロジェクトについて慎重かつ積極的に意思決定を行い、リスクと機会を効果的に管理することが重要です。