次の方法で共有


データ コストを最適化するための推奨事項

この Azure Well-Architected Framework のコスト最適化チェックリストの推奨事項に適用されます。

CO:10 データ コストを最適化する。 データの優先順位を使用したデータ支出。 データの最適化には、データ管理 (階層化と保持)、ボリューム、レプリケーション、バックアップ、ファイル形式、ストレージ ソリューションの改善が含まれている必要があります。

このガイドでは、ワークロードのデータ コストを最適化するための推奨事項について説明します。 データ コストを最適化するには、その重要性とアクセス頻度に応じて、データのストレージと管理に関連する費用を最小限に抑える必要があります。 適切なデータ管理により、オーバーヘッド コストを大幅に削減し、データ ユーティリティとの支出を調整できます。 データ コストの最適化を怠った場合、ストレージ ソリューションの配置が間違い、不要なデータ保持が原因で、コストが増加し、リソースの割り当てが効率的でなく、財務上の無駄が発生する可能性があります。

定義

期間 定義
データ ライフサイクル管理 作成から削除まで、ライフサイクル全体を通じてデータを管理するプロセス。 このプロセスでは、その値と使用パターンに基づいてデータを整理、格納、保護、アーカイブします。
データの冗長性 複数のストレージ システムまたは場所にデータの重複コピーを格納する方法。 データ冗長性の目的は、データの可用性とフォールト トレランスを向上することです。
データの階層化 アクセス頻度に基づいてデータを分類し、それに応じてストレージ層に格納するストレージ戦略。
Retention ポリシー データを削除する前に保持する必要がある期間。 これは、法的、規制、またはビジネス要件を満たすためにデータを保持する必要がある期間を指定します。

主要な設計戦略

特定のワークロード内では、データの格納と管理に関連する経費を削減することで、データ コストを最適化します。 データストレージと処理コストを最小限に抑えるためのさまざまな戦略とベスト プラクティスがあります。 目標は、データ コストをデータの優先順位に合わせることです。 アクセスの重要性または頻度に基づいて、データの種類にコストレベルを割り当てる必要があります。

ワークロード データのコストの主な要因は、アクセス頻度、アクセス待ち時間、ストレージ量です。 次のガイダンスには、これらのコスト ドライバー全体のコストを最適化するための戦略が含まれています。

データのインベントリを取得する

データのコストを最適化する前に、データのインベントリを生成する必要があります。 データ アクセスを調べて、ワークロードとその操作におけるその重要性を判断します。 頻繁にアクセスされるデータと、アクセス頻度の低いデータを特定します。 次のインベントリ アクションは、記憶域リソースを効果的に割り当てるのに役立ちます。

  • データ アクセス情報を収集する: データ監査を実施して、すべてのデータ ストアを特定してカタログを作成します。 ビジネス運用、投資収益率、および使用頻度に対する重要性に基づいて、データセットの価値を決定します。 データ ストレージ ソリューションからアクセス ログ、使用状況メトリック、または分析を収集します。

  • データ型を識別する: 個人データ、財務データ、知的財産、運用データなど、その種類に基づいてデータを分類します。 各データ型の秘密度と重要度を理解します。

  • アクセス パターンを特定する: 毎日、毎週、毎月の使用パターンなど、データ アクセスのパターンを特定します。 そのデータの待機時間、ファイル サイズ、およびデータの鮮度の要件を理解する必要があります。

データに優先順位を付ける

データの優先順位付けとは、機密性と重要度に基づいて、重要度レベルを分類してデータの種類に割り当てるプロセスです。 データの優先順位は、環境の重要性と一致する必要があります。 たとえば、運用データは実稼働前データよりも重要です。

次の手順を使用して、ワークロードに対するさまざまな種類のデータの重要性を評価します。

  1. 優先度レベルを定義します。データの優先度レベル (高、中、低など) を、データ損失のorganization、規制要件、および潜在的な影響に基づいて確立します。 目的は、データの優先順位を適切なデータ ソリューションに合わせることです。

  2. ラベルを割り当てる: 各データ セットに秘密度と重要度のラベルを付けます。 データ構造と使用状況に応じて、行、列、またはファイル レベルでラベルを適用できます。 データベースの場合は、特別なツールを使用して、データの秘密度と重要度にラベルを付け、特定の行と列に関連付けることができます。 この方法では、データの管理とアクセスをきめ細かく制御できます。

