ロードバランシングに関する考慮事項
ロードバランシングを使用して、S3およびSwiftクライアントからの取り込みと読み出しのワークロードを処理できます。
ロードバランシングとは何ですか?
クライアントアプリケーションがStorageGRID システムでデータを保存または取得する際、StorageGRID はロードバランサを使用して取り込みと読み出しのワークロードを管理します。ロードバランシングは、複数のストレージノードにワークロードを分散することで、速度と接続容量を最大化します。
StorageGRID ロードバランササービスはすべての管理ノードとすべてのゲートウェイノードにインストールされ、レイヤ 7 のロードバランシングを提供します。クライアント要求の Transport Layer Security ( TLS )終了を実行し、要求を検査し、ストレージノードへの新しいセキュアな接続を確立します。
各ノード上のロードバランササービスは、クライアントトラフィックをストレージノードに転送する際に独立して動作します。重み付きのプロセスを使用すると、ロードバランササービスは、より多くの要求をより多くの CPU を使用可能なストレージノードにルーティングします。
推奨されるロードバランシングメカニズムは StorageGRID ロードバランササービスですが、代わりにサードパーティのロードバランサを統合することもできます。詳細については、ネットアップの担当者にお問い合わせいただくか、を参照してください "TR-4626 :『 StorageGRID Third-party and global load balancers 』"。 |
必要なロードバランシングノードの数
一般的なベストプラクティスとして、 StorageGRID システムの各サイトにロードバランササービスを使用するノードが 2 つ以上必要です。たとえば、サイトに 2 つのゲートウェイノード、または管理ノードとゲートウェイノードの両方が含まれているとします。SG100 または SG100 サービスアプライアンス、ベアメタルノード、仮想マシン( VM )ベースのノードのいずれを使用しているかに関係なく、各ロードバランシングノードに適切なネットワーク、ハードウェア、または仮想化インフラがあることを確認します。
ロードバランサエンドポイントとは何ですか?
ロードバランサエンドポイントは、ロードバランササービスを含むノードへのアクセスに送受信クライアントアプリケーション要求が使用するポートとネットワークプロトコル(HTTPSまたはHTTP)を定義します。エンドポイントは、クライアントタイプ(S3またはSwift)、バインドモード、および必要に応じて許可またはブロックされたテナントのリストも定義します。
ロードバランサエンドポイントを作成するには、* configuration > Network > Load balancer endpoints *を選択するか、FabricPool and S3のセットアップウィザードを実行します。手順:
ポートに関する考慮事項
ロードバランサエンドポイントのポートは、最初に作成するエンドポイントのデフォルトで10433になりますが、未使用の外部ポートを1~65535の範囲で指定できます。ポート80または443を使用する場合、エンドポイントはゲートウェイノード上のロードバランササービスのみを使用します。これらのポートは管理ノードで予約されています。複数のエンドポイントに同じポートを使用する場合は、エンドポイントごとに異なるバインディングモードを指定する必要があります。
他のグリッドサービスで使用されているポートは許可されません。を参照してください "ネットワークポートのリファレンス"。
ネットワークプロトコルに関する考慮事項
ほとんどの場合、クライアントアプリケーションとStorageGRID の間の接続では、Transport Layer Security(TLS)暗号化を使用する必要があります。TLS暗号化を使用せずにStorageGRID に接続することはサポートされていますが、特に本番環境では推奨されません。StorageGRID ロードバランサエンドポイントのネットワークプロトコルを選択する場合は、*[HTTPS]*を選択する必要があります。
ロードバランサエンドポイント証明書に関する考慮事項
ロードバランサエンドポイントのネットワークプロトコルとして* HTTPS *を選択した場合は、セキュリティ証明書を指定する必要があります。ロードバランサエンドポイントの作成時には、次の3つのオプションのいずれかを使用できます。
-
署名済み証明書をアップロードする(推奨)。この証明書には、公的に信頼された認証局または民間の認証局(CA)が署名できます。一般に信頼されているCAサーバ証明書を使用して接続を保護することを推奨します。生成される証明書とは異なり、CAによって署名された証明書は無停止でローテーションでき、有効期限の問題を回避できます。
ロードバランサエンドポイントを作成する前に、次のファイルを入手する必要があります。
-
カスタムサーバ証明書ファイル。
-
カスタムサーバ証明書の秘密鍵ファイル。
-
必要に応じて、各中間発行認証局の証明書のCAバンドル。
-
-
自己署名証明書の生成。
-
グローバルStorageGRID S3およびSwift証明書を使用します。この証明書をロードバランサエンドポイント用に選択するには、事前にこの証明書のカスタムバージョンをアップロードまたは生成する必要があります。を参照してください "S3 および Swift API 証明書を設定する"。
どのような価値が必要か?
証明書を作成するには、S3またはSwiftクライアントアプリケーションがエンドポイントへのアクセスに使用するすべてのドメイン名と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仮想ホスト形式の要求を使用する場合は、証明書ごとに* Alternative Name *エントリも含める必要があります "S3エンドポイントのドメイン名" ワイルドカード名も含めて、を設定しておきます。例:
Alternative Name: DNS:*.s3.storagegrid.example.com
ドメイン名にワイルドカードを使用する場合は、を参照してください "サーバ証明書のセキュリティ強化ガイドライン"。 |
また、セキュリティ証明書の名前ごとにDNSエントリを定義する必要があります。
期限切れになる証明書の管理方法を教えてください。
S3アプリケーションとStorageGRID 間の接続の保護に使用した証明書の有効期限が切れると、アプリケーションからStorageGRID に一時的にアクセスできなくなる可能性があります。 |
証明書の有効期限の問題を回避するには、次のベストプラクティスに従ってください。
-
証明書の有効期限が近づいていることを警告するアラートがあれば、注意深く監視します。たとえば、* Expiration of load balancer endpoint certificate や Expiration of global server certificate for S3 and Swift API *アラートなどです。
-
StorageGRID アプリケーションとS3アプリケーションの証明書のバージョンは常に同期しておいてください。ロードバランサエンドポイントに使用する証明書を交換または更新する場合は、S3アプリケーションで使用される同等の証明書を交換または更新する必要があります。
-
公開署名されたCA証明書を使用する。CAによって署名された証明書を使用する場合は、有効期限が近い証明書を無停止で交換できます。
-
自己署名StorageGRID 証明書を生成した証明書の有効期限が近づいている場合は、既存の証明書の有効期限が切れる前に、StorageGRID とS3アプリケーションの両方で証明書を手動で置き換える必要があります。
バインディングモードに関する考慮事項
バインディングモードでは、ロードバランサエンドポイントへのアクセスに使用できるIPアドレスを制御できます。エンドポイントがバインディングモードを使用している場合、クライアントアプリケーションは、許可されたIPアドレスまたはそれに対応するFully Qualified Domain Name(FQDN;完全修飾ドメイン名)を使用している場合にのみ、エンドポイントにアクセスできます。他のIPアドレスまたはFQDNを使用するクライアントアプリケーションはエンドポイントにアクセスできません。
次のいずれかのバインディングモードを指定できます。
-
グローバル(デフォルト):クライアントアプリケーションは、任意のゲートウェイノードまたは管理ノードのIPアドレス、任意のネットワーク上の任意のHAグループの仮想IP(VIP)アドレス、または対応するFQDNを使用してエンドポイントにアクセスできます。エンドポイントのアクセスを制限する必要がないかぎり、この設定を使用します。
-
* HAグループの仮想IP *。クライアントアプリケーションは、HAグループの仮想IPアドレス(または対応するFQDN)を使用する必要があります。
-
ノードインターフェイス。クライアントは、選択したノードインターフェイスのIPアドレス(または対応するFQDN)を使用する必要があります。
-
ノードタイプ。選択したノードのタイプに基づいて、クライアントは管理ノードのIPアドレス(または対応するFQDN)またはゲートウェイノードのIPアドレス(または対応するFQDN)のいずれかを使用する必要があります。
テナントアクセスに関する考慮事項
テナントアクセスは、ロードバランサエンドポイントを使用してバケットにアクセスできるStorageGRID テナントアカウントを制御できるオプションのセキュリティ機能です。すべてのテナントにエンドポイントへのアクセスを許可するか(デフォルト)、各エンドポイントで許可またはブロックされたテナントのリストを指定できます。
この機能を使用すると、テナントとそのエンドポイント間のセキュリティをより適切に分離できます。たとえば、この機能を使用して、あるテナントが所有する最高機密または高度に機密性の高いマテリアルに他のテナントから完全にアクセスできないようにすることができます。
アクセス制御の目的では、クライアント要求で使用されたアクセスキーからテナントが決定されます。要求の一部としてアクセスキーが提供されていない場合(匿名アクセスなど)は、バケット所有者を使用してテナントが決定されます。 |
テナントアクセスの例
このセキュリティ機能の仕組みを理解するには、次の例を参考にしてください。
-
次の2つのロードバランサエンドポイントを作成しておきます。
-
*パブリック*エンドポイント:ポート10443を使用し、すべてのテナントへのアクセスを許可します。
-
* Top secret * endpoint:ポート10444を使用し、* Top secret *テナントにのみアクセスを許可します。他のすべてのテナントはこのエンドポイントへのアクセスをブロックされます。
-
-
。
top-secret.pdf
は、* Top secret *テナントが所有するバケット内にあります。
にアクセスします top-secret.pdf
、* Top secret *テナントのユーザは、にGET要求を問題 できます https://w.x.y.z:10444/top-secret.pdf
。このテナントには10444エンドポイントの使用が許可されているため、ユーザはオブジェクトにアクセスできます。ただし、他のテナントに属するユーザが同じURLに対して同じ要求を発行すると、すぐに「Access Denied」というメッセージが表示されます。クレデンシャルと署名が有効であってもアクセスは拒否されます。
CPU の可用性
S3 / Swift トラフィックをストレージノードに転送する際、各管理ノードおよびゲートウェイノード上のロードバランササービスは独立して動作します。重み付きのプロセスを使用すると、ロードバランササービスは、より多くの要求をより多くの CPU を使用可能なストレージノードにルーティングします。ノード CPU 負荷情報は数分ごとに更新されますが、重み付けがより頻繁に更新される場合があります。ノードの使用率が 100% になった場合や、ノードの利用率のレポートに失敗した場合でも、すべてのストレージノードには最小限のベースとなる重みの値が割り当てられます。
CPU の可用性に関する情報が、ロードバランササービスが配置されているサイトに制限されている場合があります。