[和訳]Azure コスト最適化 (原題：Azure Cost Optimization)

こんにちは、アーキテクトのやまぱんです。
今回は 下記のブログを和訳いたしました。

https://techcommunity.microsoft.com/t5/azure-architecture-blog/azure-cost-optimisation/ba-p/3624817#_Toc116026969

このブログはマイクロソフトの Tech Community の記事なのですが、非常に有益です。
ただし英語なので、少しハードルがあるのではないかと思います。
今回、より皆さんに読んでいただきたいので和訳し、リンクは日本語版がある場合は日本語へのリンクに変更し、また私のほうで参考リンクも一部追記しました。
*和訳や英語のプロではないので、気になるところは是非原文を読んでいただければと思います。また、コメントに指摘もいただければ幸いです。

間違ってたら<font color="red">優しく</font>教えてください！
またコメントや質問、<font color="red">いいね、拡散</font>、も是非お願いします🥺！

-----------------------------------------------------------
-----------------------------------------------------------

## 概要
マイクロソフトでは、顧客のために [WAF (Well-Archited Framework)](https://learn.microsoft.com/ja-jp/azure/well-architected/) の一部として約50以上のコスト最適化アセスメントを提供してきました。
私は、実際の経験に基づいて顧客に提供する一般的なコスト削減のいくつかを共有したいと思います。

下記にしたがって私はこれを様々なコンポーネント、具体的にはストレージ、コンピュート（IaaS）、ライセンス、モニタリング、PaaS に分けて説明してきました。

https://azure.microsoft.com/ja-JP/solutions/cost-optimization/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2982508/588aaac4-cf67-013e-d449-e697f67e2dc3.png)
```
7 ways to optimize costs today
1.Shut down unused resources
2.Right-size underused resources
3.Reserve instances for consistent
4.Take advantage of the Azure Hybrid Benefit
5.Configure autoscaling
6.Set up budgets and allocate costs to teams and projects
7.Choose the right Azure compute service

[和訳]
今日のコストを最適化する7つの方法
1. 使用していないリソースを停止する
2. 使用していないリソースを適切なサイズにする
3. 一貫したリザーブドインスタンスの利用
4. Azureハイブリッド特典の活用
5. 自動スケーリングを設定
6. 予算を設定し、チームやプロジェクトにコストを割り当てる
7. 適切な Azureコンピュートサービスを選択する
```
今回は上記の 7 つの内容にさらに加えたことをお伝えします。

## ストレージ
汎用 v2 ストレージアカウントは、最新の Azure Storage 機能をサポートし、汎用 v1 および BLOB ストレージアカウントのすべての機能を組み込んでいます。汎用 v2 アカウントは、ほとんどのストレージシナリオに推奨されます。

+ 汎用 v2 アカウントは、Azure Storage で最も低いギガバイト容量あたりの価格と、業界競争力のあるトランザクション価格を実現します。
+ 汎用 v2 アカウントは、ホットまたはクールのデフォルトアカウントアクセス階層と、ホット、クール、アーカイブ間の BLOB レベル階層をサポートします。
+ 汎用 v2 アカウントでは、ライフサイクル管理を使用してストレージコストを最適化することもできます。

ベストプラクティスは、汎用 v2 ストレージアカウントにアップグレードすることです。

https://learn.microsoft.com/ja-JP/azure/storage/common/storage-account-upgrade?tabs=azure-portal

### Azure BLOB Storage のライフサイクル管理
**Azure BLOB Storage のライフサイクル管理**は、GPv2 と BLOB ストレージアカウントに豊富なルールベースのポリシーを提供します。ポリシーを使用して、データを適切なアクセス階層に移行したり、データのライフサイクルの終了時に失効させたりできます。
 

ライフサイクル管理ポリシーでは以下のことが可能です：
+ パフォーマンスを最適化するためにアクセスされた BLOB をクールからホットに即座に移行する。
+ コストを最適化するために、一定期間アクセスまたは変更がない場合、BLOB、BLOBバージョン、およびBLOBスナップショットをより低温のストレージ階層（ホットからクール、ホットからアーカイブ、またはクールからアーカイブ）に移行する。
+ BLOB、BLOB バージョン、BLOB スナップショットのライフサイクルが終了したら削除する。
+ ストレージアカウントレベルで1日1回実行するルールを定義
+ コンテナまたは BLOB のサブセットにルールを適用（名前のプレフィックスまたは BLOB インデックス タグをフィルタとして使用）

-詳細

https://learn.microsoft.com/ja-JP/azure/storage/BLOBs/lifecycle-management-overview

### 仮想マシンに紐づいていないマネージドディスク
私は仮想マシンに紐づいていない多くのマネージドディスクを持つ顧客をよく目にしています。
可能であれば、これらを削除することをお勧めします。そうでない場合は（（イグレスコストを節約するため）ディスクがあるのと同じリージョンの Azure 内の VM から）[Azure Storage Explorer](https://azure.microsoft.com/ja-jp/products/storage/storage-explorer/) を使って、マネージドディスクを VHD ディスクとしてダウンロードし、Azure Storage アカウントにコピーして、ストレージアカウントをArchive（テープストレージバックエンド）としてマークすることをお勧めします。
**アーカイブストレージのコストは、マネージドディスクストレージの 10% 未満と見積もられている。** なお、VHD は必要であればいつでもマネージドディスクとして戻し、再度インポートすることができます。

価格は [Azure Pricing Calculator](https://azure.microsoft.com/ja-jp/pricing/calculator/) で確認できます。

ご参考までに
[こちらのAzure Resource Graph のクエリ](https://www.michikusayan.com/entry/20210321/1616288400#%E6%9C%AA%E6%8E%A5%E7%B6%9A%E3%81%AE%E7%AE%A1%E7%90%86%E3%83%87%E3%82%A3%E3%82%B9%E3%82%AF)を利用することで仮想マシンに紐づいていないマネージドディスクを確認することができます。

* Azure Resource Graph
https://learn.microsoft.com/ja-jp/azure/governance/resource-graph/overview

### Geo 冗長 ストレージ アカウント（リージョン冗長性をもつストレージ）
GRS はデータ保護の追加レイヤーを提供する一方で、セカンダリーリージョンへのデータ転送料金やセカンダリーリージョン内の重複ストレージなど、コストがかかります。
セカンダリーリージョンへのジオレプリケーションまたは読み取りアクセスを追加または削除したい場合、Azure ポータル、PowerShell、または Azure CLI を使用して、いくつかのシナリオでレプリケーション設定を更新できます。

コスト分析を使って、GRS レプリケーションのコストを見ることができる：
+ サービス名(Service Name)：ストレージ(storage)
+ サービス階層(Service tier:)：ストレージ - 帯域幅(storage – bandwidth)

https://learn.microsoft.com/ja-JP/azure/storage/common/redundancy-migration?tabs=portal

### Recovery Services コンテナー
ある顧客の GRS データ保管庫では、セカンダリーリージョンへのデータレプリケーションのコストが**約10,000ドル**だったのに対し、コンピュートワークロード自体のバックアップ用ストレージは**1,000ドル以下**だった。

GRS バックアップストレージは LRS バックアップストレージのおよそ**2.5倍**高い。
参照 : https://azure.microsoft.com/ja-jp/pricing/details/backup/

また、Azure Backup には**アーカイブ層**のサポートもあります。Azure Backupは、スナップショットやStandard 層に加え、アーカイブ層でも長期保存ポイントのバックアップをサポートしています。
参照 : https://learn.microsoft.com/ja-JP/azure/backup/archive-tier-support

Archive 層でサポートされるワークロード：
+ Azure 仮想マシン
-月次および年次のリカバリポイントのみ。日次および週次リカバリポイントはサポートされていません。
-Vault-Standard TierのAge >= 3ヶ月
-保持期間 >= 6ヶ月
-アクティブな日次および週次依存関係なし

+ Azure 仮想マシン内の SQL Server
-完全なリカバリポイントのみ。ログと差分はサポートされない。
-Vault-Standard TierのAge >= 45日
-保持期間 >= 6ヶ月
-依存関係なし

### Recovery Services コンテナー と バックアップ コンテナー
Azure には 2 種類のコンテナー (バックアップデータ保管庫≒ Vault) があります

Recovery Services コンテナーは、Azure Backup がサポートする特定の新しいワークロードのバックアップデータを格納する Azure のストレージ概念です。

https://learn.microsoft.com/ja-JP/azure/backup/backup-vault-overview

ストレージの冗長性については、[Geo 冗長ストレージ、ゾーン冗長ストレージ、ローカル冗長性に関する記事](https://learn.microsoft.com/ja-jp/azure/storage/common/storage-redundancy)を参照してください。

Recovery Services コンテナーは、データを格納する Azure のストレージ概念であります。データは通常、仮想マシン（VM）、ワークロード、サーバ、またはワークステーションのデータのコピー、または構成情報であります。

https://learn.microsoft.com/ja-JP/azure/backup/backup-azure-recovery-services-vault-overview

+ クロスリージョンリストア： Cross Region Restore (CRR) を使用すると、Azure ペアリージョンであるセカンダリリージョン内の Azure VM をリストアできます。コンテナーレベルでこの機能を有効にすると、セカンダリ リージョンにレプリケートされたデータをいつでも好きなときにリストアできます。これにより、Azureが災害を宣言するのを待つことなく、監査コンプライアンスや障害シナリオのためにセカンダリ・リージョンのデータをリストアできます（コンテナーの冗長性は内部的に RA-GRSとなり、単なる GRS 設定とは異なります）。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2982508/0a2116d0-864c-22a9-2876-5f6f8c589908.png)


https://jpabrs-scem.github.io/blog/AzureVMBackup/CRR/

https://jpabrs-scem.github.io/blog/AzureBackupGeneral/RSV_BV/



### バックアップ設定後に GRS から LRS に変更する方法
意図的であろうがなかろうが、コンテナーの **GRSを有効にしている場合がほとんど**です。
GRS からローカル冗長ストレージ（LRS）への移行を決定する前に、自社のシナリオに合った低コストとデータ耐久性のトレードオフを検討してください。
GRS から LRS に移行しなければならない場合、2つの選択肢があります。これらはバックアップデータを保持するためのビジネス要件によって異なります。
+ https://learn.microsoft.com/ja-JP/azure/backup/backup-create-recovery-services-vault#dont-need-to-preserve-previous-backed-up-data
+ https://learn.microsoft.com/ja-JP/azure/backup/backup-create-recovery-services-vault#must-preserve-previous-backed-up-data

詳細：https://learn.microsoft.com/ja-JP/azure/backup/backup-create-recovery-services-vault#how-to-change-from-grs-to-lrs-after-configuring-backup

https://jpabrs-scem.github.io/blog/AzureVMBackup/Change_RSV_for_VM/


## 仮想マシン（IaaS）
### 仮想マシンスケールセット の Azure Spot Virtual Machines
スケールセットでAzure Spot Virtual Machines を使用すると、大幅なコスト削減で未使用の容量を活用できます。Azureがキャパシティバックを必要とする任意の時点で、AzureインフラストラクチャはAzure Spot Virtual Machineインスタンスを退避させます。したがって、Azure Spot Virtual Machineインスタンスは、バッチ処理ジョブ、開発/テスト環境、大規模な計算ワークロードなど、中断に対応できるワークロードに最適です。

https://learn.microsoft.com/ja-JP/azure/virtual-machine-scale-sets/use-spot

### Reserved  Instances - インスタンス サイズの柔軟性
インスタンスサイズの柔軟性に最適化された予約済み仮想マシンインスタンスでは、購入した予約を同じインスタンスサイズの柔軟性グループ内の仮想マシン（VM）サイズに適用できます。たとえば、Standard_DS3_v2 のような DSv2 シリーズにリストされているVMサイズの予約を購入した場合、予約割引は同じインスタンスサイズの柔軟性グループにリストされている他のサイズに適用できます：

+ Standard_DS1_v2
+ Standard_DS2_v2
+ Standard_DS3_v2
+ Standard_DS4_v2

### 使用率の低い仮想マシンの適切なサイズ設定およびシャットダウン
クラウドで稼働しているVMのサイズが適切でなかったり、フル稼働していなかったりすると、利用されていないコンピュート分のコストがかかるだけだ。同様に、稼働中で使用されていないVMは、使用されていないときはシャットダウンしておくのがベストだ。

+ 仮想マシンのサイズ変更 
https://learn.microsoft.com/ja-JP/azure/virtual-machines/resize-vm?tabs=portal
+ 業務時間外にVMを起動/停止する
https://learn.microsoft.com/ja-JP/azure/virtual-machines/resize-vm?tabs=portal

### 古い SKU の仮想マシン
Azureの経験則では、仮想マシンを含む Azure リソースは、最新の SKU を使用する方が一般的に安価です。例えば、v3 VM から v5 VMに移行することで、CPU/RAM のアップグレードに伴うコスト削減が可能です。

VM の現在のサイズに基づくVM価格の比較については、仮想マシンの価格ページをチェックしてください。

https://azureprice.net/

### 仮想マシンスケールセット(VMSS) のスポット優先度ミックス
高可用性とコスト削減のための Spot Priority Mix と呼ばれる仮想マシンスケールセットの機能により、Azureの顧客は、同じ仮想マシンスケールセットに標準仮想マシン（VM）とスポット仮想マシン（VM）を混在させることができるようになる。本稿執筆時点ではプレビュー版であります。この新機能は、柔軟なオーケストレーション・モードで利用可能であり、Spot VMが通常提供する大幅な割引率を考慮すると、Azure 顧客が大幅なコスト削減 を達成するのに役立つ。

Virtual Machines Scale Sets の[フレキシブル オーケストレーションによるスケール セット](https://learn.microsoft.com/ja-JP/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-orchestration-modes#scale-sets-with-flexible-orchestration)により、Azure の顧客は、同一または複数の仮想マシン・タイプを使用して、可用性の高い大規模なクラウド・インフラを迅速、確実、かつ容易に展開できます。

また、Standard VM とSpot VM の割り当て比率を定義するポリシーを設定することもできます。また、Spot VM の割合に加えて、任意の時点で実行する必要がある Standard VM の数も定義できます。

詳細：https://learn.microsoft.com/ja-jp/azure/virtual-machine-scale-sets/spot-priority-mix


## ネットワーク
### ルーティング設定
[Azure ルーティング設定](https://learn.microsoft.com/ja-JP/azure/virtual-network/ip-services/routing-preference-overview)は、Azureとインターネット間のトラフィックの経路を選択できます。トラフィックを Microsoft ネットワーク経由でルーティングするか、ISP ネットワーク（パブリックインターネット）経由でルーティングするかを選択できます。これらのオプションは、それぞれコールドポテトルーティング、ホットポテトルーティングとも呼ばれます。イグレスのデータ転送価格は、ルーティングの選択によって異なります。一般的に、**イグレス・データはパブリック・インターネット経由でルーティングされる方が安価**です。


[インバウンドのデータ転送](https://azure.microsoft.com/ja-jp/pricing/details/bandwidth/)は無料なので、イグレスが**マイクロソフト・プレミアム・グローバル・ネットワーク経由でルーティング**されるか、**ルーティング・プリファレンスのトランジット ISP ネットワーク**経由でルーティングされるかで料金が決まる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2982508/030ed17d-30e8-4634-5f7e-dc81b220f6a0.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2982508/30551b18-57aa-b7f6-7d66-77b670a64b74.png)

## ライセンス コスト
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2982508/e6dfc260-de69-9304-8cb1-7e0cb78eabf2.png)

コストを大幅に削減 - Windows および Linux仮想マシン（VM）の1年または3年契約の従量課金価格と比較して、Azure RI (Reserved Instance) を利用することで**最大72パーセントのコスト削減**が可能です。
Azure RI (Reserved Instance) によるコスト削減と Azure ハイブリッド特典(AHUB)の付加価値を組み合わせると、最大**80パーセントのコスト削減**が可能です。

## Azure ハイブリッド特典 (AHUB) の利用
Windows Server および SQL Server のオンプレミス・ライセンスを Azure に移行することで、標準の従量課金よりもお得になります：https://azure.microsoft.com/ja-jp/pricing/hybrid-benefit/ および https://learn.microsoft.com/ja-JP/azure/azure-sql/azure-hybrid-benefit

## AKS と Azure Stack HCI の Azure ハイブリッド特典(AHUB)
Ignite 2022 では、オンプレミスとエッジロケーションのコストをさらに削減するために、Azure Hybrid Benefit を拡張することが発表されました。Windows Server Software Assurance（SA）をご利用のお客様は、Azure Kubernetes Service（AKS）とAzure Stack HCIでAzure Hybrid Benefit をご利用いただけます。

+ Azure Stack HCIは、ハイブリッド環境で仮想化された WindowsとLinuxのワークロードとそのストレージをホストするハイパーコンバージドインフラストラクチャ（HCI）クラスタソリューションであります。
+ Azure Stack HCI は、仮想化ホストとして提供される。
+ Azure Stack HCI は、Azureサービスとして提供されます。
+ AKSのハイブリッドデプロイオプションは、オンプレミスでの Kubernetesクラスタの管理、デプロイ、保守を簡素化します。

+ データセンターとエッジロケーションにおいて、追加コストなしで Windows Server と Azure Stack HCI 上でAKS を実行。これにより、クラウドからエッジまで、一貫して管理された Kubernetesサービスでコンテナ化されたLinuxおよびWindowsアプリケーションをデプロイおよび管理できます。これは、Windows Server DatacenterおよびStandard Software Assurance、Cloud Solution Provider（CSP）のお客様に適用されます。

詳細：https://azure.microsoft.com/ja-JP/updates/generally-available-azure-hybrid-benefit-for-aks-and-azure-stack-hci/

## 柔軟な仮想化特典
これにより、ソフトウェアアシュアランスまたはサブスクリプションライセンスをお持ちのお客様は、Windows Server を含む自社のライセンスソフトウェアを、他のクラウドプロバイダーのインフラ（専用またはマルチテナント）上で実行することができます（リストアップされたプロバイダーを除く）。さらに、Windows Server を VM ベースでライセンスすることも可能です。

詳細 : https://cloudblogs.microsoft.com/windowsserver/2022/10/12/maximize-your-windows-server-investments-with-new-benefits-and-more-flexibility/

## Windows コンテナー ベース イメージの Microsoft ソフトウェア補助ライセンス
これまで、お客様は Windows コンテナのベースイメージを組織内で配布することはできましたが、組織外で再配布することはできませんでした。2022年10月より、お客様は更新されたエンドユーザー契約ライセンスに従って、Windowsコンテナのベースイメージを組織外にも再配布できるようになります。

## Dev/Test 特典　： Enterprise Dev/Test 
**非本番ワークロードに高い料金を支払っていませんか**？Azure Dev/Testサブスクリプションは、Windows 仮想マシン、クラウドサービス、SQLデータベース、SQLマネージドインスタンス、HDInsight、Appサービス（Basic、Standard、Premium v2、Premium v3）、Logic Apps について、特別に低いDev/Test料金を提供しています。https://azure.microsoft.com/ja-JP/pricing/offers/ms-azr-0148p/

**Enterprise Dev/Test オファーは、開発/テスト用途に限定**され、アクティブな Visual Studio サブスクライバーのみが利用できます。

注：HUB (Azure ハイブリッド特典 / AHUB ) を非本番ワークロードに使用しないでください。非本番ワークロードは、同じ目的である"コスト削減"を実現するために Azure Dev/Test サブスクリプションを使用する場所だからです。

## 予約 / Azure Reserved Insance / Azure RI
### スコープ予約
予約のスコープはサブスクリプションまたはリソースグループに設定できます。予約のスコープを設定すると、予約割引が適用される場所が選択されます。予約をリソースグループにスコープすると、予約割引はサブスクリプション全体ではなく、リソースグループのみに適用されます。

### 予約スコープオプション
予約のスコープには、ニーズに応じて3つのオプションがあります：
+ 単一のリソースグループのスコープ - 選択したリソースグループ内の一致するリソースのみに予約割引を適用します。

+ 単一のサブスクリプションのスコープ - 選択したサブスクリプション内の一致するリソースに予約割引を適用します。単一スコープの予約では、VMインスタンスサイズの柔軟性ではなく、キャパシティ優先の予約を最適化できます。

+ 共有スコープ - 課金コンテキストにある対象のサブスクリプションの一致するリソースに予約割引を適用します。サブスクリプションが別の請求コンテキストに移動された場合、特典はこのサブスクリプションに適用されなくなり、**請求コンテキスト**内の他のサブスクリプションに引き続き適用されます。
-エンタープライズ契約のお客様の場合、課金コンテキストは登録です。予約の共有スコープには、登録内の複数の Active Directory テナントが含まれます。
-Microsoft Customer Agreement のお客様の場合、請求スコープは請求プロファイルです。
-従量制料金の個別サブスクリプションの場合、請求スコープは、アカウント管理者によって作成されたすべての適格なサブスクリプションです。

デフォルトでは、予約のスコープが共有されている場合、インスタンスサイズの柔軟性はオンになっています。データセンターの容量は、VM のデプロイメントに優先されません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2982508/d275491a-1afd-ba5d-edd4-56fa8b43e864.png)

詳細：https://learn.microsoft.com/ja-JP/azure/cost-management-billing/reservations/prepare-buy-reservation

お金を節約するために予約購入できる Azure のリソースはたくさんあります。
[フルリストはここにあります。](https://learn.microsoft.com/ja-JP/azure/cost-management-billing/reservations/save-compute-costs-reservations)


### Azure VM の予約 / Azure Reserved VM Instances
[Azure ポータル](https://portal.azure.com/)から 1 年または 3 年の Azureリザーブド VM インスタンスを直接購入し、一括前払いまたは月払いで支払います。月払いオプションは追加費用なしでご利用いただけます。

詳細：https://learn.microsoft.com/ja-jp/azure/virtual-machines/prepay-reserved-vm-instances

### マネージドディスクの予約
Azure Disk Storage の予約は、一部の Azure プレミアムSSD SKU（P30（1TiB）プレミアムマネージドディスク以上）でのみ利用可能です。プレミアム SSD の SKU によって、ディスクのサイズとパフォーマンスが決まります。ディスク予約はディスク SKU ごとに行われます。その結果、予約の消費量は、提供されたサイズではなく、ディスク SKU の単位に基づいています。プロビジョニングまたは使用済みディスク容量ではなく、ディスク SKU 単位で使用量を追跡することを確認してください。
https://learn.microsoft.com/ja-jp/azure/virtual-machines/disks-reserved-capacity

### Azure ストレージの予約
Azure ストレージの場合、Azure ストレージ予約を購入する際に、予約のリージョン、アクセス階層、冗長オプションを選択する必要があります。予約は、そのリージョン、アクセス階層、冗長レベルで保存されたデータに対してのみ有効です。予約は 100TiB または 1PiB ブロックで利用可能で、1PiB ブロックではより高い割引が適用されます。[予約割引がAzureストレージサービスにどのように適用されるかを理解](https://learn.microsoft.com/ja-JP/azure/cost-management-billing/reservations/understand-storage-charges)し、[予約容量でBLOBストレージのコストを最適化する。](https://learn.microsoft.com/ja-JP/azure/storage/BLOBs/storage-BLOB-reserved-capacity)

### Log Analytics のコミットメント レベル
2021年6月2日より、容量予約はコミットメント・ティアと呼ばれるようになりました。

Log Analyticsには、Pay-As-You-Go モデルに加えてコミットメント レベル / コミットメント・ティア（Commitment Tiers）があり、Pay-As-You-Go 価格と比較して最大 30 パーセントのコスト削減が可能です。コミットメント・ティア価格では、100GB/日からデータ取り込みをコミットすることができ、Pay-As-You-Go 価格よりも低価格です。コミットメント・レベルを超える使用量（超過分）は、現在のコミットメント・ティアと同じ GB あたりの価格で請求されます。コミットメント・レベルには 31 日間のコミットメント期間があります。コミットメント期間中に、より高いコミットメント・ティアに変更することはできますが（この場合、31日間のコミットメント期間が再開されます）、コミットメント期間が終了するまで、従量課金またはより低いコミットメント・ティアに戻すことはできません。コミットメント層の課金は日単位で行われます。
是非、Log Analytics の Pay-As-You-Go とコミットメント・ティア価格について詳しくしってください。

https://learn.microsoft.com/ja-JP/azure/azure-monitor/logs/cost-logs

### 交換と払戻ポリシー
この交換と払い戻しに関するポリシーを理解していない顧客は、よくハマることになります。
ここに記載されているように、予約したインスタンスの交換と払い戻しの両方のオプションがあり、非常に寛大で非常に柔軟です。

本稿執筆時点以下の通りです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2982508/3aea1fc7-d22d-4a30-ec47-a9fd38fcdcc7.png)
```
Refund policies

. We're currently not charging an early termination fee, but in the future there
might be a 12% early termination fee for cancellations.

<和訳>
払戻ポリシー
現在、中途解約料は課金していませんが、将来的には 12% の解約料が発生する可能性があります。
```

### 交換と払い戻し に関する最新情報

:::note
返金ポリシーに関する最新の情報はこちらを確認してください。
・キャンセル、交換、払戻ポリシー
https://learn.microsoft.com/ja-JP/azure/cost-management-billing/reservations/exchange-and-refund-azure-reservations#cancel-exchange-and-refund-policies
・Azure 予約交換ポリシーの変更
https://learn.microsoft.com/ja-jp/azure/cost-management-billing/reservations/reservation-exchange-policy-changes
:::

## コンピューティングのための Azure 節約プラン　/ Azure savings plan 
Azure の節約プランでは、Azure のコンピュートリソースを一貫して使用する場合、コストを節約できます。この割引により、リソースコストを従量課金価格から最大66%まで大幅に削減できます。1メートルあたりの割引率は、コミットメント額ではなく、コミットメント期間（1年または3年）によって異なります。

仮想マシン、Azure専用ホスト、コンテナインスタンス、Azure Premium Functions、および一部のAzure App Servicesで利用可能です。

Azure 予約を節約プランと交換することはできますが、**節約プランを Azure予約 と交換することはできません**。節約プランのキャンセルや払い戻しはできません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2982508/283155d0-6537-e07e-694e-3e6a5b8370b4.png)

お客様は、Azure VM の Reserved Instance と Azure 節約プラン 両方のを持つことができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2982508/082e959d-6798-474c-886d-a794c4869e89.png)

詳細：https://learn.microsoft.com/ja-JP/azure/cost-management-billing/savings-plan/savings-plan-compute-overview



## 監視
当社の CAF (https://learn.microsoft.com/ja-JP/azure/cloud-adoption-framework/ready/landing-zone/design-area/management) によると、以下のとおりです。Azureの役割ベースのアクセス制御（Azure RBAC）、データ主権要件、およびデータ保持ポリシーによって別々のワークスペースが義務付けられている場合を除き、単一のモニター [Log Analytics Workspace](https://learn.microsoft.com/ja-JP/azure/azure-monitor/logs/workspace-design) を使用してプラットフォームを一元管理することを推奨します。ログの一元化は、運用管理チームが必要とする可視化にとって非常に重要です。ログの一元化により、変更管理、サービスの健全性、構成、その他IT運用のほとんどの側面に関するレポートが作成されます。一元化されたワークスペース・モデルに集中することで、管理工数が削減され、観測可能性にギャップが生じる可能性が低くなります。

### コミットメント レベル
Log Analyticsには、**Pay-As-You-Go** モデルに加えて、**コミットメント・ティア（Commitment Tier）**があり、**Pay-As-You-Go** 価格と比較して30%もコストを削減できます。コミットメント・ティア価格では、ワークスペースのデータ取り込みを100GB/日から、従量課金よりも低価格で購入できます。コミットメント・レベルを超える使用量（超過分）は、現在のコミットメント・ティアと同じGBあたりの価格で請求されます。**コミットメント・レベルのコミットメント期間は、コミットメント・レベルを選択してから31日間**です。

詳細：https://learn.microsoft.com/ja-jp/azure/azure-monitor/logs/cost-logs#commitment-tiers

### Azure Monitor の基本ログと分析ログ
Azure Monitor の **基本ログ** とデータアーカイブを使用すると、ユーザーは現在の取り込みコストの 5 分の 1 でログを取り込み、最大 7 年間アーカイブできます。

デフォルトでは、ワークスペース内のすべてのテーブルは、Azure Monitor のすべての機能とワークスペースを使用するその他のサービスで利用可能な Analytics テーブルです。[特定のテーブルを基本ログ](https://learn.microsoft.com/ja-JP/azure/azure-monitor/logs/basic-logs-configure?tabs=portal-1#which-tables-support-basic-logs)として構成して、デバッグ、トラブルシューティング、監査に使用する大量の冗長ログの保存コストを削減できますが、分析やアラートには使用できません。**基本ログ**として構成されたテーブルは、機能が低下する代わりに、取り込みコストが低くなります。クエリの制限は[ここ](https://learn.microsoft.com/ja-JP/azure/azure-monitor/logs/basic-logs-query?tabs=portal-1#limitations)に記載されています。

基本ログ テーブルは [8 日間データを保持](https://learn.microsoft.com/ja-JP/azure/azure-monitor/logs/basic-logs-configure?tabs=portal-1#retain-and-archive-basic-logs)します。既存のテーブルのプランを Basic Logs に変更すると、Azure は 8 日以上前のデータをアーカイブしますが、テーブルの元の保持期間内です。

## PaaS
### App Service Plans
まず、Azure App Service の仕組みについてはこちらをご覧ください。

https://qiita.com/mym/items/1d364c0251daf88d417d

+ App Service プランはインスタンスとも呼ばれるワーカーを持つ
+ App Service プランは App Service アプリのスケール単位です。プランが 5 つの VM インスタンスを実行するように構成されている場合、プラン内のすべてのアプリは5つのインスタンスすべてで実行されます。
+ App Service プランの各 VM インスタンスは課金されます。https://learn.microsoft.com/ja-JP/azure/app-service/overview-hosting-plans#how-much-does-my-app-service-plan-cost
+ これらのVMインスタンスは、その上で実行されているアプリの数に関係なく、同じように課金されます。
+ 複数のアプリを 1 つの App Service プランに統合することを検討する https://learn.microsoft.com/ja-JP/azure/app-service/overview-hosting-plans#should-i-put-an-app-in-a-new-plan-or-an-existing-plan
+ 本番用とテスト用に別々の App Service プランを作成する。本番環境のスロットをテストに使用しないでください。同じ App Service プラン内のすべてのアプリは、同じ VM インスタンスを共有します。本番用とテスト用のデプロイメントを同じプランに入れると、本番用デプロイメントに悪影響を及ぼす可能性があります。たとえば、負荷テストが本番サイトを低下させる可能性があります。
+ テスト デプロイメントを別のプランに置くことで、本番バージョンから切り離すことができます。https://learn.microsoft.com/ja-JP/azure/architecture/checklist/resiliency-per-service

お客様によく見られるのは、**オートスケールをあまり活用せず、App Service Plans にアプリ・サービスを効率的に統合していない**ことです。お客様は、1つのApp Service Plans に1つのアプリ・サービスを組み合わせて、App Service Plans を乱立させているようです。 **複数のアプリを1つの App Service Plans にまとめれば、コストを節約できる**可能性があります。そのプランに負荷を処理するのに十分なリソースがある限り、既存のプランにアプリを追加し続けることができます。

### パブリックマルチテナント App Service の 可用性ゾーン
Microsoft Azure App Service をアベイラビリティゾーン（AZ）にデプロイすることで、ビジネスクリティカルなワークロードの回復力と信頼性を実現できます。このアーキテクチャは、ゾーン冗長化としても知られています。

アプリは App Service プラン（ASP）に存在し、App Service プランは単一のスケールユニットに存在します。App Serviceがゾーン冗長に構成されている場合、プラットフォームは App Service プラン内の VM インスタンスを、選択したリージョン内の 3 つのゾーンすべてに自動的に分散します。3より大きい容量が指定され、インスタンス数が 3 で割り切れる場合、インスタンスは均等に分散されます。
そうでない場合、3×N を超えるインスタンス数は、残りの1つまたは 2 つのゾーンに分散されます。**ゾーン冗長化が設定されていない App Services の場合、VM インスタンスは選択したリージョン内の 1 つのゾーンに配置される。** https://learn.microsoft.com/ja-JP/azure/reliability/reliability-app-service?tabs=graph%2Ccli

下記にあるように、可用性ゾーンには前提条件があります。
https://docs.microsoft.com/ja-jp/azure/app-service/how-to-zone-redundancy#requirements 
以下はその一部で、全リストはすぐ上のリンクにあります。
+ Premium v2 または Premium v3の App Service プランが必要
+ 最小インスタンス数 3

### App Service Environments

App Service Environment では、単一の顧客のみのアプリケーションをホストすることができ、顧客の仮想ネットワークの 1 つでそれが行われます。 顧客は、受信と送信の両方のアプリケーション ネットワーク トラフィックをきめ細かく制御することができます。 アプリケーションは VPN を介した、オンプレミスの企業リソースへのセキュリティで保護された高速な接続を確立することができます。
参考：https://learn.microsoft.com/ja-jp/azure/app-service/environment/overview

App Service Environment については、以下の通りです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2982508/4c71e359-5a7b-9d44-2459-b4da71362d66.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2982508/ba7e5bd3-fea8-6af3-1daa-64bfeca6858b.png)

+ [Azure App Service に予約割引を適用する方法](https://learn.microsoft.com/ja-JP/azure/cost-management-billing/reservations/reservation-discount-app-service)
+ [App Service Environment バージョン 1 とバージョン 2 は、2024 年 8 月 31 日に廃止されます](https://azure.microsoft.com/ja-JP/updates/app-service-environment-v1-and-v2-retirement-announcement/)
+ [Announcing App Service Environment v3 GA](https://techcommunity.microsoft.com/t5/apps-on-azure-blog/announcing-app-service-environment-v3-ga/ba-p/2517990)

下記は 2022 年 8 月の豪ドル建ての推定値です：
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2982508/7c50f802-98ff-0c76-2068-90ddb5664ada.png)
・[Azure Dev/Test の価格](https://azure.microsoft.com/ja-jp/pricing/offers/dev-test/)
・[Azure App Service に予約割引を適用する方法](https://learn.microsoft.com/ja-JP/azure/cost-management-billing/reservations/reservation-discount-app-service)

## Azure Advisor
Azure 環境で常に参照できる無料のツールに Azure Advisor があります。
Azure Advisor は、コストを含む  [WAF(Well-Archited Framework)](https://learn.microsoft.com/ja-jp/azure/well-architected/) フレームワークに従い、Azureサブスクリプションで可能な限り最大の価値を得るために、多くの推奨事項をが記載されています。。

詳細はこちら：https://learn.microsoft.com/ja-JP/azure/advisor/advisor-reference-cost-recommendations