データ管理を最適化する

データ管理は、ワークロード データの格納、移動、セキュリティ保護のプロセスです。 データ管理を最適化することで、支出をデータの優先順位に合わせ、データからより多くの価値を引き出すことができます。 データ管理については、次の戦略を検討してください。

データ ライフサイクル管理を最適化する

ライフサイクル全体でデータを管理することが重要です。 ライフサイクルのステージには、データの作成 (または取得)、ストレージ、使用状況、共有、保持、破棄 (削除またはアーカイブ) が含まれます。 データ ライフサイクル管理の目的は、関連する規制とポリシーに準拠しながら、データ ストレージ ソリューションを最適化することです。

データ ストレージには、次の 3 つの重要なコスト コンポーネントがあります。

  • ストレージ コスト: ギガバイト単位などのデータの格納に関連する費用。

  • トランザクション コスト: 書き込み操作、読み取り操作、データ取得 (ギガバイト単位) などのデータ操作にリンクされているコスト。 データの読み取りと書き込みのコストが異なる場合があります。

  • 待機時間のコスト: データへのアクセスの速度または遅延に関連する費用。

データ ライフサイクル管理の基礎となる考慮事項を次に示します。

  • データ階層化を使用する: データ階層化の目的は、アクセスとリテンション期間を最もコスト効率の高いストレージ層に合わせることです。 ストレージ層の範囲は、頻繁/即時アクセス (ホット) から、頻度の低いアクセスまたは遅延アクセス (コールド) までです。

    データ アクセスと保持のニーズに合わないレベルを使用すると、コストが高くなります。 たとえば、アプリケーションが頻繁にアクセスするデータは、ホット ストレージ内にある必要があります。 アプリケーションがアクセス頻度の低いデータは、コールド ストレージ内に存在する必要があります。 これらの側面を効果的に管理することは、効率的なデータ ストレージを確保するのに役立ちます。

  • コンプライアンス要件を検討します。 データ階層化を実装するには、コンプライアンス要件とデータ ガバナンス ポリシーを慎重に検討する必要があります。 コンプライアンスと法的要件は、多くの場合、データへのアクセスと保持を促進します。 データ保持ポリシーを確立して、法律、規制、およびビジネス要件への準拠を確保します。

  • データ ライフサイクル ポリシーを定義します。 データ ライフサイクル ポリシーでは、定義済みの条件に基づいてストレージ層間でデータを移動するタイミングと方法を指定します。 これらのポリシーを使用すると、必要な期間、データを適切なレベルに保持できます。 たとえば、ポリシーでは、データをホット 層で 30 日間、クール 層で 90 日間、アーカイブ層で 1 年間保持する必要があることを示すことができます。 法的要件、業界の規制、内部ポリシーなどの要因に基づいて保持期間を設定します。

  • 自動化を使用する: 保持ポリシーは、層間のデータ移動をトリガーできます。 カスタム ソリューションを構築する前に、プラットフォーム機能を使用してポリシーを自動化する必要があります。

    特定のレベルの保持期間が切れると、ポリシーは自動的にデータを次の低コストレベルに移動できます。 たとえば、ホット 層の保持期間が終了すると、ポリシーによってデータをクール 層に移動できます。 このポリシーにより、アクセス パターンとコスト要件に基づいてデータが継続的に最適化されます。

トレードオフ: データ保持ポリシーを管理するには、継続的な監視とメンテナンスが必要です。 データ管理プロセスのオーバーヘッドが増える可能性があります。 また、ストレージ コストにも影響する可能性があります。 保有期間が長くなるか、コストの高いストレージ 層を使用すると、ストレージコストが増加する可能性があります。

