こんにちは、エンジニアリング本部エンジニアリング部の伊藤と申します。
IDCFクラウド CDN の開発に携わっています。
IDCFクラウド CDN は、 Fastly のエッジクラウドプラットフォームを基盤として採用したシンプル・パワフルなコンテンツ配信サービスです。
今回は、先日 IDCFクラウド CDN に追加されたオートロードバランスとヘルスチェック1 の機能についてご紹介していきたいと思います。
背景
これまで、オリジンサーバーを複数台設定することは可能でしたが、特にそれ以上の機能提供はしておりませんでした。
例えば、複数オリジンにロードバランシングしたい、というユースケースに対応するにも API を駆使して設定する必要があり、GUI で操作することの多いユーザーにとっては設定のハードルが高いものになっていました。
そのため、このように使いたいと思っていても、設定方法がわかりづらく感じている方も少なからずいたかと思います。
そこで、以下の観点を念頭に置き、要件定義を始めました。
Fastly が提供しているオートロードバランスの機能を、IDCFクラウド の強みである簡易な UI によって利便性の高い状態で提供し、ユーザーの機会損失を減らすこと。
追加料金なしで L7ロードバランサーを提供することで競合他社との差別化を図り、優位性を持たせること。
また、ロードバランサーにとってヘルスチェックは重要な機能のひとつであり、オートロードバランスとセットで提供することで、より可用性を高めることが可能になります。
そこで、オリジンサーバーに対するヘルスチェック機能も要件に追加し、開発に着手しました。
主なご利用例
オリジンサーバーが IDCFクラウドとオンプレミスの Webサーバーで構成されたケース
それぞれのオリジンサーバーにオートロードバランスおよびヘルスチェックの設定をします。
オンプレミスのサーバーを、他社クラウドに置き換えても同様の構成が可能です。
このように設定しておくことで、オリジンサーバーに障害が発生した場合にはヘルスチェックが失敗し、ロードバランサーの分散対象から外れ、システムの可用性を担保することが可能です。
(障害が復旧すれば、ヘルスチェックに成功したのち、分散対象に復帰します)
設定方法
設定方法は新規サービス作成時と既存のサービスへの設定の2種類がありますが、今回は既存サービスに対する設定を例にしてご紹介します。
新規サービス作成時でも要領は同じです。
オートロードバランス
まず前段として、複数のオリジンサーバーを用意します。
以下の手順でオリジンサーバーの設定をしてください。
オリジンサーバーは最大5台まで追加可能です。
- クラウドコンソールから対象のサービス名をクリック
- [オリジンサーバー]を選択
- [オリジンサーバーを追加する]をクリック
- 必要情報をご入力ください
- 右下の「追加する」をクリック
※この時点では以下の VCL Warning が表示されますが、ロードバランスの設定をすることで解消されますのでこのまま次に進んでください。
対象サービスの [オートロードバランス] タブをクリックすると、設定画面が表示されます。
操作はとても簡単で、3ステップで設定完了です。
- バランシングしたいオリジンサーバーにチェックを入れる
- 重みを設定する(1-100の整数値)
各オリジンに均等にバランシングする場合はデフォルト値のままでOK - オリジンシールド 2 を選択する
設定しない場合はnone
を選択
すべてのオリジンに対して一括で設定できる、バランシング対象のオリジンシールドを固定できる、といったところがポイントです。
というのも、オリジンシールドと併用する場合、Fastly ではすべてのオリジンに対して同じシールド POP を設定することを推奨していますが、Fastly が提供する UI ではバラバラに設定することができてしまいます。
これを避けるため、統一したシールド POP を設定できるように制御しています。
また、注意事項として、オートロードバランスをオンにする場合は各オリジンサーバーが必ず同じ機能を持っており、同じレスポンスを返すようにしてください。
あるオリジンサーバーにはコンテンツが存在し、別のオリジンサーバーにはない、という状態だとロードバランサーとして期待した結果を得ることができません。
各項目の詳細な説明は FAQ に記載がありますので、ぜひご覧ください。
ヘルスチェック
オリジンサーバーのオプション設定として、ヘルスチェックが提供されています。
こちらも簡単な操作で設定可能になっています。
パスとホストヘッダーを入力すれば、後はデフォルト値のままでも利用可能です。
- [ヘルスチェック] にチェックを入れる
- 各種設定を行う(※は必須項目)
- リクエスト ※
送信するリクエストの HTTP メソッドとヘルスチェック対象のパスを入力してください。 パスには、ヘルスチェック用にオリジンに配置したコンテンツのパスを指定します。 - ホストヘッダー ※
ヘルスチェックのリクエスト送信先ホスト(FQDN または IP アドレス)を記載してください。 - ステータスコード
レスポンスとして期待される HTTP ステータスコードを指定してください。 - チェックレベル
ヘルスチェックする頻度を 低・中・高・カスタム の4つのレベルから選択してください。
- リクエスト ※
こちらも詳細については FAQ がございますので、ご覧ください。
さいごに
実はこの機能、昨年の時点でも開発が進められておりリリース直前まで行ってたのですが、テスト中に仕様の不備が発覚してしまいリリースが見送られていたものでした。
今回、改めて開発チームおよび UI/UX チームで仕様を検討し直し、直感的に扱いやすいユーザーフレンドリーな UI を提供できたのではないかと自負しております。
これからも、IDCFクラウド の強みであるシンプルさと Fastly のパワフルさを併せもった機能開発を推進していければと思いますのでご期待ください!