負荷分散に関する考慮事項
負荷分散を使用して、S3 クライアントからの取り込みおよび取得ワークロードを処理できます。
負荷分散とは何ですか?
クライアント アプリケーションがStorageGRIDシステムからデータを保存または取得する場合、 StorageGRID はロード バランサを使用して取り込みおよび取得のワークロードを管理します。負荷分散は、複数のストレージ ノードにワークロードを分散することで、速度と接続容量を最大化します。
StorageGRIDロード バランサ サービスは、すべての管理ノードとすべてのゲートウェイ ノードにインストールされ、レイヤー 7 のロード バランシングを提供します。クライアント要求のトランスポート層セキュリティ (TLS) 終了を実行し、要求を検査し、ストレージ ノードへの新しい安全な接続を確立します。
各ノードのロード バランサ サービスは、クライアント トラフィックをストレージ ノードに転送するときに独立して動作します。重み付けプロセスを通じて、ロード バランサ サービスは、CPU 可用性が高いストレージ ノードに、より多くの要求をルーティングします。
|
推奨される負荷分散メカニズムとしてはStorageGRID Load Balancer サービスがありますが、代わりにサードパーティのロード バランサを統合することもできます。詳細については、 NetAppのアカウント担当者にお問い合わせいただくか、 "TR-4626: StorageGRIDサードパーティおよびグローバルロードバランサー" 。 |
負荷分散ノードはいくつ必要ですか?
一般的なベスト プラクティスとして、 StorageGRIDシステムの各サイトには、ロード バランサ サービスを備えた 2 つ以上のノードを含める必要があります。たとえば、サイトには 2 つのゲートウェイ ノード、または管理ノードとゲートウェイ ノードの両方が含まれる場合があります。サービス アプライアンス、ベア メタル ノード、仮想マシン (VM) ベースのノードのいずれを使用しているかに関係なく、各負荷分散ノードに適切なネットワーク、ハードウェア、または仮想化インフラストラクチャがあることを確認します。
ロードバランサーエンドポイントとは何ですか?
ロード バランサ エンドポイントは、受信および送信クライアント アプリケーション要求がロード バランサ サービスを含むノードにアクセスするために使用するポートとネットワーク プロトコル (HTTPS または HTTP) を定義します。エンドポイントは、クライアント タイプ (S3)、バインディング モード、およびオプションで許可またはブロックされたテナントのリストも定義します。
ロード バランサ エンドポイントを作成するには、[構成] > [ネットワーク] > [ロード バランサ エンドポイント] を選択するか、 FabricPoolおよび S3 セットアップ ウィザードを完了します。手順については、以下をご覧ください。
港湾に関する考慮事項
ロード バランサー エンドポイントのポートは、最初に作成するエンドポイントではデフォルトで 10433 に設定されますが、1 ~ 65535 の間の未使用の外部ポートを任意に指定できます。ポート 80 または 443 を使用する場合、エンドポイントはゲートウェイ ノード上のロード バランサ サービスのみを使用します。これらのポートは管理ノードで予約されています。複数のエンドポイントに同じポートを使用する場合は、エンドポイントごとに異なるバインディング モードを指定する必要があります。
他のグリッド サービスによって使用されるポートは許可されません。参照"ネットワークポートリファレンス"。
ネットワークプロトコルに関する考慮事項
ほとんどの場合、クライアント アプリケーションとStorageGRID間の接続には、トランスポート層セキュリティ (TLS) 暗号化を使用する必要があります。 TLS 暗号化なしでのStorageGRIDへの接続はサポートされていますが、特に実稼働環境では推奨されません。 StorageGRIDロード バランサ エンドポイントのネットワーク プロトコルを選択するときは、HTTPS を選択する必要があります。
ロードバランサのエンドポイント証明書に関する考慮事項
ロード バランサー エンドポイントのネットワーク プロトコルとして HTTPS を選択した場合は、セキュリティ証明書を提供する必要があります。ロード バランサ エンドポイントを作成するときは、次の 3 つのオプションのいずれかを使用できます。
-
署名された証明書をアップロードします (推奨)。この証明書は、公的に信頼された証明機関 (CA) またはプライベート証明機関 (CA) によって署名できます。接続を保護するために公的に信頼された CA サーバー証明書を使用するのがベスト プラクティスです。生成された証明書とは対照的に、CA によって署名された証明書は中断することなくローテーションできるため、有効期限の問題を回避するのに役立ちます。
ロード バランサ エンドポイントを作成する前に、次のファイルを取得する必要があります。
-
カスタム サーバー証明書ファイル。
-
カスタム サーバー証明書の秘密キー ファイル。
-
オプションで、各中間発行証明機関からの証明書の CA バンドル。
-
-
自己署名証明書を生成します。
-
グローバルStorageGRID S3 証明書を使用します。ロード バランサーのエンドポイントにこの証明書を選択する前に、この証明書のカスタム バージョンをアップロードまたは生成する必要があります。見る"S3 API証明書を設定する" 。
どのような値が必要ですか?
証明書を作成するには、S3 クライアント アプリケーションがエンドポイントにアクセスするために使用するすべてのドメイン名と IP アドレスを知っておく必要があります。
証明書の Subject 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 証明書を使用します。 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テナント アカウントがロード バランサ エンドポイントを使用してバケットにアクセスできるかを制御できるオプションのセキュリティ機能です。すべてのテナントにエンドポイントへのアクセスを許可するか (デフォルト)、エンドポイントごとに許可またはブロックするテナントのリストを指定することもできます。
この機能を使用すると、テナントとそのエンドポイント間のセキュリティ分離を強化できます。たとえば、この機能を使用すると、あるテナントが所有する極秘または機密性の高い資料に他のテナントがまったくアクセスできないようにすることができます。
|
アクセス制御の目的で、テナントはクライアント要求で使用されるアクセス キーから決定されます。要求の一部としてアクセス キーが提供されていない場合 (匿名アクセスの場合など)、バケット所有者を使用してテナントが決定されます。 |
テナントアクセスの例
このセキュリティ機能がどのように機能するかを理解するには、次の例を検討してください。
-
次のように 2 つのロード バランサ エンドポイントを作成しました。
-
パブリック エンドポイント: ポート 10443 を使用し、すべてのテナントへのアクセスを許可します。
-
トップシークレット エンドポイント: ポート 10444 を使用し、トップシークレット テナントへのアクセスのみを許可します。他のすべてのテナントはこのエンドポイントへのアクセスをブロックされます。
-
-
その
top-secret.pdf
*極秘*テナントが所有するバケット内にあります。
アクセスするには top-secret.pdf
*Top secret*テナントのユーザーはGETリクエストを発行して https://w.x.y.z:10444/top-secret.pdf
。このテナントは 10444 エンドポイントの使用を許可されているため、ユーザーはオブジェクトにアクセスできます。ただし、他のテナントに属するユーザーが同じ URL に対して同じリクエストを発行すると、直ちにアクセス拒否メッセージが表示されます。資格情報と署名が有効であってもアクセスは拒否されます。
CPUの可用性
各管理ノードとゲートウェイ ノード上のロード バランサ サービスは、S3 トラフィックをストレージ ノードに転送するときに独立して動作します。重み付けプロセスを通じて、ロード バランサ サービスは、CPU 可用性が高いストレージ ノードに、より多くの要求をルーティングします。ノードの CPU 負荷情報は数分ごとに更新されますが、重み付けはより頻繁に更新される場合があります。ノードが 100% の使用率を報告したり、使用率を報告できなかったりする場合でも、すべてのストレージ ノードには最小の基本重み値が割り当てられます。
場合によっては、CPU の可用性に関する情報は、ロード バランサ サービスが配置されているサイトに限定されます。