リスク: データ ライフサイクル管理の実装が不十分な場合、データが失われたり、重要なデータへのアクセスが制限されたりする可能性があります。 データ損失のリスクを軽減するために、適切なバックアップと回復のメカニズムが用意されている必要があります。

データのセグメント化を最適化する

データセグメント化を最適化するには、戦略的にデータを個別のセグメントに編成し、同様のデータ型を統合してストレージ リソースを効率的に割り当てる必要があります。 これにより、ストレージ リソースの割り当てをデータの優先順位に合わせて調整できます。

データのセグメント化を効果的に最適化するために、データを種類と使用パターン別に分類します。 次に、運用上の類似点と要件に応じて、最も効果的なソリューションにデータ セグメントを配置します。 たとえば、取得時間が短縮されたリソースに、高パフォーマンスのストレージを必要とするデータを配置します。 アーカイブ データでは、取得時間が遅い低コストのリソースが使用されます。

この方法により、需要の高いデータで最適なパフォーマンスを得るための高速ストレージが使用され、アクセスの少ないデータでは低コストのストレージが使用されます。 同様に、データ型が使用パターンを共有する場合は、オーバーヘッドを削減し、管理を簡素化し、データ処理を改善するために、それらを 1 つのリソースにグループ化する必要があります。

データ転送を最小限に抑える

データ転送を最小限に抑えることは、ネットワーク間のデータ移動を削減してデータ転送コストを削減することを意味します。 これにより、ワークロードが移動するデータの量が減り、ネットワーク使用料金が削減されます。 データ転送を最小限に抑えるには、次の推奨事項を考慮してください。

  • 適切な場所を使用します。 データを地理的にユーザーの近くに配置します。 データの近接性により、ネットワークの移動が削減され、アクセスが高速化され、コストが最適化されます。
  • キャッシュを使用する データ転送を最小限に抑えるためにキャッシュの利点を検討してください。
  • コンテンツ配信ネットワークを使用します。 コンテンツ配信ネットワークでは、頻繁に読み取られた静的データをユーザーの近くに格納できます。 ネットワーク全体のデータ移動を減らし、帯域幅の使用をオフロードするのに役立ちます。

セキュリティとコンプライアンスを最適化する

特定の運用データでは、より高いセキュリティとコンプライアンスの要件が必要です。 これらの対策により、データ保護、暗号化、バックアップ、保持、監査に関連する追加コストが発生する可能性があります。

データ ストレージ ソリューションの変更がこれらの要件に準拠していることを確認する必要があります。 セキュリティとコンプライアンスの要件が低いデータは、多くの場合、コストを最適化する機会を提供します。

データ ボリュームを最適化する

格納するデータの量を減らすための戦略を見つけることは、コストの削減に役立ちます。 データのアクセシビリティを変更し、次の手法を実装することで、格納されているデータの量を効果的に最適化できます。

  • キャプチャするデータを減らす: キャプチャするデータを詳しく見てみましょう。 目的に必要でないかどうかを判断します。 プロセス、設定、または構成を変更して、重要なデータのみをキャプチャします。

  • データの圧縮: 圧縮を使用すると、データのサイズを小さくすることでコストを節約できます。 これは、書き込み 1 回、読み取りなし、または読み取り頻度の低いシナリオで最も効果的です。 これは、より冷たいストレージに適しています。

    トレードオフ: データの圧縮と圧縮解除の両方で、CPU 時間が増加します。

  • 不要なデータを削除する: 関連情報を格納するプロセスを効率化するためのポリシーを実装します。 バックアップとスナップショットの保持期間を評価し、不要になったデータを削除します。 データの最初のアーカイブや論理的な削除期間の有効化など、最終的なデータ削除につながるプロセスが必要な場合があります。 データを削除する前に、常に回復可能性を考慮してください。

  • データの重複除去: 冗長データを排除するためのデータ重複除去手法を実装します。 重複除去を使用すると、一意のデータ ブロックのみを確実に格納できるため、ストレージ要件が削減されるため、コストを節約できます。 ハッシュ アルゴリズムとデータ チャンクの比較を使用します。 重複除去プロセスを定期的に実行して、重複データを特定して排除します。

  • ユーザーの動作を最適化する: ユーザーが生成したデータを収集するワークロードでは、効率的なデータ ストレージの重要性についてユーザーを教育します。 不要なファイルやデータを定期的に確認して削除するよう促します。 過剰なデータ ストレージを阻止するストレージ クォータまたは価格モデルを実装します。

