Skip to main content
本製品の最新リリースがご利用いただけます。
日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

StorageGRID ロード バランシングについて学ぶ

ロード バランシングを使用して、S3クライアントからの取り込みおよび取得ワークロードを処理できます。

ロード バランシングとは何ですか?

クライアントアプリケーションが StorageGRID システムにデータを保存または取得する場合、StorageGRID はロードバランサーを使用して、データの取り込みと取得のワークロードを管理します。ロード バランシングは、複数のストレージノードにワークロードを分散させることで、速度と接続容量を最大化します。

StorageGRID ロード バランシング サービスは、すべての管理ノードとすべてのゲートウェイノードにインストールされ、レイヤー7のロード バランシングを提供します。クライアントからのリクエストに対してトランスポート層セキュリティ(TLS)による終端処理を行い、リクエストを検査し、ストレージノードへの新たな安全な接続を確立します。

各ノード上のロード バランシングサービスは、クライアントトラフィックをストレージノードに転送する際に、それぞれ独立して動作します。ロード バランシングサービスは、重み付け処理を通じて、CPUの可用性が高いストレージノードに多くのリクエストをルーティングします。

メモ StorageGRID ロード バランシング サービスは推奨されるロード バランシング メカニズムですが、代わりにサードパーティ製のロード バランサを統合することもできます。詳細については、NetApp アカウント担当者にお問い合わせいただくか、 "StorageGRIDでサードパーティのロード バランシングを使用する"を参照してください。

ロード バランシング ノードはいくつ必要ですか?

一般的なベストプラクティスとして、StorageGRIDシステムの各サイトには、ロード バランシングサービスを備えたノードが2つ以上含まれている必要があります。例えば、サイトには2つのゲートウェイノードが含まれる場合もあれば、管理ノードとゲートウェイノードの両方が含まれる場合もあります。サービスアプライアンス、ベアメタルノード、仮想マシン(VM)ベースのノードのいずれを使用している場合でも、各ロード バランシングノードに十分なネットワーク、ハードウェア、または仮想化インフラストラクチャが備わっていることを確認してください。

ロードバランサーのエンドポイントとは何ですか?

ロードバランサーエンドポイントは、ロードバランサーサービスを含むノードへのアクセスに使用される、受信および送信クライアントアプリケーション要求のポートとネットワーク プロトコル(HTTPSまたはHTTP)を定義します。エンドポイントは、クライアントの種類(S3)、バインディングモード、およびオプションで許可またはブロックされたテナントのリストも定義します。

ロードバランサーエンドポイントを作成するには、Grid Manager を使用するか、S3 セットアップおよび FabricPool ウィザードを完了してください:

ロードバランサーのキャッシングに関する考慮事項

ワークロードがデータの一部に対して動作し、オブジェクトに複数回アクセスする場合、キャッシングはパフォーマンスを大幅に向上させます。さらに、キャッシング機能により、完全なグリッド環境を構築することなく、オブジェクトストレージへのリモートアクセスが可能になります。ロードバランサーのキャッシュ機能は、ゲートウェイノードでのみ利用可能です。

ロードバランサーのエンドポイントを作成する際は、以下の点に注意してください。

  • キャッシュ可能なワークロードに対してのみキャッシュを有効にしてください。キャッシュされたデータよりもキャッシュされていないデータにアクセスする頻度が高いワークロードは、キャッシュによる処理が行われなかった場合よりもパフォーマンスが低下します。場合によっては、上書きや削除の頻度が高いワークロードでは、保証されているドライブの書き込み耐久性を超える可能性もあります。

  • キャッシュに適した個々のワークロードについては、キャッシュ用のエンドポイントまたはノードを追加することを検討してください。

  • キャッシュ可能なワークロードとキャッシュ不可能なワークロードには、それぞれ異なるエンドポイントを使用してください。この分離により、キャッシュメカニズムが適切に適用され、キャッシュ不可能なデータ処理に干渉しないことが保証されます。

  • 潜在的なキャッシュ可能なワークロードをキャッシュ対応エンドポイントに振り分けることで評価します。キャッシュ ヒット率を監視および検証し、ワークロードがキャッシュに適しているかどうかを判断します。この評価は、パフォーマンスの最適化とキャッシュリソースの効率的な利用を確保するのに役立ちます。

  • "監査ログを確認する"既存のワークロードがキャッシュに適しているかどうかを判断します。指定された期間において、GETリクエストのうち、一意のオブジェクトに対するリクエストが何パーセントを占めるかを確認します。キャッシュに適するためには、この値が50%未満である必要があります。

キャッシュに適したワークロードの例

  • データレイク

  • 高性能コンピューティング(HPC)

  • AI/MLトレーニング

  • コンテンツ配信ネットワーク(CDN)

  • メディア資産管理

  • ビデオ制作

メモ
  • 複数のオブジェクトバージョンをキャッシュできます。

  • 範囲読み取り操作がサポートされています。

キャッシュに適さないワークロードの例

  • Fabric Pool

  • バックアップアプリケーション

  • ストレージ階層化

