次の方法で共有


Azure Blob Storage に関する Azure Well-Architected Framework のパースペクティブ

Azure Blob Storage は、クラウド用の Microsoft オブジェクト ストレージ ソリューションです。 Blob Storage は、大量の非構造化データを格納するように最適化されています。 非構造化データとは、テキストやバイナリ データなど、特定のデータ モデルや定義に準拠していないデータです。

この記事では、アーキテクトとして、ストレージ オプション 確認し、ワークロードを実行するストレージ サービスとして Blob Storage を選択したことを前提としています。 この記事のガイダンスでは、Azure Well-Architected Framework の柱 の原則にマップされたアーキテクチャに関する推奨事項を示します。

重要

このガイドの使用方法

各セクションには、設計戦略と共に関心のあるアーキテクチャ領域を示す 設計チェックリスト があります。

また、これらの戦略の実装に役立つテクノロジ機能 推奨事項も含まれています。 推奨事項は、Blob Storage とその依存関係で使用できるすべての構成の完全な一覧を表すわけではありません。 代わりに、設計パースペクティブにマップされた主要な推奨事項が一覧表示されます。 推奨事項を使用して概念実証を構築するか、既存の環境を最適化します。

確実

信頼性の柱の目的は、十分な回復性を構築 し、障害から迅速に回復する機能をして継続的な機能を提供することです。

信頼性設計の原則、個々のコンポーネント、システム フロー、およびシステム全体に適用される高度な設計戦略を提供します。

設計チェックリスト

信頼性の 設計レビュー チェックリストに基づいて、設計戦略を開始します。

  • エラー モード分析を使用する: 仮想ネットワーク、Azure Key Vault、Azure Content Delivery Network、Azure Front Door エンドポイントの可用性などの内部依存関係を考慮して、障害点を最小限に抑えます。 Blob Storage にアクセスするためにワークロードに必要な資格情報が Key Vault から不足している場合、または削除されたコンテンツ配信ネットワークに基づいてワークロードがエンドポイントを使用している場合、エラーが発生する可能性があります。 このような場合、ワークロードでは、接続に代替エンドポイントを使用することが必要になる場合があります。 障害モード分析の一般的な情報については、「エラー モード分析を実行するための推奨事項」を参照してください。

  • 信頼性と復旧のターゲットを定義する: Azure サービス レベル アグリーメント (SLA)を確認します。 ストレージ アカウントのサービス レベル目標 (SLO) を派生させます。 たとえば、SLO は、選択した冗長性構成の影響を受ける可能性があります。 リージョンの停止の影響、データ損失の可能性、および停止後にアクセスを復元するために必要な時間を考慮してください。 また、障害モード分析の一部として識別した内部依存関係の可用性も考慮してください。

  • データ冗長の構成: 最大持続性を実現するには、可用性ゾーンまたはグローバル リージョン間でデータをコピーする構成を選択します。 可用性を最大限に高めるために、プライマリ リージョンの停止中にクライアントがセカンダリ リージョンからデータを読み取る構成を選択します。

  • アプリケーションの設計: プライマリ リージョンが何らかの理由で使用できなくなった場合に、セカンダリ リージョンからのデータの読み取りにシームレスに移行 アプリケーションを設計します。 これは、geo 冗長ストレージ (GRS) と geo ゾーン冗長ストレージ (GZRS) の構成にのみ適用されます。 停止に対処するアプリケーションを設計すると、エンド ユーザーのダウンタイムが短縮されます。

  • 回復ターゲットのを満たすのに役立つ機能を探索する: BLOB が破損、編集、または誤って削除された場合に回復できるように、BLOB を復元できるようにします。

  • 復旧計画の作成: データ保護機能、バックアップと復元の操作、またはフェールオーバーの手順を検討します。 潜在的な データ損失やデータの不整合、およびフェールオーバーにかかる 時間とコストに備える。 詳細については、「ディザスター リカバリー戦略を設計するための推奨事項」を参照してください。

  • 可用性に関する潜在的な問題の監視: Azure Service Health ダッシュボード にサブスクライブして、潜在的な可用性の問題を監視します。 Azure Monitor のストレージ メトリックと診断ログを使用して、アラートを調査します。