データ レプリケーションを最適化する

データ レプリケーションには、データの複数のコピーを作成し、信頼性のために他の地理的な場所またはゾーンに格納する必要があります。 レプリケーションにより、1 つの場所またはゾーンで障害や停止が発生した場合でも、他の場所にあるレプリケートされたコピーからデータにアクセスできます。

この冗長性は、データの可用性と回復性を向上させるのに役立ちます。 データの損失とダウンタイムのリスクを最小限に抑えます。

コストの最適化のためにデータ レプリケーションを最適化するには、次のガイドラインを考慮してください。

  • データ レプリケーションの要件を評価する: ワークロードの特定のニーズを評価し、必要なデータ レプリケーションのレベルを決定します。 データの重要度、目標復旧時間 (RTO)、目標復旧ポイント (RPO) などの要因を考慮します。

  • 適切なレプリケーション戦略を選択する: コストの最適化の目標に合わせたレプリケーション テクノロジを選択します。 ワークロードのサービス レベル アグリーメント (SLA) 要件を検討します。

    同期レプリケーション、非同期レプリケーション、またはその両方の組み合わせなどのオプションを評価します。 データの整合性要件やネットワーク帯域幅に関する考慮事項などの要因に基づいて決定します。 ワークロードに必要な可用性のレベルを評価し、ゾーンとリージョンの冗長性の必要性を評価します。

  • ネットワーク帯域幅の最適化: 圧縮とデータ重複除去の手法を実装することで、ネットワーク帯域幅の使用を最小限に抑えます。 これらの手法を使用すると、レプリケーション中に転送されるデータの量を減らすことができます。これにより、コストを節約できます。

  • レプリケーションの頻度を監視および最適化する: ワークロードのニーズの変化に基づいて、レプリケーションの頻度を定期的に確認して調整します。 レプリケーションの頻度を微調整すると、不要なレプリケーション のオーバーヘッドを減らすことでコストを最適化できます。

バックアップを最適化する

バックアップとは、プライマリ ストレージとは別に作成および格納できるデータの定期的なスナップショットまたはコピーです。 データの破損、誤った削除、またはシステム障害が発生した場合は、バックアップを使用してデータを以前の状態に復元できます。

バックアップを最適化するためのいくつかの手法を次に示します。

  • データ分類: バックアップの重要度と優先順位に基づいてデータを分類します。 分類は、重要度の低いデータのバックアップ コストを最小限に抑えながら、重要なデータのバックアップにリソースを集中するのに役立ちます。

  • 増分バックアップ: 毎回完全バックアップを実行する代わりに、増分バックアップの実装を検討してください。 増分バックアップでは、前回のバックアップ以降に行われた変更のみがキャプチャされ、ストレージとネットワーク帯域幅の要件が減る可能性があります。

    トレードオフ: 増分バックアップには、データを復元するためのより多くの手順と時間が必要です。 最初に完全バックアップを復元してから、目的の復元ポイントに到達するまで、各増分バックアップを順番に適用する必要があります。

  • バックアップ圧縮: バックアップ プロセス中に圧縮を有効にして、バックアップ ファイルのサイズを小さくします。 圧縮バックアップでは必要なストレージ領域が少ないため、コストを節約できます。

  • バックアップ ストレージ層: バックアップ保持ポリシーを評価し、古いバックアップをコールド ストレージやアーカイブ ストレージなどの低コストのストレージ層に移行することを検討します。 アクセス頻度の低いバックアップをコスト効率の高いストレージ オプションに格納すると、コストを最適化するのに役立ちます。

  • バックアップの保有期間: ビジネス要件とコンプライアンス規制に基づいて、バックアップの保有期間を確認して調整します。 バックアップを長期間維持すると、追加のストレージ コストが発生する可能性があります。

  • バックアップ頻度: さまざまな種類のデータのバックアップ頻度を分析します。 データ変更の頻度とデータの重要度に基づいてバックアップ スケジュールを調整します。 これらのプラクティスは、不要なバックアップを排除し、ストレージ コストを削減するのに役立ちます。

