Microsoft Azureは、開発者 Azureを使用すると、Azureのホスティングコストをすぐに制御できなくなるように、非常に使いやすくなります。 ただし、Azureの価格をより適切に管理し、全体的なコストを最適化する方法があります。Stackifyでは、Azureを4年以上使用しています。 私たちは、さまざまなAzureサービスを幅広く活用し、毎年それに大金を費やしたいと思っているので、Azureとともに成長してきました。 私達は私達の最もよい先端のいくつかを共有するためにこの記事を書いている。
のは、あなたのコストを下げるための5つの異なる方法に焦点を当ててみましょう:
- 実際のazureの価格を下げる
- 現在のコストを把握する
- アプリのデプロイ方法を最適化する
- アプリのパフォーマンスを向上させる
- その他のヒント
Microsoft Azureの価格を下げる方法&効果的なAzureコスト管理
あなたができる最も簡単なことの一つは、単に取得することですあなたの手形のいくつかの割引や無料で何かを得る!
1. 前払いでも従量課金制のアカウントで割引を受けることができます。
マイクロソフトは、2.5-5%の割引を6ヶ月または12ヶ月の前払いに基づいて提供しています。 あなたがこれを利用できるかどうかを確認してください。 しかし、EA契約はより良い選択肢かもしれません。
2. 最大のAzure割引のためのEA契約を取得します。
EA契約では、年間の金銭的コミットメントを選択する必要があり、それは割引率でロックします。 その後、年次コミットを超えた超過分について四半期ごとに請求されます。
EA契約では、一部のAzure製品で最大20-30%程度の節約ができます。 警告される、割引率のスケジュールは混乱です。 例として、SQL Azureの割引率は5%ですが、クラウドサービスは10〜20%のようなものになる可能性があり、販売するすべてのSKUごとに異なります。 一部は割引の多くを全然提供しないかもしれない。 何千ものSkuがあります。 そのため、実際に必要なAzureサービスを知って、EA契約でこれらのSkuの割引を最大化してください。
3. あなたはBizsparkにサインアップできますか?StackifyはもともとBizsparkにあり、多くの素晴らしい無料の利点を得ることができました。 マイクロソフトは、スタートアップのための無料の利点で$120,000まで広告します。 悪い取引ではありません!
4. Azureリージョンを切り替えて、azureの価格を向上させることはできますか?
Azureの価格は、米国であっても地域によって異なります。 あなたは少しを保存することができるかどうかを確認するために、様々な地域での価格設定を再確認してください。例:米国西部のA2VMはWest133.92ですが、米国西部では1 126.48です2。 オーストラリア東は1 168.14
5です。 プロジェクトでAzureパートナーと協力して、Microsoftから無料のお金を得ることができます。
Azureに移行する大きなプロジェクトがある場合は、それを実現するためにmicrosoftパートナーを奨励し、支払うのに役立つ割引を受けることができます。 一つの例として、我々はシェフとの仕事の束を行うのを助けるためにこれを行うことができました。
あなたの現在のAzureのコストが何であるかを把握し、レポートを整理
オッズは、あなたが費やしているどのくらいになると、あなたがそれを費 Azureでは、新しいリソースをスピンアップして、それらを忘れるのはとても簡単です。
6. あなたはそれのためのツールなしでは難しいです、何に費やすどのくらい知っています。
Microsoftには、請求を分析するために使用できるいくつかのツールがあります:
- Azure billing portal
- EA portal–https://ea.azure.com/
これらの両方は、高度なレベルのレポートには多くのことが望まれています。 EAデータをPowerBIに接続すると、データを処理する機会がさらに広がりますが、プロジェクト、部門などでデータを分割する必要があります。 それについてのより多くの洞察を得るために。
appallinglyが、利用可能なサードパーティ製のツールがたくさんありますが、それらの多くはmonth1,000月以上! 安価で素晴らしい仕事をするAzure Costs(https://azure-costs.com/)というサービスを使用することをお勧めします。 月額2 29–month199の無料利用枠と有料オプションがあります。アイデアを与えるために、Vm、SQL Azure、App Servicesなどに多くの支出をしているかどうかを理解するために、レポートをさまざまな方法でグループ化できます。
Azureコストのさまざまなフィールドでグループ化
7。 Azureの支出をプロジェクト、環境、またはクライアントごとに割り当てて、より良いレポートを作成します。
Stackifyでは、本番環境、プリプロダクション、QA、開発、テストアプリをすべてAzureでホストしています。 私たちの法案を高いレベルで見ると、私たちにとって重要などの環境にどれくらい費やしているかを知る良い方法はありません。
私たちが生産に費やす金額は、ビジネスとしての利益率に影響を与え、開発/テスト環境でのコストも最小限に抑えたいと考えています。
Azure Costsを使用して、支出しているものを整理します。 各Azureリソースにタグを付けるだけで、タグによるレポートを取得して、環境ごとの費用を簡単に確認できます。
Azure Costsのタグリソース
各タグによるレポートを取得して、お金をどのように費やしているかを理解することができます。
Azure Costsでタグ別にレポートする
Azureでお金を節約するためにアプリをデプロイする方法を最適化する
アプリケーションをAzureに移動する場合、考えていないかもしれないお金を節約する方法がいくつかあります。 また、アプリサービス、クラウドサービスなどを最適化するためのヒントをいくつか紹介したいと思います。
8. 仮想マシンの適切なタイプとサイズを選択します。
仮想マシンのホストにAzureを使用している場合は、正しい種類のインスタンスを選択してください。 文字通り数十種類の種類とサイズがあります。 より多くのメモリ、CPU、より高速なディスクなどが必要な場合に基づいて、適切なタイプを選択してください。
9. Azure DevTest Labsを使用して、テストVmが自動シャットダウンされてコストを節約できます。誰かがテストサーバーを設定し、後であなたが何ヶ月も何ヶ月もそれを支払っていることを知るよりも迷惑なことはありません。
Azure DevTest Labsは、時折必要なサーバーや特定の時間だけ必要なサーバーを作成するのに最適です。
DevTest Labsは自動的にそれらをオンにし、スケジュールどおりにシャットダウンすることができます。 これは、QAチームがその日や週末にサーバーを停止する前にサーバーをシャットダウンするのを忘れているという問題を解決するのに役立ちます。注:DevTest Labsは、使用するために追加の費用はかかりません。 Vm自体の代金を支払うだけです。10.
10. クラウドサービスでのステージングスロットの支払いを避けます。
Azure Cloud Services for WebおよびWorker rolesでは、運用スロットと同じように、ステージングスロットの全額を支払います。 ステージングスロットに展開し、ダウンタイムを最小限に抑えるためにステージングを実稼働環境に交換することをお勧めします。
ステージングスロットはできるだけ早く削除してください。 何もAzureにログインし、理由もなくそこに座ってステージングスロットに展開されたものの束を見るよりも私は怒っていません。Azureポータルのビューを編集して、”Staging”と”Production”の列を追加し、ステージングスロットに何かがあるものをすばやく確認できるようにします。 クラウドサービスは、サーバーが停止していてもお金がかかります。 あなたはそれらを削除する必要があります!
11. WebアプリとAzure App Serviceプランを組み合わせて、サーバー数を削減します。
Azureの絶対的な最高の機能の1つはApp Servicesです。 2~3台以上のサーバーを表すApp Serviceプランを作成し、必要な数のwebアプリケーションをパックすることができます。
これは、ほとんど何もしないwebアプリケーションのサーバー全体を支払うことよりも大きな利点です。 私たちは永遠にクラウドサービスのWebロールを使用しており、場合によっては、実質的にトラフィックを取得しないwebアプリで高可用性のための3つの それは巨大な廃棄物です。
12. 必要がない限り、クラウドサービスWebロールの使用を停止します。WebロールにAzure Cloud Servicesを使用する必要がない限り、複数のアプリを少数のサーバーに組み合わせることを利用するために、アプリをApp Servicesに切り替えることに
クラウドサービスはまた、に展開するために永遠に取ります。 アプリサービスは、への展開のための光年の高速化です。
13. Azure Service FabricまたはContainer Serviceを使用してアプリを結合します。App ServicesとWeb rolesで前述したのとまったく同じ理由で、Worker RolesをService FabricまたはContainer Serviceに移動することを見てください。 どちらも、基本的にサーバーのグループをプロビジョニングし、それらにアプリの束を投げるApp Service Plansのようなパターンに従います。14.
14. 自動スケーリングを使用して、オフ時間中のコストを削減します。
ほとんどのアプリは、一週間または一日を通して忙しく、遅い期間を持っています。 Azureに組み込まれている自動スケーリングを利用して、遅い期間にお金を節約します。
これらのデプロイタイプはすべて自動スケーリングをサポートしています。
- Cloud Services
- App Services
- VMスケールセット(バッチ、Service Fabric、Container Serviceを含む)
スケーリングは、アプリを完全にシャットダウンすることを意味する可能性もあります。 アプリサービスには、アクティビティがないためにアプリをシャットダウンするかどうかを制御するAlwaysOnと呼ばれる機能があります。 また、DevTest Labsのようなものでdev/QAサーバーをシャットダウンするようにスケジュールすることもできます。 Park My Cloudのようなサードパーティのサービスもあります。15.
15. 必要がない限り、独自のVmをロールバックしないでください。Azureを使用しているいくつかの人々と話をしましたが、Azureを使用しているバージョンでは、いくつかのVmを設定し、それらのVmでアプリとSQL Serverをホストして
仮想マシンとIaaSにAzureを活用することは問題ありませんが、管理コストを削減し、Azure全体のコストを削減する多くの機会を逃しています。 VMで実行されているサードパーティのロードバランサーを購入するなど、VMでSQLを使用する本当に正当な理由がない限り、そうしないでください。
Stackifyでは、AzureのすべてのPaaS機能を活用しています。 これには、SQL Azure、Redis、テーブルストレージ、Service Busなどが含まれます。 Redisや他のキューイングサービス用にVmをセットアップするという考えは、本当にひどい考えのようです。 私たちの唯一の例外はelasticsearchです。Azure Searchが利用可能であり、基本的なelasticsearch PaaSの提供です。 Elasticsearchクラスターの規模と規模が大きいため、自分で管理する方が理にかなっています。
16. SQL弾性プールを使用します。多くのデータベースがある場合は、SQL Elastic poolsを検討する必要があります。
Azureでは、個々のデータベースごとにパフォーマンス層を選択する必要があります。 これは非常にうまく機能し、予測可能なレベルのパフォーマンスを提供します。 ただし、多くの場合、プロビジョニングパフォーマンスが過剰になります。Azure SQL Elastic Poolをより多くのサーバーと考えると、そのサーバーに大量のデータベースを割り当てることができます。 これにより、各データベースのパフォーマンスがサーバーの総リソース内で低下し、流れることができます。
Stackifyでは、お客様一人一人が独自のSQLデータベースを持っています。 私たちは文字通り何百ものものを持っており、新しいものを追加し、毎日いくつかのものを提供していません。 SQL Elastic Poolは、その多くのデータベースを大規模に管理するために重要です。
アプリケーション自体のパフォーマンスを向上させる
Azureの全体的な価格設定とアプリのデプロイ方法について、Azureに費やす金額を最大化した場合は、パフォーマンスチューニングを開始します。Retrace、Azure Application Insights、New Relicなどの何らかのタイプのAPMツールを使用することをお勧めします。
17. プロファイラーを取得する時間!
コードのパフォーマンスを最適化する場合は、コードプロファイリングを行う必要があります。 プロファイラには3つの異なるタイプがあり、コードを実際に改善するには3つすべてが必要になる場合があります。
- Standard profiler–ワークステーション上のコードをプロファイルして、コード内の遅いメソッドを探す
- トランザクショントレース–完全なweb要求をキャプチャします。ASP.NET profilerと何が起こっているのかを確認する
- APM–アプリケーションとその依存関係の全体的なパフォーマンスを追跡する
18. 最も使用され、最も遅いweb要求またはトランザクションを識別します。
多くの時間がかかっているか、中程度の回数が発生しているが時間がかかりすぎる要求を探します。 見てくださいASP.NET あまりにも多くのSQLクエリが発生しているかどうかを確認するためのトランザクショントレース、遅いwebサー
ほとんどの最新のアプリケーションは、データベースまたはwebサービスの呼び出しによ コード自体が遅い場合は、Visual Studio profilerのような標準の.NETプロファイラーを使用して、その理由を試してみてください。
Retrace APMからのトップウェブ要求
19。 SQLデータベースのパフォーマンスを最適化します。
すべてのビジーアプリケーションは、通常、いくつかの基本的なSQLチューニングの恩恵を受けることができます。 SQL Azureには、パフォーマンスレポートとインデックスチューニングの推奨事項のための優れた基本機能がいくつかあります。より深く進む必要がある場合は、SqlでDmvを照会して、最もアクセスされているクエリを特定し、最もIOを使用し、最長を取るなどしてください。 また、アプリの観点からクエリにかかる時間を確認するように注意してください。また、APMツールを活用して、最も使用されているクエリと、ソフトウェア内のどのアクションがそれらを呼び出しているかを識別することもできま
Retrace APMからのトップSQLクエリビュー
20. すべてのアプリケーション依存関係の使用状況とパフォーマンスを追跡します。
SQL serverだけでなく、アプリケーションはおそらくwebサービス呼び出しを行い、キュー、キャッシュ、およびDocumentDB、Azure Storageなどの他のAzure機能を含むその他の依存関係
これらの依存関係がすべて正常に実行され、Azure経由で適切にスケーリングされていることを確認します。
Azureのコストを下げるためのその他のアイデア
ここでは、Azureに費やしているどのくらいを下げるために考慮すべきいくつかの他のアイデ
21. CDNを使用できますか?CloudflareのようなCDNを使用すると、コードを変更することなく、すべての静的ファイルのキャッシュを簡単に追加できます。 Cloudflareはまた、パフォーマンスを最適化するために使用できるクールな機能のトンを持っています。Azureには、試してみることができる非常に単純なCDNもありますが、Cloudflareが行うことはできません。22.
22. 新しいAzure cold storageオプションを使用できますか?
Azureは現在、暖かいAzureストレージと冷たいAzureストレージを提供しています。 Warmは頻繁に使用されるデータ用に設計され、coldはめったに使用されないデータ用に設計されています。 ほとんど使用されていないデータ、バックアップ、アーカイブ、またはその他のデータがたくさんある場合は、必ずcold storageをチェックしてください。
Azureクラウドホスティングコストの最適化
このリストが参考になることを願っています。 実装するための最も簡単なアイデアのいくつかから始めて、最後にコードを最適化しておきましょう。
あなたのコードを最適化することは、はるかに困難な部分であり、膨大な時間と回帰テストを取ることができます。 Stackifyには、1日に何百万回も呼び出されるApiがあります。 私たちのコードと同じくらい何度も呼び出されるコードがある場合は、低レベルのコードの最適化に投資する価値があります。