OpenResty Edge におけるステージングゲートウェイサーバーの使用方法
本文章では、OpenResty Edge のステージングゲートウェイサーバー機能を活用し、ゲートウェイ設定の変更をテストしてから本番環境のすべてのゲートウェイサーバーにリリースする方法についてご説明します。
ステージングサーバーとは
Edge Admin は Edge サーバーの管理と設定の配布を担当しています。しかし、重要な変更をすべての Edge サーバーに直接配布することは、問題を引き起こす可能性があります。
この課題に対処するため、一部の Edge サーバーをステージングサーバーとして指定することができます。まずステージングサーバーに変更をリリースし、テストを実施した後に、すべてのサーバーに展開します。これが本日のテーマである「ステージングサーバー」です。
OpenResty Edge の Admin Web コンソールにアクセスしましょう。これはコンソールのサンプルデプロイメントです。各ユーザーは独自のローカルデプロイメントを持っています。
ゲートウェイサーバーをステージングサーバーとして設定する
まず、ゲートウェイサーバーをステージングサーバーとして設定する方法をご説明します。
Gateway Clusters タブをクリックし、Gateway Clusters ページに移動します。
ここには 2 台のゲートウェイサーバーを持つゲートウェイクラスターがあります。
これら 2 台のゲートウェイサーバーをステージングサーバーとして設定します。この設定には 2 つの方法があります。1 つ目は、ゲートウェイクラスター全体をステージングクラスターとして設定する方法です。
クラスターの編集をクリックします。
ここにクラスターをステージングクラスターとして設定するためのスイッチがあります。
現在、このスイッチはオフになっています。
このゲートウェイクラスターをステージングクラスターとして設定するには、このスイッチをオンにします。
変更を保存します。
クラスター名をクリックし、サーバーリストページに移動します。
サーバーリストページで、この 2 台のサーバーがステージングサーバーとして表示されていることが確認できます。
ゲートウェイクラスターページに戻ります。
2 つ目の方法は、個別のゲートウェイサーバーを直接ステージングサーバーとして設定する方法です。
再度編集ボタンをクリックします。
このスイッチをオフにします。
各サーバーの下にスイッチがあり、そのサーバーをステージングサーバーとして設定するかどうかを制御できます。
このスイッチをオンにします。
変更を保存します。
クラスター名をクリックします。
1 台目のサーバーは引き続きステージングサーバーとなっています。
2 台目のサーバーはステージングサーバーではなくなりました。
これはデモンストレーションのための設定です。実際の運用では、1 つのクラスター内にステージングサーバーと非ステージングサーバーを混在させることは推奨されません。クラスターレベルでの設定配布時に問題が発生する可能性があるためです。
ステージングサーバーへの変更のリリース
アプリケーションリストページに戻り、ステージングサーバーへの変更のリリース方法を確認しましょう。
以前の例で使用した test-edge.com アプリケーションを引き続き使用します。
このアプリケーションに移動します。
ステージングリリースの結果をテストするために、新しいページルールを作成してください。
新規ページルールをクリックします。このルールは特定の URI に対して特定のコンテンツを返すように設定します。
まず、このルールに条件を追加します。
条件の変数は URI のままとします。
String= 演算子を選択します。
値として /test
を指定された URI として入力します。
これで条件の設定は完了です。
ルールのアクション部分では、Output response body アクションを設定します。なお、このアクションの選択はデモンストレーション目的であり、ステージングサーバーはあらゆる設定に対して有効です。
ここには多くのアクションが用意されています。
「Output」と入力して検索することをお勧めします。
「Output response body」アクションを選択します。
コンテンツタイプとして text/plain を選択します。
出力レスポンスボディとして「Hello World」を入力します。
このオプションをクリックして、既存のルールの前にこのルールを挿入します。
「作成」ボタンをクリックしてこのルールを作成します。
リストにこのルールが表示されていることが確認できます。
最後のステップは、新しい設定のリリースです。これにより、先ほどの変更がゲートウェイサーバーにプッシュされます。
このボタンをクリックして新しいリリースを実行します。
このリリースにコメントを追加します。
ステージングのリリースを行うには、このスイッチをオンにする必要があります。
すべてのステージングサーバーがここに表示されます。
リリースを実行します。
これで完全に同期されました。
未リリースの変更リストには、先ほどの変更がまだ表示されています。これは、変更がすべての Edge ノードではなく、ステージングノードにのみリリースされたためです。
リリース履歴リストで先ほどの変更を確認できます。
リリースタイプがステージングリリースと表示されていることが分かります。
ステージングサーバー上での変更のテスト
ゲートウェイクラスターリストに移動し、テスト用のサーバーを選択します。
IP アドレスが 226 で終わるサーバーがステージングサーバーであることに注意してください。このアドレスをコピーします。
このステージングサーバーを使用して、
リクエストを送信します。
出力を見やすくするため、ここで改行を追加します。
Hello World が返されていることが確認できます。
次に、非ステージングサーバーでテストを実施します。IP アドレスが 213 で終わるサーバーのアドレスをコピーします。
この非ステージングサーバーを使用します。
404 が返されました。これは、先ほどの変更がこのサーバーでは有効になっていないことを示しています。
OpenResty Edge について
OpenResty Edge は、マイクロサービスと分散トラフィックアーキテクチャ向けに設計された多機能ゲートウェイソフトウェアで、当社が独自に開発しました。トラフィック管理、プライベート CDN 構築、API ゲートウェイ、セキュリティ保護などの機能を統合し、現代のアプリケーションの構築、管理、保護を容易にします。OpenResty Edge は業界をリードする性能と拡張性を持ち、高並発・高負荷シナリオの厳しい要求を満たすことができます。K8s などのコンテナアプリケーショントラフィックのスケジューリングをサポートし、大量のドメイン名を管理できるため、大規模ウェブサイトや複雑なアプリケーションのニーズを容易に満たすことができます。
著者について
章亦春(Zhang Yichun)は、オープンソースの OpenResty® プロジェクトの創始者であり、OpenResty Inc. の CEO および創業者です。
章亦春(GitHub ID: agentzh)は中国江蘇省生まれで、現在は米国ベイエリアに在住しております。彼は中国における初期のオープンソース技術と文化の提唱者およびリーダーの一人であり、Cloudflare、Yahoo!、Alibaba など、国際的に有名なハイテク企業に勤務した経験があります。「エッジコンピューティング」、「動的トレーシング」、「機械プログラミング」 の先駆者であり、22 年以上のプログラミング経験と 16 年以上のオープンソース経験を持っております。世界中で 4000 万以上のドメイン名を持つユーザーを抱えるオープンソースプロジェクトのリーダーとして、彼は OpenResty® オープンソースプロジェクトをベースに、米国シリコンバレーの中心部にハイテク企業 OpenResty Inc. を設立いたしました。同社の主力製品である OpenResty XRay動的トレーシング技術を利用した非侵襲的な障害分析および排除ツール)と OpenResty Edge(マイクロサービスおよび分散トラフィックに最適化された多機能
翻訳
英文版の原文と日本語訳版(本文)をご用意しております。読者の皆様による他の言語への翻訳版も歓迎いたします。全文翻訳で省略がなければ、採用を検討させていただきます。心より感謝申し上げます!