ファイル形式を最適化する

ファイル形式は、データの入出力 (I/O) パターンとクエリ パターンを最適化することで、コストの最適化に影響します。 一部のファイル形式は、特定のシナリオに対応します。 ファイル形式をワークロードの要件に合わせて調整すると、ワークロードのパフォーマンスが向上します。

一般的な形式に関する考慮事項を次に示します。

  • Avro: Avro ファイル形式は、書き込み負荷の高い I/O パターンを処理する場合や、クエリ パターンで複数のレコード行全体をフェッチする必要がある場合に適しています。 Avro のシリアル化と逆シリアル化のプロセスは効率的であるため、一連のイベントとメッセージを連続して生成する Kafka などのメッセージ バスと互換性があります。

  • Parquet および Optimized Row Columnar (ORC): Parquet ファイル形式と ORC ファイル形式は、読み取り負荷の高い I/O パターンのシナリオ、またはクエリ パターンがレコードの特定の列に焦点を当てる場合に優れています。

    どちらの形式も列形式のストレージです。つまり、データは行単位ではなく列単位で格納されます。 Columnar ストレージを使用すると、圧縮の向上と効率的な読み取り操作が可能になります。 必要な列のみをフェッチする必要があるため、無関係なデータに対する不要な I/O を回避できます。

ストレージ ソリューションを最適化する

データに最適なストレージ方法とシステムを評価して選択します。 この作業には、データベースの切り替え、さまざまなストレージの種類の使用、キャッシュ メカニズムの追加が含まれる場合があります。 管理の容易さは、ストレージ ソリューションを選択する際に考慮すべきもう 1 つの要素です。

データの特定のニーズと特性に合わせてストレージ ソリューションを調整することで、パフォーマンスとスケーラビリティの要求を満たしながら、より優れたコスト効率を実現できます。 データベースの切り替えやサービスのスワップにはコストがかかりますが、間違ったストレージ ソリューションにデータを格納すると、余分なコストが発生する可能性があります。

いくつかのユース ケースを次に示します。

  • データベースの切り替え: ニーズに合ったデータベース システムに切り替えることを検討できます。 たとえば、リレーショナル データベースを使用している場合、データのドキュメント指向が高い場合や柔軟なスキーマが必要な場合は、NoSQL データベースに移動するオプションを検討できます。

  • リレーショナル データベースからフラット ファイル ストアへの移行: 場合によっては、従来のリレーショナル データベースではなくフラット ファイルにデータを格納すると、シンプルさとコスト効率などの利点が得られます。 フラット ファイルは、ログ ファイルや複雑なクエリを必要としないデータなど、特定の種類のデータに適しています。 たとえば、バイナリ イメージを SQL データベースに格納できますが、バイナリ データの処理専用のストレージ サービスに格納する方がコスト効率が高くなります。

  • サービスとしてのインフラストラクチャ (IaaS) からサービスとしてのプラットフォーム (PaaS) への移行: IaaS データベース ソリューションは、コア タスクから技術チームの注意を引く時間がかかり、リソースを集中的に消費するプロパティになる可能性があります。 データ 量の増加と手動スケーリング、バックアップ、インフラストラクチャ メンテナンスの課題により、PaaS ソリューションのコスト効率と効率性が高まります。

  • キャッシュの追加: メイン データベース サーバーでのリソース使用量を減らすために、複雑なクエリ結果をキャッシュするためのキャッシュ ソリューションの使用を検討してください。 データベース サーバーの権限を付与すると、コストの最適化に役立つ場合があります。 該当するユース ケースでは、キャッシュされたデータと共に Time to Live (TTL) を使用して、ストレージのニーズを削減し、コストを削減することを検討してください。

  • クエリ最適化ストアとデータ ストレージ ストア: クエリ最適化ストアは、高速なデータ取得と分析のために設計されています。 クイック データ インジェストと読み取りに重点を置きますが、頻繁な更新には焦点を当てません。 これらは時系列データや最近のデータへの迅速なアクセスには適していますが、大量のトランザクション タスクには適していません。

    データ ストレージ ストアは、大量の柔軟なデータ (特に非構造化データまたは半構造化データ) を処理します。 データ ストレージ ストアは分析をサポートできますが、複雑なタスクには特殊なデータベースが必要な場合があります。 NoSQL のユース ケースなどのシナリオでは、ログやユーザーが生成したコンテンツなどの多くの変数データを格納するのに最適です。