推奨 事項

勧告 特長
冗長性を確保するためにアカウントを構成します。

可用性と持続性を最大限に高めるには、ゾーン冗長ストレージ (ZRS) または GZRS使用してアカウントを構成します。
冗長性により、予期しない障害からデータが保護されます。 ZRS と GZRS の構成オプションは、異なる可用性ゾーン間でレプリケートされ、停止中にアプリケーションがデータの読み取りを続行できるようにします。 詳細については、「持続性と可用性を停止シナリオ別に し、持続性と可用性のパラメーターをする」を参照してください。
フェールオーバーまたはフェールバックを開始する前に、最後の同期時刻 プロパティの値 確認して、データ損失の可能性 評価します。 この推奨事項は、GRS および GZRS 構成にのみ適用されます。 このプロパティは、アカウントのフェールオーバーを開始することによって失われる可能性があるデータの量を見積もるのに役立ちます。

最後の同期時刻より前に書き込まれたデータとメタデータはすべてセカンダリ リージョンで使用できますが、最後の同期時刻より後に書き込まれたデータとメタデータは、セカンダリ リージョンに書き込まれていないため失われる可能性があります。
バックアップと復旧の戦略の一環として、コンテナーの論理的な削除、BLOB の論理的な削除バージョン管理のポイントインタイム リストアの オプションを有効にします。 ソフト デリート オプションを使用すると、ストレージ アカウントで削除されたコンテナーと BLOB を回復できます。

バージョン管理オプションは、BLOB に加えられた変更を自動的に追跡します。 このオプションを使用すると、BLOB を以前の状態に復元できます。

ポイントインタイム リストア オプションを使用すると、誤った BLOB の削除や破損から保護し、ブロック BLOB データを以前の状態に復元できます。

詳細については、「データ保護の概要」を参照してください。
バックアップ戦略の一環として、Azure BLOB のコンテナー化されたバックアップを構成します。 コンテナー化されたバックアップを使用すると、ブロック BLOB データをランサムウェア、その他の悪意のある攻撃、ソース データの損失から保護できます。 データは、最大 10 年間保持できるバックアップ コンテナー (データのオフサイト コピー) にコピーされて格納されます。 ソース アカウントでデータ損失が発生した場合は、代替アカウントへの復元をトリガーし、データにアクセスできます。 Azure Backupを使用したコンテナー化バックアップのサポート可能性の詳細については、を参照してください。

安全

セキュリティの柱の目的は、ワークロードに対する機密性、整合性、可用性の 保証を提供することです。

セキュリティの設計原則、Blob Storage 構成の技術的な設計にアプローチを適用することで、これらの目標を達成するための高度な設計戦略を提供します。

設計チェックリスト

セキュリティの 設計レビュー チェックリストに基づいて、設計戦略を開始します。 セキュリティ体制を改善するための脆弱性と制御を特定します。 必要に応じて、より多くのアプローチを含むように戦略を拡張します。

  • Azure Storageのセキュリティ ベースラインを確認します。まず、Azure Storageのセキュリティ ベースラインを確認 します。

  • ネットワーク 制御を使用して、イングレス トラフィックとエグレス トラフィックのを制限します。ストレージ アカウントへのパブリック トラフィックをすべて無効にします。 アカウント ネットワーク制御を使用して、ユーザーとアプリケーションに必要な最小限のレベルのアクセス権を付与します。 詳細については、「ストレージ アカウントのネットワーク セキュリティにアプローチする方法」を参照してください。

  • 攻撃対象領域のを減らす: 匿名アクセス、アカウント キー アクセス、またはセキュリティで保護されていない (HTTP) 接続経由のアクセスを防ぐと、攻撃対象領域が減少する可能性があります。 トランスポート層セキュリティ (TLS) プロトコルの最新バージョンを使用して、クライアントにデータの送受信を要求します。

  • パスワードやキーを使用せずにアクセスを承認する: Microsoft Entra ID は、共有キーや共有アクセス署名に比べて優れたセキュリティと使いやすさを提供します。 セキュリティ プリンシパルに、タスクを実行するために必要なアクセス許可のみを付与します。

  • 機密情報を保護する: アカウント キーや Shared Access Signature トークンなどの機密情報を保護します。 通常、これらの形式の承認は推奨されませんが、必ずローテーションし、期限を設定し、安全に保管してください。

  • 安全な転送が必要なオプションを有効にする: すべてのストレージ アカウントに対してこの設定を有効にすると、ストレージ アカウントに対して行われたすべての要求が、セキュリティで保護された接続を介して行われる必要があります。 HTTP 経由で行われた要求はすべて失敗します。

  • 重要なオブジェクトを保護する: 不変ポリシー 適用して、重要なオブジェクトを保護します。 ポリシーは、法的、コンプライアンス、またはその他のビジネス目的で格納されている BLOB が変更または削除されないように保護します。 設定された期間または管理者が制限を解除するまで、保留の設定を行います。

  • 脅威の検出: Microsoft Defender for Storage 有効にして脅威を検出します。 アクティビティの異常が発生すると、セキュリティ アラートがトリガーされます。 アラートは、疑わしいアクティビティの詳細と、脅威の調査と修復方法に関する推奨事項を電子メールでサブスクリプション管理者に通知します。

