グローバル・ロード・バランサーの操作
IBM Cloud® DNS Services は、起点サーバーの正常性とユーザー要求発信元である地理的なリージョンに基づいて、グローバル・ロード・バランシングをサービスとして提供し、高可用性とトラフィックの地理的な分散を実現します。
例えば、DNS ゾーン example.com
で、DNS ホスト名 api.example.com
がグローバル・ロード・バランサーとして作成されます。 ホスト名 api.example.com
は、要求者のロケーションおよび起点の正常性に基づいて、異なる IP アドレスに解決できます。 1 つのリージョンで起点の一部またはすべて (ポリシーに基づく) が使用不可の場合、異なるリージョンの正常な起点が
DNS 照会の応答で返されます。 このようにして、ホスト名 api.example.com
の可用性が高度に保たれます。 また、負荷が地理的にさまざまな起点間で分散され、リージョン間でルーティングされます。
グローバル・ロード・バランサーの制限事項
グローバル・ロード・バランシング機能には、以下の制限があります。
- DNS Services インスタンスごとに使用できる数量は、以下のとおりです。
- 最大 100 個のヘルス・チェック・モニター
- 最大 100 個のヘルス・チェック・サブネット
- 最大 100 個の起点プール
- 起点プールごとに最大 5 個の起点
- 起点プールごとのヘルス・モニターに使用できるサブネットは 2 個まで
- 最大 100 個の起点
- DNS ゾーンごとに最大 25 個のグローバル・ロード・バランサーを使用できます。
- クロスアカウントリンクゾーンの場合、ロケーションポリシーは所有者アカウントの VPC ゾーンマップによって決定されます。
ユース・ケースとワークフロー
グローバル・ロード・バランサーの最も一般的な用途は、トラフィックの正常な起点への送信、および負荷の分散です。
以下のワークフローは、DNS Services ゾーンのダッシュボードから実行します。 Global load balancers タブを開き、ロードバランサーサーバーが過負荷にならないように、一連のサーバーに作業負荷を分散するソフトウェアまたはハードウェア。 また、ロード・バランサーは、最初のサーバーが失敗した場合に、別のサーバーにユーザーを誘導する。、オリジンプール、 ヘルスチェックシステムが効率的に実行されているかどうかを判別するために、システムのリソースと状態をモニターするプロセス。 システムの整合性が損なわれる前に潜在的な問題を報告し、警告および障害レベルを表示するようにヘルス・チェックを構成できる。を表示します。
起点ヘルス・モニターを使用するグローバル・ロード・バランサーの作成
起点ヘルス・モニターを使用するグローバル・ロード・バランサーを作成して、ミッション・クリティカルなアプリケーション用に、高可用性と地理的なロード・バランシングを結合します。 このワークフローによって、トラフィックが、正常な起点にのみルーティングされるようになります。
以下のワークフローに従って、起点ヘルス・モニターを使用するグローバル・ロード・バランサーを作成します。
- ヘルス・チェックを作成します。
- 起点プールを作成し、使用するヘルス・チェックを指定します。
- グローバル・ロード・バランサーを作成します。
HTTP および HTTPS のヘルス・チェックでは、HTTP ユーザー・エージェント "Mozilla/5.0 (compatible; IBM-Cloud-DNS-Services/1.0; Health-Check/1.0; pool-id=12345678-1234-1234-1234-123456789012)"
が使用されます。 pool-id
は、ヘルス・チェックが構成されるロード・バランサー・プールとして設定されます。
起点ヘルス・モニターを使用しないグローバル・ロード・バランサーの作成
この構成では、DNS Services で、構成ポリシーに基づく地理的なロード・バランシング機能は提供されますが、高可用性機能は提供されません。
DNS ゾーンを作成した後、許可されたネットワークをそれに追加し、以下のワークフローに従って、グローバル・ロード・バランサーを作成します。
- 起点プールを作成します。
- グローバル・ロード・バランサーを作成します。
ヘルス・チェックの作成
ヘルス・チェックを作成して、起点の正常性をモニターする方法を指定します。DNS Services は、HTTP、HTTPS および TCP のモニター・タイプをサポートします。 ヘルス・チェックを作成した後、それを新規または既存の起点プールに追加できます。 ヘルス・チェックはインスタンス・レベルで存在し、インスタンス内の任意のプールで使用できます。
ヘルス・チェックが失敗したために起点が正常でないとマークされた場合、その起点を正常な状態に戻すには、単一の合格ヘルス・チェックで十分です。
以下のステップを実行して、ヘルス・チェックを作成します。
-
DNS Services ナビゲーション・メニューで、**「グローバル・ロード・バランサー」をクリックし、「ヘルス・チェック」**タブを選択します。
-
**「ヘルス・チェックの作成」**をクリックして、開始します。
-
**「ヘルス・チェック名」**フィールドで、ヘルス・チェックの名前を指定します。
-
オプションで、モニター内容の理解に役立つように、ヘルス・チェックの**「説明」**を入力します。
-
**「モニター・タイプ」**を選択します。 ヘルス・チェックに使用するプロトコルを選択します。 サポートされるモニター・タイプは、HTTP、HTTPS、および TCP です。 デフォルト値は
HTTP
です。 **「HTTPS」 を選択した場合、「詳細オプション」セクションの後に、「証明書を確認しない」**チェック・ボックスが表示されます。 起点の HTTPS 証明書が認証局によって署名されていない場合 (例えば、自己署名証明書)、このチェック・ボックスを選択してください。 -
ヘルス・チェックの実行対象のエンドポイントの**「パス」**を入力します。 デフォルト値は
/
です。 -
オプションで、使用する**「ポート」**の番号を入力します。 ヘルス・チェックが正常に実行されるには、ヘルス・モニターの要求に応答する起点で、関連アプリケーションが実行されている必要があります。
-
「詳細設定」セクションで、各ヘルス・チェック間の「テスト間隔」(秒単位) を選択します。 間隔を短くすればフェイルオーバー時間は改善されるが、チェックが複数の場所から行われるため、オリジンの負荷は増大する。 デフォルト値は
60
です。 -
リストからヘルス・チェックに使用する**「メソッド」**を選択します (HTTP と HTTPS の場合のみ)。 デフォルト値は
GET
です。 -
「タイムアウト」 間隔 (秒単位) を選択します。 タイムアウト間隔は、ヘルス・チェックがタイムアウト・エラーで失敗するまで待機する時間です。 デフォルト値は
5
です。 -
試行する 「再試行回数」 を選択します。 起点のヘルス・チェックが失敗したことを宣言する前に、ヘルス・チェックを試行する回数を決定します。 再試行は即時に実行されます。 デフォルト値は
1
です。 TCP モニター・タイプのオプションは、このステップで終了です。 **「作成」**をクリックし、変更を保存してヘルス・チェックを作成します。 HTTP および HTTPS のモニター・タイプには、追加オプションがあります。以下を続けてください。 -
**「予期される応答コード」**を入力します。ここには、ヘルス・チェックで予期される HTTP 応答のコードまたはコード範囲を入力します。 この値は、
200-299
で表すワイルドカードを使用したx
間でなければなりません。 -
オプションで、**「応答本文」**を入力します。これは、応答本文で突き合わせる大/小文字を区別しないサブストリングです。 このストリングが検出されない場合、起点には非正常のマークが付けられます。
-
オプションの**「要求ヘッダー」**セクションでは、ヘルス・チェックで送信する HTTP 要求ヘッダーを追加および構成できます。 該当するフィールドに、ヘッダーの名前と値を入力します。 **「要求ヘッダーの追加」**をクリックして、追加ヘッダーを構成します。
-
**「作成」**をクリックし、変更を保存してヘルス・チェックを作成します。
起点プールの追加
起点プールとは、ロード・バランサーで使用する起点をグループ化したものです。 起点は、IP またはホスト名のいずれでも構いません。 モニターする起点プールかモニターしない起点プールのどちらを作成するかを決定します。 モニターするプールの場合、使用するヘルス・チェック、および正常性がモニターされるサブネットを指定する必要があります。 起点プールは、インスタンス・レベルで存在し、インスタンスで構成される任意の DNS ゾーンの任意のグローバル・ロード・バランサーで使用できます。
起点プールを処理する場合は、始める前に、以下の考慮事項に注意してください。
- ロード・バランサーごとに、少なくとも 1 つの起点プールが必要です。
- 起点ヘルス・モニターは、起点プールが無効の場合でも続行されます。 起点のヘルス・モニターを無効にするために、起点を無効にすることができます。
- 起点プールを作成すると、ヘルス・チェックが開始されるまでに 1 分から 10 分かかる場合があり、この間、プールは
Critical
状態と表示されます。 - モニターしている起点プールからヘルス・チェックを削除しない限り、ヘルス・モニターに使用しているサブネットを削除することはできません。
- プール内の起点にホスト名を指定する場合、リソース・レコード A、AAAA、または CNAME、および別のロード・バランサーにすることができます。 ただし、長い CNAME チェーンまたはロード・バランサーを解決する場合、パフォーマンスが低下することがあります。
ヘルス・モニターのサブネットからのトラフィックを許可するために、VPC セキュリティー・グループを更新する必要があります。 詳しくは、セキュリティー・グループを参照してください。
起点プールを作成するには、以下の手順を実行します。
-
DNS Services ナビゲーション・メニューで**「グローバル・ロード・バランサー」をクリックして、「起点プール」**タブを選択します。
-
**「起点プールの作成」**をクリックします。 プールは、デフォルトで有効になっています。
プールを無効にすると、そのプールを使用するロード・バランサーは、次のプール (存在する場合) にフェイルオーバーします。 無効にしたプールは、トラフィックを受信しません。
-
プールの**「名前」**を入力します。 英数字、ハイフン、下線のみを使用できます。
-
オプションで、起点プールの**「説明」**を入力します。
-
**「起点」**を有効にして、このプール内の起点のリストに追加します。
-
起点の**「名前」と「アドレス」を指定します。 さらにプールを追加するには、「追加」**をクリックし、トグルを切り替えてプールをオフまたはオンにします。 このプールに向けて送信されたトラフィックは、プール自体が正常であれば、現在正常なすべての起点の間で分散されます。 ヘルス・チェックは、無効の起点を除外します。
-
**「正常な起点のしきい値」**を選択します。これは、このプールでトラフィックを処理するために必要とされる正常な起点の最小数です。 正常な起点の数がこの数を下回ると、プールに非正常のマークが付けられ、次に使用可能なプールにフェイルオーバーされます デフォルト値は
1
です。 -
**「ヘルス・モニタリング」セクションで、「ヘルス・チェック」**を選択して、ヘルス・チェックに使用するメソッド、およびこのプール内の起点を検査するために使用するヘルス・チェックを決定します。 デフォルト値は、ヘルス・チェックなしです。
-
ヘルス・チェックのモニタリングが実行される**「ヘルス・チェック地域」**を選択します。 オプションは、 ダラス、 フランクフルト、 ロンドン、 マドリッド、 大阪、 サンパウロ、 シドニー、 東京、 トロント、 ワシントン DC、および パリ (パリは制限されたユーザーのみが使用できます) です。
-
ヘルス・チェックが実行されるサブネットを含む**「VPC」**を選択します。
-
**「サブネット (ロケーション)」**を選択します。 リスト・メニューからサブネットおよびロケーションを選択します。 これにより、ヘルス・チェックが実行されるサブネットが定義されます。 最大で 2 個のサブネットを指定できます。
-
**「作成」**をクリックし、変更を保存して起点プールを作成します。
初めて起点プールを作成する場合、初期ヘルス・チェックが完了していないため、その状況は Critical
になり、起点の状況は Down
になります。 起点のヘルス・チェックが正常に完了した後、状況は更新されます。
状況定義
以下の表に、起点、起点プール、およびグローバル・ロード・バランサーで表示される可能性のある状況を示します。
機能 | ステータス | 定義 |
---|---|---|
発信元 | up down |
アップ:原点は正常に機能している ダウン:原点がダウンしている オリジンの健全性を維持するためには、オリジンの健全性チェックの少なくとも50%がアップしていなければならない healthy |
起点プール | healthy degraded critical |
健康的だ:プールの原点はすべてアップして 劣化している:少なくとも1つのオリジンのステータスがダウンしている Critical:プール内の健全なオリジンの数が、健全なオリジンプールのしきい値より少ない。 例えば、しきい値が 2 である場合に 1 つの起点のみが機能している場合、プールの状況は Critical です。 |
グローバル・ロード・バランサー | healthy degraded critical |
健全:グローバルロードバランサーに関連付けられているすべてのオリジンプールが正常です 劣化している:オリジンプールの少なくとも1つがデグレード状態である クリティカル:グローバルロードバランサーのステータスがクリティカルなのは、グローバルロードバランサーに関連するすべてのオリジンプールがクリティカルな場合です。 |
フォールバック・プールの状況は、グローバル・ロード・バランサーの正常性を評価する際に考慮されません。
セキュリティー・グループ
VPC のセキュリティー・グループを更新して、ヘルス・モニターを実行するサブネットでヘルス・チェッカーが使用する IP アドレスからの着信ヘルス・チェック・トラフィックを許可します。 現在、これは、サブネット CIDR 全体のトラフィックを許可することによって行われます。
グローバル・ロード・バランサーの作成
ロード・バランサーは、トラフィックを複数の起点プールの間に分散させます。
以下のステップを実行して、ロード・バランサーを作成します。
グローバル・ロード・バランサーをセットアップするには、最初に起点プールを作成する必要があります。
- DNS Services ナビゲーション・メニューで**「グローバル・ロード・バランサー」をクリックして、「ロード・バランサー」**タブを選択します。
- リストから DNS ゾーンを選択します。
- **「ロード・バランサーの作成」**をクリックします。
- ロード・バランサーに関連付ける、DNS の**「バランサー・ホスト名」**を入力します。
- オプションで、グローバル・ロード・バランサーの**「説明」**を入力します。
- このロード・バランサーから返される IP アドレスの DNS エントリーの**「TTL」**(存続時間) を選択します。
- **「デフォルト・ポリシー」を追加または選択します。 デフォルト・ポリシーは、ロケーション・ベースのポリシーが指定されていないすべてのアベイラビリティー・ゾーン (AZ) で使用される起点プールを指定します。 ポリシー内で複数のプールが選択されている場合、「優先順位」**列の矢印キーを使用して、それらの優先順位を変更できます。
- **「フォールバック・ポリシー」**を追加または選択します。 フォールバック・ポリシーは、デフォルトまたはロケーションのポリシーで他のすべての起点プールが重大な状態である場合に使用する起点プールを指定します。 フォールバック・ポリシーの起点プールは 1 つのみ指定できます。
- オプションで、**「ロケーション・ポリシー」**を追加または選択します。 ロケーション・ポリシーを使用すると、特定の AZ に起点プールを 1 つ以上関連付けることができます。 ロケーション・ポリシーとして明示的に定義されていない AZ では、デフォルト・ポリシーが使用されます。
DNS リゾルバーがグローバル・ロード・バランシング・プールに優先順位を付ける方法
DNS リゾルバーは、以下の順序で起点プールの起点を返します。
ロケーション・ポリシー > デフォルト・ポリシー > フォールバック・ポリシー
ロケーション・ポリシー (AZ で定義されている場合) は、最高優先度があり、最初に使用されます。 ロケーション・ポリシーのすべての起点プールがダウンしている場合、DNS リゾルバーはデフォルト・ポリシーの起点プールを使用します。 デフォルト・ポリシーのすべての起点プールもダウンしている場合は、DNS リゾルバーはフォールバック・ポリシーで指定されている起点プールを使用します。
DNS リゾルバーが DNS 応答のリソース・レコード TTL を処理する方法
前述のように、起点のアドレスがホスト名である場合、このホスト名は、A、AAAA、または CNAME リソース・レコードに対する名前を表すことができます。 これらのシナリオでは、グローバル・ロード・バランサーを使用して解決された DNS 照会で、リゾルバーが同時に複数のリソース・レコードを考慮する必要がある場合があります。
DNS リゾルバーが照会に応答すると、考慮対象のリソース・レコードのセットの中で監視された最小の TTL と、グローバル・ロード・バランサー自体で構成された TTL が、応答内のリソース・レコードの TTL として選択されます。
グローバル・ロード・バランサーに基づく結果の DNS 応答には、ロード・バランシングされた IP アドレスを参照する、必要な A または AAAA レコードのみが含まれる場合があります。 ただし、グローバル・ロード・バランサーが依存する他の項目の構成も、DNS 応答の TTL に影響を与える可能性があります。 これは特に、目的の A または AAAA リソース・レコードへの CNAME チェーンの一部である CNAME リソース・レコードを参照するアドレスを持つ起点がある場合に当てはまります。
発信元のアドレスがリソース・レコードを参照する場合や、パブリック・インターネット上の別の DNS ゾーンで構成された他のリソース・レコードのチェーンにつながる場合があります。 結果として、DNS リゾルバーによって考慮される一部のリソース・レコードは、他のアップストリーム DNS リゾルバーからのものである可能性があります。 特定のキャッシュ方式の結果として、アップストリーム DNS リゾルバーのキャッシュされたリソース・レコードのキャッシュ内により低い TTL が含まれている場合、考慮されるすべてのリソース・レコードの中で監視される最小 TTL が、より低くプッシュされる可能性があります。 これにより、予期される最大所要時間より短い TTL を持つリソース・レコードが DNS 応答に含まれることになります。
グローバル・ロード・バランサーのコンポーネントの表示、編集、または削除
ロード・バランサーまたはそのコンポーネントの 1 つを表示、編集、または削除するには、ロード・バランサーの表の行にあるオーバーフロー・メニュー からアクションをクリックします。
リストごとに以下のオプションが用意されています。
-
ヘルス・チェック
- ヘルス・チェックの編集 - 編集フローにリダイレクトします。
- ヘルス・チェックの削除 - 削除フローの確認ダイアログ・ボックスを表示します。
-
起点プール
- プールの編集 - 編集フローにリダイレクトします。
- プールの削除 - 削除フローの確認ダイアログ・ボックスを表示します。
-
ロード・バランサー
- ロード・バランサーの編集 - 編集フローにリダイレクトします。
- ロード・バランサーの削除 - 削除フローの確認ダイアログ・ボックスを表示します。