Azure ファシリテーション

データのインベントリを作成する: Microsoft Purview は、データ資産全体の管理、保護、管理をorganizationに役立つデータ ガバナンス、リスク、コンプライアンス ソリューションのファミリです。 Microsoft Purview ソリューションは、統合されたカバレッジを提供し、最近増加しつつあるリモート ユーザー接続、複数の組織にわたるデータの断片化、従来の IT 管理の役割の曖昧化に対処するのに役立ちます。

データ管理の最適化: Azure Storage とAzure Data Lake Storageには、異なるデータ アクセス層があります。 また、データの階層化と保持を自動化するデータ ライフサイクル管理ポリシー も提供します。

ルールベースのポリシーを使用して、BLOB データを適切なアクセス層に移行したり、ライフサイクルの終了時にデータを期限切れにしたりすることができます。 このポリシーを使用すると、BLOB をクール (またはコールド) からホットにすぐに切り替えて、パフォーマンスを最適化できます。

バックアップの最適化: Azure Backup サービスには、バックアップを効率化するための複数の機能が用意されています。 ディスク スナップショットを使用したネイティブ データベース バックアップやストレージ バックアップなどの機能が提供されます。 仮想マシンのバックアップ、長期保有、バックアップ管理がサポートされています。

サービスの機能の一部を次に示します。

  • 監視: バックアップ センターを 1 つのウィンドウとして使用して、ジョブとバックアップ インベントリを日常的に監視できます。 バックアップ センターには、Azure Monitor ログと Azure ブックを使用するバックアップ レポートへのインターフェイスが用意されています。

  • レポート: バックアップ レポートには、次の機能があります。

    • 消費されたクラウド ストレージを割り当てて予測します。
    • バックアップと復元を監査します。
    • さまざまなレベルの粒度で主要な傾向を特定します。
    • バックアップのコスト最適化の機会を可視化し、分析情報を得る。
  • 予約容量: Azure Backup Storage の予約容量では、1 年間または 3 年間の予約にコミットするときに、コンテナー標準レベルに格納されているバックアップ データの容量が割引されます。 予約を行うと、予約期間に対し一定量のバックアップ ストレージ容量が提供されます。

  • アーカイブ層: Azure Backupを使用して、organizationのコンプライアンス 規則で定義されている保持のニーズに応じて、長期保有 (LTR) バックアップ データを含むバックアップ データを格納できます。 ほとんどの場合、古いバックアップ データにはほとんどアクセスされておらず、コンプライアンスのニーズに応じてのみ格納されます。 Azure Backupでは、スナップショットと Standard レベルに加えて、アーカイブ層の LTR ポイントのバックアップがサポートされます。

ストレージ ソリューションの最適化: Azure には多くのストレージ ソリューションがあります。 これらは、特定の要件に基づいてコストを最適化するのに役立つさまざまな機能を提供します。 Azure には、 適切なデータ ストアの選択に役立つガイダンスがあります。

最適なストレージ ソリューションと構成を選択するには、データ アクセス パターン、保持ニーズ、パフォーマンス要件を評価することが重要です。 Azure Advisor などのツールを使用してストレージの使用状況を定期的に監視および最適化すると、コストをさらに最適化するのに役立ちます。

コスト最適化チェックリスト

推奨事項の完全なセットを参照してください。