推奨 事項

勧告 利点
コンテナーと BLOBへの匿名読み取りアクセスを無効にします。 ストレージ アカウントに対して匿名アクセスが許可されている場合、適切なアクセス許可を持つユーザーは、コンテナーの匿名アクセス設定を変更して、そのコンテナー内のデータへの匿名アクセスを有効にすることができます。
ストレージ アカウントに対して Azure Resource Manager ロックを適用します。 アカウントをロックすると、アカウントが削除され、データが失われるのを防ぐことができます。
ストレージ アカウントのパブリック エンドポイント へのトラフィックを無効にします。 Azure で実行するクライアント用のプライベート エンドポイントを作成します。 Azure 外部のクライアントとサービスがストレージ アカウントへの直接アクセスを必要とする場合にのみ、パブリック エンドポイントを有効にします。 特定の仮想ネットワークへのアクセスを制限 ファイアウォール規則を有効にします。 ゼロ アクセスから開始し、クライアントとサービスに必要な最小レベルのアクセスを段階的に承認して、攻撃者に不要な開口部を作成するリスクを最小限に抑えます。
Azure ロールベースのアクセス制御 (RBAC) を使用してアクセスを承認します。 RBAC では、侵害される可能性のあるパスワードやキーはありません。 セキュリティ プリンシパル (ユーザー、グループ、マネージド ID、またはサービス プリンシパル) は、OAuth 2.0 トークンを返すために Microsoft Entra ID によって認証されます。 トークンは、Blob Storage サービスに対する要求を承認するために使用されます。
共有キーの承認を許可しない。 これにより、アカウント キーアクセスだけでなく、サービスおよびアカウント共有アクセス署名トークンも無効になります。これは、アカウント キーに基づいているためです。 Microsoft Entra ID で承認されているセキュリティで保護された要求のみが許可されます。
アカウント キーは使用しないことをお勧めします。 アカウント キーを使用する必要がある場合 Key Vaultに格納し、定期的に再生成してください。 Key Vault を使用すると、アプリケーションを使用してキーを保存するのではなく、実行時にキーを取得できます。 また、Key Vault を使用すると、アプリケーションを中断することなく、キーを簡単にローテーションできます。 アカウント キーを定期的にローテーションすると、悪意のある攻撃にデータが公開されるリスクが軽減されます。
Shared Access Signature トークンは使用しないことをお勧めします。 Blob Storage リソースへのアクセスをセキュリティで保護するために、Shared Access Signature トークンが必要かどうかを評価します。 作成する必要がある場合は、作成して配布する前に、共有アクセス署名のベスト プラクティス こちらの一覧を確認してください。 ベスト プラクティスは、共有アクセス署名トークンが漏洩するのを防ぎ、リークが発生した場合に迅速に復旧するのに役立ちます。
TLS 1.2 の最小バージョンを使用してクライアントがデータを送受信できるように、ストレージ アカウント を構成します。 TLS 1.2 は TLS 1.0 および 1.1 よりも安全性が高く高速です。これは、最新の暗号アルゴリズムと暗号スイートをサポートしていません。
ストレージ アカウント内のデータを保護するには、独自の暗号化キーを使用することを検討してください。 詳細については、Azure Storage 暗号化のカスタマー マネージド キーの に関するページを参照してください。 カスタマー マネージド キーは、より高い柔軟性と制御を提供します。 たとえば、Key Vault に暗号化キーを格納し、自動的にローテーションすることができます。