注意 キャッシュによって提供されるコンテンツが保存時に暗号化を必要とする場合、 "ノードまたはドライブの暗号化を有効にする"キャッシュノード上で行います。

キャッシュされないオブジェクトの種類とリクエスト

  • `response-content-encoding`クエリパラメータ

  • `partNumber`クエリパラメータ

  • 条件付きヘッダー

    • If-Match

    • If-Modified-Since

    • If-None-Match

    • If-Unmodified-Since

  • 保存時に以下のいずれかの方法で暗号化されたリクエスト:

    • SSE(StorageGRID が管理するキーを使用したサーバー側暗号化)

    • SSE-C(顧客提供の鍵を使用したサーバー側暗号化)

    • 保存オブジェクトの暗号化

キャッシュされていないリクエストは、キャッシュが有効になっていない場合と同様に、アップストリームのLDRに転送されます。

関連情報

ポートに関する考慮事項

ロードバランサーのエンドポイントのポートは、最初に作成するエンドポイントの場合、デフォルトで10433になりますが、1から65535までの未使用の外部ポートを指定できます。ポート80または443を使用する場合、エンドポイントはゲートウェイノード上のロードバランサーサービスのみを使用します。これらのポートは管理ノード上で予約されています。複数のエンドポイントに同じポートを使用する場合は、各エンドポイントに異なるバインディングモードを指定する必要があります。

他のグリッドサービスで使用されているポートは許可されていません。"StorageGRID内部ポート"を参照してください。

ネットワーク プロトコルに関する考慮事項

ほとんどの場合、クライアント アプリケーションと StorageGRID 間の接続には、トランスポート層セキュリティ(TLS)暗号化を使用する必要があります。TLS 暗号化なしで StorageGRID に接続することはサポートされていますが、特に本番環境では推奨されません。StorageGRID ロードバランサー エンドポイントのネットワーク プロトコルを選択する際は、「HTTPS」を選択してください。

ロードバランサーのエンドポイント証明書に関する考慮事項

ロードバランサーエンドポイントのネットワーク プロトコルとして HTTPS を選択した場合は、セキュリティ証明書を提供する必要があります。ロードバランサーエンドポイントを作成する際には、以下の3つのオプションのいずれかを使用できます。

  • *署名済みの証明書をアップロードします(推奨)。*この証明書は、公的に信頼された認証局(CA)またはプライベート認証局(CA)のいずれかによって署名できます。接続を保護するために、公的に信頼された CA サーバー証明書を使用することがベストプラクティスです。生成された証明書とは異なり、CA によって署名された証明書は無停止でローテーションできるため、有効期限切れの問題を回避するのに役立ちます。

    ロードバランサーのエンドポイントを作成する前に、以下のファイルを入手する必要があります。

    • カスタムサーバー証明書ファイル。

    • カスタムサーバー証明書の秘密鍵ファイル。

    • オプションとして、各中間発行認証局からの証明書をまとめた CA バンドル。

  • 自己署名証明書を生成します

  • グローバル StorageGRID S3 証明書を使用する。ロードバランサーのエンドポイントにこの証明書を選択するには、事前にこの証明書のカスタムバージョンをアップロードまたは生成する必要があります。参照してください "S3 API証明書の設定"

必要な値は何ですか?

証明書を作成するには、S3クライアントアプリケーションがエンドポイントにアクセスするために使用するすべてのドメイン名とIPアドレスを把握しておく必要があります。

証明書の*サブジェクトDN*(識別名)エントリには、クライアントアプリケーションが StorageGRID に使用する完全修飾ドメイン名を含める必要があります。例:

Subject DN: /C=Country/ST=State/O=Company,Inc./CN=s3.storagegrid.example.com

必要に応じて、証明書はワイルドカードを使用して、ロードバランサーサービスを実行しているすべての管理ノードおよびゲートウェイノードの完全修飾ドメイン名を表すことができます。例えば、 *.storagegrid.example.com は * ワイルドカードを使用して、 adm1.storagegrid.example.com および gn1.storagegrid.example.com を表します。

S3仮想ホスト型リクエストを使用する予定の場合は、証明書には、設定済みの各"S3エンドポイントドメイン名"の*代替名*エントリも含まれている必要があります(ワイルドカード名を含む)。例:

Alternative Name: DNS:*.s3.storagegrid.example.com
メモ ドメイン名にワイルドカードを使用する場合は、"サーバー証明書のセキュリティ強化ガイドライン"を確認してください。

セキュリティ証明書に記載されている各名前に対して、DNSエントリを定義する必要もあります。

有効期限切れの証明書はどのように管理すればよいですか?

注意 S3 アプリケーションと StorageGRID 間の接続を保護するために使用される証明書の有効期限が切れると、アプリケーションは一時的に StorageGRID へのアクセスを失う可能性があります。

