ラウンドロビンDNS
トラフィックを複数のサーバーにランダムに分散させるには、同じホスト名に対して複数のDNS AまたはAAAAレコードを設定します。
この設定は、シンプルなラウンドロビン負荷分散 ↗に使用します。トラフィック分配のより細かい制御が必要な場合(自動フェイルオーバー、インテリジェントルーティングなどを含む)、アドオン負荷分散サービスを設定してください。
以下の例は、www.example.com向けのトラフィックをどのように分配するかを示しています。例ではAレコードを使用していますが、AAAAレコードを使用することもできます。
アカウントを作成し、example.comのネームサーバーを更新した後、wwwサブドメインのために複数のDNSレコードを作成するかもしれません:
| タイプ | 名前 | IPv4アドレス |
|---|---|---|
| A | www | 192.0.2.1 |
| A | www | 192.0.2.2 |
| A | www | 192.0.2.3 |
DNSルーティングの正確な動作は、各レコードのプロキシステータスに依存します。
関連するすべてのレコードがプロキシされていない場合、Cloudflareのネームサーバーへのリクエストは、以前に追加した3つのAレコードを返します。
各クライアント(多くの場合はブラウザ)は、どのIPアドレスにリクエストを送信するかを決定します。1つのIPアドレスが失敗した場合、クライアントは別のオプションを選択します。すべてのリクエストは、オリジンサーバー(192.0.2.X)に直接送信されます。
関連するすべてのレコードがプロキシされている場合、Cloudflareのネームサーバーへのリクエストは、CloudflareのIPアドレスのリストから2つのAレコードを返します。
各クライアント(多くの場合はブラウザ)は、どのCloudflareのIPアドレスにリクエストを送信するかを決定します。Cloudflareはそのリクエストを受け取り、オリジンサーバーに連絡する必要がある場合は、DNSレコードに指定された3つのIPアドレスのうちの1つ(192.0.2.X)を選択します。
オリジンサーバーへのリクエストを減らすだけでなく、この設定により、アプリケーションはCloudflareのゼロダウンタイムフェイルオーバーを活用できます。1つのIPアドレスへのリクエストが失敗した場合、Cloudflareは自動的に同じホスト名に関連する他のIPアドレスへのリクエストを再試行します。この動作により、エンドユーザーがダウンタイムを経験することを防ぎます。
同じホスト名に関連するプロキシされているレコードとプロキシされていないレコードが混在している場合、リクエストはすべてのプロキシされているレコードがあるかのように行われます。
このアプローチは、予期しない動作を引き起こす可能性があるため、通常は推奨されません。たとえば、2つのプロキシされていないレコードと1つのプロキシされているレコードがある場合、Cloudflareはすべてのレコードをプロキシされているものとして扱います。しかし、単一のプロキシされているレコードを削除すると、残りの2つのプロキシされていないレコードは即座にプロキシされていないものとして扱われます。
DNSレコードに変更を加える際に驚きを避けるために、すべてプロキシされているか、すべてプロキシされていないレコードを使用することをお勧めします。