コストの最適化

コストの最適化では、支出パターンの検出、重要な領域への投資の優先順位付け、組織の予算とビジネス要件を満たすために他の での最適化を に重点を置いています。

コスト最適化の設計原則、Blob Storage とその環境に関連する技術的な設計において、これらの目標を達成し、必要に応じてトレードオフを行う高度な設計戦略を提供します。

設計チェックリスト

投資のコスト最適化 の 設計レビュー チェックリストに基づいて、設計戦略を開始します。 ワークロードの設計を、割り当てられた予算と一致するように微調整します。 設計では、適切な Azure 機能を使用し、投資を監視し、時間の経過と同時に最適化する機会を見つける必要があります。

  • 課金の計算に使用されるメーターを識別します。メーターは、アカウントに格納されているデータの量 (データ容量) と、データの書き込みと読み取りに実行される操作の数と種類を追跡するために使用されます。 また、BLOB インデックス タグ、BLOB インベントリ、変更フィードのサポート、暗号化スコープ、SSH ファイル転送プロトコル (SFTP) サポートなどのオプション機能の使用に関連するメーターもあります。 詳細については、「Blob Storageの課金方法」を参照してください。

  • 各メーターの価格を理解する: 適切な価格ページを使用し、そのページで適切な設定を適用してください。 詳細については、「各メーターの単価の検索」を参照してください。 各価格に関連付けられている操作の数を検討してください。 たとえば、書き込み操作と読み取り操作に関連付けられている価格は、10,000 操作に適用されます。 個々の操作の価格を決定するには、表示価格を 10,000 で除算します。

  • 容量と運用のコストを見積もる: Azure 料金計算ツールを使用して、データ ストレージ、イングレス、エグレスに関連するコストをモデル化できます。 フィールドを使用して、さまざまなリージョン、アカウントの種類、名前空間の種類、冗長性の構成に関連付けられているコストを比較します。 特定のシナリオでは、Microsoft ドキュメントで使用できるサンプル計算とワークシートを使用できます。 たとえば、データ アーカイブのコストを見積も 、AzCopy コマンドを使用して BLOB を転送するコストを見積も

  • 容量の課金モデルを選択する: コミットメント ベースのモデル を使用する方が、従量課金ベースのモデルを使用するよりもコスト効率が高いかどうかを評価します。 必要な容量が不明な場合は、使用量ベースのモデルから開始し、容量メトリックを監視してから、後で評価できます。

  • アカウントの種類、冗長性レベル、既定のアクセス層のを選択します。ストレージ アカウントを作成するときは、これらの設定ごとに値を選択する必要があります。 すべての値は、トランザクションの料金と容量の料金に影響します。 アカウントの種類を除くこれらすべての設定は、アカウントの作成後に変更できます。

  • 最もコスト効率の高い既定のアクセス層を選択: BLOB のアップロードごとに層が指定されていない限り、BLOB は既定のアクセス層設定からアクセス層を推論します。 ストレージ アカウントの既定のアクセス層設定の変更は、アクセス層が明示的に設定されていないアカウント内のすべての BLOB に適用されます。 大量の BLOB を収集した場合、このコストは大きくなる可能性があります。 階層の変更が既存の各 BLOB に与える影響の詳細については、「BLOB のアクセス層のの変更」を参照してください。

  • 最もコスト効率の高いアクセス層のにデータを直接アップロードする: たとえば、アカウントの既定のアクセス層の設定がホットであっても、アーカイブのためにファイルをアップロードする場合は、アップロード操作の一環として、アーカイブとしてクール層またはコールド層を指定します。 BLOB をアップロードした後、ライフサイクル管理ポリシーを使用して、最後にアクセスした時刻などの使用状況メトリックに基づいて最もコスト効率の高い層に BLOB を移動します。 最も最適な階層を前もって選択すると、コストを削減できます。 既にアップロードしたブロック BLOB の層を変更した場合は、最初に BLOB をアップロードするときに初期層に書き込むコストを支払い、次に目的の層に書き込むコストを支払います。

  • データ ライフサイクルを管理するための計画があります。アクセス層とライフサイクル管理を利用して、トランザクションと容量のコストを最適化します。 使用頻度の低いデータは、よりクールなアクセス層に配置する必要があります。一方、頻繁にアクセスされるデータは暖かいアクセス層に配置する必要があります。

  • 必要な機能を決定します。バージョン管理や BLOB の論理的な削除などの一部の機能では、追加のトランザクションと容量のコストが発生し、その他の料金が発生します。 アカウントに追加する機能を選択する場合は、これらの機能について説明した記事の価格と課金のセクションを必ず確認してください。

    たとえば、BLOB インベントリ機能を有効にした場合、スキャンされたオブジェクトの数に対して課金されます。 BLOB インデックス タグを使用する場合は、インデックス タグの数に対して課金されます。 SFTP のサポートを有効にした場合、SFTP 転送がない場合でも、時間単位の料金が課金されます。 機能を使用しない場合は、アカウントの作成時に一部の機能が自動的に有効になるため、機能が無効になっていることを確認します。

  • ガードレールの作成: サブスクリプションとリソース グループに基づいて 予算を作成します。 ガバナンス ポリシーを使用して、リソースの種類、構成、場所を制限します。 さらに、RBAC を使用して、過剰支出につながる可能性のあるアクションをブロックします。

  • コストを監視する: コストが予算内に収まるようにし、コストを予測と比較し、超過支出が発生する場所を確認します。 Azure portal の [コスト分析] ウィンドウを使用して、コストを監視できます。 また、コスト データをストレージ アカウントにエクスポートし、Excel または Power BI を使用してそのデータを分析することもできます。

  • 使用状況のを監視する: 使用状況パターンを継続的に監視し、未使用または使用率の低いアカウントとコンテナーを検出します。 Storage 分析情報 を使用して、使用しないアカウントまたは低使用率のアカウントを識別します。 BLOB インベントリ レポートを有効にし、Azure Databricks や Azure Synapse Analytics や Power BI を などのツールを使用してコスト データを分析します。 予期しない容量の増加に注意してください。これは、多数のログ ファイル、BLOB バージョン、または論理的に削除された BLOB を収集していることを示している可能性があります。 オブジェクトの有効期限が切れるか、よりコスト効率の高いアクセス層に移行するための戦略を策定します。オブジェクトの有効期限が切れるか、オブジェクトをより手頃な価格のアクセス層に移動するための計画を立てる。