証明書の有効期限切れの問題を回避するには、以下のベストプラクティスに従ってください:

  • 「ロードバランサーエンドポイント証明書の有効期限切れ」や「S3 API のグローバルサーバー証明書の有効期限切れ」などの、証明書の有効期限が近づいていることを警告するアラートを注意深く監視してください。

  • StorageGRID と S3 アプリケーションの証明書のバージョンは、常に同期を保つ必要があります。ロードバランサーのエンドポイントで使用されている証明書を交換または更新する場合は、S3 アプリケーションで使用されている同等の証明書も交換または更新する必要があります。

  • 公開署名付きの認証局証明書を使用してください。CA によって署名された証明書を使用すれば、有効期限が近づいている証明書を無停止で交換できます。

  • 自己署名の StorageGRID 証明書を生成済みで、その証明書の有効期限が近づいている場合は、既存の証明書が期限切れになる前に、StorageGRID と S3 アプリケーションの両方で証明書を手動で交換する必要があります。

バインディングモードに関する考慮事項

バインディングモードでは、ロードバランサーのエンドポイントにアクセスするために使用できるIPアドレスを制御できます。エンドポイントがバインディングモードを使用している場合、クライアントアプリケーションは、許可されたIPアドレスまたはそれに対応する完全修飾ドメイン名(FQDN)を使用した場合にのみ、エンドポイントにアクセスできます。他のIPアドレスまたはFQDNを使用するクライアントアプリケーションは、エンドポイントにアクセスできません。

以下のいずれかのバインディングモードを指定できます:

  • グローバル(デフォルト):クライアントアプリケーションは、任意のゲートウェイノードまたは管理ノードのIPアドレス、任意のネットワーク上の任意のHAグループの仮想IP(VIP)アドレス、または対応するFQDNを使用してエンドポイントにアクセスできます。エンドポイントへのアクセスを制限する必要がない限り、この設定を使用してください。

  • HAグループの仮想IPアドレス。クライアントアプリケーションは、HAグループの仮想IPアドレス(または対応するFQDN)を使用する必要があります。

  • ノードインターフェース。クライアントは、選択したノードインターフェースのIPアドレス(または対応するFQDN)を使用する必要があります。

  • ノードタイプ。選択したノードの種類に応じて、クライアントは、いずれかの管理ノードのIPアドレス(または対応するFQDN)またはいずれかのゲートウェイノードのIPアドレス(または対応するFQDN)を使用する必要があります。

テナントのアクセスに関する考慮事項

テナントアクセスは、どの StorageGRID テナントアカウントがロードバランサーエンドポイントを使用してバケットにアクセスできるかを制御できるオプションのセキュリティ機能です。すべてのテナントがエンドポイントにアクセスできるように設定することも(デフォルト)、エンドポイントごとにアクセスを許可するテナントまたはアクセスをブロックするテナントのリストを指定することもできます。

この機能を利用することで、テナントとそのエンドポイント間のセキュリティ分離を向上させることができます。例えば、この機能を使用することで、あるテナントが所有する極秘情報や高度に機密性の高い資料が、他のテナントから完全にアクセスできないようにすることができます。

メモ アクセス制御の目的で、テナントはクライアント要求で使用されたアクセスキーから決定されます。要求の一部としてアクセスキーが提供されない場合(匿名アクセスの場合など)、バケットの所有者がテナントを特定するために使用されます。

テナントアクセス例

このセキュリティ機能の動作を理解するために、次の例を考えてみましょう。

  1. 以下のように、2つのロードバランサーエンドポイントを作成しました。

    • *パブリック*エンドポイント:ポート 10443 を使用し、すべてのテナントへのアクセスを許可します。

    • *極秘*エンドポイント:ポート10444を使用し、*極秘*テナントのみにアクセスを許可します。他のすべてのテナントは、このエンドポイントへのアクセスをブロックされています。

  2. `top-secret.pdf`は、Top secret テナントが所有するバケットに含まれています。

    `top-secret.pdf`にアクセスするには、*極秘*テナントのユーザーが `\https://w.x.y.z:10444/top-secret.pdf`にGETリクエストを発行します。このテナントは10444エンドポイントの使用を許可されているため、ユーザーはオブジェクトにアクセスできます。ただし、他のテナントに属するユーザーが同じURLに対して同じリクエストを発行した場合、即座にアクセス拒否メッセージが表示されます。認証情報と署名が有効であっても、アクセスは拒否されます。

CPUの可用性

各管理ノードおよびゲートウェイノード上のロードバランサーサービスは、S3トラフィックをストレージノードに転送する際に独立して動作します。ロードバランサーサービスは、重み付け処理を通じて、CPU可用性の高いストレージノードに多くのリクエストをルーティングします。ノードCPU負荷情報は数分ごとに更新されますが、重み付けはより頻繁に更新される場合があります。すべてのストレージノードには、たとえノードが100%の利用率を報告した場合でも、あるいは利用率を報告しなかった場合でも、最小限の基本重み値が割り当てられます。

場合によっては、CPUの可用性に関する情報は、ロードバランサーサービスが設置されているサイトに限定されます。