Storage Accounts (Blob/Azure Data Lake Storage Gen2)
The presented resiliency recommendations in this guidance include Storage Account and associated settings.
Summary of Recommendations
The below table shows the list of resiliency recommendations for Storage Account and associated resources.
Recommendation | Category | Impact | State | ARG Query Available |
---|---|---|---|---|
ST-1 - Ensure that storage accounts are zone or region redundant | Availability | High | Verified | Yes |
ST-2 - Do not use classic storage accounts | Governance | High | Verified | Yes |
ST-3 - Ensure performance tier is set as per workload | System Efficiency | Medium | Verified | No |
ST-5 - Enable soft delete for recovery of data | Disaster Recovery | Medium | Verified | No |
ST-6 - Enable versioning for accidental modification and keep the number of versions below 1000 | Disaster Recovery | Low | Verified | No |
ST-7 - Consider enabling point-in-time restore for standard general purpose v2 accounts with flat namespace | Disaster Recovery | Low | Verified | No |
ST-8 - Monitor all blob storage accounts | Monitoring | Low | Verified | No |
ST-9 - Consider upgrading legacy storage accounts to v2 storage accounts | System Efficiency | Low | Verified | Yes |
Recommendations Details
ST-1 - ストレージ アカウントがゾーンまたはリージョン冗長であることを確認します
Category: Availability
Impact: High
Guidance
冗長性により、ストレージ アカウントは、障害が発生した場合でも可用性と持続性の目標を確実に満たすことができます。シナリオに最適な冗長性オプションを決定するときは、コストの削減と可用性の向上のトレードオフを考慮してください。 ローカル冗長ストレージ (LRS) は、最も低コストの冗長性オプションであり、他のオプションと比較して持続性が最も低くなります。Microsoft では、ゾーン冗長ストレージ (ZRS)、geo 冗長ストレージ (GRS)、または geo ゾーン冗長ストレージ (GZRS) を使用して、可用性ゾーンまたはリージョンが使用できなくなった場合にストレージ アカウントを使用できるようにすることをお勧めします。
Resources
Resource Graph Query
// Azure Resource Graph Query
// This query will return all storage accounts that are not using Zone or Region replication
Resources
| where type =~ "Microsoft.Storage/storageAccounts"
| where sku.name in~ ("Standard_LRS", "Premium_LRS")
| project recommendationId = "st-1", name, id, tags, param1 = strcat("sku: ", sku.name)
ST-2 - クラシック ストレージ アカウントを使用しないようにします
Category: Governance
Impact: High
Guidance
クラシック ストレージ アカウントは、2024 年 8 月 31 日に完全に廃止されます。クラシック ストレージ アカウントをお持ちの場合は、今すぐ移行の計画を開始してください。
Resources
- Azure classic storage accounts retirement announcement
- Migrate your classic storage accounts to Azure Resource Manager
Resource Graph Query
// Azure Resource Graph Query
// Find all Azure classic Storage Account
resources
| where type =~ 'microsoft.classicstorage/storageaccounts'
| project recommendationId = 'st-2', name, id, tags, param1=type
ST-3 - パフォーマンス レベルがワークロードごとに設定されていることを確認します
Category: System Efficiency
Impact: Medium
Guidance
ワークロードのシナリオに適したストレージ パフォーマンス レベルを使用することを検討してください。各ワークロード シナリオには適切なパフォーマンス レベルが必要であり、ストレージの使用量に基づいて適切なパフォーマンス レベルを選択することが重要です。
Resources
- Types of storage accounts
- Scalability and performance targets for standard storage accounts
- Performance and scalability checklist for Blob storage
- Scalability and performance targets for Blob storage
- Premium block blob storage accounts
- Scalability targets for premium block blob storage accounts
- Scalability and performance targets for premium page blob storage accounts
Resource Graph Query
// cannot-be-validated-with-arg
ST-5 - データの回復のための論理的な削除を有効にします
Category: Disaster Recovery
Impact: Medium
Guidance
論理的な削除オプションを使用すると、誤って削除された場合にデータを回復できます。さらに、ロックはストレージアカウントを誤って削除するのを防ぎます。
Resources
Script
// under-development
ST-6 - 偶発的な変更に対してバージョン管理を有効にし、バージョンの数を 1000 未満に保ちます
Category: Disaster Recovery
Impact: Low
Guidance
偶発的な変更や削除からデータを回復するために、バージョン管理を有効にすることを検討してください。 BLOB あたりのバージョン数が多いと、BLOB の一覧表示操作の待機時間が長くなる可能性があります。Microsoft では、BLOB あたり 1,000 未満のバージョンを維持することをお勧めします。ライフサイクル管理を使用して、古いバージョンを自動的に削除できます。
Resources
Script
// under-development
ST-7 - フラットな名前空間を持つ標準の汎用 v2 アカウントに対してポイントインタイム リストアを有効にすることを検討してください
Category: Disaster Recovery
Impact: Low
Guidance
フラットな名前空間を持つ標準の汎用 v2 アカウントに対してポイントインタイム リストアを有効にすることを検討してください。ポイントインタイム リストアは、ブロック BLOB データを以前の状態に復元できるようにすることで、偶発的な削除や破損から保護します。
Resources
Script
// under-development
ST-8 - すべての BLOB ストレージ アカウントを監視します
Category: Monitoring
Impact: Low
Guidance
Azure リソースに依存する重要なアプリケーションやビジネス プロセスがある場合は、システムを監視してアラートを取得する必要があります。 リソース ログは、診断設定を作成し、ログを 1 つ以上の場所にルーティングするまで収集および保存されません。診断設定を作成するときは、収集するログのカテゴリを指定します。
Resources
Script
// under-development
ST-9 - レガシ ストレージ アカウントを v2 ストレージ アカウントにアップグレードすることを検討します
Category: System Efficiency
Impact: Low
Guidance
汎用 v2 アカウントは、最新の機能またはギガバイトあたりの最低価格を備えたほとんどのストレージ シナリオに推奨されます。レガシ アカウントの種類 (Standard 汎用 v1 と Blob Storage) は Microsoft では推奨されていませんが、特定のシナリオで使用される場合があります。 ドキュメントに記載されているシナリオ (クラシック互換性、トランザクション集中型など) を考慮し、該当する場合はレガシ ストレージ アカウントを v2 ストレージ アカウントにアップグレードしてください。
汎用 v1 または Blob ストレージ アカウントから汎用 v2 ストレージ アカウントへのアップグレードは簡単です。汎用 v2 ストレージ アカウントへのアップグレードに関連するダウンタイムやデータ損失のリスクはありません。汎用 v1 または Blob Storage アカウントから汎用 v2 へのアップグレードは永続的であり、元に戻すことはできません。
Resources
Script
// Azure Resource Graph Query
// Find all Azure Storage Accounts, that upgradeable to General purpose v2.
Resources
| where type =~ "Microsoft.Storage/storageAccounts" and kind in~ ("Storage", "BlobStorage")
| extend
param1 = strcat("AccountKind: ", case(kind =~ "Storage", "Storage (general purpose v1)", kind =~ "BlobStorage", "BlobStorage", kind)),
param2 = strcat("Performance: ", sku.tier),
param3 = strcat("Replication: ", sku.name)
| project recommendationId = "st-9", name, id, tags, param1, param2, param3