推奨 事項

勧告 特長
小さなファイルを、よりクールな階層に移動する前に、 大きなファイルにパックします。 TAR や ZIP などのファイル形式を使用できます。 クール層では、データ転送コストが高くなります。 大きなファイルを減らすことで、データ転送に必要な操作の数を減らすことができます。
アーカイブ ストレージから BLOB をリハイドレートする場合は、標準優先度のリハイドレートを使用します。 緊急データ復元の状況でのみ、優先度の高いリハイドレートを使用します。 詳細については、「アーカイブ済み BLOB をオンライン層にリハイドレートする」を参照してください アーカイブ層からの高優先度のリハイドレートは、通常よりも高額の請求につながる可能性があります。
適切なログ ストレージの場所を選択し、ログ保有期間を管理することで、リソース ログの使用コストを削減します。 ログのクエリを定期的に行うだけの場合 (コンプライアンス監査のログのクエリなど)、Azure Monitor ログ ワークスペースにリソース ログを送信するのではなく、ストレージ アカウントにリソース ログを送信することを検討してください。 Azure Synapse Analytics などのサーバーレス クエリ ソリューションを使用してログを分析できます。 詳細については、「頻度の低いクエリのコストを最適化する 」を参照してください。 ライフサイクル管理ポリシーを使用して、ログを削除またはアーカイブします。 後で分析するためにストレージ アカウントにリソース ログを格納する方が安価なオプションです。 ライフサイクル管理ポリシーを使用してストレージ アカウントのログリテンション期間を管理すると、大量のログ ファイルが時間の経過と同時に蓄積されなくなり、不要な容量料金が発生する可能性があります。
バージョン管理を有効にする場合は、ライフサイクル管理ポリシーを使用して、古い BLOB バージョンを自動的に削除します。 BLOB に対するすべての書き込み操作で、新しいバージョンが作成されます。 これにより、容量コストが増加します。 不要になったバージョンを削除することで、コストを抑えることができます。
バージョン管理を有効にする場合は、頻繁に上書きされる BLOB を、バージョン管理が有効になっていないアカウントに配置します。 BLOB が上書きされるたびに、新しいバージョンが追加され、ストレージ容量の料金が増加します。 容量の料金を削減するには、頻繁に上書きされるデータを、バージョン管理が無効になっている別のストレージ アカウントに格納します。
論理的な削除を有効にする場合は、頻繁に上書きされる BLOB を、論理的な削除が有効になっていないアカウントに配置します。 保持期間を設定します。 この機能が請求書に与える影響をより深く理解するには、短い保有期間から始めてみてください。 推奨される最小保有期間は 7 日間です。 BLOB が上書きされるたびに、新しいスナップショットが作成されます。 これらのスナップショットの作成はログに表示されないため、容量料金の増加の原因を特定することが難しい場合があります。 容量の料金を削減するには、頻繁に上書きされるデータを、論理的な削除が無効になっている別のストレージ アカウントに格納します。 保持期間を設定することで、論理的に削除された BLOB が蓄積して容量のコストが増加する状況を防止できます。
SFTP サポートは、データの転送に使用される場合にのみ有効にします。 SFTP エンドポイントを有効にすると、時間単位のコストが発生します。 SFTP サポートを慎重に無効にし、必要に応じて有効にすると、アカウントにパッシブ料金が発生しないようにすることができます。
不要な料金を回避するために必要のない暗号化スコープを無効にします。 暗号化スコープには、1 か月あたりの料金が発生します。

オペレーショナル エクセレンス

オペレーショナル エクセレンスは主に、開発プラクティス、可観測性、リリース管理の手順に重点を置いています。

オペレーショナル エクセレンス設計原則、ワークロードの運用要件に対してこれらの目標を達成するための高度な設計戦略を提供します。

設計チェックリスト

Blob Storage 構成に関連する監視、テスト、デプロイのプロセスを定義するための、オペレーショナル エクセレンス の 設計レビュー チェックリストに基づいて、設計戦略を開始します。

  • メンテナンスおよび緊急復旧計画を作成する: データ保護機能、バックアップと復元の操作、およびフェールオーバー手順を検討します。 潜在的な データ損失およびデータの不整合、そしてフェールオーバーにかかる 時間とコストに備える。

  • ストレージ アカウントの正常性を監視する: 可用性、パフォーマンス、回復性のメトリックを監視するために、Storage 分析情報 ダッシュボードを作成します。 アラートを設定して、システム内の問題を特定して対処してから、顧客が問題に気付く前に対処します。 診断設定を使用して、リソース ログを Azure Monitor ログ ワークスペースにルーティングします。 その後、ログにクエリを実行して、アラートをより深く調査できます。

  • BLOB インベントリ レポートを有効化する: BLOB インベントリ レポートを有効化して、ストレージ アカウント内のコンテンツの保持、法的保持、または暗号化の状態を確認します。 BLOB インベントリ レポートを使用して、データの合計データ サイズ、経過時間、階層分布、またはその他の属性を把握することもできます。 Azure Databricks や Azure Synapse Analytics や Power BI を などのツールを使用して、インベントリ データをより適切に視覚化し、関係者向けのレポートを作成します。

  • BLOB を削除したり、コスト効率の高いアクセス層に移動したりするポリシーを設定: 初期条件セットを使用してライフサイクル管理ポリシーを作成します。 ポリシー実行では、定義した条件に基づいて BLOB のアクセス層が自動的に削除または設定されます。 コスト効率を最適化するために条件を調整できるように、モニター メトリックと BLOB インベントリ レポートを使用してコンテナーの使用を定期的に分析します。

推奨 事項

勧告 特長
コードとしてのインフラストラクチャ (IaC) を使用して、Azure Resource Manager テンプレート (ARM テンプレート)Bicep、または Terraformでストレージ アカウントの詳細を定義します。 既存の DevOps プロセスを使用して新しいストレージ アカウントをデプロイし、Azure Policy 使用して構成を適用できます。
Storage Insights を使用して、ストレージ アカウントの正常性とパフォーマンスを追跡します。 Storage Insights は、すべてのストレージ アカウントの障害、パフォーマンス、可用性、容量の統合ビューを提供します。 各アカウントの正常性と操作を追跡できます。 利害関係者がストレージ アカウントの正常性を追跡するために使用できるダッシュボードとレポートを簡単に作成できます。

パフォーマンス効率

パフォーマンス効率とは、容量の管理により、負荷が増加してもユーザー エクスペリエンスを維持することです。 この戦略には、リソースのスケーリング、潜在的なボトルネックの特定と最適化、ピーク パフォーマンスの最適化が含まれます。

パフォーマンス効率設計の原則、予想される使用に対してこれらの容量目標を達成するための高度な設計戦略を提供します。

設計チェックリスト

パフォーマンス効率の 設計レビュー チェックリストに基づいて、設計戦略を開始します。 Blob Storage 構成の主要業績評価指標に基づくベースラインを定義します。

  • スケールの計画: ストレージ アカウントのスケール ターゲットについて説明します。

  • 最適なストレージ アカウントの種類を選択: ワークロードで高いトランザクション レート、小さいオブジェクト、および一貫して低いトランザクション待機時間が必要な場合は、Premium ブロック BLOB ストレージ アカウントの使用を検討してください。 ほとんどの場合、標準の汎用 v2 アカウントが最適です。

  • クライアントとサーバーの間の移動距離を短縮: 接続するクライアントに最も近いリージョン (理想的には同じリージョン) にデータを配置します。 オブジェクト レプリケーションまたはコンテンツ配信ネットワークを使用して、遠くのリージョンのクライアントに対して最適化します。 既定のネットワーク構成は、最適なパフォーマンスを提供します。 セキュリティを向上させるためにのみ、ネットワーク設定を変更します。 一般に、ネットワーク設定では移動距離が減少せず、パフォーマンスが向上しません。

  • 効率的な名前付けスキームを選択: BLOB パーティション キーの先頭に最も近いハッシュ タグ プレフィックス (アカウント、コンテナー、仮想ディレクトリ、または BLOB 名) を使用して、一覧表示、一覧表示、クエリ、読み取り操作の待機時間を短縮します。 このスキームは、主にフラットな名前空間を持つアカウントにメリットがあります。

  • データ クライアントのパフォーマンスを最適化する: ワークロードのデータ サイズ、転送頻度、帯域幅に最適なデータ転送ツール を選択します。 AzCopy などの一部のツールは、パフォーマンスのために最適化されており、介入はほとんど必要ありません。 待機時間のに影響する 要因を検討し、各ツールで公開されているパフォーマンス最適化ガイダンスを確認してパフォーマンスを微調整します。

  • カスタム コードのパフォーマンスを最適化する: BLOB REST 操作用の独自のラッパーを作成する代わりに、Storage SDK を使用することを検討してください。 Azure SDK はパフォーマンス用に最適化されており、パフォーマンスを微調整するためのメカニズムを提供します。 アプリケーションを作成する前に、Blob Storageの パフォーマンスとスケーラビリティのチェックリストを確認してください。 クエリ 高速化 を使用して、ストレージ要求中に不要なデータを除外し、クライアントがネットワーク経由で不必要にデータを転送しないようにすることを検討してください。

  • パフォーマンス データの収集: ストレージ アカウントを監視して、調整によって発生するパフォーマンスのボトルネックを特定します。 詳細については、「Monitor Storage インサイト を使用してストレージ サービスを監視する」を参照してください。 メトリックとログの両方を使用します。 メトリックは、スロットリングエラーなどの数値を提供します。 ログにはアクティビティが記述されています。 調整メトリックが表示された場合は、ログを使用して、調整エラーを受信しているクライアントを識別できます。 詳細については、「データプレーンの操作監査」を参照してください。

推奨 事項

勧告 特長
依存リソースが配置されているのと同じリージョンにストレージ アカウントをプロビジョニングします。 モバイル デバイス アプリやオンプレミスのエンタープライズ サービスなど、Azure でホストされていないアプリケーションの場合は、それらのクライアントに近いリージョンでストレージ アカウントを見つけます。 詳細については、Azure の地域に関するページを参照してください。

別のリージョンのクライアントが同じデータを必要としない場合は、リージョンごとに個別のアカウントを作成します。

別のリージョンのクライアントで一部のデータのみが必要な場合は、オブジェクト レプリケーション ポリシーを使用して、関連するオブジェクトを他のリージョンのストレージ アカウントに非同期的にコピーすることを検討してください。
ストレージ アカウントと VM、サービス、およびオンプレミス クライアントの間の物理的な距離を減らすと、パフォーマンスが向上し、ネットワーク待機時間が短縮されます。 物理的な距離を減らすと、1 つのリージョン内の帯域幅の使用量が無料になるため、Azure でホストされているアプリケーションのコストも削減されます。
Web クライアント (ストリーミング ビデオ、オーディオ、または静的な Web サイト コンテンツ) による広範な使用については、Azure Front Door を介したコンテンツ配信ネットワークの使用を検討してください。 コンテンツは、世界中の何百ものグローバルおよびローカルのプレゼンス ポイントを持つ Microsoft グローバル エッジ ネットワークを使用するため、クライアントにすばやく配信されます。
BLOB のパーティション キーにできるだけ早くハッシュ文字シーケンス (3 桁など) を追加します。 パーティション キーは、アカウント名、コンテナー名、仮想ディレクトリ名、BLOB 名です。 名前にタイムスタンプを使用する場合は、そのスタンプの先頭に秒の値を追加することを検討してください。 詳細については、パーティション分割に関する記事を参照してください。 パーティション キーの先頭に最も近いハッシュ コードまたは秒の値を使用すると、クエリと読み取り BLOB の一覧表示に必要な時間が短縮されます。
BLOB またはブロックをアップロードするときは、256 KiB を超える BLOB またはブロック サイズを使用します。 256 KiB を超える BLOB またはブロックサイズは、大きな BLOB およびブロックサイズに特化したプラットフォーム上のパフォーマンス向上を活用します。

Azure ポリシー

Azure には、Blob Storage とその依存関係に関連する広範な組み込みポリシー セットが用意されています。 上記の推奨事項の一部は、Azure ポリシーを使用して監査できます。 たとえば、次のことを確認できます。

  • コンテナーと BLOB への匿名パブリック読み取りアクセスが有効になっていません。
  • Blob Storage の診断設定は、リソース ログを Azure Monitor ログ ワークスペースにストリーミングするように設定されます。
  • セキュリティで保護された接続 (HTTPS) からの要求のみが受け入れられます。
  • Shared Access Signature の有効期限ポリシーが有効になっています。
  • テナント間オブジェクトレプリケーションが無効になっています。
  • 共有キーの承認が無効になっています。
  • ネットワーク ファイアウォール規則がアカウントに適用されます。

包括的なガバナンスについては、ストレージ と、コンピューティング 層のセキュリティに影響を与える可能性があるその他のポリシーに対する Azure Policy 組み込み定義 を確認します。

Azure Advisor の推奨事項

Azure Advisor は、Azure デプロイを最適化するためのベスト プラクティスに従うのに役立つ、パーソナライズされたクラウド コンサルタントです。 Blob Storage の信頼性、セキュリティ、コスト効率、パフォーマンス、オペレーショナル エクセレンスの向上に役立つ推奨事項をいくつか次に示します。

次の手順

Blob Storage の詳細については、Blob Storage のドキュメントを参照してください。